李荔 瞿洪桂 高珊珊
(1.國家信息中心軟件評測中心 北京市 100000 2.北京中電興發(fā)科技有限公司 北京市 100095)
人臉跟蹤是對視頻中出現(xiàn)的人臉進行位置軌跡的連續(xù)定位。在視頻監(jiān)控的人臉抓拍任務中,常常通過對畫面中同一人臉進行跟蹤,并選擇跟蹤軌跡中質(zhì)量較好的一幀或多幀進行抓拍,來避免對同一人臉進行重復抓拍。
人臉跟蹤算法通常借鑒多目標跟蹤算法,并將其中的目標限定為人臉。主流的多目標跟蹤算法是基于檢測的跟蹤,包括目標檢測、表觀或運動特征提取、相似度計算、匹配關(guān)聯(lián)四個階段[1]。基于檢測的跟蹤以Alex 等[2]提出的SORT 和Nicolai 等[3]提出的DeepSORT 為代表,基于卡爾曼濾波[4]來進行目標的運動信息預測,使用匈牙利匹配算法[5]進行目標和軌跡的匹配關(guān)聯(lián)。基于深度學習的端到端的多目標跟蹤算法將四個階段的其中幾個進行融合,如Zhongdao 等[6]通過修改YOLOv3 網(wǎng)絡(luò)同時進行目標檢測并輸出對應的深度特征;Yifu[7]也做了類似的工作但速度更快;ShiJie 等[8]以端到端的方式學習目標物體的外觀特征以及在若干幀內(nèi)的關(guān)聯(lián)性。
在人臉跟蹤任務上,周平平等[9]基于粒子濾波算法進行跟蹤,自適應融合人臉膚色和邊緣特征;李澎林等[10]使用HOG 算子進行人臉檢測,使用人臉關(guān)鍵點作為輸入提取深度特征輔助跟蹤;田雄[11]等使用背景建模檢測運動區(qū)域,使用哈爾特征檢測人臉,結(jié)合CamShift 算法進行人臉跟蹤。
這些方法多使用傳統(tǒng)方法進行人臉檢測,檢測結(jié)果不夠精確,同時使用非深度特征進行外觀描述,區(qū)分性較差。為了對監(jiān)控視頻中的多人臉進行準確跟蹤,本文提出基于深度學習的跟蹤算法,主要的創(chuàng)新點有:
(1)去掉人臉檢測算法的大尺寸分支以適應視頻監(jiān)控中的人臉尺寸;
(2)融合深度特征和HOG 特征,以提高人臉特征的區(qū)分性;
(3)在相似度矩陣中同時使用特征相似度和IoU 進行過濾,提高跟蹤準確性。
本文提出的方法能有效提高跟蹤的持續(xù)性,減少ID 切換,對視頻監(jiān)控中的多人臉進行準確跟蹤。
本文使用基于深度學習的方式進行多人臉的跟蹤,具體流程為:
(1)獲取視頻或圖片流的當前幀圖像;
(2)使用卡爾曼濾波方法預測已存軌跡在當前幀的位置坐標,即預測框;
(3)對當前幀圖像進行人臉檢測得到人臉矩形框坐標,即檢測框;若未檢測到人臉,則跳到第(8)步進行匹配后更新;
(4)根據(jù)檢測框得到人臉小圖,提取融合人臉特征并輸出;
(5)計算軌跡特征池中的特征和當前幀人臉特征的相似度矩陣;
(6)計算檢測框和預測框的IoU 值得到IoU 矩陣;
(7)根據(jù)相似度矩陣、IoU 矩陣和匈牙利匹配算法進行軌跡和人臉的匹配;
(8)將未匹配成功的軌跡和人臉根據(jù)IoU 矩陣進行匈牙利匹配;
(9)將第(7)步和第(8)步中匹配成功的人臉I(yè)D 設(shè)置為對應軌跡的ID,更新卡爾曼濾波器,添加人臉特征到特征池中,將連續(xù)匹配失敗次數(shù)置零;對于第(8)步未匹配成功的軌跡,將其連續(xù)匹配失敗次數(shù)加1,在該值超過閾值時刪除該軌跡;將第(8 步)未匹配成功的人臉初始化為新的軌跡,分配新的ID,初始化卡爾曼濾波器,保存人臉特征到特征池。返回第(1)步。
下面依次對算法用到的人臉檢測、特征提取、相似度計算和匹配、卡爾曼濾波的原理進行說明。
本文使用的人臉檢測算法基于Najibi 等[12]提出的SSH 人臉檢測算法。該算法為單階段人臉檢測算法,作者移除VGG16 分類網(wǎng)絡(luò)的全連接層,后接三個檢測頭,分別對應檢測不同尺寸大小的人臉。
為了適應監(jiān)控場景下的人臉檢測,并提高檢測速度,本文對SSH 算法進行改進,將主干網(wǎng)絡(luò)從VGG16 更換為ResNet18[14],將檢測頭從三個減少為兩個。更換主干網(wǎng)提升了推理速度,同時精度并沒有明顯下降。而對于視頻監(jiān)控場景,人臉尺寸在畫面中所占比例較小,刪掉專門針對大尺寸人臉的M3 檢測頭,可大幅提高檢測速度。改進的SSH 算法網(wǎng)絡(luò)依然為全卷積網(wǎng)絡(luò),綜合考慮速度和精度,輸入圖片尺寸設(shè)置為960*540。
人臉特征提取算法通過提取人臉圖片的特征來代表該人臉的外觀,跟蹤中通過計算人臉特征相似度來匹配軌跡和當前幀人臉。視頻監(jiān)控場景中常常同時存在多個人臉,一般的基于深度學習的方法雖然能提取到圖像的深層抽象特征,進行比較準確的特征表達,但往往耗時過長,影響跟蹤的時效性。而非深度的方法能夠快速提取到圖像的局部形狀信息,但往往精度較低,特征的區(qū)分性不足。

表1:測試視頻信息

表2:跟蹤測試結(jié)果

圖1:檢測算法在monitor 測試集上的測試結(jié)果
為兼顧精度和速度,本文同時計算人臉的深度特征和非深度特征,并融合成一個完整特征。深度特征提取的主干網(wǎng)絡(luò)為Sheng 等[15]提出的MobileFaceNets,該網(wǎng)絡(luò)采用MobileNetV2[16]的Bottleneck結(jié)構(gòu)作為網(wǎng)絡(luò)的主要模塊,計算量很小。訓練時損失函數(shù)采用的是Jiankang 等[17]提出的基于角度的損失函數(shù)Arcface,針對人臉目標的識別表現(xiàn)較好。本文采用的非深度特征為HOG 特征。HOG 算子通過計算和統(tǒng)計圖像局部區(qū)域的梯度方向直方圖構(gòu)成特征,具有幾何和光學不變性,能夠較好地捕捉圖像的局部形狀信息[10]。
本文提取的人臉深度特征為128 維,HOG 特征為144 維,順序拼接為一個完整特征,共272 維。拼接方式如下:

其中xi為深度特征的第i 維,yi為HOG 特征的第i 維。兩特征在拼接前分別做了歸一化操作。
本文中的跟蹤算法根據(jù)軌跡和檢測框之間的特征相似度和IoU值來進行匹配。特征相似度根據(jù)1.2 中提取的人臉特征進行計算,代表目標之間的外觀相似度;IoU 值根據(jù)檢測框和預測框的位置坐標進行計算,其含義為兩個框之間的重合比例,代表兩目標之間的位置相似性。
特征相似度的計算使用余弦相似度,公式如下

其中x,y 分別為不同人臉圖像提取的人臉特征。除以2 是因為拼接前兩特征分別歸一化,拼接后完整特征的二范數(shù)為
預測框和檢測框之間IoU 值的計算公式如下

其中A,B 分別為軌跡的預測框區(qū)域和當前幀人臉檢測框區(qū)域,為兩框交集的面積,為兩框并集的面積。
IoU 值不考慮目標外觀,僅根據(jù)位置是否相近匹配,但在遮擋和人臉速度突變情況下表現(xiàn)不好;特征相似度可以較好的處理遮擋和速度突變,但對模糊、角度變化引起的人臉外觀改變魯棒性不好。因此,本文同時考慮位置和外觀特征。首先使用相似度矩陣進行匹配,將小于相似度閾值的相似度置零。同時判斷對應軌跡和人臉的IoU 值是否為0,如果是,則說明預測框和檢測框位置相差較大,此時將相似度矩陣的相似度置零,避免將不同位置外觀相似的人臉錯認為同一人臉。之后根據(jù)匈牙利匹配算法進行匹配。
對于根據(jù)特征匹配失敗的軌跡和檢測框,使用IoU 矩陣進行再次匹配。同樣,只有超過閾值的IoU 值是有效的,使用的匹配算法也是匈牙利匹配算法。最終的匹配結(jié)果為兩次匹配成功的結(jié)果的并集。
匈牙利匹配算法用以求解二分圖的最大匹配問題,該問題類似跟蹤中的軌跡與人臉匹配問題,利用該算法可實現(xiàn)軌跡和人臉的最大匹配,也就是關(guān)聯(lián)成功數(shù)量最多的匹配。
卡爾曼濾波是一種針對線性系統(tǒng)的估計算法,它可以通過系統(tǒng)包含噪聲的觀測狀態(tài),對系統(tǒng)的真實狀態(tài)進行最優(yōu)估計。在跟蹤中,卡爾曼濾波常用來對軌跡的位置坐標進行預測和更新。當一個檢測框匹配失敗時,將其初始化為新的軌跡,為其分配一個卡爾曼濾波器,此時卡爾曼濾波器由該人臉檢測框的位置坐標初始化;根據(jù)上一幀軌跡位置的最優(yōu)估計和變化速度,卡爾曼濾波器給出軌跡在這一幀的位置預測;經(jīng)過匹配,如果該預測框與某檢測框匹配成功,則預測框和檢測框融合得到軌跡位置的準確估計,同時卡爾曼濾波器更新速度和方差等參數(shù)。預測和更新反復進行,保證跟蹤框的準確。
本文的測試環(huán)境所用系統(tǒng)為ubuntu18.04,CPU 型號為Intel(R) Xeon(R) CPU E5-2609 v3 @ 1.90GHz,內(nèi)存大小32G,使用的顯卡為NVIDIA GeForce GTX 1070.
本文使用的數(shù)據(jù)集為自己采集制作的數(shù)據(jù)集monitor,為監(jiān)控視頻視角的人臉檢測數(shù)據(jù)集。訓練驗證集包含13926 張圖片,總計82930 個人臉框。測試集共1990 張圖片,人臉框數(shù)量為16912.檢測的主要指標為PR 曲線和ROC 曲線。PR 曲線橫軸為召回率,即算法正確檢測的人臉占所有人臉的比例,縱軸為準確率,即算法在所有候選框中將其正確分類的概率。ROC 曲線橫軸為假陽數(shù),也即將非人臉檢測為人臉的個數(shù),縱軸為召回率。
本文將改進的SSH 算法與Yuanyuan 等[18]提出的CenterFace算法比較。本文將CenterFace 使用WIDER FACE[19]數(shù)據(jù)集訓練得到的預訓練模型在monitor 訓練集上進行遷移學習,最終在測試集上的評測結(jié)果如圖1。
相比于CenterFace,本文提出的改進的SSH 算法在該數(shù)據(jù)集上的表現(xiàn)較好,更加適合監(jiān)控視角的人臉檢測。
針對多人臉跟蹤的測試,本文使用的數(shù)據(jù)是自己采集的四段監(jiān)控視頻,視頻長度在1 分鐘左右,幀數(shù)統(tǒng)計和其中所含人臉數(shù)統(tǒng)計見表1。
在算法評測時,本文主要衡量的指標是ID 切換、誤跟蹤、漏跟蹤數(shù)量。其中ID 切換指的是算法對同一個人臉賦予了多個不同的ID;誤跟蹤指的是算法將不是人臉的目標識別成人臉進行跟蹤并賦予其獨特的ID,誤跟蹤主要是由檢測算法誤檢造成,跟蹤算法可以過濾部分誤檢情況;漏跟蹤是指算法將視頻中的人臉目標遺漏,并未對其進行跟蹤和ID 的分配,漏跟蹤可能是由檢測算法的漏檢造成,也可能是由跟蹤算法將人臉拋棄造成。所有指標均為越低越好。
下面將本文提出的算法與另一種跟蹤算法做比較。方法1 采用的檢測算法是改進的SSH,不添加特征提取模塊,跟蹤部分采用SORT 算法;方法2 為本文提出的改進算法,采用的檢測算法為改進的SSH,添加融合特征提取模塊,使用融合特征和IoU 信息共同進行匹配,配合卡爾曼濾波和匈牙利匹配算法實現(xiàn)跟蹤。兩種方法的比較結(jié)果如表2。
從表2 中可以看出,方法2 在誤跟蹤和ID 切換這兩個指標上均好于方法1,且僅僅比方法1 多一個漏跟蹤,說明添加融合特征能夠顯著降低ID 切換,比起僅僅使用IoU 計算位置,跟蹤的持續(xù)性更好。誤跟蹤的減少是因為跟蹤算法準確的將同一個非人臉目標的兩次誤跟蹤合并為一次,也即對置信度高的錯誤目標也做到了準確跟蹤。而增加的漏跟蹤說明更準確的跟蹤不會是更全面的跟蹤,漏跟蹤、誤跟蹤和ID 切換指標不會同時下降。
兩種算法的ID 切換指標差異較大,且算法2 的ID 切換數(shù)量也不少。分析視頻發(fā)現(xiàn),當人臉位于畫面后方,尺寸較小且較模糊時,難以獲得較高的檢測置信度,且容易被其他人或干擾物遮擋,發(fā)生外觀變化,造成ID 切換。相比于Video_1、Video_2、Video_3 中,Video_4 中的人臉普遍尺寸較大,ID 切換情況大大減少。
本文提出了在監(jiān)控視頻場景下的基于深度學習的多人臉跟蹤算法,采用基于ResNet18 并去掉大尺寸檢測頭的SSH 人臉檢測算法進行多人臉的檢測,采用基于MobileFaceNets 和Arcface 的深度人臉特征提取網(wǎng)絡(luò)進行深度特征提取,并與HOG 特征進行融合,在匹配時同時考慮融合人臉特征和IoU 信息,配合卡爾曼濾波和匈牙利匹配算法實現(xiàn)多人臉的跟蹤。實驗表明,本文提出的方法能夠有效減少跟蹤過程中的ID 切換,提高跟蹤的持續(xù)性。但是,本文算法還不夠?qū)崟r,以后的工作可以通過優(yōu)化人臉檢測算法來提高跟蹤速度。