張遠輝,李 顏,李孝祿,朱俊江
(中國計量大學機電工程學院,杭州 310018)
人眼是人機交互過程中自然而快捷的通道,計算機屏幕上的注視點定位是實現人機信息交互的主要手段。紅外光環境下的瞳孔跟蹤作為注視點定位中的關鍵技術,在心理學、醫學、軍事、商業界面評估與設計方面都有極大前景與研究價值,數十年來受到學界的廣泛關注。
然而瞳孔的運動過程總是伴隨著各種各樣的噪聲,一些噪聲來源于外部環境:外部的光線干擾、毛發遮擋,令瞳孔目標的時序定位存在誤差;一些噪聲來源于眼睛運動本身:眼部的抖動,眨眼等無意識動作[1]。這些噪聲使得瞳孔跟蹤在快速性和魯棒性上存在一定的難度,無法滿足人機交互中對注視點準確性和實時性的要求。
近年來視覺跟蹤領域取得的一些成果有:李兵等人提出的基于人工神經網絡進行瞳孔視覺跟蹤的研究[2],只需商業攝像頭就能在普通實驗室光照條件下達到識別精度高于88%的視線跟蹤,而文章僅進行了靜態注視映射的訓練,尚未考慮運動狀態下的視線跟蹤。瞳孔運動狀態下的跟蹤技術大都依賴于接觸式的眼部圖像獲取設備,包括Chang等人提出的通過穿戴式的雙目攝像頭拍攝瞳孔運動情況從而估計3D環境下的視線方向[3];張琴等人提出的通過安裝在眼鏡上的攝像頭采集瞳孔運動圖像,利用硬件電路分離信號傳送信息[4];楊慶華等人提出的眼動跟蹤方法同樣采用可穿戴式的系統硬件方案[5],在普通眼鏡上安裝CCD攝像頭;鄒云海等人提出的快速投影跟蹤算法[6],能夠實現高速眼動跟蹤,但其算法對硬件要求較高,需依賴FPGA完成。也有一些研究人員依賴非接觸式的眼部圖像獲取設備進行視線跟蹤研究,例如Zanetti等人利用Kinect設備降低3D場景中基于瞳孔-角膜反射的視線跟蹤誤差,提高紅外光照射下對受試者眼部特征跟蹤的準確度[7]。
Kalman濾波器在針對運動目標的檢測領域運用甚廣[8-9]。例如王江等人提出的基于Kalman濾波的雙目視覺跟蹤[10],針對場景中的目標圖像有良好的跟蹤效果;王麗等人提出的綜合運用Kalman濾波器的眼部跟蹤算法[11],對于跟蹤人臉中的眼部圖像有較強的魯棒性,但并未精確至瞳孔坐標;Jiannan Chi等人提出的將粒子濾波和Kalman濾波結合進行瞳孔跟蹤的算法[12],相較于其他結合算法定位精度上有所提升但算法流程相對繁瑣。由于眼部瞳孔運動相較于人臉中眼部跟蹤或者駕駛環境存在更多噪聲干擾且需要的跟蹤精度更高,將Kalman濾波器算法運用在瞳孔運動跟蹤檢測領域的改進研究成果相對來說較少。

圖2 紅外光照射下眼部圖
本文提出一種基于雙眼同步運動特征約束的Kalman跟蹤算法,算法的核心思想是通過雙眼的同步運動特征,簡化跟蹤系統模型:在對瞳孔位置和速度進行估計的基礎上,利用瞳孔的間距矢量參數進行隱式參數估計,為進一步檢測人臉與攝像機之間的距離以及識別人臉姿態奠定了基礎。通過和滑動平均濾波算法、常速度Kalman濾波算法等的對比實驗表明,本算法在抗干擾性能方面和計算量方面均有一定優勢。
在可見光下,人眼的瞳孔和虹膜區域反射情況類似,因此采用可見光照射人眼,并不能從圖像中準確提取瞳孔邊緣,進而定位瞳孔中心。而在紅外光照射下,由于瞳孔區域與虹膜區域對紅外光的反射率不同,使得兩個區域在紅外成像中存在較為明顯的差異,有利于瞳孔邊緣的定位和識別,因此國際上通行的注視點識別系統中,普遍使用紅外光下基于視覺的視線跟蹤方法。另外,人眼視覺神經細胞對紅外光照射不敏感,因此紅外光照射不會引起受試者的眼部不適和視覺干擾。本文搭建的紅外光照明下的頭戴式注視點傳感實驗裝置,如圖1所示。
裝置上的右側攝像頭可以通過手擰螺絲進行姿態自鎖,調整支架扭轉角度后拍攝雙眼區域圖像,拍攝圖像如圖1所示。

圖1 頭戴式注視點傳感實驗裝置
瞳孔跟蹤和瞳孔定位密不可分,在對運動過程中的瞳孔進行跟蹤之前對瞳孔中心位置進行準確定位,獲得雙眼瞳孔中心的初始坐標用于跟蹤算法的輸入數據,能夠有效提高瞳孔跟蹤算法的精度。
圖2為紅外光照射下的眼部圖,采集圖像像素大小為1 920 pixel×1 080 pixel。圖2(a)為瞳孔中心定位過程示意。首先通過圖像分割,從圖像中獲取眼部子圖。從眼部子圖中可見瞳孔區域在二維圖像中與周圍區域的顏色灰度存在較大差異,本文采用結合凸區域投票和模型約束的算法對瞳孔進行定位。首先利用星射線算法[13]提取邊緣點,接著利用圖像中特征點的位置和梯度信息,進行凸區域投票獲取瞳孔近似邊界,然后通過橢圓模型約束迭代優化邊緣點,從而準確定位瞳孔位置。圖2(b)中瞳孔中心紅點位置即為由圖2(a)眼部子圖識別出的瞳孔中心結果。
Kalman濾波器是根據無后性假設和獨立性假設這兩大基本假設以及貝葉斯估計相關理論得出的狀態估計方法[14]。Kalman濾波同時考慮預測模塊和更新模塊的協方差,賦較大的權重給誤差較小的項,賦較小的權重給誤差較大的項,達到使預測結果誤差最小的目的。考慮使用Kalman濾波器對雙眼的運動進行建模,建立眼球運動的過程方程和觀測方程。
瞳孔間距矢量如圖2(b)所示。把圖像的左上角作為原點,水平向右為x軸,豎直向下為y軸,兩個瞳孔的坐標可以表示為左眼(xl,yl)和右眼(xr,yr)。實時跟蹤兩個眼睛的運動狀態還需要估計左右眼的瞳孔的速度在xy軸上的分量,即左眼速度(vxl,vyl)與右眼速度(vxr,vyr)。進一步地,為實現人臉姿態的估計,還需要估計瞳孔間距。因此,物理量xl,yl,xr,yr,vxl,vyl,vxr,vyr以及衡量瞳孔間距的兩個物理量dw(兩瞳孔的水平間距)和dh(兩瞳孔的豎直間距),一共10個變量需要估計。用這10個物理量構建狀態列向量,應用Kalman濾波算法的計算復雜度為O(n2)(其中n=10),因此計算量較大[15]。
分析上述10個狀態變量,發現部分變量和變量之間存在著耦合和約束關系。人眼運動的一個典型特征就是雙眼同步運動。假設人的頭部位置和姿態保持不變,人眼在向左看和向右看的時候,兩個瞳孔同時向左或者向右運動[16]。
2.2.1 過程方程的構建
本文濾波算法中將10維狀態變量精簡為6維狀態變量。圖 2中紅色箭頭所示為瞳孔矢量,該矢量由左側瞳孔中心指向右側瞳孔中心,把該瞳孔矢量的中點位置,作為系統過程的狀態向量,構造的6維的系統過程方程,如式(1)所示。

(1)
式中:xk+1和uk+1表示k+1時刻瞳孔矢量中心位置在x軸方向(水平)方向的位置和速度,yk+1和vk+1表示k+1時刻瞳孔矢量中心位置在y軸方向(豎直)方向的位置和速度,mk+1和nk+1表示k+1時刻,瞳孔矢量在x軸和y軸上的投影分量。dt表示連續兩次圖像采集時刻的時間間隔。wk是k時刻的過程噪聲項,它滿足高斯分布N(0,Qk),其中Qk表示wk的協方差矩陣,是一個6×6的對角矩陣,即過程方程中狀態變量的過程噪聲協方差矩陣。
(2)
式中:Q1,Q2,Q3,分別為2×2的協方差矩陣。在忽略干擾的情況下,可以認為雙眼在掃視過程中,瞳孔矢量中心位置為勻速運動,如果考慮瞳孔在運動過程中受到各種擾動的影響,可以將過程噪聲wk看作眼球在運動過程中受到一個等效擾動Fa的作用力,其產生的等效加速度為a,那么協方差矩陣的取值如下推導所示。
2.2.2 觀測方程的構建
由于圖像處理中只能檢測出左右眼的瞳孔中心坐標,因此系統的觀測方程如式(3)所示:

(3)
式中:等號左側的z1k+1和z2k+1表示左側瞳孔的測量位置x坐標和y坐標,z3k+1和z4k+1表示右側瞳孔的x坐標和y坐標。等式中的下標均表示當前為離散時間k時刻的狀態值,等式最右側的vk+1是k+1時刻的測量誤差項,該誤差項服從高斯分布,具有如下形式N(0,Rk+1),其中Rk+1表示k+1時刻的測量噪聲的協方差矩陣,是一個4×4的矩陣。
(4)
式中:Rvar為單側瞳孔坐標的方差,Rcov為兩側瞳孔坐標的協方差。

由于直接構造10維Kalman濾波器的計算量較大,作為和本文提出方法的對比,本文將左右眼的狀態變量進行分離,構建兩個4維的常速度Kalman濾波器分別對左右眼瞳孔進行狀態跟蹤,同時亦構造一個2維的Kalman濾波器估計瞳孔間距矢量。左右眼的常速度濾波器采用如下方式構建系統的過程方程和觀測方程。

(5)

(6)
此處過程方程式(5)和觀測方程(6)與之前的式(1)和式(3)在定義形式上是一致的。式(1)的位置坐標和速度是基于瞳孔矢量中心點的,而式(5)和式(6)坐標狀態變量和速度狀態變量僅僅是某一側的瞳孔運動狀態(例如左眼瞳孔的位置和速度)。在此對比實驗中,過程協方差、測量協方差矩陣均采用與本文濾波算法相同的數值。
模擬雙眼瞳孔水平向右勻速掃視動作來構造仿真數據序列,仿真序列數據包括:雙眼瞳孔矢量中心的x坐標,雙眼瞳孔矢量中心的y坐標,兩瞳孔的水平間距dw,兩瞳孔的豎直間距dh。單側瞳孔的坐標由上述4個量計算獲得。其中,雙眼瞳孔矢量中心的x坐標的真實值設定為起始點為0,速度為10 pixel/s,時間間隔dt=0.1 s的100個離散點的坐標序列,雙眼瞳孔矢量中心的y坐標的真實值設定為零。兩瞳孔的水平間距dw的真實值設定為100 pixel,兩瞳孔的豎直間距dh的真實值設定為40 pixel。上述4個量的測量值均由對應的真實值加上一個均值為零的高斯白噪聲所得,并且模擬測量序列中不包含較大干擾。
將模擬測量值分別置入本文算法模型和常速度Kalman濾波算法模型獲得估計值,估計值與真實值的幾何距離為仿真實驗誤差。兩種算法模型的x軸坐標誤差與y軸坐標誤差如表1所示,其中本文算法下的x軸坐標誤差比常速度Kalman濾波算法減小了11%,y軸坐標誤差減小了4.8%。

表1 仿真實驗下兩種算法模型的估計誤差對比
3.4.1 本文算法的實驗結果及對比
以某次雙眼水平掃視動作和自左下至右上掃視屏幕對角線動作中的瞳孔圖像為研究對象,實驗中的拍攝和圖像處理的間隔時間dt為0.1 s,掃視動作持續時間為10 s左右。使用電腦屏幕的分辨率大小為2 560 pixel×1 600 pixel。
根據實驗數據給出狀態變量矩陣的初值,對應狀態向量的協方差P的初始值一般定義比較大的值[14],本文實驗中定義如式(7)所示:
P0|0=diag[50 000 50 000 50 000 50 000 50 000 50 000]
(7)
圖3是掃視屏幕對角線瞳孔矢量中心位置和瞳孔矢量中心點速度的估計結果,橫坐標為時間,單位為秒,縱坐標分別為矢量中心點的像素坐標與速度大小。圖3(a)中實線表示濾波器對矢量中心點的坐標估計,點線表示測量的瞳孔中心位置。事實上,因為無法直接測量該位置的坐標,此處是通過左右瞳孔測量位置坐標求平均值的方法得到的。圖中在7.5 s時刻,存在由于外部大擾動帶來的測量噪聲,具體表現為x軸坐標測量位置出現較大偏差,而在該擾動影響下,濾波器的輸出抖動幅度不大,約為5 pixel。圖3(b)點線為測量結果(測量結果由測量數據對時間的導數計算得到),實線為xy兩軸的速度估計結果,可見在7.5 s受到測量擾動后,速度估計曲線并沒有大的浮動。掃視對角線動作下x方向的速度為-10 pixel/s左右,y方向的速度為-4.6 pixel/s左右,基本符合本次實驗中自左下至右上掃視屏幕對角線的動作過程。

圖3 掃視屏幕對角線瞳孔矢量中心估計結果

圖4 常速度Kalman濾波器的左瞳孔位置與速度估計結果
3.4.2 常速度Kalman濾波器算法的實驗結果及對比
圖4是掃視屏幕對角線動作下常速度的Kalman濾波器的輸出結果。圖4(a)為常速度Kalman濾波器左瞳孔位置估計結果。實線為濾波器的x,y兩個方向的位置估計結果,點線為測量結果。當在7.5 s左右時刻,位置測量存在噪聲時,濾波器的輸出存在著一個較大的抖動,抖動幅度約為15 pixel,為本文算法之下抖動幅度的300%。
圖4(b)是常速度Kalman濾波器的左瞳孔速度估計結果,橫坐標為時間,縱坐標為速度大小,其中離散點表示測量的速度結果(由相鄰兩個時刻的離散測量數據直接對時間求導所得),實線為速度估計結果??梢?常速度Kalman濾波器的輸出速度估計上,存在一個1 000 pixel/s的抖動,而在本文算法之下無明顯抖動。
另外,計算10維度的傳統濾波器在執行單次Kalman模型計算時的乘法計算量,為5 686次。在MATLAB測試環境下,如表2所示,根據實驗情況,數據量為100時(執行模型迭代計算100次),程序運行時間為0.060 13 s。如果將10維度傳統濾波器拆分為3個濾波器,分別為為左右眼各4維的兩個濾波器,以及兩眼間距在xy軸上的分量2維濾波器進行疊加計算,所需時間為0.004 531 s。本文6維度的濾波器在執行單次Kalman模型計算時的乘法計算量為1 356次,程序運行時間為0.001 766 s,比10維度常速度Kalman濾波器加快了97%,比拆分后的常速度Kalman濾波器加快了61%。因此本文設計的濾波器簡化了程序的運算量,在跟蹤的快速性上具有一定優勢。

表2 3種算法模型運行時間對比
為探究本文算法對人機交互過程中預測注視點跟蹤精度的影響,將未經過濾波算法計算得到的預測注視點、經過中心滑動平均的濾波方法(滑動窗口大小為7個數據點)得到的預測注視點、經過常速度Kalman濾波方法得到的預測注視點與經過本文算法得到的預測注視點位置進行比較。
實驗過程中,首先令觀察者注視屏幕中九宮格中心(白底圖黑線相交處),再令觀察者注視位于屏幕中央線上自左向右在10 s內勻速移動的動點,拍攝這兩個動作下的眼部圖像,獲得瞳孔中心和角膜反射光斑中心坐標為實驗數據。假定由注視屏幕九宮格中心獲得瞳孔中心坐標(xp,yp)和角膜反射光斑中心坐標(xg,yg),則瞳孔—光斑相對偏移矢量可表示為:
xe=xp-xg,ye=yp-yg
(8)
假設(Xs,Ys)為屏幕上標記點的坐標,則用校準函數表示映射關系為[17]:

(9)

(10)
式(9)和(10)中共有12個待求解參數,將9組數據代入此二式獲得共18個方程對參數進行求解,本文采用最小二乘法確定參數。將注視屏幕中央橫線上動點獲得的瞳孔—光斑相對偏移矢量數據代入上述模型得到注視點估計位置。根據實驗過程,10s內屏幕中央線上勻速運動的點的實時坐標為注視點的準確位置。按照兩種測試環境,即存在大擾動測量噪聲和不存在大擾動測量噪聲的情況,對以下4種濾波方法:未濾波、滑動平均濾波、常速度Kalman濾波、本文濾波算法4種方法分別預測注視點位置,并計算預測注視點坐標和注視點準確位置之間的距離誤差。如表3所示,表中4行表示所使用的4種數據濾波處理方法,表中兩列數據分別對應是否有大擾動測量噪聲環境,可見本文算法模型下注視點估計結果誤差最小,與常速度Kalman濾波算法相比,誤差分別在無擾動與有擾動的情況下減小了21%與29%。

表3 4種算法模型下注視點估計結果誤差對比
由注視點估計結果的誤差對比可以看出,分別在存在大擾動測量噪聲和不存在大擾動測量噪聲的情況下,本文的濾波方法誤差與常速度Kalman濾波方法以及滑動平均濾波方法相比,都具有最小的定位誤差。綜上所述,本文算法無論在計算量上,還是在人眼雙目掃視下的注視點定位精度上,均具有一定的優勢。
本文將雙眼掃視運動中拍攝的眼部圖像作為研究對象,將瞳孔位置作為跟蹤目標,構建了一種基于雙眼同步運動特征約束的Kalman跟蹤算法。仿真實驗和實際注視點跟蹤實驗結果均驗證了本文提出的算法在魯棒性和快速性上均優于常速度Kalman濾波器以及滑動平均濾波器,對人機交互領域中的預測注視點位置定位跟蹤的準確性的改善也大有幫助。注視點跟蹤精度的提高,對進一步在心理學、醫學、商業界面評估與設計等人機交互領域中開展相關研究都具有重要意義。
[1] 張琳琳,蔣敏,唐曉微. 基于眨眼修正卡爾曼濾波的人眼跟蹤研究[J]. 計算機工程,2012,38(21):36-39.
[2] 李兵,戴爾晗. 基于人工神經網絡的視線跟蹤系統[J]. 計算機技術與發展,2015(4):98-101.
[3] Chang C J,Huang C W,Hu C W. Wearable Binocular Eye Tracking Targets in 3-D Environment Using 2-D Regression-Based Gaze Estimation[C]//IEEE International Conference on Consumer Electronics-Taiwan. Taiwan:IEEE,2016:1-2.
[4] 張琴. 基于瞳孔定位技術的視覺跟蹤系統的研究[J]. 微型機與應用,2016,35(4):54-56.
[5] 楊慶華,張達磊,荀一,等. 面向人機交互的眼動跟蹤方法研究[J]. 機電工程,2016,33(7):904-908.
[6] 鄒云海,關蒲駿,楊波,等. 基于FPGA與投影算法的快速眼動跟蹤系統實現[J]. 四川大學學報(工程科學版),2016,48(3):100-106.
[7] Zanetti M,Cecco M D,Fornaser A,et al. The Use of INTER-EYE for 3D Eye-Tracking Systematic Error Compensation[C]//International Symposium ELMAR-2016. Zadar:IEEE,2016:173-176.
[8] 朱小生,許爍. 基于卡爾曼濾波的運動目標速度測量[J]. 計量與測試技術,2016,4:9-12.
[9] 周承松,彭競,劉文祥,等. 速度自適應約束卡爾曼濾波方法[J]. 傳感技術學報,2016,29(8):1180-1185.
[10] 王江,付強,全權,等. 基于Kalman濾波和直方圖匹配的雙目視覺跟蹤[J]. 新型工業化,2013,3(2):23-33.
[11] 王麗,郝曉麗. 基于kalman濾波器和改進camshift算法的雙眼跟蹤[J]. 微電子學與計算機,2016,33(6):109-112.
[12] Chi J,Xie L,ZhangP,et al. Hybrid Particle and Kalman Filtering for Pupil Tracking in Active IR Illumination Gaze Tracking System[J]. Mathematical Problems in Engineering,2014,2014(8):11-14.
[13] Li D,Winfield D. Starburst:A Hybrid Algorithm for Video-Based Eye Tracking Combining Feature-Based and Model-Based Approaches[C]//IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Diego:IEEE,2005:79-87.
[14] Grewal M,Andrews A. Kalman Filtering:Theory and Practice with MATLAB. New York:Wiley-Interscience,2015:195-214.
[15] 毛曉波. 仿生機器眼運動系統建模與控制研究[D]. 鄭州大學,2011.
[16] Wang X,Ma X,QinB,et al. Control Strategy of Bionic Eyes Movement in Gaze Shifts[J]. Journal of System Simulation,2016,28(6):1380-1386.
[17] Jin Chun,Li Yaping. Estimation Method of the Fixation Point in Gaze Tracking System[J]. Science Technology and Engineering,2016,16(14):201-205.