戴忠東,任敏華
(1.上海復控華龍微系統(tǒng)技術有限公司,上海 200439;2.中國電子科技集團公司第三十二研究所,上海 201808)
近年來,視線估計在人機交互中得到廣泛應用,例如使計算機理解人類感興趣的區(qū)域,借此進行性格分析、商品推薦、游戲娛樂等。目前,視線估計大多使用多目圖像[1-3],但實際場景相對復雜,該方法使用效果不佳。另外,還有研究關注單目圖像視線估計[4-6]。然而,嵌入式應用時圖像分辨率較低,且頭部姿態(tài)變化存在一定的隨機性,因此視線估計的準確性依然是目前面臨的最大挑戰(zhàn)。
單目攝像視線估計可分為2 大類:基于形狀的視線估計方法和基于表觀的視線估計方法[7]。基于形狀的方法依賴于為眼睛、瞳孔和周圍區(qū)域建立特定模型以計算瞳孔中心的位置,從而進行視線估計?;诒碛^的方法通常從眼睛區(qū)域中提取多維特征進行視線估計。基于形狀的方法穩(wěn)定性較差,模型經(jīng)常過于理想化?;诒碛^的方法使用回歸計算視線方向,雖然平均角度誤差仍需進一步降低,但其在圖像光照差、分辨率低等條件下具有較好的穩(wěn)定性,具備較大的提升空間,在視線估計研究中具有重要作用。
在基于表觀的方法的研究中,SUGANO 等[8]使用大量的交叉研究對象數(shù)據(jù)來訓練三維視線模型。為保持一致性,收集了最大的、完全校準的多視角視線數(shù)據(jù)集來進行三維重建,并使用包括隨機森林[9]、k-NN[10]、自適應線性回歸[11]等方法從眼睛圖像中提取視線方向。為得到更好的結果,SUGANO 等[12]構建了一個更大的數(shù)據(jù)集MPIIGaze,其中包含15 個參與者,并提出一種利用卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)模型進行基于表觀的視線估計方法,對歸一化后的眼睛圖像和頭部姿態(tài)角進行訓練。SUGANO 等[13]對神經(jīng)網(wǎng)絡進行改進,并采用更深層的模型,獲得了更好的性能。與早期使用頭部姿態(tài)信息作為卷積神經(jīng)網(wǎng)絡模型部分輸入不同,RANJAN 等[14]將數(shù)據(jù)集匯聚為頭部姿態(tài)的不同組別,形成具有分支結構的卷積神經(jīng)網(wǎng)絡模型,提高了視線估計對不同頭部姿態(tài)的穩(wěn)定性。ZHANG 等[15]則使用空間權值卷積神經(jīng)網(wǎng)絡模型估計視線方向,空間權值卷積神經(jīng)網(wǎng)絡模型采用全臉圖像作為輸入,不經(jīng)過歸一化,適合各種頭部姿態(tài),其特點在于空間權重更關注眼睛區(qū)域。但上述基于表觀的方法存在一些不足。文獻[8,12-13]中介紹的歸一化方法不能建立相機坐標系,因此使用了一個包含所有15 名參與者的平均面部模型來定位三維空間中的眼睛中心。因此,歸一化圖像的眼睛中心和實際視線方向相比并不精確。此外,上述方法還使用了回歸方法來獲得預測的視線方向,但回歸易受帶噪點的低分辨率圖像以及歸一化方法的影響。
本文提出采用歸一化坐標系方法來校準相機坐標系,以復原人眼圖像。同時,建立基于表觀的卷積神經(jīng)網(wǎng)絡模型的分類方法估計視線方向,并利用黃金分割法進行優(yōu)化進一步降低誤差。
本文所提方法主要包括2 個階段:分類視線估計及黃金分割法尋優(yōu)。其中分類視線估計如圖1 所示,通過對歸一化眼睛圖像的多分類實現(xiàn)。而黃金分割法則對分類數(shù)進行搜索以進一步優(yōu)化。圖2 是本文提出的歸一化坐標系方法所形成的眼睛圖像,雖然原始圖像對應了不同人、不同頭部姿態(tài)與光照,但可以看到人眼圖像形狀基本一致。
圖1 基于表觀的歸一化坐標系分類視線估計Fig.1 Gaze estimation based on apparent normalized coordinate system classification
圖2 不同的人眼圖像及其歸一化Fig.2 Different eyes photo and normalization
在視線估計中,使用注視點的視線向量及其相關的失配角進行描述或評價。注視點是注視屏幕與視線的交匯點,可以通過屏幕平面的二維坐標或相機坐標系中的三維坐標來表示。在圖3 中,視線向量(ex,ey,ez)是相機坐標系中從眼睛中心指向屏幕平面的注視點單位向量。視線向量在垂直和水平方向上的投影角分別稱為垂直角θ和水平角φ。垂直角和水平角計算式如下:
實際視線向量(ex1,ey1,ez1) 和預測視線向量(ex2,ey2,ez2)間的失配角Δα被用來評價視線估計的性能,失配角被定義為:
實際視線向量和預測視線向量的失配角也可以通過它們在垂直和水平方向上的投影來計算,例如:
證明如下:
單目眼睛圖像容易因頭部姿態(tài)的變化而失真,降低了視線估計的準確性。對此,通過頭部姿態(tài)坐標系的信息可以建立歸一化坐標系以減少眼睛圖像失真。
頭部姿態(tài)坐標系采用EPnP[16]方法建立。如圖3所示(彩色效果見《計算機工程》官網(wǎng)HTML 版),從右眼中心到左眼中心的方向是頭部姿態(tài)坐標系的X軸。與眼睛和嘴巴中心組成的XOY平面垂直的方向是Z軸。白點表示眼角和嘴角的特征點,由白點計算得到的眼睛與嘴巴中心形成的灰色三角形XOY,進而形成頭部姿態(tài)坐標系。黑色虛線箭頭是視線向量(ex,ey,ez),角度θ是視線向量在垂直方向Y上的投影,角度φ是視線向量在水平方向X上的投影。
圖3 頭部姿態(tài)坐標系與人眼圖像的映射關系Fig.3 Mapping relationship between head pose coordinate system and eyes photo
圖4 所示為單目相機坐標系和頭部姿態(tài)坐標系組成的歸一化坐標系。歸一化坐標系Sn的3 個坐標軸為Xn、Yn和Zn,原點為On。頭部姿態(tài)坐標系Sh的3 個坐標軸為Xh、Yh和Zh,原點為Oh。相機坐標系Sc的3 個坐標軸為Xc、Yc和Zc,原點為Oc。On、Zn與Oc、Zc相同。是Xh到Zn的投影:
Xn平行于,Yn平行于。旋轉矩陣R是從相機坐標系到歸一化坐標系的變換矩陣,可以表示為:
如圖4 所示,通過將三維臉投影到歸一化坐標系中的焦平面來歸一化眼睛圖像。
圖4 歸一化坐標系Fig.4 Normalization coordinate system
眼睛尺寸也應該通過保持眼球和單目相機之間距離的恒定來歸一化。尺度矩陣S用于確保從眼睛中心到歸一化坐標系原點的距離在Zn上的投影具有相同的值ds。假設歸一化坐標系中眼睛中心的坐標為(EEyex,EEyey,EEyez)。從眼睛中心到歸一化坐標系原點的距離在Zn上的投影為d=EEye z。因此,比例矩陣S可以表示為:
歸一化坐標系的構造如圖5 所示。相機坐標系左乘旋轉矩陣R以歸一化Zn視圖的差異,左乘尺度矩陣S以統(tǒng)一眼球與單目相機之間的距離。以上2 個步驟令相機坐標系構建了歸一化坐標系。
圖5 歸一化坐標系的構造Fig.5 Structure of normalization coordinate system
雙眼中心的位置是視線估計的基礎[17],采用哈爾(Haar)級聯(lián)分類器[18]尋找雙眼的中心。為確保眼球位于圖像的中心,通過更改相機Cin內(nèi)參矩陣中的Cx和Cy來調(diào)整光軸,如式(11)所示:
最后基于直方圖均衡化對圖像進行二值化,以減小不同光照條件對圖像的影響。
研究表明,在進行表觀圖像提取時,卷積神經(jīng)網(wǎng)絡模型可以產(chǎn)生豐富的表示[19]。本文選擇的卷積神經(jīng)網(wǎng)絡如InceptionV3[20],在分類任務中具有穩(wěn)定和高效的性能。在所提方法中,卷積神經(jīng)網(wǎng)絡模型將歸一化的眼睛圖像映射到垂直和水平方向的視線角度。如圖6 所示,卷積神經(jīng)網(wǎng)絡模型由卷積層、最大池化層、平均池化層和塊組成。卷積神經(jīng)網(wǎng)絡模型的輸入是經(jīng)過4 倍放大后的歸一化灰度眼部圖像,從36×60 變大到144×240。塊前的卷積層濾波器尺寸為3×3,塊的卷積層濾波器尺寸為1×1、1×3、3×1、3×3、5×5、1×7 和7×1,用于提取不同尺度的特征并將它們組合在一起。在每個卷積層后為修正線性單元(Rectified Linear Unit,ReLu)層[21]和批歸一 化(Batch Normalization,BN)層[22]。丟棄(Dropout)層用于避免過度擬合。為減少權值參數(shù),用1×1 濾波器的卷積層代替全連接層。最后的柔性最大(Softmax)分類層指示視線角度各類別的預測概率。使用交叉熵函數(shù)作為損失函數(shù)來度量預測視線角度與實際視線角度之間的失配,可表示為:
圖6 卷積神經(jīng)網(wǎng)絡模型Fig.6 Convolutional neural network model
其中:M是樣本數(shù);N是分類數(shù);pij是屬于分類j的樣本i的實際概率;qij是屬于分類j的樣本i的預測概率。
在注視屏幕上的某個點時,視線在垂直方向上的移動并不影響其在水平方向上的移動,因此可以在2 個單獨任務中估計垂直角θ和水平角φ。在每個任務中,分類數(shù)為N,總的視線角度空間為[-90°,90°],W表示類的區(qū)間寬度,則分類數(shù)N可以表示為N=第i類中某個眼睛圖像的視線角度為α,其對應的角度范圍為Ki,如下:
總的平均角度誤差由區(qū)間誤差和類別誤差組成。設Ki類中的視線角θi在角度空間中均勻分布,則有:
θi對應類別的角度范 圍Ki的中點 為,計算式如式(15)所示:
θi與之間的誤差為區(qū)間誤差,區(qū)間誤差期望為:
θi的區(qū)間誤差期望與i無關,因此式(16)可以寫為:
所有類的區(qū)間誤差期望與N成反比,為:
實際分類數(shù)N和預測分類數(shù)之間的失配為ΔN:
由ΔN引起的角度誤差稱為類別誤差mclassification,如式(20)所示:
總的角度誤差可以通過區(qū)間誤差minterval和類別誤差mclassification來計算,如式(21)所示:
在計算總的角度平均誤差時,根據(jù)式(21)可知,|minterval|可以對消,因此式(21)總的角度平均誤差可簡化為|mclassification|,即N^ 的線性函數(shù)f的絕對值,故可用黃金分割法來尋找最優(yōu)的分類數(shù)N。
黃金分割法能為本文所提方法尋找測試數(shù)據(jù)集優(yōu)化的分類數(shù)N。分類數(shù)N的搜索范圍設為[30,360]。
算法1黃金分割
輸入 MPIIGaze 數(shù)據(jù)集
輸出 最優(yōu)分類數(shù)N
本文選取MPIIGaze 數(shù)據(jù)集[12],該數(shù)據(jù)集數(shù)據(jù)來自具有不同頭部姿態(tài)的15 人,圖像分辨率較低,包括戴或不戴眼鏡的男人和女人。為測試歸一化測試坐標系的作用,卷積神經(jīng)網(wǎng)絡模型的輸入使用了歸一化坐標系形成的36×60 眼睛圖像,如圖7 所示。經(jīng)過歸一化處理后,選取最后一個人的1 464 幅圖像作為測試數(shù)據(jù),其余156 522 幅圖像作為訓練數(shù)據(jù),以保證模型的泛化。
圖7 經(jīng)過歸一化的MPIIGaze 數(shù)據(jù)集樣本Fig.7 Normalized sample of MPIIGaze date set
使用型號為GeForce GTX 1080 Ti 的顯卡訓練卷積神經(jīng)網(wǎng)絡模型時,最初的學習率設置為0.01,共迭代300 次,每經(jīng)過14 次迭代衰減6%,批大小設置為256,采用ADAM[23]優(yōu)化器。實驗結果表明優(yōu)化后平均每幅圖像處理耗時約為0.18 s。
2.3.1 對區(qū)間誤差的評價
如3.6 節(jié)所述,區(qū)間誤差期望與分類數(shù)成反比。圖8 所示為不同分類數(shù)N在測試數(shù)據(jù)集上的區(qū)間誤差期望。帶★虛線表示垂直方向視線估計的區(qū)間誤差期望,帶×虛線表示水平方向視線估計的區(qū)間誤差期望。圖9 所示為在總角度誤差中的區(qū)間誤差分量期望,對于MPIIGaze 數(shù)據(jù)集已訓練的卷積神經(jīng)網(wǎng)絡模型,按1~256 不同測試樣本數(shù)量進行測試,可以看到區(qū)間誤差分量期望的影響較小。
圖8 區(qū)間誤差期望變化Fig.8 Expected change in interval error
圖9 區(qū)間誤差分量期望變化Fig.9 Expected change in interval error component
2.3.2 對誤差的評價
誤差受分類數(shù)N的影響。使用黃金分割法尋找優(yōu)化分類數(shù)N=180,迭代4 次:
其中:(lq,lg,rg,rq)表示在每次迭代中黃金分割法的中間變量。
表1 所示為雙眼在垂直和水平方向上的預測角度和實際角度之間的平均角度誤差。
表1 雙眼在垂直和水平方向上的平均角度誤差Table 1 Average angle error of both eyes in vertical and horizontal direction (°)
按式(4)合成Δθ、Δφ,得到預測的視線向量和實際的視線向量間的平均角度誤差Δα,如表2 所示。
表2 雙眼的平均角度誤差Table 2 Average angle error of binocular(°)
圖10 所示為黃金分割法搜索的分類數(shù)N的情況,其中,虛線表示平均角度誤差為4.8°。分類數(shù)N的平均角度誤差形狀是凹的,當N設置為180 時,本文所提方法獲得了左眼4.145°、右眼4.744°、平均4.445°的優(yōu)化性能。
圖10 黃金分割法搜索優(yōu)化的分類數(shù)Fig.10 The number of classification optimized by the search of the golden section method
2.3.3 對歸一化坐標系的評價
用文獻[8]中所提歸一化方法和本文所提歸一化坐標系所輸出的不同眼睛圖像作為同一卷積神經(jīng)網(wǎng)絡模型的輸入,評價歸一化坐標系方法。當分類數(shù)N設置為180 時,比較結果如表3 所示。
表3 不同歸一化方法在垂直和水平方向的平均角度誤差Table 3 Average angle errors of different normalization methods in vertical and horizontal directions(°)
與文獻[8]所提方法相比,本文建立的歸一化坐標系方法,左眼和右眼的誤差分別從4.267°和4.932°降低到4.145°和4.744°。
2.3.4 整體評價
表4是本文所提方法與傳統(tǒng)基于表觀方法的對比。本文所提方法結果為左眼4.145°、右眼4.744°,表現(xiàn)最優(yōu)。與文獻[13-15]基于表觀的方法相比,該方法平均角度誤差從4.8°降低到4.445°,誤差降低了7.4%。
表4 不同基于表觀方法的平均角度誤差比較Table 4 Comparison of average angle error of different appearance-based methods (°)
本文提出一種基于表觀的歸一化坐標系分類視線估計方法,通過校準相機坐標系使眼球與單目相機的距離保持恒定,從而增強眼睛圖像處理的效果及減小不同頭部姿態(tài)對圖像的影響。同時,通過構建卷積神經(jīng)網(wǎng)絡模型,并使用黃金分割法進行最終優(yōu)化,提升視線檢測的準確率。實驗結果表明,相比已公開的同類方法,在MPIIGaze 數(shù)據(jù)集中,本文所提方法使視線估計誤差平均約降低了7.4%。由于眼睛圖像容易受到光照、頭部姿態(tài)等綜合因素的影響,下一步將圍繞人臉光照補償展開研究,提高視線檢測效果。