于學(xué)峰, 沈海斌
(浙江大學(xué) 超大規(guī)模集成電路設(shè)計(jì)研究所,浙江 杭州 310027)
頭部姿態(tài)估計(jì)[1]是計(jì)算機(jī)視覺(jué)中一個(gè)比較熱門的研究方向,其廣泛應(yīng)用于人機(jī)交互、疲勞駕駛檢測(cè)、視線注意力輔助判斷等場(chǎng)景。準(zhǔn)確性、實(shí)時(shí)性、易用性等都是評(píng)價(jià)頭部姿態(tài)估計(jì)方法的指標(biāo),目前很多研究工作以此為中心開展。文獻(xiàn)[2]利用激光掃描儀獲得精確的頭部三維模型,進(jìn)而利用仿射關(guān)系對(duì)人臉進(jìn)行姿態(tài)跟蹤,這種方法解決了模型的描述問(wèn)題,但依賴專業(yè)設(shè)備,可用性不強(qiáng);文獻(xiàn)[3]對(duì)上述情況進(jìn)行了改進(jìn),使用通用的人臉三維模型,結(jié)合Viola-Jones人臉檢測(cè)算法[4]和主動(dòng)表觀模型去檢測(cè)和跟蹤頭部姿態(tài),但其運(yùn)算仍較為復(fù)雜,精度取決于圖像特征點(diǎn)定位的準(zhǔn)確性;為了提高處理性能,文獻(xiàn)[5]通過(guò)比較幀間對(duì)應(yīng)點(diǎn)特征向量相似度來(lái)判別剔除不準(zhǔn)確的特征點(diǎn),以減少誤差引入,雖然精度有所提高,但實(shí)時(shí)性仍顯得不足。
為了進(jìn)一步利用幀間信息來(lái)提高處理性能,本文提出了一種幀間信息導(dǎo)向的頭部姿態(tài)估計(jì)優(yōu)化方法,引入前的人臉框位置信息來(lái)約束搜索范圍,在識(shí)別率較高的情況下大幅提升了實(shí)時(shí)性。而在求解參數(shù)時(shí),本文根據(jù)前幀的姿態(tài)角是否超過(guò)設(shè)置的閾值,預(yù)剔除一些壞點(diǎn)來(lái)提高準(zhǔn)確性,同時(shí)將前幀求解得到的最優(yōu)參數(shù)矩陣作為當(dāng)前幀非線性迭代估計(jì)的初值矩陣,省去了直接線性變換(direct linear transformation,DLT)和奇異值分解(singular value decomposition,SVD)步驟,加快了求解的過(guò)程。
本文使用了基于模型的頭部姿態(tài)估計(jì)方法,其過(guò)程包括人臉檢測(cè)、人臉對(duì)齊以及轉(zhuǎn)動(dòng)估計(jì),如圖1所示。
圖1 幀間信息導(dǎo)向的頭部姿態(tài)估計(jì)優(yōu)化方法
人臉檢測(cè)從圖像中提取出有效的人臉位置,其速度和準(zhǔn)確性為整個(gè)方法奠定了基礎(chǔ)??紤]到應(yīng)用場(chǎng)景,要求人臉檢測(cè)算法對(duì)頭部姿態(tài)轉(zhuǎn)動(dòng)有一定的魯棒性,在保證準(zhǔn)確率的前提下盡可能提高實(shí)時(shí)性。
人臉對(duì)齊是在人臉檢測(cè)提取出的人臉上標(biāo)記人臉特征點(diǎn)。通過(guò)人臉對(duì)齊可以獲得人臉特征點(diǎn)的二維圖像坐標(biāo),其坐標(biāo)的準(zhǔn)確性會(huì)影響到后續(xù)的轉(zhuǎn)動(dòng)估計(jì)。
轉(zhuǎn)動(dòng)估計(jì)借助針孔透視成像的原理,根據(jù)人臉對(duì)齊得到的二維圖像坐標(biāo)與頭部三維坐標(biāo)信息建立矩陣方程,經(jīng)過(guò)運(yùn)算最終得到頭部姿態(tài)角。
基于梯度方向直方圖(histogram of gradient,HOG)的人臉檢測(cè)算法[6]對(duì)于光照和幾何旋轉(zhuǎn)的魯棒性較強(qiáng),而Viola-Jones算法對(duì)于多姿態(tài)的檢測(cè)效果不佳[7],本文選擇了基于HOG特征的人臉檢測(cè)算法。一般的方法是對(duì)整幅圖像進(jìn)行HOG特征的運(yùn)算并搜索人臉,實(shí)時(shí)性很差,本文基于幀間信息提出了改進(jìn)的人臉?biāo)阉鞑呗裕鐖D2所示。通過(guò)引入前幀的人臉框位置對(duì)人臉檢測(cè)進(jìn)行實(shí)時(shí)性上的優(yōu)化??紤]到頭部姿態(tài)運(yùn)動(dòng)的無(wú)規(guī)則性以及在前后幀位移不會(huì)過(guò)大的特點(diǎn),本文以前幀人臉框?yàn)橹行倪M(jìn)行適度擴(kuò)大生成候選框,作為當(dāng)前幀優(yōu)先搜索人臉的范圍。在視頻序列的前幀已經(jīng)準(zhǔn)確定位人臉的情況下,可以參照前幀去除大部分的非人臉區(qū)域,在前幀未檢測(cè)出人臉的情況下才會(huì)對(duì)整幅圖像進(jìn)行搜索。由于基于HOG特征的人臉檢測(cè)算法識(shí)別率很高,所以,很少需要對(duì)整幅圖像進(jìn)行搜索,大幅減少了搜素時(shí)間,達(dá)到了在視頻序列中實(shí)時(shí)檢測(cè)的目的。本文首先通過(guò)前幀的信息對(duì)人臉大致定位,減少搜索時(shí)間,再利用HOG檢測(cè)算法進(jìn)行二次精確定位,從而保障了實(shí)時(shí)性和準(zhǔn)確性。
圖2 結(jié)合候選框的人臉?biāo)阉鞑呗?/p>
本文使用了基于級(jí)聯(lián)回歸樹的人臉對(duì)齊算法[8],其準(zhǔn)確性和實(shí)時(shí)性均優(yōu)于文獻(xiàn)[4]所使用的方法。該算法類似于串行結(jié)構(gòu)的隨機(jī)森林,根據(jù)初始的人臉形狀上的像素點(diǎn)灰度值與已經(jīng)訓(xùn)練好的級(jí)聯(lián)回歸樹葉子結(jié)點(diǎn)中的殘差,逐步回歸到真實(shí)的人臉形狀,最終收斂得到人臉上的68個(gè)特征點(diǎn)。用于轉(zhuǎn)動(dòng)估計(jì)的特征點(diǎn)越多,估計(jì)的姿態(tài)角越精確,但同時(shí)也會(huì)加重運(yùn)算負(fù)擔(dān)[9]??紤]到68個(gè)特征點(diǎn)定位的穩(wěn)定性有差異,以及人臉特征點(diǎn)需要與三維頭部模型相對(duì)應(yīng),本文預(yù)選取了14個(gè)穩(wěn)定的特征點(diǎn)。本文使用的通用頭部三維模型來(lái)自科英布拉大學(xué)系統(tǒng)與機(jī)器人研究所,如圖3。
圖3 特征點(diǎn)的選取
根據(jù)針孔透視成像模型,可以得到
sm′=A[R|t]M′
(1)
(2)
式中s為尺度因子,m′為圖像點(diǎn)的齊次坐標(biāo),A為相機(jī)內(nèi)參數(shù),R為旋轉(zhuǎn)矩陣,通過(guò)轉(zhuǎn)換可得到頭部姿態(tài)的3個(gè)歐拉角,t為平移向量,M′為空間點(diǎn)在世界坐標(biāo)系中的齊次坐標(biāo)。已知n組對(duì)應(yīng)點(diǎn)時(shí),可通過(guò)DLT和SVD運(yùn)算得到[R|t]。
為減少噪聲干擾,得到最優(yōu)解,使用非線性迭代算法對(duì)上述得到的矩陣進(jìn)一步優(yōu)化,其目標(biāo)代價(jià)函數(shù)為
(3)
當(dāng)n組三維坐標(biāo)點(diǎn)的反投影點(diǎn)與對(duì)應(yīng)的二維圖像坐標(biāo)點(diǎn)距離的平方和達(dá)到最小時(shí),認(rèn)為此時(shí)的[R|t]為最優(yōu)參數(shù)矩陣[10]。
2.3.1 基于前幀姿態(tài)角的特征點(diǎn)篩選
盡管非線性迭代算法能在一定程度上減小噪聲誤差,但特征點(diǎn)漂移過(guò)大顯然會(huì)影響求解的準(zhǔn)確性。在多數(shù)情況下,人臉對(duì)齊能獲得較為準(zhǔn)確的特征點(diǎn)位置,但在頭部姿態(tài)偏轉(zhuǎn)較大時(shí),一些特征點(diǎn)會(huì)發(fā)生漂移,需要剔除,如圖4。
圖4 特征點(diǎn)漂移
故本文提出了引入前幀的姿態(tài)角信息篩選特征點(diǎn)的方法。正常姿態(tài)下特征點(diǎn)的定位較為準(zhǔn)確,14組點(diǎn)對(duì)能保證迭代算法得到較為準(zhǔn)確的數(shù)值解,而在姿態(tài)角左右偏轉(zhuǎn)超過(guò)閾值時(shí),14組點(diǎn)對(duì)中部分的點(diǎn)(圖3中的1,5,6或者4,7,8)出現(xiàn)漂移的可能性增大,如果全部用于估計(jì)反而容易引起誤差偏大,所以,預(yù)先對(duì)壞點(diǎn)進(jìn)行剔除,再估計(jì)當(dāng)前幀的姿態(tài)角可以減小誤差。
2.3.2 引入前幀參數(shù)矩陣的非線性迭代優(yōu)化
本文同時(shí)將前幀求解得到的最優(yōu)參數(shù)矩陣作為當(dāng)前幀的初值矩陣,直接用依據(jù)式(3)的代價(jià)函數(shù)進(jìn)行非線性迭代,省去了DLT和SVD的步驟,本文使用了列文伯格—馬夸爾特(Levenberg-Marquardt,LM)經(jīng)典迭代算法[11],可變的阻尼系數(shù)使其在遠(yuǎn)離目標(biāo)點(diǎn)時(shí)具備最速下降法緩慢而可收斂的特性,而在接近目標(biāo)點(diǎn)時(shí)可以像高斯牛頓法一樣快速收斂。由于前幀的最優(yōu)參數(shù)矩陣一般很接近當(dāng)前幀的最優(yōu)值,避免了迭代算法初始階段緩慢尋優(yōu)的過(guò)程,在保證求解參數(shù)準(zhǔn)確的同時(shí)對(duì)實(shí)時(shí)性有一定的提升。
本文隨機(jī)選取了EyeDiap數(shù)據(jù)庫(kù)中的10段分辨率為640×480時(shí)長(zhǎng)2.5 min的不同人物頭部姿態(tài)運(yùn)動(dòng)的視頻進(jìn)行實(shí)驗(yàn)。EyeDiap數(shù)據(jù)庫(kù)是IDIAP研究院用于測(cè)試視線和頭部姿態(tài)的數(shù)據(jù)集,其中有已經(jīng)標(biāo)定好的相機(jī)內(nèi)參數(shù)以及可供參考比對(duì)的頭部姿態(tài)數(shù)據(jù)。
本文算法與文獻(xiàn)[4,6]的識(shí)別速度和識(shí)別率對(duì)比為:8.94 s,94.18 %;16.16 s,89.23 %;72.42 s,93.84 %。
文獻(xiàn)[4]為Viola-Jones人臉檢測(cè)方法,文獻(xiàn)[6]為基于HOG特征的人臉檢測(cè)方法,本文方法在文獻(xiàn)[6]的基礎(chǔ)上預(yù)縮放尺度0.8倍,而后以前幀人臉框2倍大小生成當(dāng)前幀的候選框,改進(jìn)了人臉?biāo)阉鞑呗浴?shí)驗(yàn)表明,本文提出的方法可以明顯提高檢測(cè)速度并維持準(zhǔn)確的識(shí)別率。
在轉(zhuǎn)動(dòng)估計(jì)階段,本文引入前幀的姿態(tài)角對(duì)當(dāng)前所用特征點(diǎn)進(jìn)行篩選,優(yōu)化效果如表1所示,表中數(shù)據(jù)為整段視頻實(shí)測(cè)姿態(tài)角與真實(shí)值的平均絕對(duì)誤差。本文以文獻(xiàn)[1]建立頭部姿態(tài)坐標(biāo)系,pitch為俯仰角,yaw為偏航角,roll為翻滾角。由于實(shí)際的應(yīng)用場(chǎng)合中,頭部的左右偏轉(zhuǎn)是相對(duì)重要的信息,故本文針對(duì)偏航角過(guò)大的情況設(shè)置閾值來(lái)剔除漂移的壞點(diǎn),表中數(shù)據(jù)表明本文提出的方法能降低偏航角的誤差,三個(gè)姿態(tài)角的總體平均角度絕對(duì)誤差也有一定的減小。
本文通過(guò)引入前幀的參數(shù)矩陣直接作為L(zhǎng)M迭代算法的初值,與文獻(xiàn)[10]依次使用DLT,SVD和LM求解的原始方法相比,求解的精度一致,而實(shí)時(shí)性能得到了優(yōu)化。本文的方法實(shí)時(shí)性(平均0.500 4 ms)相比文獻(xiàn)[10](平均0.404 4 ms)能有效減少約19.2 %的運(yùn)算時(shí)間。
表1 特征點(diǎn)篩選前后的誤差
結(jié)合人臉檢測(cè)的平均時(shí)間8.94 ms和人臉對(duì)齊的平均時(shí)間3.54 ms,本文提出的幀間信息導(dǎo)向的頭部姿態(tài)估計(jì)優(yōu)化方法完成1次估計(jì)的平均時(shí)間為12.88 ms,幀率能達(dá)到77.6,顯著高于其他一般的方法[3,4],能滿足實(shí)時(shí)性要求較高的場(chǎng)合。
本文通過(guò)引入前幀的人臉框信息優(yōu)化搜索策略,大幅提高了人臉檢測(cè)的速度,而在轉(zhuǎn)動(dòng)估計(jì)階段基于前幀姿態(tài)角信息剔除壞點(diǎn),減小了特征點(diǎn)漂移引入的誤差,同時(shí)引入前幀最優(yōu)參數(shù)矩陣優(yōu)化了求解過(guò)程。實(shí)驗(yàn)表明:本文提出的幀間信息導(dǎo)向的頭部姿態(tài)估計(jì)優(yōu)化方法能有效提高實(shí)時(shí)性和準(zhǔn)確性。