于學峰, 沈海斌
(浙江大學 超大規模集成電路設計研究所,浙江 杭州 310027)
頭部姿態估計[1]是計算機視覺中一個比較熱門的研究方向,其廣泛應用于人機交互、疲勞駕駛檢測、視線注意力輔助判斷等場景。準確性、實時性、易用性等都是評價頭部姿態估計方法的指標,目前很多研究工作以此為中心開展。文獻[2]利用激光掃描儀獲得精確的頭部三維模型,進而利用仿射關系對人臉進行姿態跟蹤,這種方法解決了模型的描述問題,但依賴專業設備,可用性不強;文獻[3]對上述情況進行了改進,使用通用的人臉三維模型,結合Viola-Jones人臉檢測算法[4]和主動表觀模型去檢測和跟蹤頭部姿態,但其運算仍較為復雜,精度取決于圖像特征點定位的準確性;為了提高處理性能,文獻[5]通過比較幀間對應點特征向量相似度來判別剔除不準確的特征點,以減少誤差引入,雖然精度有所提高,但實時性仍顯得不足。
為了進一步利用幀間信息來提高處理性能,本文提出了一種幀間信息導向的頭部姿態估計優化方法,引入前的人臉框位置信息來約束搜索范圍,在識別率較高的情況下大幅提升了實時性。而在求解參數時,本文根據前幀的姿態角是否超過設置的閾值,預剔除一些壞點來提高準確性,同時將前幀求解得到的最優參數矩陣作為當前幀非線性迭代估計的初值矩陣,省去了直接線性變換(direct linear transformation,DLT)和奇異值分解(singular value decomposition,SVD)步驟,加快了求解的過程。
本文使用了基于模型的頭部姿態估計方法,其過程包括人臉檢測、人臉對齊以及轉動估計,如圖1所示。

圖1 幀間信息導向的頭部姿態估計優化方法
人臉檢測從圖像中提取出有效的人臉位置,其速度和準確性為整個方法奠定了基礎。考慮到應用場景,要求人臉檢測算法對頭部姿態轉動有一定的魯棒性,在保證準確率的前提下盡可能提高實時性。
人臉對齊是在人臉檢測提取出的人臉上標記人臉特征點。通過人臉對齊可以獲得人臉特征點的二維圖像坐標,其坐標的準確性會影響到后續的轉動估計。
轉動估計借助針孔透視成像的原理,根據人臉對齊得到的二維圖像坐標與頭部三維坐標信息建立矩陣方程,經過運算最終得到頭部姿態角。
基于梯度方向直方圖(histogram of gradient,HOG)的人臉檢測算法[6]對于光照和幾何旋轉的魯棒性較強,而Viola-Jones算法對于多姿態的檢測效果不佳[7],本文選擇了基于HOG特征的人臉檢測算法。一般的方法是對整幅圖像進行HOG特征的運算并搜索人臉,實時性很差,本文基于幀間信息提出了改進的人臉搜索策略,如圖2所示。通過引入前幀的人臉框位置對人臉檢測進行實時性上的優化。考慮到頭部姿態運動的無規則性以及在前后幀位移不會過大的特點,本文以前幀人臉框為中心進行適度擴大生成候選框,作為當前幀優先搜索人臉的范圍。在視頻序列的前幀已經準確定位人臉的情況下,可以參照前幀去除大部分的非人臉區域,在前幀未檢測出人臉的情況下才會對整幅圖像進行搜索。由于基于HOG特征的人臉檢測算法識別率很高,所以,很少需要對整幅圖像進行搜索,大幅減少了搜素時間,達到了在視頻序列中實時檢測的目的。本文首先通過前幀的信息對人臉大致定位,減少搜索時間,再利用HOG檢測算法進行二次精確定位,從而保障了實時性和準確性。

圖2 結合候選框的人臉搜索策略
本文使用了基于級聯回歸樹的人臉對齊算法[8],其準確性和實時性均優于文獻[4]所使用的方法。該算法類似于串行結構的隨機森林,根據初始的人臉形狀上的像素點灰度值與已經訓練好的級聯回歸樹葉子結點中的殘差,逐步回歸到真實的人臉形狀,最終收斂得到人臉上的68個特征點。用于轉動估計的特征點越多,估計的姿態角越精確,但同時也會加重運算負擔[9]。考慮到68個特征點定位的穩定性有差異,以及人臉特征點需要與三維頭部模型相對應,本文預選取了14個穩定的特征點。本文使用的通用頭部三維模型來自科英布拉大學系統與機器人研究所,如圖3。

圖3 特征點的選取
根據針孔透視成像模型,可以得到
sm′=A[R|t]M′
(1)
(2)
式中s為尺度因子,m′為圖像點的齊次坐標,A為相機內參數,R為旋轉矩陣,通過轉換可得到頭部姿態的3個歐拉角,t為平移向量,M′為空間點在世界坐標系中的齊次坐標。已知n組對應點時,可通過DLT和SVD運算得到[R|t]。
為減少噪聲干擾,得到最優解,使用非線性迭代算法對上述得到的矩陣進一步優化,其目標代價函數為
(3)
當n組三維坐標點的反投影點與對應的二維圖像坐標點距離的平方和達到最小時,認為此時的[R|t]為最優參數矩陣[10]。
2.3.1 基于前幀姿態角的特征點篩選
盡管非線性迭代算法能在一定程度上減小噪聲誤差,但特征點漂移過大顯然會影響求解的準確性。在多數情況下,人臉對齊能獲得較為準確的特征點位置,但在頭部姿態偏轉較大時,一些特征點會發生漂移,需要剔除,如圖4。

圖4 特征點漂移
故本文提出了引入前幀的姿態角信息篩選特征點的方法。正常姿態下特征點的定位較為準確,14組點對能保證迭代算法得到較為準確的數值解,而在姿態角左右偏轉超過閾值時,14組點對中部分的點(圖3中的1,5,6或者4,7,8)出現漂移的可能性增大,如果全部用于估計反而容易引起誤差偏大,所以,預先對壞點進行剔除,再估計當前幀的姿態角可以減小誤差。
2.3.2 引入前幀參數矩陣的非線性迭代優化
本文同時將前幀求解得到的最優參數矩陣作為當前幀的初值矩陣,直接用依據式(3)的代價函數進行非線性迭代,省去了DLT和SVD的步驟,本文使用了列文伯格—馬夸爾特(Levenberg-Marquardt,LM)經典迭代算法[11],可變的阻尼系數使其在遠離目標點時具備最速下降法緩慢而可收斂的特性,而在接近目標點時可以像高斯牛頓法一樣快速收斂。由于前幀的最優參數矩陣一般很接近當前幀的最優值,避免了迭代算法初始階段緩慢尋優的過程,在保證求解參數準確的同時對實時性有一定的提升。
本文隨機選取了EyeDiap數據庫中的10段分辨率為640×480時長2.5 min的不同人物頭部姿態運動的視頻進行實驗。EyeDiap數據庫是IDIAP研究院用于測試視線和頭部姿態的數據集,其中有已經標定好的相機內參數以及可供參考比對的頭部姿態數據。
本文算法與文獻[4,6]的識別速度和識別率對比為:8.94 s,94.18 %;16.16 s,89.23 %;72.42 s,93.84 %。
文獻[4]為Viola-Jones人臉檢測方法,文獻[6]為基于HOG特征的人臉檢測方法,本文方法在文獻[6]的基礎上預縮放尺度0.8倍,而后以前幀人臉框2倍大小生成當前幀的候選框,改進了人臉搜索策略。實驗表明,本文提出的方法可以明顯提高檢測速度并維持準確的識別率。
在轉動估計階段,本文引入前幀的姿態角對當前所用特征點進行篩選,優化效果如表1所示,表中數據為整段視頻實測姿態角與真實值的平均絕對誤差。本文以文獻[1]建立頭部姿態坐標系,pitch為俯仰角,yaw為偏航角,roll為翻滾角。由于實際的應用場合中,頭部的左右偏轉是相對重要的信息,故本文針對偏航角過大的情況設置閾值來剔除漂移的壞點,表中數據表明本文提出的方法能降低偏航角的誤差,三個姿態角的總體平均角度絕對誤差也有一定的減小。
本文通過引入前幀的參數矩陣直接作為LM迭代算法的初值,與文獻[10]依次使用DLT,SVD和LM求解的原始方法相比,求解的精度一致,而實時性能得到了優化。本文的方法實時性(平均0.500 4 ms)相比文獻[10](平均0.404 4 ms)能有效減少約19.2 %的運算時間。

表1 特征點篩選前后的誤差
結合人臉檢測的平均時間8.94 ms和人臉對齊的平均時間3.54 ms,本文提出的幀間信息導向的頭部姿態估計優化方法完成1次估計的平均時間為12.88 ms,幀率能達到77.6,顯著高于其他一般的方法[3,4],能滿足實時性要求較高的場合。
本文通過引入前幀的人臉框信息優化搜索策略,大幅提高了人臉檢測的速度,而在轉動估計階段基于前幀姿態角信息剔除壞點,減小了特征點漂移引入的誤差,同時引入前幀最優參數矩陣優化了求解過程。實驗表明:本文提出的幀間信息導向的頭部姿態估計優化方法能有效提高實時性和準確性。