方 勁, 石守東, 徐淼華, 陳錦濤
(寧波大學(xué) 信息科學(xué)與工程學(xué)院,浙江 寧波 315211)
當(dāng)前我國(guó)青少年近視患病率呈高發(fā)態(tài)勢(shì),職業(yè)性肌肉骨骼疾患患者日益增多。有證據(jù)表明,近距離用眼是近視的首要危險(xiǎn)因素,而職業(yè)性肌肉骨骼疾患則與長(zhǎng)期保持不良坐姿密切相關(guān)。人眼及坐姿的研究離不開(kāi)頭部姿態(tài)估計(jì),該研究在人機(jī)交互、行為識(shí)別、醫(yī)療健康、游戲娛樂(lè)等領(lǐng)域具有較高應(yīng)用價(jià)值。
根據(jù)數(shù)據(jù)來(lái)源的不同,可將頭部姿態(tài)的研究方法分為基于二維圖像[1~3]、三維(3D)圖像[4]以及深度圖像[5,6]的姿態(tài)估計(jì)。二維圖像有基于特征和外觀的方法,前者用統(tǒng)計(jì)模型包括主動(dòng)外觀模型(active appearance model,AAM)、多視圖AAM及三維變形模型追蹤面部進(jìn)行頭部跟蹤,后者對(duì)頭部姿態(tài)進(jìn)行離散化并對(duì)子集分類(lèi)。文獻(xiàn)[1]用人臉多個(gè)特征點(diǎn)的相對(duì)位置變化來(lái)檢測(cè)頭部姿態(tài)。文獻(xiàn)[2]提出一種三角形表面補(bǔ)丁描述符(TSP)估計(jì)頭部方向和位置。文獻(xiàn)[3]通過(guò)雙支路多級(jí)卷積神經(jīng)網(wǎng)絡(luò)處理二維圖像,第一分支估計(jì)人體的二維置信圖,第二分支計(jì)算各部位的關(guān)聯(lián)度(PAF),得到多個(gè)面部點(diǎn),識(shí)別效果好?;诙S圖像的方法成本低、易推廣,但對(duì)光照敏感,易受紋理特征等因素影響。三維圖像方法對(duì)設(shè)備性能的要求高,算法更復(fù)雜。文獻(xiàn)[4]使用ASM和ASEF算法定位并建立人臉3D模型來(lái)檢測(cè)頭部姿態(tài)。文獻(xiàn)[5]基于模糊膚色分類(lèi)器和顏色特征的人臉追蹤,通過(guò)高并行GPU計(jì)算、分類(lèi)器權(quán)重預(yù)計(jì)算等方法提高設(shè)備在高分辨率視頻圖像中穩(wěn)定追蹤面部的能力,并在3D圖像中由對(duì)面部位置估計(jì)實(shí)現(xiàn)對(duì)頭部運(yùn)動(dòng)的追蹤。基于深度圖像的研究是在二維圖像上增加了對(duì)特征深度信息的描述。Kinect利用多傳感器快速定位人體的20個(gè)關(guān)鍵點(diǎn)并追蹤,還能實(shí)時(shí)計(jì)算空間深度信息。文獻(xiàn)[5]使用Kinect獲取人體關(guān)節(jié)點(diǎn),并基于隱馬爾可夫模型(HMM)對(duì)人姿態(tài)進(jìn)行識(shí)別。文獻(xiàn)[6]用Kinect由低分辨率3D數(shù)據(jù)通過(guò)誤差的預(yù)期分布模型與局部加權(quán)回歸方法組合來(lái)移除異常值并構(gòu)建高分辨率面部模型。
普通雙目相機(jī)利用數(shù)學(xué)方法計(jì)算出感興趣特征的深度信息來(lái)描述姿態(tài)。近些年基于雙目視覺(jué)的姿態(tài)估計(jì)[7]涌現(xiàn)出一些成果,形成了畸變校正、深度信息計(jì)算、立體匹配、質(zhì)量評(píng)價(jià)等方法在內(nèi)的理論體系。本文提出了一種由人眼在二維、三維空間相對(duì)位置的變化估計(jì)頭部姿態(tài)的方法。
雙目視覺(jué)的工作原理類(lèi)似人眼,用兩個(gè)同向放置的相機(jī)采集同一位置的兩幅圖像,由視差根據(jù)三角測(cè)量原理計(jì)算出該位置的深度信息。
如圖1所示,由兩相機(jī)的投影中心Ol,Or引出的主光線與左右像平面分別交于主點(diǎn)pl,pr,投影中心距離|OlOr|=T稱(chēng)為基線,兩相機(jī)焦距fl=fr=f,目標(biāo)點(diǎn)P在左右像平面上的水平方向?qū)?yīng)坐標(biāo)值為xl,xr,視差用式(1)定義,根據(jù)相似三角形有
圖1 理想狀態(tài)下的雙目視覺(jué)系統(tǒng)
d=xl-xr
(1)
可得到目標(biāo)深度距離Z的值。要得到理想的雙目系統(tǒng),需對(duì)雙目相機(jī)在數(shù)學(xué)上進(jìn)行畸變矯正等操作。
圖像平面是個(gè)二維投影空間,實(shí)際用于運(yùn)算的像素點(diǎn)用三維向量q=(u,v,w)表示,由像平面的點(diǎn)=(x,y,z)通過(guò)以下方式轉(zhuǎn)換
(2)
式中M為相機(jī)的內(nèi)參數(shù)矩陣;cx,cy為光軸偏移量;F為透鏡的物理焦距長(zhǎng)度;sx,sy為x,y方向上傳感器單元尺寸;fx,fy為x,y軸方向的焦距。
成像系統(tǒng)的畸變中影響顯著的有兩種,一是光線在穿過(guò)“球狀”透鏡邊緣發(fā)生彎曲,且程度與距離中心的長(zhǎng)度成正比,稱(chēng)為徑向畸變;另外,制造工藝的不足造成透鏡與圖像平面不平行,稱(chēng)為切向畸變?;兊拇嬖诮档土讼鄼C(jī)的測(cè)距精度。針對(duì)透鏡畸變
(3)
(4)
再將相機(jī)坐標(biāo)系中的點(diǎn)Qc(xc,yc,zc)轉(zhuǎn)換到圖像坐標(biāo)系點(diǎn)Q(x,y),有
(5)
畸變參數(shù)、內(nèi)參數(shù)矩陣、旋轉(zhuǎn)矩陣及平移向量等未知量可用張正友標(biāo)定法[8]獲得。
文獻(xiàn)[9]利用積分圖存儲(chǔ)Haar特征,再使用Adaboost算法從冗余特征中找到目標(biāo)特征訓(xùn)練出分類(lèi)器,通過(guò)Cascade級(jí)聯(lián)算法將單個(gè)分類(lèi)器組合成強(qiáng)分類(lèi)器來(lái)檢測(cè)人眼等特征。該方法識(shí)別快,但準(zhǔn)確率受光照和角度的干擾而降低。對(duì)這些問(wèn)題提出以下解決方法。
人眼定位前用參考白光照補(bǔ)償方法對(duì)圖像預(yù)處理:
步驟1 用加權(quán)平均法將RGB圖fi(x,y)轉(zhuǎn)換為灰度圖g(x,y),如果灰度圖像的最大值為255且最小值為0,則不進(jìn)行光照補(bǔ)償,否則步驟2,i為R,G,B分量
g(x,y)=0.3fR+0.59fG+0.11fB
(6)
步驟2 統(tǒng)計(jì)所有灰度值的像素?cái)?shù)并排序,取前5%的像素灰度值為參考白refW,執(zhí)行式(7)更新像素值
(7)
當(dāng)頭部發(fā)生較大偏轉(zhuǎn)時(shí),Adaboost算法的漏檢率很高。在不能檢測(cè)到人臉的情況下,使用橢圓膚色模型進(jìn)行補(bǔ)檢??紤]到膚色在YCbCr色彩空間良好的聚類(lèi)效果,將RGB圖像轉(zhuǎn)換為YCbCr模式,見(jiàn)式(8)
(8)
在CrCb二維空間中皮膚像素點(diǎn)呈橢圓分布,在此橢圓內(nèi)的像素點(diǎn)都被視為在皮膚區(qū)域內(nèi),否則為非皮膚點(diǎn)。模型描述為
(9)
(10)
cx=109.38,cy=152.02,θ=2.53°,ecx=1.6,ecy=2.41,a=25.39,b=14.03。對(duì)二值圖像進(jìn)行膨脹腐蝕和形態(tài)學(xué)處理,保留最大連通區(qū)域?yàn)槿四?如圖2所示。
圖2 人臉檢測(cè)過(guò)程
Haar特征的基本原理是用“塊”中的黑色區(qū)域像素灰度值之和減去白色區(qū)域像素灰度值之和來(lái)描述特征[10],傳統(tǒng)的基于Haar特征的級(jí)聯(lián)分類(lèi)器對(duì)不同人臉和姿態(tài)的變化較為敏感。在使用分類(lèi)器時(shí),有較大概率出現(xiàn)嘴巴等中心和周?chē)叶炔钪荡蟮膮^(qū)域被誤判為眼睛的情況。誤檢主要來(lái)自人臉下半部分,可由“三庭五眼”的比例特征重新劃分檢測(cè)區(qū)域,使用Adaboost算法對(duì)膚色模型得到的人臉區(qū)域1/2的上部分進(jìn)行檢測(cè),將獲得的N個(gè)區(qū)域視為人眼待定區(qū)域存儲(chǔ)至數(shù)組eyeRect[N];若該數(shù)組為空則繼續(xù)掃描直至非空。
(11)
(12)
在對(duì)極約束后的圖像中按如下步驟進(jìn)行立體匹配:
步驟1 將左圖像定位到的區(qū)域設(shè)為搜索窗口,并在右圖像中搜索,根據(jù)人眼區(qū)域大小動(dòng)態(tài)調(diào)整卷積核尺寸;
步驟2 由對(duì)極約束規(guī)則可推知左圖像特征坐標(biāo)eyeRect[i](xc,yc)在右圖像中的匹配在該像素坐標(biāo)系下同一極線上x(chóng)c的左側(cè)。以右圖像中點(diǎn)(xc,yc)位置為起點(diǎn),沿著x軸負(fù)方向間隔2像素滑動(dòng)窗口,由式(13)計(jì)算每一匹配區(qū)域像素灰度值差的絕對(duì)值之和(SAD);
步驟3 直至區(qū)域所有像素遍歷完成,保存每一區(qū)域步驟2中的SAD值,由式(14)的規(guī)則取最小值即d1對(duì)應(yīng)的區(qū)域?yàn)橥蝗搜蹍^(qū)域,以數(shù)組下一值指向的區(qū)域?yàn)樾麓翱?循環(huán)步驟2,步驟3,直到遍歷至最后一個(gè)值
(13)
d1=min{C1(u,v,d),d∈[dmin,dmax]}
(14)
描述頭部姿態(tài)的方向參數(shù)有三個(gè):Ptich,Yaw,Roll。對(duì)于動(dòng)作種類(lèi),文獻(xiàn)[1] 和文獻(xiàn)[11]分為6種,本文根據(jù)三個(gè)方向參數(shù)將頭部姿態(tài)細(xì)化為6類(lèi)15種。在相機(jī)坐標(biāo)系中,左、右眼在Z方向上的距離變化為Δzl,Δzr;在圖像坐標(biāo)系下,左、右眼在X,Y方向上的位置變化分別為Δxl,Δxr,Δyl,Δyr。對(duì)于6類(lèi)基本方向,頭部姿態(tài)按如下判定標(biāo)準(zhǔn)分類(lèi):
前傾Pf:Δzl&Δzr<-20 mm∧Δyl&Δyr>20 pixel;
后仰Pb:Δzl&Δzr>20 mm∧Δyl&Δyr<-20 pixel;
左轉(zhuǎn)Yl:Δzr<-20 mm∧Δxr<-20 pixel;
右轉(zhuǎn)Yr:Δzl<-20 mm∧Δxl>20 pixel;
左偏Rl:|Δzl|&|Δzr|<20 mm∧Δxl-Δxr>40 pixel;
右偏Rr:|Δzl|&|Δzr|<20 mm∧Δxr-Δxl>40 pixel;
前傾、后仰可與左右偏轉(zhuǎn)組合,進(jìn)行更詳細(xì)的姿態(tài)劃分,如前傾的同時(shí)又有左偏,如此再有8種姿態(tài),加上正面朝前的1種,共15種。左右轉(zhuǎn)時(shí),由于拍攝角度固定,若頭部轉(zhuǎn)動(dòng)過(guò)大,外向偏轉(zhuǎn)的區(qū)域陷入陰影,不利于該側(cè)人眼檢測(cè)。故左轉(zhuǎn)時(shí)由右眼、右轉(zhuǎn)時(shí)由左眼的位置變化來(lái)判斷。頭部姿態(tài)用集合HA表示
HA={null,Pf,Pb,Yl,Yr,Rl,Rr,PfYl,PfYr,PbYl,PbYr,PfRl,PfRr,PbRl,PbRr}
(15)
系統(tǒng)基于嵌入式ARM板設(shè)計(jì),主處理器為全志科技的V3S芯片,有兩顆CMOS傳感器,雙目攝像機(jī)共用一個(gè)設(shè)備ID,同時(shí)被硬件調(diào)制為絕對(duì)同時(shí)、同步輸出分辨率為640×240的拼接圖。圖3為實(shí)驗(yàn)的流程圖。
圖3 人眼深度信息計(jì)算流程
將包含10×8長(zhǎng)寬大小均為22 mm的黑白棋盤(pán)格標(biāo)定板置于雙目相機(jī)前,多角度采集相機(jī)視野中的各個(gè)區(qū)域圖像,如圖4。標(biāo)定結(jié)果如表1所示。
表1 相機(jī)標(biāo)定結(jié)果
圖4 雙目相機(jī)采集標(biāo)定板圖像
如圖5,經(jīng)過(guò)校正后將圖像邊緣變形區(qū)域裁剪,并且將左右圖像進(jìn)行約束化處理,圖像特征的關(guān)聯(lián)性一定程度上有所加強(qiáng)。
圖5 相機(jī)校正并對(duì)極約束后的效果
從CASIA—FaceV5人臉集中選取200張,自采集100張,共300張人臉圖像組成樣本。表2為本文方法和文獻(xiàn)[12],Adaboost方法對(duì)人眼檢測(cè)的效果對(duì)比。
表2 人眼檢測(cè)算法效果對(duì)比
由于傳統(tǒng)分類(lèi)器的固有缺陷,本文方法雖然耗時(shí)更多,但在滿(mǎn)足實(shí)時(shí)檢測(cè)要求下保持了較高的人眼檢測(cè)正確率,誤檢率也更低;文獻(xiàn)[12]在人眼粗定位后,將積分和差分投影結(jié)合的方法排除眉毛干擾實(shí)現(xiàn)人眼定位,該方法只在光照良好、人臉正對(duì)相機(jī)時(shí)有較好識(shí)別,抗干擾能力差。與另外兩種方法相比,本文方法能夠有效減少光照和拍攝角度的影響。
獲得立體匹配關(guān)系后,以式(1)、式(2)計(jì)算深度信息。固定相機(jī)并移動(dòng)眼睛位置,以左眼測(cè)得的距離值為例,并和實(shí)際測(cè)量值做比較分析,結(jié)果如表3所示。
表3 人左眼實(shí)驗(yàn)數(shù)據(jù)和實(shí)際數(shù)據(jù)比較
受目前的硬件和算法限制,相機(jī)標(biāo)定并不能完全消除畸變。在1 m范圍內(nèi),本文平均誤差為0.85 %,文獻(xiàn)[13]為5 %,文獻(xiàn)[14]為0.13 %,在5 m范圍內(nèi),本文平均誤差為1.6 %,文獻(xiàn)[13]為3.19 %,文獻(xiàn)[14]為2.65 %。本文方法測(cè)距的誤差是可接受的、效果良好。
對(duì)20個(gè)志愿者各采集15種不同姿態(tài)的圖像,樣本考慮了年齡分布和性別差異,40歲以上占比30 %,20~30歲占比50 %,女性占比50 %。使用上文方法進(jìn)行頭部姿態(tài)估計(jì)的結(jié)果如圖6。實(shí)驗(yàn)結(jié)果良好,識(shí)別正確率在90 %以上。可以看出,頭部正面朝前的檢測(cè)效果良好;而左右轉(zhuǎn)時(shí)稍差。傳統(tǒng)級(jí)聯(lián)分類(lèi)器的人眼識(shí)別效果受限于紋理特征,當(dāng)頭朝向偏離相機(jī),即使多次檢測(cè)也會(huì)有漏檢的情況。另外,頭部運(yùn)動(dòng)的偏轉(zhuǎn)角度過(guò)大也會(huì)降低檢測(cè)的正確率。
圖6 頭部姿態(tài)估計(jì)準(zhǔn)確率
本文設(shè)計(jì)的方法具有硬件成本低、體積小等優(yōu)點(diǎn),利用相機(jī)標(biāo)定方法降低了魚(yú)眼鏡頭畸變的影響;提出基于人臉區(qū)域定位人眼的方法降低了傳統(tǒng)人眼分類(lèi)器的誤識(shí)別率;利用對(duì)極約束快速定位到人眼位置并由視差計(jì)算出人眼的距離。實(shí)驗(yàn)證明,本文方法準(zhǔn)確有效。