毛云豐 沈文忠 滕童
摘? 要: 視線跟蹤是人機互動技術中重要的組成部分,可以廣泛地應用在機器人、手機、筆記本等設備中。針對傳統(tǒng)方法在低分辨率圖像上的準確率不高和設計步驟繁瑣等問題,提出一種基于深度神經(jīng)網(wǎng)絡的視線跟蹤算法。利用卷積神經(jīng)網(wǎng)絡,能快速且準確地定位輸入圖片上的人眼區(qū)域和虹膜中心位置,再利用多項式擬合估計視線方向。實驗結果表明,該算法在MPIIGaze數(shù)據(jù)庫中對虹膜中心和眼角位置的標定有著98%的準確性,在Swith數(shù)據(jù)庫中對視線的估計準確率達到了90%左右,證明了該算法在低分辨率圖像上有著良好的可行性。
關鍵詞: 視線跟蹤; 深度神經(jīng)網(wǎng)絡; 人眼定位; 虹膜中心; 多項式擬合; 視線方向估計
Abstract: Sight tracking is an important part of human?computer interaction technology. It can be widely used in robots, mobile phones, notebooks and other equipments. In allusion to the low accuracy of traditional methods dealing with low?resolution images and their cumbersome design steps, a line?of?sight tracking algorithm based on deep neural network is proposed. With the convolutional neural network, the human eye area and the iris center position on an input image can be located quickly and accurately. The polynomial fitting is used to estimate the line?of?sight direction. The experimental results show that the algorithm has the accuracy of 98% in calibration of the iris center and the eye corner position in the MPIIGaze database, and the accuracy of 90% in estimation of the line?of?sight in the Swith database, which prove that the algorithm has good feasibility for sight tracking in low?resolution images.
Keywords: sight tracking; deep neural network; eye positioning; iris center; polynomial fitting; sight direction estimation
0? 引? 言
隨著科學技術的發(fā)展,深度神經(jīng)網(wǎng)絡的興起,使得計算機視覺技術的發(fā)展有了較大的進步。如人臉識別、虹膜識別、視線追蹤等技術在深度神經(jīng)網(wǎng)絡技術的應用下有了較為突破的發(fā)展。而視線跟蹤技術是人機互動領域的核心技術,是人機互動中不可缺少的一環(huán)。通常視線跟蹤技術分為基于模型的方法和基于外觀的方法。
基于模型的方法(也稱3D視線跟蹤法)是構建幾何眼睛模型,利用入射光線在眼球角膜表面時發(fā)生的折射與反射現(xiàn)象,通過反射與折射的幾何模型求解出眼球角膜中心與瞳孔中心,進而重構眼球的視線方向[1?3]。最近幾年,國內(nèi)外還構建頭部姿勢的模型用來輔助視線跟蹤技術[3],這種方法可以排除頭部姿勢的干擾,大大提高視線跟蹤的準確性。但方法實現(xiàn)較為復雜,往往需要多個專業(yè)攝像頭來獲取圖像數(shù)據(jù)。
基于外觀的方法(也稱2D視線跟蹤法)是將眼睛圖像作為輸入,通過圓形霍夫變換[4]、瞳孔空間形態(tài)[5]、梯度下降法[6]等圖像處理技術確定瞳孔位置、虹膜中心、眼角位置來定位視線方向。這種方法實現(xiàn)較為簡單,可以直接處理低像素圖像,使普通的網(wǎng)絡攝像頭也可以進行視線跟蹤;但缺點是精確度比較低,魯棒性不足。
本文的研究方法是基于外觀的方法,為了提高在低分辨率圖像進行視線跟蹤的準確率和魯棒性,以及準確地定位到虹膜中心和眼角位置,采用了深度卷積神經(jīng)網(wǎng)絡進行定位。近幾年深度學習在計算機視覺方面發(fā)展迅速,在人臉識別方面,虹膜識別技術有了巨大的突破。并且深度卷積神經(jīng)網(wǎng)絡在圖像處理方面具有泛化能力強、魯棒性好、操作方便等優(yōu)勢。
1? 視線跟蹤技術原理
基于外觀的視線跟蹤技術原理如圖1所示。
圖1a)是人眼正面,EC是眼球中心,OC是虹膜中心,P1,P2是內(nèi)外眼角位置,U1,U2是上眼皮與虹膜交界點。圖1b)是人眼俯視圖,d是穿過眼球中心和虹膜中心的向量。
根據(jù)觀察,當人眼注視不同的方向時虹膜中心會圍繞著眼球中心旋轉,眼球中心是固定不動的[7]。所以眼睛注視的方向可以簡化為虹膜中心和眼球中心連線的方向,即以眼球中心為起點,經(jīng)過虹膜中心的向量d。而人的眼球可以大致看成球體,所以眼球的中心在兩個眼角連線的位置上且與兩個眼角的距離是相等的。通過這點可以確定眼球中心位置(EC),所以只需要確定虹膜中心(OC)和兩個眼角(P1,P2)的位置就可以確定人眼的注視方向。而U1,U2用來輔助定位虹膜中心和判斷是否瞇眼。在圖1b)中,向量d可以簡化為EC?OC矢量,即圖1a)中連接EC和OC的向量。
2? 算法設計
根據(jù)原理介紹,基于外觀的視線跟蹤技術的算法大體可以分成兩個步驟:第一,虹膜中心和眼球中心定位;第二,學習從虹膜中心和眼球中心的關系到凝視點的映射。其中,虹膜中心和眼球中心定位是視線跟蹤技術的重要階段,一旦虹膜中心定位成功,就可以用映射方法來計算屏幕上的注視點。在以往視線跟蹤技術中常用的虹膜中心和眼球中心定位技術有橢圓擬合方法、梯度向量檢測方法等。
本文參考MTCNN網(wǎng)絡框架[8],設計一種多任務級聯(lián)神經(jīng)網(wǎng)絡,用來定位虹膜中心和內(nèi)外眼角。算法由兩個卷積神經(jīng)網(wǎng)絡組成,每個網(wǎng)絡的作用如下所述:
1) 確定人眼位置,生成人眼位置的候選窗口。這一階段采用的卷積神經(jīng)網(wǎng)絡稱為R?net,用于獲取候選人眼區(qū)域窗口及其邊界框位置,是用來精確確定輸入圖像中人眼的位置。
2) 這一階段是確定人眼區(qū)域關鍵點位置。將上一階段生成的人眼區(qū)域送入第二個卷積神經(jīng)網(wǎng)絡O?net,此網(wǎng)絡要比第一個網(wǎng)絡更加精確,能夠確定虹膜中心和眼角關鍵點位置。圖2為虹膜中心定位方法的流程圖。
2.1? 卷積神經(jīng)網(wǎng)絡結構
深度卷積神經(jīng)網(wǎng)絡是一種端到端的學習方式,對卷積神經(jīng)網(wǎng)絡模型而言,其輸入數(shù)據(jù)是未經(jīng)任何人為加工的原始樣本形式,后續(xù)則是堆疊在輸入層上的眾多操作層。這些操作層整體可看作為一個復雜的函數(shù),最后誤差函數(shù)由數(shù)據(jù)誤差和模型參數(shù)的正則化誤差共同組成,深度模型的訓練則是在最終誤差驅動下對模型進行參數(shù)更新,并將誤差反向傳播至網(wǎng)絡各層。模型的訓練過程可以簡單抽象為從原始數(shù)據(jù)向最終目標的直接擬合。
本文設計的卷積神經(jīng)網(wǎng)絡結構如圖3所示。
R?net網(wǎng)絡結構是由4個卷積層和3個池化層組成,其分布結構是前兩個卷積層每個后面跟著一個池化層,第三個卷積層直接和第四個卷積層相連,最后再連接一個池化層。因為其輸入數(shù)據(jù)是24×24大小的人眼區(qū)域圖像,所以為了減少計算量,將前兩層的卷積層和池化層的大小設置為3×3,后兩層的大小設置為2×2。卷積層和池化層的步長分別為1和2。
O?net網(wǎng)絡結構是由2個卷積層、2個池化層和2個inception結構[9]組成。O?net網(wǎng)絡是用來確定人眼區(qū)域關鍵點位置,所以需要網(wǎng)絡的精確度和泛化能力較高。O?net網(wǎng)絡前兩個卷積層和池化層的大小依然是3×3,步長分別為1和2。但由于輸入的圖像是48×48大小的人眼區(qū)域圖像,而不同的實驗員人眼大小和形狀是不同的,其所占輸入圖像的比例也是不同的。針對這種情況,本文在網(wǎng)絡后半部分加入inception結構來提高網(wǎng)絡的準確率。inception結構是由3個單獨的1×1,3×3,5×5大小的卷積核和1個3×3的池化層后接1×1的卷積核并列組成。這樣的結構使它可以將數(shù)據(jù)分別采樣成不同尺度,提取圖像不同尺度的特征,最后進行融合,可以得到更多的圖像特征。經(jīng)過反復的試驗,inception結構只需要兩個就可以訓練出較高的準確率。
2.2? 凝視估計
經(jīng)過上一個階段的人眼虹膜中心標記,可以得到在圖像上虹膜中心、內(nèi)外眼角和虹膜與上眼皮交界點的二維坐標信息,可以建立其與注視目標的映射關系。由于虹膜的角運動,EC?OC矢量到屏幕注視點的映射關系是非線性的,所以采用的方法是二階多項式回歸模型[4]來學習映射關系。
式中,([Xi,Yi])是屏幕上注視點的坐標。在訓練模型的時候,數(shù)據(jù)集中每張圖片的注視點坐標是已知的(Swith數(shù)據(jù)庫和MPIIGaze數(shù)據(jù)庫中的數(shù)據(jù)標簽里都含有注視點的坐標)。其中,(xi,yi)是EC?OC矢量,經(jīng)過上一步的虹膜中心定位可以得到內(nèi)眼角坐標(x1,y1)、外眼角坐標(x2,y2)和虹膜中心坐標(x0,y0),然后根據(jù)之前視線跟蹤的原理取兩個眼角之間的中點就是眼球中心EC(x3,y3)。所以EC?IC矢量(xi,yi)可以用如下方法獲得(x0-x3,y0-y3)。最后將訓練數(shù)據(jù)送入最小二乘法框架中計算出未知參數(shù)a和b,就可以得到完整的映射關系。需要注意,映射關系的訓練需要與實驗數(shù)據(jù)相匹配,不同的數(shù)據(jù)庫由于注視點坐標不同、被測者和屏幕間的距離不同,映射關系也不同。
3? 實驗分析
為了驗證本文所提算法的性能,需要大量的數(shù)據(jù)來檢測該算法。本文選擇了MPIIGaze數(shù)據(jù)庫[10]和Smith數(shù)據(jù)庫[11],MPIIGaze數(shù)據(jù)庫中的數(shù)據(jù)用來驗證標定虹膜中心的算法,并記錄了實驗員在不同自然光的條件下,注視筆記本上隨機注視點的部分人臉圖像,見圖4。其圖片數(shù)量有50 000多張,足以驗證該算法的準確性。Smith數(shù)據(jù)庫有5 100張完整的人臉圖片,見圖5。其中包含 51個人的實驗數(shù)據(jù)。他們將實驗員的頭部固定,讓他們注視屏幕上的注視點,然后記錄該實驗員的視線方向。
3.1? 數(shù)據(jù)處理
在訓練卷積神經(jīng)網(wǎng)絡之前,需要處理數(shù)據(jù)用于網(wǎng)絡訓練。首先從這兩個數(shù)據(jù)庫中各挑選1 000張圖片轉化為灰度圖片進行標定,框出人眼的區(qū)域和虹膜中心等5處坐標,作為實際樣本數(shù)據(jù)。然后根據(jù)每個網(wǎng)絡的結構需要將樣本數(shù)據(jù)分成24×24,48×48的樣本集,對這些數(shù)據(jù)集使用4種不同的數(shù)據(jù)注釋:
1) 負樣本:與實際樣本重合度小于0.3的區(qū)域。
2) 正樣本:與實際樣本重合度大于0.65的區(qū)域。
3) 部分樣本:與實際重合度大于0.3小于0.65的重合度。
4) 人眼標記樣本:標有5個標記點的人眼圖像。負樣本和正樣本用于人眼部分的分類,正樣本和部分樣本用于邊界框回歸,人眼標記用于人眼標記定位??傆柧殧?shù)據(jù)由5∶1∶3∶1(負樣本、正樣本、部分樣本、人眼標記樣本)比例組成。
另外,當用算法得到人眼區(qū)域的圖像時,圖片的大小是60×36像素,而在計算EC?IC矢量的時候需要(x0-x3,y0-y3)的差值盡可能的大,這樣才能較好學習映射關系。經(jīng)過實踐證明,在保持不失真的情況下,本文將人眼圖像放大到300×180像素。
3.2? 實驗結果
本次實驗是在Intel Core i5?7th處理器、8 GB內(nèi)存、Windows 10操作系統(tǒng)的PC機上運行,使用的開發(fā)環(huán)境為caffe。首先驗證算法定位虹膜中心的準確性,本文主要采用MPIIGaze數(shù)據(jù)庫[10]驗證算法定位瞳孔中心的能力。MPIIGaze數(shù)據(jù)庫的采集環(huán)境是實驗者日常生活的環(huán)境里,實驗員日常生活的電腦里放入了注視點檢測軟件,它在計算機屏幕上隨機顯示一個白點,實驗員用日常坐在計算機前的姿勢凝視白點。然后拍攝下當前受試者圖像,這樣就得到日常生活中的人眼注視圖像。其實驗結果如圖6所示。
圖6結果表明,在MPIIGaze數(shù)據(jù)庫中,本文所訓練的算法擁有98.7%的準確率來定位虹膜中心和內(nèi)外眼角。證明了在日常光照條件下,本文算法也有較高的準確率。再利用Swith數(shù)據(jù)庫驗證視線方向估計,其采樣環(huán)境如圖7所示。
Swith數(shù)據(jù)庫將屏幕劃分為15個區(qū)域,每個區(qū)域中間有一個黑點當作注視點,每個注視點的坐標都已經(jīng)被規(guī)定。實驗員被要求依次注視15個注視點,記錄下人臉區(qū)域圖像,這樣就得到了15個視線方向的人臉圖像。其擬合的圖像如圖8所示。
Swith數(shù)據(jù)庫準確率的判斷比較簡單,因為其坐標的數(shù)值和注視區(qū)域的性質,將預測值和實際值相減得到的差值不超過2,就可以認為注視是落在該區(qū)域內(nèi),則預測值準確。其公式為:
經(jīng)過計算Swith數(shù)據(jù)庫,x坐標的平均誤差為1.2°,準確率為93%;y坐標的平均誤差為1.8,準確率為88%。對注視方向預測的準確率約為90%。對比近幾年的參考文獻,文獻[5]是利用瞳孔空間形態(tài)來定位瞳孔中心和瞳孔邊緣空間點,用最小二乘法預測視線方向。文獻[12]是采用梯度向量檢測瞳孔中心,用神經(jīng)網(wǎng)絡估計視線跟蹤。文獻[13]是采用二維瞳孔角膜反射技術,建立瞳孔角膜反射模型來確定瞳孔中心,并用BP神經(jīng)網(wǎng)絡來進行視線估計。實驗結果的比較見表1。
從表1可以看出,本文算法已經(jīng)達到國內(nèi)的一流水平。相比于其他文獻的算法,本文的算法能在日常光照下準確地定位瞳孔中心,不受一般光照條件的影響。而且卷積神經(jīng)網(wǎng)絡相比于其他的方法更具有穩(wěn)定性和魯棒性,應用的范圍更加廣泛。
4? 結? 論
本文提出一種基于深度神經(jīng)網(wǎng)絡的視線跟蹤方法,采用卷積神經(jīng)網(wǎng)絡定位瞳孔中心和眼角位置,多項式擬合來預測視線方向。將視線跟蹤技術與深度學習相結合,提高了在普通攝像頭的環(huán)境下進行瞳孔中心定位的準確率。同時,利用MIIGaze數(shù)據(jù)庫和Swith數(shù)據(jù)庫驗證算法的準確性和魯棒性,證明卷積神經(jīng)網(wǎng)絡有著較強的魯棒性。只需要對數(shù)據(jù)庫少量的數(shù)據(jù)完成標定,網(wǎng)絡就可以自動學習和識別整個數(shù)據(jù)庫圖像中關鍵點位置。相比于傳統(tǒng)的瞳孔定位技術,深度神經(jīng)網(wǎng)絡減少系統(tǒng)的成本,提高確定虹膜中心的效率,使視線追蹤技術能應用于筆記本、手機等便攜式設備。
參 考 文 獻
[1] WOOD Erroll, BALTRUSAITIS Tadas, ZHANG Xucong, et al. Rendering of eyes for eye?shape registration and gaze estimation [C]// 2015 IEEE International Conference on Computer Vision. Santiago: IEEE, 2015: 428?434.
[2] YUSUKE Sugano, YASUYUKI Matsushita, YOICHI Sato. Learning?by?synthesis for appearance?based 3D gaze estimation [C]// 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus: IEEE, 2014: 235.
[3] 周小龍,湯帆揚,管秋,等.基于3D人眼模型的視線跟蹤技術綜述[J].計算機輔助設計與圖形學學報,2017,29(9):1579?1589.
[4] ANJITH George. Fast and accurate algorithm for eye localization for gaze tracking in low resolution images [J]. IET computer vision, 2016, 18: 127?131.
[5] 王向軍,白皓月,倪育博.基于瞳孔空間形態(tài)的雙眼視線跟蹤方法[J].激光與光電子學進展,2019,56(2):251?256.
[6] KAO W C, LIN C Y, HSU C C, et al. Optimal iris region matching and gaze point calibration for real?time eye tracking systems [C]// 2016 IEEE International Conference on Consumer Electronics. Las Vegas: IEEE, 2016: l08?115.
[7] WANG Jiangang, SUNG Eric, VENKATESWARLU Ronda. Eye gaze estimation from a single image of one eye [C]// Proceedings Ninth IEEE International Conference on Computer Vision. Nice: IEEE, 2003: 17?20.
[8] WANG Rongsheng, TIAN Jinzhao, JIN Changlong. Joint face detection and alignment using focal Oss?based multi?task convolutional neural networks [C]// 14th Chinese Conference on Biometric Recognition. Zhuzhou: Springer, 2019: 266?273.
[9] SZEGEDY C, LIU W, JIA Y, et al. Going deeper with convolutions [C]// 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston: IEEE, 2015: 202?213.
[10] ZHANG Xucong, SUGANO Yusuke, FRITZ Mario, et al. Appearance?based gaze estimation in the wild [C]// 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston: IEEE, 2015: 117?132.
[11] BRIAN A S, QI Y, STEVEN K F, et al. Gaze locking: passive eye contact detection for human?object intection [C]// Proceedings of the 26th Annual ACM Symposium on User Interface Software and Technology. St Andrews: ACM, 2013: 271?280.
[12] 李兵,戴爾晗.基于人工神經(jīng)網(wǎng)絡的視線跟蹤系統(tǒng)[J].計算機技術與發(fā)展,2015(4):98?101.
[13] 胡艷紅,魏江,梅少輝.基于瞳孔角膜反射技術的視線估計方法[J].計算機工程與應用,2018,54(14):7?10.