周書田,顏 信,謝鎮(zhèn)汕
(電子科技大學格拉斯哥學院 成都 611731)
隨著越來越多的攝像采集與監(jiān)控設(shè)備被部署,視頻中人臉識別的需求大幅上升。這些系統(tǒng)迫切地需要可靠與準確的人臉識別。與靜態(tài)配合式人臉識別[1-3]不同的是,視頻中的人臉識別往往是非受限的,即捕捉姿勢、圖像質(zhì)量等在幀間都會呈現(xiàn)巨大的變化。一方面,幀間信息可以形成信息互補,并通過多幀對人臉進行更加準確的識別;另一方面,幀間部分低質(zhì)量,如運動模糊、極端采集角度及低分辨率的圖像,又會干擾視頻人臉識別的結(jié)果。如果直接使用靜態(tài)人臉識別方法,那么這些低質(zhì)量幀將會帶來誤識別。因此如何對幀之間的信息進行有效匯聚,從而形成更加魯棒的視頻人臉特征表達,成為一個關(guān)鍵問題。
目前對視頻中進行人臉識別最流行的方法是將視頻人臉圖像幀表示為無序的特征向量[4-8],并把各幀的特征向量進行匯聚成為視頻級特征。驗證時,對視頻級特征進行相似性檢索即可。常見匯聚的方式有平均匯聚[6]、最大池化匯聚與注意力機制匯聚[7]。但這些方式需要對所有視頻幀進行特征提取,消耗了大量的計算資源,并不高效。因此近來,視頻識別領(lǐng)域提出了如3D 卷積[8]等新穎的視頻分析框架,可以有效地對連續(xù)幀信息進行捕捉,但3D 卷積同樣會引入巨大的計算量。
本文首先比較了基于2D 卷積網(wǎng)絡(luò)與不同幀間匯聚的方法,并介紹了一種在視頻中使用3D 分解卷積的連續(xù)幀人臉識別方法。該方法不需要逐幀地對人臉數(shù)據(jù)進行提取,而是將多幀輸入一個3D 分解卷積結(jié)構(gòu),得出一個全局的特征向量。與逐幀進行特征提取并匯聚的算法相比,該方法可以大幅提高計算效率,且保持了競爭力的識別精度。最后,本文提出了用于視頻人臉識別的時間金字塔網(wǎng)絡(luò),可以對幀間互補信息進行有效建模。3D 分解卷積與時間金字塔網(wǎng)絡(luò)的有效性在YouTubeFace[9]、PaSC 測試集得到了驗證。
本節(jié)介紹視頻人臉識別的整個流程及各項的詳細配置。視頻人臉識別系統(tǒng)可以分為3 部分:視頻特征編碼器、優(yōu)化視頻編碼器的損失函數(shù)及將視頻進行匹配與檢索的查找方法。首先將視頻切成連續(xù)且非重疊的視頻片段{ck},每個片段包含有 T幀,對每個片段進行特征抽取。片段特征抽取器將片段作為輸入,并且輸出 D維度的特征向量 fc。視頻總體的特征為所有視頻片段特征的平均匯聚。
在對視頻間特征進行比對時,本文采用余弦相似度,并且設(shè)定閾值,當閾值大于一定值時,認為兩段視頻中的人為同一人,亦或是視頻中的人臉與底庫當中的相匹配。視頻特征向量 xi與 yi的余弦相似度為:
判定是否為同一人的閾值,可根據(jù)應(yīng)用場景進行設(shè)定。在評價性能時,往往采用一定FPR(false positives rates)下的TPR(true positives)進行比較。
接下來,本文分別介紹基于2D 卷積神經(jīng)網(wǎng)絡(luò)+特征聚合以及3D 卷積神經(jīng)網(wǎng)絡(luò)進行視頻人臉識別的方法,并提出一種高效分解卷積,以在保持識別精度的同時,降低計算消耗。
另外一種匯聚的方式是使用注意力機制。注意力機制旨在自適應(yīng)地在幀特征之間尋找權(quán)重,以給“關(guān)鍵幀”更高的匯聚權(quán)重[11]。基于注意力機制的幀間匯聚表示為:
對于視頻連續(xù)幀,本文直接將其輸入3D 卷積神經(jīng)網(wǎng)絡(luò)——ResNet-50 網(wǎng)絡(luò)。將包含有n幀的視頻片段c 進行卷積生成為 fc。相比于正常的2D 卷積,3D 卷積在時間維度上多了一維度,正常的2D 卷積核可以表示為[c,h,w],而3D 卷積核則可表示為[c,t,h,w]。因為時間通道的加入,可以建模時序幀間的特征信息。
采用3D 卷積可以建模幀間信息,但3D 卷積會引入巨大的計算量與顯存消耗,給部署帶來巨大挑戰(zhàn)。文獻[12]對3D 卷積分解進行了一定的探索。如圖1 所示,忽略掉通道維度,一個t×d×d的3D 卷積,可以分解為一個1×d×d的卷積再加上一個t×1×1的卷積,使計算量減小,并且分解后的卷積本質(zhì)上為2D 卷積加1D 卷積,可以使用工業(yè)界更加成熟的卷積優(yōu)化算子進行加速。
3D 分解卷積其本質(zhì)是先對單幀的空間信息進行建模(2D 卷積),后對幀間信息進行卷積匯聚(1D 卷積)。本文將ResNet-50 網(wǎng)絡(luò)中所有的3D 卷積都替換成為此分解卷積,實驗證明,其實現(xiàn)了更快的推理速度與有競爭力的準確度。
圖1 將卷積核為t×d×d 的3D 卷積分解為1×d×d與t×1×1 的卷積
對于視頻人臉識別,核心關(guān)鍵點是如何對視頻幀間的信息進行建模,如何高效地利用幀間的互補信息。使用3D 卷積分離對連續(xù)幀進行提取,并沒考慮到視頻速度的變化,即一個人在視頻中是緩慢的搖晃頭部,還是快速地搖晃頭部,這種速度的變化并沒有被建模到網(wǎng)絡(luò)中。為了對多種速度的臉部運動進行建模,本文以不同的時間幀率對視頻進行采樣,并將不同幀率的輸入以時間金字塔的方式進行匯聚。
不同分支的網(wǎng)絡(luò)會經(jīng)過一個時間金字塔結(jié)構(gòu),由時間分辨率低的分支進行時序上連續(xù)線性插值( I),與高時間分辨率分支進行融合,融合過程可以表示為:
圖2 用于視頻人臉識別的時間金字塔網(wǎng)絡(luò)
然后,各時間分辨率網(wǎng)絡(luò)將會進行特征匯聚,最終由最大池化(max-pooling)形成視頻人臉特征。時間金字塔網(wǎng)絡(luò)綜合了不同時間分辨率信息,從而可以捕捉更豐富的幀間信息。
對于單幀與基于時序卷積的網(wǎng)絡(luò)的訓(xùn)練,本文采用了三元組損失與softmax 交叉熵損失相結(jié)合的方式。三元組損失旨在將負樣本對的距離拉遠,而保持正樣本對的距離靠近。softmax cross-entropy損失則為經(jīng)典的分類損失函數(shù)。在兩個loss 的監(jiān)督下,可以使卷積神經(jīng)網(wǎng)絡(luò)形成健壯的特征表達。
本文采用UMDFace[13]作為訓(xùn)練集,其包含了3 107 476 個帶注釋的視頻幀,這些視頻幀來自于包含3 107 個人物的22 075 個視頻。數(shù)據(jù)集預(yù)先包含了估計的人臉姿勢和21 個關(guān)鍵點位置及性別等信息。本文采用RetinaFace 對視頻幀的人臉進行預(yù)處理,采用仿射變換進行剪裁,所有的人臉都被裁切到224×224。
本文在YouTubeFace[9]數(shù)據(jù)集上對提出的方法與基線方法進行了測試。YouTubeFace 數(shù)據(jù)集包含來自1 595 個體的3 424 個視頻,平均每個人2.15個視頻,是現(xiàn)在廣泛采用的視頻人臉識別測試數(shù)據(jù)集。視頻的長度從48 幀到6 070 幀不等,平均為181.3 幀。本文采用了標準的測試流程對6 000 對給定的正負樣本對進行預(yù)測,當預(yù)測結(jié)果與樣本對標簽結(jié)果一致時,計為正確。匯報結(jié)果為在6 000對樣本的預(yù)測準確率。
為了驗證該方法的泛化能力,本文還在PaSC[14]數(shù)據(jù)集上進行了實驗。
本文采用SGD 作為網(wǎng)絡(luò)訓(xùn)練的優(yōu)化器,初始學習率被設(shè)定為0.01,且隨著損失的飽和而乘以0.1。對于2D 卷積網(wǎng)絡(luò),網(wǎng)絡(luò)訓(xùn)練的批大小被設(shè)定為32。對于3D 卷積網(wǎng)絡(luò)及3D 分離卷積網(wǎng)絡(luò),批大小設(shè)定為8。在8 塊NVIDIA 2080TI GPU 進行了實驗。
在YoutubeFace 數(shù)據(jù)集上對分解卷積以及各項基線方法進行了驗證,其結(jié)果如表1 所示。
表1 不同方法在YoutubeFace(YTF)上性能的比較
可以看到,在性能比較上,直接利用3D 卷積實現(xiàn)了最差的性能,而利用改進的分解卷積,可以使得測試準確率提高1.5%。在預(yù)先采用2D 卷積網(wǎng)絡(luò)提取幀間特征并使用不同匯聚方法進行匯聚的比較中,注意力機制取得到了最好的結(jié)果,達到96.1%。最大池化相比于平均池化提高了0.2%的性能。對3D 卷積進行高效分解后,其實現(xiàn)了與2D 卷積網(wǎng)絡(luò)+幀間匯聚相競爭力的結(jié)果。進一步將3D 分解卷積與時間金字塔網(wǎng)絡(luò)進行結(jié)合,達到了最佳的性能,為96.5%。
在PaSC 數(shù)據(jù)集上驗證了本文方法的泛化性,如表2 所示。可以看到,采用3D 分離卷積+時間金字塔結(jié)構(gòu)在PaSC 數(shù)據(jù)集上取得了最優(yōu)成績,比常用的2D 卷積+平均池化提高了4.51%的性能
本文比較了不同方法計算消耗的大小,以包含32 幀的視頻片段為例,對于2D 卷積網(wǎng)絡(luò),其單模型輸入為224×224,對于3D 卷積網(wǎng)絡(luò),其單模型輸入為32×224×224。如表3 所示,3D 卷積網(wǎng)絡(luò)方法與3D 分離卷積方法顯著減小了推理階段的計算消耗。時序金字塔網(wǎng)絡(luò)在提高精確的同時,相比于2D 方法,還減少了50%的算力消耗,這有利于工業(yè)界的大規(guī)模應(yīng)用。
表2 不同方法在PaSC 上性能的比較
表3 不同方法在計算消耗比較
本文針對視頻中人臉識別問題,比較了2D 卷積網(wǎng)絡(luò)特征提取+幀間特征匯聚(平均池化、最大池化與注意力機制)與3D 卷積的方法,采用3D 分解卷積提高了視頻人臉識別的準確率與效率,并提出了一種時間金字塔網(wǎng)絡(luò),實現(xiàn)了更高精度的視頻人臉識別。在未來的工作中,將會考慮如組卷積及Depth-wise 卷積等更加輕量化的3D 卷積實現(xiàn)方式,以實現(xiàn)更加高效的視頻人臉識別。