陸清正, 周 宇, 葉慶衛(wèi), 陸志華
(寧波大學(xué) 信息科學(xué)與工程學(xué)院,浙江 寧波 315211)
頭部姿態(tài)估計(jì)[1~4](head pose estimation,HPE)通常是指在圖像或者視頻中判斷人體頭部在三維空間中的朝向問(wèn)題,即在一個(gè)空間坐標(biāo)系內(nèi)識(shí)別頭部的姿態(tài)參數(shù),一般通過(guò)垂直轉(zhuǎn)動(dòng)仰俯角(pitch)、水平轉(zhuǎn)動(dòng)的偏航角(yaw)、左右轉(zhuǎn)動(dòng)的旋轉(zhuǎn)角(roll)三個(gè)方向的自由度來(lái)描述。由于人臉姿態(tài)的差異,光照條件,背景變化以及可能存在的遮擋問(wèn)題等各種因素的影響,頭部姿態(tài)估計(jì)仍然面臨著很大挑戰(zhàn)。
基于模型的方法和基于外觀的方法是頭部姿態(tài)估計(jì)常用的兩類方法。利用基于模型的方法,Wang J G等人[5]使用6個(gè)關(guān)鍵特征點(diǎn)(2個(gè)外眼角,2個(gè)內(nèi)眼角和2個(gè)嘴角)來(lái)估計(jì)姿態(tài),假設(shè)2個(gè)眼角和嘴角大致在同一平面上。當(dāng)模板集很大時(shí),一些基于模型的方法的效率則會(huì)無(wú)法保證。Lanitis A等人[6]使用主動(dòng)形狀模型(active shape model,ASM)提取臉部特征,并采用貪婪搜索來(lái)匹配特征點(diǎn)。Sung J等人[7]提出將人臉形狀初始化為圓柱模型,并結(jié)合主動(dòng)外觀模型(active appearance model,AAM)的方法。這類算法的主要優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單、速度較快并易于理解,但算法的精度很大程度上依賴于特征提取的準(zhǔn)確度如人臉特征點(diǎn)的定位準(zhǔn)確度。在人臉存在較大偏轉(zhuǎn)或嚴(yán)重遮擋的情況下,模型特征提取的準(zhǔn)確度無(wú)法保證,可能會(huì)給最終頭部姿態(tài)的估計(jì)造成很大的誤差。
利用基于外觀的方法,Balasubramanian V N等人[8]提出了有偏集的流形嵌入框架,在確定低維嵌入之前,利用人臉圖像的姿態(tài)角信息計(jì)算特征空間中每個(gè)點(diǎn)的偏置鄰域。Huang D等人[9]提出了一種從稀疏非均勻采樣訓(xùn)練集中學(xué)習(xí)局部線性模型的有監(jiān)督局部子空間的學(xué)習(xí)方法。基于外觀的方法不需要獲得人臉關(guān)鍵點(diǎn)位置,在頭部旋轉(zhuǎn)角度較大時(shí)也能實(shí)現(xiàn)準(zhǔn)確估計(jì)。但其性能在很大程度上受到人臉圖像的特征提取以及訓(xùn)練學(xué)習(xí)方式的影響[10]。
本文在前人工作的基礎(chǔ)上,首先通過(guò)回歸局部二值特征(local binary features,LBF)[11]訓(xùn)練隨機(jī)森林獲得人臉關(guān)鍵點(diǎn)的位置坐標(biāo),然后將人臉關(guān)鍵點(diǎn)位置坐標(biāo)特征輸入反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)進(jìn)行分類器的訓(xùn)練,最終實(shí)現(xiàn)頭部姿態(tài)的估計(jì),降低了特征提取的復(fù)雜度,避免了大量樣本的訓(xùn)練過(guò)程,同時(shí)保證了在頭部偏轉(zhuǎn)角度較大情況下的識(shí)別率。
本文采用LBF提取算法來(lái)獲取人臉的68個(gè)關(guān)鍵特征點(diǎn)位置(圖1),包括眼睛、鼻子、嘴、眉毛和人臉邊緣輪廓點(diǎn)等。
圖1 人臉68個(gè)關(guān)鍵特征點(diǎn)位置
基于LBF提取算法采用形狀回歸的方法通過(guò)不斷級(jí)聯(lián)預(yù)測(cè)人臉形狀S。對(duì)于初始形狀S0,通過(guò)逐級(jí)預(yù)測(cè)形狀增量ΔS,逐漸更新S,在第t級(jí)中,預(yù)測(cè)得到的形狀增量ΔSt為
ΔSt=WtΦt(I,St-1)
(1)
式中I為輸入圖像,St-1為前一級(jí)得到的人臉形狀,Φt為特征映射函數(shù),Wt為線性回歸矩陣。Φt由I和St-1決定,則t級(jí)的人臉形狀為
St=St-1+ΔSt
(2)
對(duì)于每個(gè)單獨(dú)的特征點(diǎn)獨(dú)立學(xué)習(xí)局部特征映射函數(shù),進(jìn)而提取LBF,然后聯(lián)合所有的局部特征獲得Φt,最后通過(guò)線性回歸學(xué)習(xí)得到Wt,實(shí)現(xiàn)人臉特征點(diǎn)的準(zhǔn)確定位。
(3)
將全部特征點(diǎn)的LBF串連得到全局特征映射函數(shù)Φt,通過(guò)優(yōu)化以下目標(biāo)函數(shù)最小化學(xué)習(xí)全局線性回歸矩陣Wt
(4)
全局線性回歸能夠完成全局形狀約束,從而降低因模糊或遮擋引起的局部誤差。算法采用先局部、再整體的思想,對(duì)于輸入圖像I,先通過(guò)訓(xùn)練好的隨機(jī)森林實(shí)現(xiàn)LBF的提取,從而得到特征映射函數(shù)Φt,再利用全局線性回歸矩陣Wt回歸得到中間形狀,并不斷迭代獲得魯棒的人臉68個(gè)關(guān)鍵點(diǎn)提取模型。
BP神經(jīng)網(wǎng)絡(luò)[14]中的每個(gè)神經(jīng)元作為一個(gè)單獨(dú)的感知器單元,每個(gè)單元的輸出值是根據(jù)上一層所有單元的輸出值、當(dāng)前單元與上一層所有單元的權(quán)值和當(dāng)前單元的閾值通過(guò)激活函數(shù)運(yùn)算得出的。
假設(shè)一個(gè)典型的3層BP神經(jīng)網(wǎng)絡(luò)的輸入層、隱含層和輸出層的神經(jīng)元數(shù)目分別是N,L,M。X=[x0,x1,…,xN-1]為輸入層的輸入向量,H=[h0,h1,…,hL-1]為隱含層輸出向量,Y=[y0,y1,…,yM-1]為輸出層的實(shí)際輸出向量,D=[d0,d1,…,dM-1]為輸出層的目標(biāo)輸出向量。輸入層神經(jīng)元i和隱含層神經(jīng)元j之間的權(quán)值為wij,而隱含層神經(jīng)元和輸出層神經(jīng)元之間的權(quán)值為wjk,隱含層神經(jīng)元和輸出層神經(jīng)元的閾值分別為φj和φk,則隱含層和輸出層各神經(jīng)元的輸出為
(5)
由于不同頭部姿態(tài)的人臉偏轉(zhuǎn)角度不同,造成人臉特征點(diǎn)位置坐標(biāo)存在差異,關(guān)鍵特征點(diǎn)間的相對(duì)位置特征也會(huì)發(fā)生變化,同一姿態(tài)下的人臉特征點(diǎn)間的相對(duì)位置具有相似的距離分布特征,不同姿態(tài)下的人臉特征點(diǎn)間的距離分布特征不盡相同。算法結(jié)合基于LBF的人臉關(guān)鍵特征點(diǎn)提取模型,利用BP神經(jīng)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)任何復(fù)雜非線性映射的分類能力的特點(diǎn),將人臉68個(gè)關(guān)鍵特征點(diǎn)的位置坐標(biāo)特征作為BP神經(jīng)網(wǎng)絡(luò)的輸入向量,在不同頭部姿態(tài)的目標(biāo)輸出結(jié)果與輸入向量間建立映射關(guān)系,算法的具體訓(xùn)練過(guò)程如下:
1)選定訓(xùn)練集。使用標(biāo)準(zhǔn)人臉數(shù)據(jù)集訓(xùn)練人臉特征點(diǎn)提取模型,用訓(xùn)練好的特征提取模型獲得標(biāo)準(zhǔn)頭部姿態(tài)數(shù)據(jù)集的人臉68個(gè)特征點(diǎn)位置坐標(biāo)集合,作為BP神經(jīng)網(wǎng)絡(luò)的輸入訓(xùn)練集。
2)創(chuàng)建并初始化BP神經(jīng)網(wǎng)絡(luò)。創(chuàng)建含有1層輸入層、2層隱含層和1層輸出層的BP神經(jīng)網(wǎng)絡(luò),用接近于0的隨機(jī)值設(shè)置各層權(quán)值wij,wjk和閾值φj和φk,并設(shè)置迭代次數(shù)η、期望誤差ε和學(xué)習(xí)率α。
3)將訓(xùn)練集的人臉68個(gè)關(guān)鍵特征點(diǎn)位置作為輸入向量X傳入BP神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)輸入層,并根據(jù)頭部姿態(tài)類別設(shè)定預(yù)期目標(biāo)輸出向量D。利用式(5)計(jì)算隱含層輸出H,和輸出層的實(shí)際輸出向量Y。
4)將實(shí)際輸出向量Y中的yk與目標(biāo)輸出向量D中的dk進(jìn)行比較,計(jì)算出各個(gè)網(wǎng)絡(luò)層的誤差項(xiàng),根據(jù)誤差項(xiàng)更新各個(gè)網(wǎng)絡(luò)層的權(quán)值和閾值。
5)按更新后的權(quán)值與閾值重新計(jì)算網(wǎng)絡(luò)層輸出向量,判斷輸出均方誤差
(6)
判斷E是否小于期望誤差ε或是否達(dá)到迭代次數(shù)η:若是,則停止訓(xùn)練,保存參數(shù),退出;否則,返回步驟(3)繼續(xù)迭代。
本文實(shí)驗(yàn)部分在計(jì)算機(jī)開(kāi)源視覺(jué)庫(kù)OpenCV上進(jìn)行。在人臉特征點(diǎn)提取模型訓(xùn)練階段,使用LFPW數(shù)據(jù)集[15]和HELEN數(shù)據(jù)集[16]的訓(xùn)練集共同組成的數(shù)據(jù)集,共2 811張人臉圖像訓(xùn)練隨機(jī)森林,生成基于LBF的人臉特征點(diǎn)提取模型,準(zhǔn)確提取標(biāo)準(zhǔn)頭部姿態(tài)數(shù)據(jù)集的人臉68個(gè)關(guān)鍵特征點(diǎn)位置坐標(biāo)集合,作為BP神經(jīng)網(wǎng)絡(luò)的輸入訓(xùn)練集。
圖2 人臉68個(gè)關(guān)鍵特征點(diǎn)定位效果
在頭部姿態(tài)估計(jì)階段,使用CAS-PEAL-R1等數(shù)據(jù)集[17]進(jìn)行BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。在該數(shù)據(jù)集中,將頭部姿態(tài)在yaw方向上分為0°,±15°,±30°,±45°共7個(gè)姿態(tài),如圖3所示。選取編號(hào)從401~600共200個(gè)被試者的1 400張人臉圖像作為實(shí)驗(yàn)數(shù)據(jù)集,進(jìn)行三折交叉驗(yàn)證實(shí)驗(yàn),即將1 400張人臉圖像分為3個(gè)子集,采用其中一個(gè)子集作為測(cè)試集,剩下的兩個(gè)子集作為訓(xùn)練集。對(duì)訓(xùn)練集中的每一張人臉圖像使用已經(jīng)得到的基于LBF的人臉特征點(diǎn)提取模型獲取人臉68個(gè)關(guān)鍵特征點(diǎn)坐標(biāo),作為BP神經(jīng)網(wǎng)絡(luò)的一個(gè)輸入向量,并設(shè)定對(duì)應(yīng)的目標(biāo)輸出向量。BP神經(jīng)網(wǎng)絡(luò)的迭代次數(shù)設(shè)定為10 000次,期望誤差值設(shè)定為0.000 1,學(xué)習(xí)率為0.001。
圖3 CAS-PEAL-R1數(shù)據(jù)集中yaw方向頭部姿態(tài)
3.2.1 CAS-PEAL-R1數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果
為了方便驗(yàn)證所提出算法的效果,選取使用相同實(shí)驗(yàn)數(shù)據(jù)集的文獻(xiàn)方法進(jìn)行對(duì)比。文獻(xiàn)[18]使用基于局部Gabor二值模式(local Gabor binary pattern,LGBP)的多視圖人臉,然后將LBF編碼成緊湊的特征直方圖,訓(xùn)練支持向量機(jī)(support vector machine,SVM)分類器來(lái)估計(jì)頭部姿態(tài);文獻(xiàn)[19]采用基于Gabor特征的隨機(jī)森林作為分類技術(shù),利用線性判別分析(linear discriminant analysis,LDA)作節(jié)點(diǎn)分類,提高隨機(jī)森林中單棵回歸樹(shù)的判別能力,實(shí)現(xiàn)頭部姿態(tài)估計(jì)。在訓(xùn)練樣本數(shù)為934,測(cè)試樣本數(shù)為466條件下,文獻(xiàn)[18,19]和本文方法的識(shí)別率分別為97.14 %,97.23 %,98.57 %,在相同的頭部姿態(tài)實(shí)驗(yàn)數(shù)據(jù)集下,本文方法的頭部姿態(tài)估計(jì)準(zhǔn)確率更高,取得了更好的效果。
3.2.2 Pointing’04數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果
為進(jìn)一步驗(yàn)證算法的有效性,使用Pointing’04數(shù)據(jù)集[20]進(jìn)行相同的實(shí)驗(yàn)。該數(shù)據(jù)集由15個(gè)被試者的兩組不同情況的圖像組成,每組包含不同光照、膚色差異以及是否佩戴眼鏡等的圖像,如圖4所示。選取yaw方向?yàn)?°,±15°,±30°,±45°,pitch方向?yàn)?°,±15°,±30°的1 050張人臉圖像,共7個(gè)不同yaw方向的偏轉(zhuǎn)角度作為分類標(biāo)簽,不同pitch方向角度但相同yaw方向角度屬于同一類姿態(tài),進(jìn)行三折交叉驗(yàn)證實(shí)驗(yàn)。BP神經(jīng)網(wǎng)絡(luò)參數(shù)采用同上的設(shè)置,使用平均絕對(duì)誤差(mean absolute error,MAE)對(duì)算法性能進(jìn)行評(píng)估比較。
圖4 Poingting’04數(shù)據(jù)集中yaw方向頭部姿態(tài)
實(shí)驗(yàn)結(jié)果為:文獻(xiàn)[21]提出了一種利用區(qū)域?qū)ΨQ性來(lái)估計(jì)頭部姿態(tài)的方法,基于Gabor濾波器和協(xié)方差描述符的有效組合(CovGa),平均絕對(duì)誤差為6.24°;文獻(xiàn)[22]基于Fisher核圖像框架分類方法,對(duì)于圖像的每個(gè)像素計(jì)算9維局部描述符,并由局部描述符的Fisher矢量(VoD)編碼生成圖像的全局表示,取得了較好的頭部姿態(tài)估計(jì)效果,平均絕對(duì)誤差為4.59°;文獻(xiàn)[23]基于方向梯度直方圖(histogram of oriented gradients,HOG)特征提出一種多元標(biāo)簽分布(multiple label distribution,MLD)的方法,平均絕對(duì)誤差為4.24°。本文方法MAE為3.90°,與其他最新的方法相比,頭部姿態(tài)估計(jì)的平均絕對(duì)誤差更低,在光照變化及遮擋的情況下具有較高的魯棒性。
本文基于LBF的人臉特征點(diǎn)定位方法不需要復(fù)雜的人臉形狀等表觀建模以及訓(xùn)練過(guò)程,使用隨機(jī)森林回歸模型在局部區(qū)域?qū)W習(xí)稀疏的二值化特征,大大減少了運(yùn)算開(kāi)銷,解決了人臉特征點(diǎn)定位準(zhǔn)確率不足的問(wèn)題,在人臉偏轉(zhuǎn)角度較大的情況下也能實(shí)現(xiàn)關(guān)鍵特征點(diǎn)的精確定位。同時(shí)結(jié)合BP神經(jīng)網(wǎng)絡(luò),較現(xiàn)有的深度學(xué)習(xí)算法如卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)[24]等具有結(jié)構(gòu)簡(jiǎn)單、實(shí)現(xiàn)方便、無(wú)需大量的訓(xùn)練樣本數(shù)據(jù)和運(yùn)算量等特點(diǎn),通過(guò)利用不同人臉姿態(tài)的關(guān)鍵特征點(diǎn)的相對(duì)距離變化等簡(jiǎn)單特征,而無(wú)需復(fù)雜的特征提取過(guò)程和額外的硬件要求,簡(jiǎn)單高效地實(shí)現(xiàn)了頭部姿態(tài)的準(zhǔn)確估計(jì)。下一步將對(duì)更加精細(xì)的頭部偏轉(zhuǎn)角度及其他方向的頭部姿態(tài)的估計(jì)進(jìn)行研究。