胡 鍇, 穆平安, 黃世龍
(上海理工大學(xué) 光電信息與計算機工程學(xué)院,上海 200093)
視線追蹤技術(shù)是一種在人機交互方面具有發(fā)展前景的一項計算機視覺技術(shù)[1],通過使用視線追蹤技術(shù),可以幫助手臂殘疾的人士完成計算機的使用[2],為人們提供一種新的人機交互方式。另外,視線追蹤在注意力檢測、商品廣告吸引力評價[3]、人類行為學(xué)分析等方面也具有較好的發(fā)展前景。本文對基于角膜反射法[4~6]的視線追蹤系統(tǒng)進行研究,在此基礎(chǔ)上對瞳孔中心的定位算法進行改進,并提出一種基于徑向基插值法的視線落點校正方法來對視線落點進行校正,以此來提高視線落點追蹤的精度。
視線追蹤系統(tǒng)的硬件主要有:1個攝像頭、5個波長850 nm的紅外LED、顯示屏和計算機。
攝像頭位于屏幕前方,調(diào)整攝像頭方向使其對準使用者眼部區(qū)域,實驗環(huán)境演示如圖1所示。
圖1 實驗環(huán)境演示圖
攝像機輸出圖像的分辨率為640 pixel×480 pixel,攝像機鏡頭為焦距16 mm,視角20°的500萬像素?zé)o畸變鏡頭。紅外LED功率均為0.1 W,其中4個紅外LED分別位于顯示器屏幕的4個角上,稱為參照LED,1個紅外LED位固定在攝像頭鏡頭下方位置,稱為攝像頭LED。攝像頭內(nèi)裝有1個850 nm的窄帶濾波片,只允許波長850 nm左右的紅外輻射通過。測試者頭部距離屏幕距離約40 cm,屏幕尺寸為34 cm×19 cm,分辨率為1 920 pixel×1 080 pixel。
紅外輻射源在角膜上形成的反射光斑也被稱為普爾欽斑,該斑亮度高,易于識別和定位,并且在850 nm波長的紅外輻射照射下,虹膜區(qū)域的成像比可見光照射下的成像更加清晰,虹膜與瞳孔的灰度圖像對比度更為明顯,有利于后續(xù)瞳孔區(qū)域的定位和瞳孔中心計算。
通過攝像頭獲得圖像后,為了通過圖像中的信息計算視線在屏幕上的落點,首先需要在圖像中定位出瞳孔區(qū)域,然后在瞳孔區(qū)域中定位瞳孔中心點和參照LED的反射光斑的位置[7~9]。
瞳孔區(qū)域定位如圖2所示。首先對獲取的一幀圖像進行灰度化,再采用基于Hcar-like特征的AdaBoost級聯(lián)人眼檢測分類器進行人眼檢測,獲得人眼圖像如圖2(a)所示;再對獲取的人眼區(qū)域采用經(jīng)驗閾值進行二值化,使得瞳孔區(qū)域和其他區(qū)域分離出來,如圖2(b);對于閾值處理之后的圖像,進行開運算去除睫毛的干擾,然后對圖像中連通域的面積進行篩選,確定出瞳孔部分的連通域,如圖2(c)所示;最后以該連通域的重心為中心,截取出瞳孔區(qū)域圖像如圖2(d)。
圖2 瞳孔區(qū)域定位
對于瞳孔中心的定位:首先對第3.1節(jié)獲得的圖像進行基于經(jīng)驗閾值的二值化,將瞳孔和其他區(qū)域分離開,如圖3(a);之后對其進行邊緣檢測獲得邊緣輪廓圖像,如圖3(b),可以看到除了瞳孔邊緣輪廓外,還有反射光斑的邊緣和其他噪聲的邊緣;通過輪廓的面積篩選出瞳孔邊緣輪廓如圖3(c),從圖3(c)中可以觀察到,由于反射光斑的干擾,導(dǎo)致部分邊緣出現(xiàn)向內(nèi)凹陷的情況;如果直接對邊緣進行最小二乘法橢圓擬合會使得瞳孔中心定位產(chǎn)生較大的誤差。為了提高瞳孔中心定位精度,本文提出一種基于距離的邊緣點篩選方法剔除瞳孔的偽邊緣。
圖3 瞳孔輪廓提取
圖4 輪廓各點與圖像中心距離
用這種方法對瞳孔中心進行定位,見圖5。瞳孔邊緣點進行篩選后獲得的邊緣圖像如圖5(a)所示,可見通過該方法將內(nèi)凹的邊緣輪廓成功的剔除了。最后對圖5(a)中的點進行最小二乘橢圓擬合,獲得橢圓的中心位置如圖5(b)所示。
圖5 瞳孔中心定位
對于4個參照LED反射光斑的定位:首先對瞳孔區(qū)域圖像進行基于經(jīng)驗閾值的二值化,將紅外反射光斑和其余區(qū)域分離開如圖6所示。
圖6 亮斑的定位
定位其中面積最大的亮點,最大面積的亮點對應(yīng)攝像頭LED,因為該LED離人眼最近,所以形成的反射光斑也最大,為了剔除其余由于眼鏡反光帶來的干擾亮斑的影響,只對該亮點上方一定面積的矩形區(qū)域進行檢測,來定位4個參照LED的反射光斑。計算這5個LED光斑的重心來獲得它們的所對應(yīng)的位置坐標(biāo)。
獲得4個參照LED反射光斑所對應(yīng)的坐標(biāo)和瞳孔中心坐標(biāo)之后,通過交比不變性原理[10]計算視線的落點。
交比不變性是射影幾何中一項重要的基本定理,原理如下:如圖7所示,過點P放射出4條直線分別與直線l相交于A、B、C、D等4點, 與直線l1相交于A1、B1、C1、D1等4點。則存在如下交比不變關(guān)系:
圖7 交比不變性原理
(A,D;B,C)=(A1,D1;B1,C1)
(1)
其中:
(2)
(3)
圖8是視線落點計算模型,主要由3個平面構(gòu)成,一是顯示器屏幕平面,其中RI1、RI2、RI3、RI4為屏幕四角上的參照LED;二是角膜反射平面,在這里將角膜反射面理想化成了一個完美的平面,V1、V2、V3、V4為4個參照LED在角膜上的反射光斑;三是攝像機成像平面,U1、U2、U3、U4是參照LED的反射光斑在攝像機成像面上所成的像。P0為瞳孔中心,連接瞳孔中心和眼球球心形成一條直線,這條直線為眼球的光軸[11],將光軸的方向視為視線的方向,延長光軸直線交屏幕平面于點P,則P點即可視為視線的落點,P1為瞳孔中心在成像平面上所成的像。
圖8 視線落點計算模型
由于角膜平面上的各點是屏幕平面上各點的映射,將交比不變性原理推廣到三維空間中,則角膜平面上各點和屏幕平面上對應(yīng)各點之間存在交比不變關(guān)系。同理,角膜平面上各點和攝像機成像平面上對應(yīng)各點之間也存在交比不變關(guān)系。
圖9 成像平面交比模型
(4)
(5)
獲得了成像平面上參照LED組成的四邊形兩條邊上四點的交比值,再計算屏幕平面上對應(yīng)4點的交比值,通過這兩對平面之間的交比不變性,計算視線的落點。
圖10是屏幕平面交比模型,設(shè)屏幕長為w,高為h,P=(xp,yp)是4個是視線的落點,e是屏幕對角線交點,過點P做豎直線和水平線交直線段RI1RI2和RI2RI4于點N1、M1,過點e做豎直線和水平線與RI1RI2和RI2RI4于點N2和M2,則可知基點對RI1RI2和基點對RI2RI4的交比值如下:
圖10 屏幕平面交比模型
(6)
(7)
由交比不變性,屏幕平面上邊緣各點和角膜平面上對應(yīng)點之間存在相同的交比,角膜平面上各點和攝像機成像平面上對應(yīng)的各點之間存在相同的交比,則屏幕平面和成像平面之間存在如下關(guān)系:
(8)
(9)
由此即可計算的視線的粗略落點。
該系統(tǒng)預(yù)測的視線落點和實際的視線落點之間存在較大的誤差,這個誤差主要由兩個原因?qū)е碌模阂皇怯捎诮悄け砻媸莻€球面[12],而在視線落點計算模型中將其視為一個理想平面;二是由于人眼視軸和光軸之間存在一個夾角,且該角的大小因人而異[13],但該視線計算模型中未對視軸和光軸進行區(qū)分。為了提高視線落點追蹤系統(tǒng)的精度,需要通過兩次校正來減小誤差[14]。
為了消去角膜表面并非平面而導(dǎo)致的誤差,需要將參照LED的光斑位置映射到平面反射時的光斑位置。如圖11所示,Uri是參照LED在眼角膜上的實際反射光斑;Uvi是經(jīng)過映射之后的虛擬光斑;這里i=1,2,3,4;Up為瞳孔中心,Ur0是攝像頭LED的反射光斑。攝像頭LED發(fā)出的紅外輻射照射在角膜上,再經(jīng)角膜反射進入攝像頭,因為該LED在角膜上的入射和反射光路近乎平行,所以可以將該LED的光斑位置視為角膜和假想平面的切點,而切點位置不變,即可通過公式(10)校正其余光斑的位置,通常α>1,α<2.5。
圖11 Alpha參數(shù)校正
Uvi=Ur0+αi(Uri-Ur0)
i=1,2,3,4
(10)
為了獲得每個參照LED所對應(yīng)的參數(shù)αi,依次注視屏幕角上的每個LED光源,由于此時人眼直視LED,因此瞳孔中心點Up會與該LED的虛擬光斑Uvi重合,此時可以通過公式(11)獲得對應(yīng)參照LED的參數(shù)αi,
i=1,2,3,4
(11)
對于之后的每一幀圖像采用公式(10)對光斑位置進行校正從而完成映射。
為校正視軸和光軸夾角所產(chǎn)生的誤差,通過在預(yù)測的視線落點上添加一個位移矢量來其進行校正[15]:將屏幕均分為Y軸向6行X軸向8列共48個區(qū)域,將每個區(qū)域的中心作為校準點,依次注視每個校準點的中心以獲得每個點位置處的預(yù)測視線落點和實際視線落點的誤差值,將誤差值分解為X向誤差和Y向誤差,圖12為屏幕上每個校準點的X向誤差。
圖12 校準點的X軸向誤差
目前關(guān)于視線落點追蹤系統(tǒng)的校正研究效果較好的方法為基于區(qū)域的矢量校正法[16],視線落在哪個區(qū)域里,就用該區(qū)域的誤差矢量來對視線落點進行校正,當(dāng)視線落在某個區(qū)域的中心時,誤差最小,當(dāng)視線落點在區(qū)域的邊界時,誤差較大。
本文提出基于插值的矢量校正方法:對平面內(nèi)48個誤差值進行二維插值獲得插值曲面,使用該曲面對視線落點進行校正?;诟咚购瘮?shù)的徑向基插值方法[17],獲得的48個視線注視點為中心,建立48個高斯徑向基函數(shù):
φi(x,y)=e[(x-xi)2+(y-yi)]1/2
i=1,2…48
(12)
式中:xi和yi分別是第i個校準點的X坐標(biāo)和Y坐標(biāo)。
曲面插值函數(shù)為48個徑向基函數(shù)的線組合:
(13)
(14)
令φi,p=φi(xp,yp),i=1,2,3…48,則上式方程組可以改寫成式(15):
(15)
將式(15)代入公式(13)即可得到落點的X向坐標(biāo)校正函數(shù),圖13為獲得的插值曲面。同理,可計算得到落點的Y向坐標(biāo)校正函數(shù)。以插值曲面對應(yīng)的值作為校正值,對視線落點的X向和Y向坐標(biāo)進行校正。
圖13 X向誤差插值曲面
本文采用4種不同的校正方式對視線落點進行校正,并對校正后誤差的大小進行比較,4種校正方式包括:不對視線落點進行校正,只進行α參數(shù)校正,進行α參數(shù)校正后進行基于區(qū)域的矢量校正,再進行基于插值的矢量校正。測試者共10人,每位測試者用每種校正方式校正視線落點后,計算屏幕上隨機分布的60個位點處的誤差大小,計算并且保留60個位點的X向和Y向誤差的平均值。圖14為10個被試4種校正方式校正后X向誤差的對比圖。
由圖14可知基于插值的校正算法相較于基于區(qū)域的校正算法而言,對于X向誤差的校正效果更好;10個被試幾種方法校正前后誤差都減小了,但減小的幅度呈現(xiàn)出明顯的離散性,這種離散性主要是由于未進行校正的被試誤差呈現(xiàn)離散性導(dǎo)致的,推測是由于被試頭部與屏幕距離不一,使得10個被試間α參數(shù)相差較大導(dǎo)致的。
圖14 X向誤差對比
表1為4種校正方法對注視點的X向和Y向坐標(biāo)進行校正之后,預(yù)測的視線落點和實際視線落點之間誤差的平均值和方差。
表1 平均誤差和方差對比
基于插值的校正相對于基于區(qū)域的校正而言,X向誤差減小了35.8%,Y向誤差減小了53.3%,方差也相應(yīng)的明顯減小,追蹤效果更加穩(wěn)定。
對于經(jīng)過插值矢量校正之后的視線追蹤系統(tǒng),計算可得視線落點的X向平均誤差為1.64 mm,Y向平均誤差為1.70 mm。對于視線方向角的平均誤差X向為14′5″,Y向為14′36″。
本文主要對基于角膜反射法的視線追蹤系統(tǒng)的視線落點校正方法進行了研究,首先使用人眼檢測算法對人眼區(qū)域進行定位,再對連通域進行篩選定位瞳孔區(qū)域,對于瞳孔中心的定位,采用了輪廓點剔除的方法以提高定位的抗干擾能力,之后應(yīng)用交比不變性原理計算出視線在屏幕上的粗略落點,在誤差校準方面,應(yīng)用高斯徑向基插值的方法,來對視線落點的X向和Y向坐標(biāo)進行校正。實驗結(jié)果表明:改方法校正后X向誤差降低了35.8%,Y向誤差降低了53.3%,該方法可以有效地提高視線追蹤系統(tǒng)的精度。但該算法的視線落點校正過程過于復(fù)雜、耗時,有待進一步優(yōu)化。