王長(zhǎng)元 張文強(qiáng) 薛鵬翔
(1.西安工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 西安 710021)(2.西安工業(yè)大學(xué)理學(xué)院 西安 710021)
視線跟蹤技術(shù)是一種利用電子,機(jī)械,光學(xué)等各種檢測(cè)手段獲取用戶當(dāng)前眼睛的狀態(tài),進(jìn)而分析人眼當(dāng)前注視位置的技術(shù)[11]。目前最為流行的是基于視頻的視線跟蹤方法(VOG)。視線跟蹤技術(shù)被廣泛地應(yīng)用于人機(jī)交互、心理學(xué)檢測(cè)、工業(yè)工程與人因分析等領(lǐng)域,越來(lái)越受到國(guó)內(nèi)外的重視,已成為許多學(xué)科的研究熱點(diǎn)?,F(xiàn)有的視線追蹤方法中,運(yùn)用基于視頻分析的瞳孔-角膜反射法時(shí)被測(cè)試者眼睛上沒有被附加任何裝置,使得實(shí)驗(yàn)結(jié)果更加真實(shí)自然,能夠更為準(zhǔn)確地分析出被測(cè)試者的眼動(dòng)情況。在瞳孔-角膜反射法中瞳孔跟蹤過(guò)程顯得特別重要,它是指對(duì)攝像機(jī)攝取的序列圖像進(jìn)行逐幀分析,確定目標(biāo)位置和狀態(tài)參數(shù)的技術(shù),其實(shí)質(zhì)是一種目標(biāo)檢測(cè)技術(shù)。
由于瞳孔目標(biāo)運(yùn)動(dòng)的隨機(jī)性,基于卡爾曼濾波的瞳孔跟蹤方法存在一定的缺陷,然而粒子濾波可以很好地解決瞳孔運(yùn)動(dòng)的非線性非高斯問(wèn)題,但是粒子濾波對(duì)新時(shí)刻瞳孔狀態(tài)進(jìn)行長(zhǎng)時(shí)間的預(yù)測(cè),會(huì)存在粒子退化的問(wèn)題,最終導(dǎo)致對(duì)瞳孔目標(biāo)的檢測(cè)出現(xiàn)較大誤差。如果在預(yù)測(cè)瞳孔目標(biāo)狀態(tài)之后,將預(yù)測(cè)結(jié)果作為卡爾曼濾波濾波技術(shù)的觀測(cè)值,并且根據(jù)粒子濾波的跟蹤結(jié)果確定卡爾曼濾波的轉(zhuǎn)換矩陣,然后利用卡爾曼濾波算法對(duì)瞳孔目標(biāo)狀態(tài)進(jìn)行最優(yōu)估計(jì),就能夠得到更加精確的瞳孔目標(biāo)狀態(tài)。
粒子濾波和卡爾曼濾波相結(jié)合的瞳孔跟蹤方法可以有效解決瞳孔運(yùn)動(dòng)的非線性非高斯問(wèn)題,并且能夠提高瞳孔狀態(tài)參數(shù)的提取精度,使系統(tǒng)的魯棒性明顯提高。在整個(gè)瞳孔跟蹤過(guò)程中,視頻圖像序列是由硬件系統(tǒng)產(chǎn)生的交替出現(xiàn)的亮瞳和暗瞳圖像序列,在初始的亮瞳和暗瞳圖像中進(jìn)行差分處理,利用瞳孔檢測(cè)方法在差分圖像中檢測(cè)瞳孔目標(biāo)參數(shù),獲得瞳孔目標(biāo)狀態(tài)參數(shù),完成跟蹤初始化。粒子濾波和卡爾曼濾波組合的瞳孔跟蹤方法流程如下圖1所示。
圖1 粒子濾波和卡爾曼濾波組合的瞳孔跟蹤流程
本文程序通過(guò)鼠標(biāo)在初始幀中選定瞳孔初始跟蹤目標(biāo)[5],并獲取瞳孔特征參數(shù),計(jì)算瞳孔特征直方圖QX。
以已知的初始目標(biāo)狀態(tài)為中心,選擇適當(dāng)?shù)姆讲罡咚购瘮?shù)進(jìn)行采樣,得出一組開始時(shí)刻的粒子狀態(tài)。粒子數(shù)為N,初始化粒子集狀態(tài)STATESt-1,完成跟蹤初始化。
通過(guò)瞳孔目標(biāo)狀態(tài)轉(zhuǎn)移矩陣A,對(duì)粒子集狀態(tài)進(jìn)行預(yù)測(cè)。其中矩陣A由單位時(shí)間內(nèi)瞳孔目標(biāo)在圖像中的偏移量來(lái)確定。預(yù)測(cè)粒子集的狀態(tài)STATESt為
本文通過(guò)結(jié)合灰度特征和形狀特征來(lái)對(duì)粒子區(qū)域進(jìn)行觀測(cè),灰度特征采用灰度直方圖描述,形狀特征采用橢圓度進(jìn)行描述。通過(guò)灰度直方圖計(jì)算粒子的歐氏距離:
其中u=1,…,bi為灰度級(jí),mu為粒子的直方圖,qu為目標(biāo)狀態(tài)的直方圖。對(duì)粒子區(qū)域進(jìn)行二值化,然后計(jì)算各粒子區(qū)域的橢圓形度為
然后對(duì)瞳孔目標(biāo)狀態(tài)進(jìn)行估計(jì),有
然后計(jì)算瞳孔目標(biāo)狀態(tài)的概率權(quán)重,有
為了避免粒子退化的問(wèn)題,本文根據(jù)粒子集中每個(gè)粒子的權(quán)重,對(duì)粒子集中的粒子利用序貫重要性采樣(SIR)進(jìn)行重采樣。對(duì)權(quán)重小的粒子舍棄,對(duì)權(quán)重較大的粒子進(jìn)行選取,并且權(quán)重較大的粒子可能被重復(fù)選取,重復(fù)操作N次,這樣可以有效避免粒子濾波方法帶來(lái)的粒子退化問(wèn)題。
通過(guò)對(duì)目標(biāo)狀態(tài)的概率權(quán)重和事先設(shè)置的閾值ωt進(jìn)行比對(duì),若大于閾值,則更新瞳孔目標(biāo)模型;即令 Xt=(1 -θ) Xt-1+θE(Xt);若小于閾值,則不更新瞳孔目標(biāo)模型,即令Xt=Xt-1。
粒子濾波的跟蹤結(jié)果對(duì)卡爾曼濾波最終確定瞳孔目標(biāo)的參數(shù)起指導(dǎo)作用;卡爾曼濾波是在視頻圖像中的差分圖像中進(jìn)行的。根據(jù)上一幀圖像中的瞳孔目標(biāo)參數(shù),利用卡爾曼濾波確定后一幀圖像中的瞳孔目標(biāo)參數(shù);并且卡爾曼濾波的狀態(tài)轉(zhuǎn)移方程由粒子濾波的跟蹤結(jié)果確定,其中,卡爾曼濾波中的觀測(cè)值由粒子濾波跟蹤區(qū)域的瞳孔分割獲得,則新時(shí)刻的估計(jì)值由上一時(shí)刻的估計(jì)值和觀測(cè)值通過(guò)狀態(tài)轉(zhuǎn)移方程得到。最終得到瞳孔的檢測(cè)結(jié)果。
單次卡爾曼濾波過(guò)程如下:
設(shè)t-1時(shí)刻的瞳孔目標(biāo)狀態(tài)的卡爾曼濾波估計(jì)為X(t-1);狀態(tài)轉(zhuǎn)移矩陣為Φ,其中狀態(tài)轉(zhuǎn)移矩陣Φ的取值根據(jù)t時(shí)刻的粒子濾波狀態(tài)估計(jì)中的矩形框中心坐標(biāo)位移的不同而不同。t時(shí)刻經(jīng)檢測(cè)得出的瞳孔狀態(tài)矢量為O()t。
1)首先,確定t時(shí)刻卡爾曼濾波觀測(cè)差,為
其中,Z(t)為t時(shí)刻觀測(cè)值。
2)確定卡爾曼增益K,為
至此,就完成了一次單步的卡爾曼濾波瞳孔目標(biāo)狀態(tài)估計(jì)過(guò)程;其得出的目標(biāo)狀態(tài)估計(jì)即為跟蹤算法的最終估計(jì)結(jié)果。
當(dāng)卡爾曼濾波跟蹤步驟完成后,將t時(shí)刻的瞳孔目標(biāo)位置參數(shù)作為粒子濾波的t時(shí)刻的狀態(tài)矢量的估計(jì)值,并進(jìn)入下一步的預(yù)測(cè)循環(huán)當(dāng)中。如此進(jìn)行循環(huán),便可以實(shí)現(xiàn)粒子濾波和卡爾曼濾波組合的瞳孔跟蹤過(guò)程。
3)對(duì)t時(shí)刻的瞳孔狀態(tài)進(jìn)行預(yù)測(cè),為
本實(shí)驗(yàn)通過(guò)使用VS2013和openCV2.4.9在Win10系統(tǒng)上進(jìn)行了實(shí)驗(yàn)驗(yàn)證。
實(shí)驗(yàn)準(zhǔn)備階段,需要錄制一段視頻,視頻要求包含一些典型的頭動(dòng)狀態(tài),并且眼睛運(yùn)動(dòng)方向也要具有一定的代表性,包括頭部上揚(yáng)、俯視、側(cè)視,眼睛要具有眨眼、瞇眼、旋轉(zhuǎn)等眼部狀態(tài)。
程序開始運(yùn)行時(shí),通過(guò)顯示視頻的第一幀圖像,并且要通過(guò)手動(dòng)模擬瞳孔檢測(cè)環(huán)節(jié),確定跟蹤初始目標(biāo),進(jìn)行跟蹤初始化,并且程序會(huì)獲得瞳孔目標(biāo)初始參數(shù)。
初始化完成后,開始跟蹤瞳孔目標(biāo)狀態(tài),隨著視頻幀的獲取,程序能夠成功跟蹤瞳孔目標(biāo)。實(shí)驗(yàn)程序能夠很好地克服眨眼、頭動(dòng)等情況,達(dá)到較好的魯棒性。
程序開始運(yùn)行時(shí),在視頻的第一幀圖像中手動(dòng)選定初始瞳孔跟蹤目標(biāo),結(jié)果如圖2所示。
圖2 獲取初始跟蹤目標(biāo)
瞳孔跟蹤開始后,首先通過(guò)高斯分布函數(shù)在初始化瞳孔區(qū)域附近選取若干初始化粒子,經(jīng)過(guò)粒子濾波和卡爾曼濾波組合跟蹤后得到當(dāng)前時(shí)刻的瞳孔目標(biāo)位置;瞳孔的不規(guī)則運(yùn)動(dòng)和頭部的自由運(yùn)動(dòng),本文方法都能夠?qū)ν啄繕?biāo)進(jìn)行實(shí)時(shí)跟蹤,并且具有較高的跟蹤效率。
瞳孔跟蹤結(jié)果如圖3所示。
圖3 瞳孔跟蹤結(jié)果
本文瞳孔跟蹤方法和文獻(xiàn)的運(yùn)算效率對(duì)比如表1所示。
表1 文獻(xiàn)算法對(duì)比結(jié)果
本文算法通過(guò)卡爾曼濾波和粒子濾波的組合算法,瞳孔跟蹤過(guò)程通過(guò)在一幀圖像中首先進(jìn)行粒子濾波跟蹤,對(duì)瞳孔目標(biāo)進(jìn)行定位,并確定卡爾曼濾波系統(tǒng)狀態(tài)轉(zhuǎn)移方程模型,再對(duì)瞳孔目標(biāo)參數(shù)進(jìn)行更加精確估計(jì)。通過(guò)系統(tǒng)運(yùn)行時(shí)間計(jì)算得出每幀圖像跟蹤時(shí)間平均為11.8ms,即通過(guò)每幀開始時(shí)間到跟蹤結(jié)束時(shí)間的平均時(shí)間,時(shí)效性較高。
通過(guò)實(shí)驗(yàn)對(duì)比,本文方法能夠達(dá)到一定的實(shí)時(shí)性要求,并且迭代效率較高,能夠很好提升系統(tǒng)的跟蹤效率,達(dá)到了預(yù)期要求。
本文通過(guò)粒子濾波和卡爾曼濾波組合的瞳孔跟蹤方法,很好地克服了瞳孔運(yùn)動(dòng)的非線性非高斯問(wèn)題和系統(tǒng)跟蹤準(zhǔn)確行問(wèn)題,并且粒子濾波中采用了SIR重要性采樣方法能夠很好地解決粒子退化問(wèn)題,系統(tǒng)平均準(zhǔn)確率達(dá)到98%,具有較好的魯棒性,也能夠達(dá)到一定的實(shí)時(shí)性要求,對(duì)以后視線追蹤相關(guān)的研究有一定的研究?jī)r(jià)值。但是本文方法研究也存在一些缺陷,例如閾值的確定沒有采用動(dòng)態(tài)閾值,可能對(duì)瞳孔目標(biāo)估計(jì)存在一定的誤差;還有就是當(dāng)瞳孔目標(biāo)跟蹤較大是可能存在一定的效率問(wèn)題,這將是今后研究的重點(diǎn)。
[1]王際航,劉富,袁雨桐,等.基于視頻圖像的眼動(dòng)追蹤系統(tǒng)算法[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2016,34(2):259-265.WANG Jihang,LIU Fu,YUAN Yutong,et al.Eye Track?ing System based on Video Image[J].Journal of Jilin Uni?versity(Information Science Edition),2016,34(2):259-265.
[2]郭政業(yè),胡雯薔,朱李瑾.基于眼球重建異面直線模型的雙目視線跟蹤算法[J].計(jì)算機(jī)應(yīng)用研究,2016,33(4):1249-1257.GUO Zhengye,HU Wenqiang,ZHU Lijin,et al.Binocular Vision Tracking Algorithm based on The Reconstruction of The Different Line Model[J].Application Research of Computers,2016,33(4):1249-1257.
[3]張峰,何小海,楊曉敏,等.基于模糊邏輯的多特征融合的粒子濾波跟蹤算法[J].四川大學(xué)學(xué)報(bào)(工程科學(xué)版),2013,45(7):170-177.ZHANG Feng,HE Xiaohai,YANG Xiaomin,et al.Multi Feature Fusion based Particle Filter Tracking Algorithm based on Fuzzy Logic[J].Journal of Sichuan University(Engineering Science Edition),2013,45(7):170-177.
[4]張闖,遲鍵男,張朝暉,等.視線追蹤系統(tǒng)中眼睛跟蹤方法研究[J].自動(dòng)化學(xué)報(bào),2010,36(8):1051-1061.ZHANG Chuang,CHI Jiannan,ZHANG Zhaohui,et al.Re?search on Eye Tracking Method In Eye Gaze Tracking Sys?tem[J].Acta Automatica Sinica,2010,36(8):1051-1061.
[5]王長(zhǎng)元,金瑞銘,田寶杰,等.一種基于粒子濾波的瞳孔跟蹤方法[J].計(jì)算機(jī)與數(shù)字工程,2015,43(11):2044-2046.WANG Changyuan,JIN Ruiming,TIAN Baojie,et al.Pu?pil Tracking Method based on Particle Filter[J].Comput?er&Digital Engineering,2015,43(11):2044-2046.
[6]Villanueva A,Cabeza R.A novel gaze estimation system with one calibration point[J].IEEE Transactions on Sys?tem,Man,and Cybernetics,Part B:Cybernetics,2008,38(4):1123-1138.
[7]張闖,遲健男,邱亞飛,等.視線追蹤系統(tǒng)中特征參數(shù)提取方法研究[J].中國(guó)圖象圖形學(xué)報(bào),2010,15(9):1299-1308.ZHANG Chuang,CHI Jiannan,QIU Yafei,et al.Research on Feature Extraction in Line of Sight Tracking System[J].Journal of Image and Graphics,2010,15(9):1299-1308.
[8]張闖,遲健男,張朝暉,等.視線追蹤系統(tǒng)中視線估計(jì)方法研究[J].中國(guó)科學(xué):信息科學(xué),2011,41(5):580-591.ZHANG Chuang,CHI Jiannan,ZHANG Zhaohui,et al.Line of Sight Estimation in Gaze Tracking System[J].Sci?entia Sinica Infomationis,2011,41(5):580-591.
[9]Pierre E,Jacob Lawrence M,Murray Sylvain Rubenthaler.Path storage in the particle filter[J].Statistics and Com?puting,2015,25(2):487-496.
[10]遲健男,王志良,張闖.視線追蹤技術(shù)[M].北京:機(jī)械工業(yè)出版社.2011:1-251.CHI Jiannan,WANG Zhiliang,ZHANG Chuang.Eye Tracking Technology[M].Beijing:China Machine Press.2011:1-251.
[11]黃園剛,桑楠,郝宗波,等.改進(jìn)CamShift算法的眼動(dòng)跟蹤方法[J].計(jì)算機(jī)應(yīng)用研究,2014,31(4):1220-1224.HUANG Yuangang,SANG Nan,HAO Zongbo,et al.Eye Tracking Method based on Improved CamShift Algorithm[J].Application Research of Computers,2014,31(4):1220-1224.
[12]馮成志,沈模衛(wèi).視線跟蹤技術(shù)及其在人機(jī)交互中的應(yīng)用[J]. 浙江大學(xué)學(xué)報(bào)(理學(xué)版),2002,29(2):225-232.FENG Chengzhi,SHEN Mowei.Gaze Tracking Technolo?gy and its Application in Human-Computer Interaction[J].Journal of Zhejiang University(Science Edition),2002,29(2):225-232.
[13]K.S.Park and K.T.Lee,Eye-controlled human/comput?er interface using the line-of-sight and the intentional blink[J].Computer Engineering,1996,30(3):463-473.