一種基于單攝像頭單光源的視線追蹤方法
【專利摘要】本發(fā)明涉及一種基于單攝像頭單光源的視線追蹤方法,包括:數(shù)據(jù)采集步驟,具體為通過(guò)裝有攝像頭的感應(yīng)設(shè)備,采集人眼的圖像數(shù)據(jù);數(shù)據(jù)處理步驟,包括計(jì)算機(jī)接收采集的人眼數(shù)據(jù),通過(guò)計(jì)算機(jī)使用視線追蹤算法進(jìn)行分析和處理,并定位視線坐標(biāo);數(shù)據(jù)分析結(jié)果輸出步驟,接收數(shù)據(jù)處理步驟的分析處理結(jié)果并輸出到數(shù)字顯示頻顯示給客戶或打印機(jī)打印給客戶。本發(fā)明儀器設(shè)備簡(jiǎn)單,算法處理效率高,精確度高,處理頭動(dòng)范圍廣;用戶操作便捷、儀器使用舒適,人機(jī)交互更加趨于自然;設(shè)備制造成本低廉。
【專利說(shuō)明】一種基于單攝像頭單光源的視線追蹤方法
[0001]【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及視線追蹤【技術(shù)領(lǐng)域】,特別涉及一種基于單攝像頭單光源的視線追蹤方法。
【背景技術(shù)】
[0003]視線追蹤技術(shù)是眼動(dòng)儀的核心技術(shù),眼動(dòng)儀通過(guò)記錄人在處理視覺(jué)信息時(shí)的眼動(dòng)軌跡特征,廣泛用于視知覺(jué)、閱讀等方面研究。眼動(dòng)技術(shù)先后經(jīng)歷了觀察法、后像法、機(jī)械記錄法、光學(xué)記錄法、影像記錄法等多種演變,通過(guò)對(duì)眼動(dòng)軌跡的記錄從中提取如注視點(diǎn),注視時(shí)間和次數(shù),眼跳距離,瞳孔大小等數(shù)據(jù),從而研究眼動(dòng)軌跡。
[0004]目前,市場(chǎng)上基于視線追蹤的眼動(dòng)儀缺陷比較明顯:第一,成本太高,儀器太過(guò)復(fù)雜,不適用于中小型用戶;第二,精確度較低,處理操作單元非常大,而記錄的用戶操作非常少,并且要求用戶頸部以上保持靜止,對(duì)頭動(dòng)限制很大;第三,僅適用于醫(yī)學(xué)和心理學(xué),對(duì)用戶的普及度不高,使得使用率比較低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明就是針對(duì)上述【背景技術(shù)】中的不足之處,而提出一種基于單攝像頭單光源的視線追蹤方法,該方法及系統(tǒng)的追蹤精確度高,速度快,成本低等優(yōu)點(diǎn),使用方便,效果良好,且用戶體驗(yàn)更加輕松自然。
[0006]本發(fā)明為解決上述技術(shù)問(wèn)題,所提供的一種方法為:
[0007]一種基于單攝像頭單光源的視線追蹤方法,包括:
[0008]數(shù)據(jù)采集步驟,具體為通過(guò)裝有攝像頭的感應(yīng)設(shè)備,采集人眼的圖像數(shù)據(jù);
[0009]數(shù)據(jù)處理步驟,包括計(jì)算機(jī)接收采集的人眼數(shù)據(jù),通過(guò)計(jì)算機(jī)使用視線追蹤算法進(jìn)行分析和處理,并定位視線坐標(biāo);
[0010]數(shù)據(jù)分析結(jié)果輸出步驟,接收數(shù)據(jù)處理步驟的分析處理結(jié)果并輸出到數(shù)字顯示頻顯示給客戶或打印機(jī)打印給客戶。
[0011]按上述方法,所述數(shù)據(jù)處理步驟中的視線追蹤算法具體包括以下步驟:
[0012](I)圖像預(yù)處理:對(duì)攝像頭捕捉到的人眼圖像進(jìn)行桶形畸變校正,再將其轉(zhuǎn)化為灰度圖像,對(duì)灰度圖像進(jìn)行中值濾波和高斯模糊;
[0013](2)確定光斑搜索區(qū)域:在灰度圖像上尋找反射光斑粗略中心,在搜索范圍內(nèi)掃描圖像上的每個(gè)像素的灰度值,記錄搜索范圍內(nèi)像素灰度值最高點(diǎn)的灰度值H和坐標(biāo)(Xh, Yh),同時(shí)記錄像素灰度值最低點(diǎn)的灰度值L和坐標(biāo)(XI,Yl);
[0014](3)搜索光斑位置:以搜索到的像素灰度值最高點(diǎn)的坐標(biāo)(Xh,Yh)為中心,設(shè)定閾值T1,取第一方正形搜索窗口,在搜索窗口內(nèi)掃描每一個(gè)像素的灰度值,若該像素的灰度值大于閾值T1則以該像素為新的中心,設(shè)定閾值T2,取第二正方形搜索窗口,在該窗口內(nèi),掃描每個(gè)像素的灰度值,并計(jì)算小于閾值T2的像素的個(gè)數(shù),設(shè)定閾值T3,若小于閾值T2的像素的個(gè)數(shù)大于閾值T3則停止掃描并認(rèn)為該像素為檢測(cè)到的光斑,否則繼續(xù)掃描直到掃描完窗口內(nèi)所有像素為止,若掃描完第二窗口內(nèi)的所有像素均未檢測(cè)到光斑則認(rèn)為沒(méi)有檢測(cè)到光斑重新采集圖像進(jìn)行運(yùn)算;其中,Tl=搜索到的像素灰度值最高點(diǎn)的灰度值HX0.9,T2=搜索到的像素灰度值最低點(diǎn)的灰度值LX 1.2,T3=圖像長(zhǎng)度X0.1X圖像寬度X0.15X0.1?0.8 ;如果步驟(2)中得到的像素灰度值最高點(diǎn)(Xh,Yh)的灰度值H小于T1X0.5+T2,則認(rèn)為該圖像上沒(méi)有光斑,重復(fù)前述所有步驟直至確定圖像上有光斑;
[0015](4)計(jì)算光斑中心:以檢測(cè)到的光斑坐標(biāo)為圓心,設(shè)定光斑區(qū)域搜索范圍,即光斑為中心的15X15的窗口,逐個(gè)掃描區(qū)域內(nèi)的像素的灰度值,利用亮度加權(quán)算法,計(jì)算光斑的中心Cl ;
[0016](5)計(jì)算瞳孔灰度閾值:光斑中心Cl為中心,設(shè)定瞳孔搜索范圍,統(tǒng)計(jì)灰度直方圖,用貪心算法計(jì)算瞳孔灰度閾值、光斑灰度閾值,利用閾值調(diào)整算法,通過(guò)分析比較光斑閾值和瞳孔閾值對(duì)瞳孔閾值進(jìn)行調(diào)整;
[0017](6)粗略計(jì)算瞳孔中心位置:以光斑中心為中心,設(shè)定瞳孔搜索范圍,根據(jù)灰度直方圖計(jì)算得到的瞳孔灰度閾值,利用重心法計(jì)算瞳孔中心,若通過(guò)計(jì)算未得到瞳孔中心坐標(biāo)則認(rèn)為未檢測(cè)到瞳孔,重新采集人眼圖像,并從步驟一開(kāi)始重新進(jìn)行計(jì)算,直至計(jì)算得到瞳孔中心坐標(biāo);若計(jì)算得到瞳孔中心坐標(biāo)則認(rèn)為檢測(cè)到瞳孔,并比較新、舊瞳孔中心的坐標(biāo),第一次計(jì)算時(shí)認(rèn)為光斑中心坐標(biāo)等于舊的瞳孔中心坐標(biāo),若新瞳孔坐標(biāo)橫、縱坐標(biāo)與對(duì)應(yīng)舊瞳孔坐標(biāo)橫、縱坐標(biāo)的差值均小于1,則停止運(yùn)算,否則以該坐標(biāo)為瞳孔中心坐標(biāo);若新瞳孔坐標(biāo)橫、縱坐標(biāo)與對(duì)應(yīng)丨H瞳孔坐標(biāo)橫、縱坐標(biāo)的差值中任何一值大于I,則以新的瞳孔中心坐標(biāo)為中心,縮小搜索窗口,迭代運(yùn)算瞳孔中心,直到新舊瞳孔中心坐標(biāo)的橫縱差值均小于I為止,若瞳孔中心坐標(biāo)始終無(wú)法收斂則認(rèn)為未檢測(cè)到瞳孔,重新采集人眼圖像并從步驟一開(kāi)始重新進(jìn)行計(jì)算;
[0018](7)剔除虛假光斑:計(jì)算瞳孔中心到光斑中心的距離,若該距離大于100像素,則修改原光斑范圍內(nèi)像素的灰度值,依據(jù)步驟(4)計(jì)算的得到的光斑中心Cl,以Cl為中心在15 X 15窗口內(nèi)將窗口內(nèi)的像素的灰度值修改為當(dāng)前像素灰度值X 0.5,重新計(jì)算光斑中心和瞳孔中心,以瞳孔中心為中心設(shè)定二值化區(qū)域,利用瞳孔灰度閾值進(jìn)行局部二值化,并統(tǒng)計(jì)二值化區(qū)域內(nèi)小于瞳孔灰度閾值的像素個(gè)數(shù);
[0019](8)邊緣檢測(cè):若二值化區(qū)域內(nèi)小于瞳孔灰度閾值的像素個(gè)數(shù)小于搜索區(qū)域面積X0.1或二值化區(qū)域內(nèi)小于瞳孔灰度閾值的像素個(gè)數(shù)大于搜索區(qū)域面積X0.5則認(rèn)為沒(méi)有檢測(cè)到瞳孔,重新采集人眼圖像,重新計(jì)算,利用9X9模板的索貝爾算子進(jìn)行瞳孔區(qū)域的邊緣檢測(cè);
[0020](9)瞳孔邊緣點(diǎn)提取:以瞳孔中心為中心,做一條直線,從瞳孔中心出發(fā)分別沿直線的兩個(gè)方向,掃描直線上的像素的灰度值,若灰度值為O則繼續(xù)掃描,若灰度值為255,以該像素坐標(biāo)為中心設(shè)定窗口,窗口長(zhǎng):圖像長(zhǎng)度X0、2,窗口寬:圖像寬度X0.4.計(jì)算瞳孔邊緣點(diǎn)坐標(biāo),利用得到的重心坐標(biāo)沿梯度方向上將掃描直線穿過(guò)的相關(guān)點(diǎn)的梯度值變化擬合成一條二次曲線y=aX~2+bX+C,通過(guò)令曲線導(dǎo)數(shù)為零的條件建立方程來(lái)確定亞像素邊界點(diǎn)的位置,并將得到的瞳孔邊緣點(diǎn)坐標(biāo)加入瞳孔邊緣點(diǎn)隊(duì)列,改變直線角度,使直線旋轉(zhuǎn)掃描180度;
[0021](10)瞳孔邊緣點(diǎn)篩選并擬合橢圓:利用得到的瞳孔邊緣點(diǎn)坐標(biāo),計(jì)算瞳孔邊緣點(diǎn)到瞳孔中心的距離,并計(jì)算瞳孔邊緣點(diǎn)到瞳孔中心的平均距離;將每個(gè)邊緣點(diǎn)計(jì)算得到的至幢孔中心的距離與平均距離進(jìn)行比值運(yùn)算,若該比值不在閾值τ5范圍,內(nèi)則排除該邊緣點(diǎn),迭代計(jì)算平均距離直至平均距離穩(wěn)定為止;將篩選過(guò)的瞳孔邊緣點(diǎn),利用最小二乘法,擬合最優(yōu)橢圓(0.7〈Τ5〈1.2);
[0022](11)計(jì)算瞳孔邊緣點(diǎn)進(jìn)一步優(yōu)化:以最優(yōu)橢圓中心為平面坐標(biāo)系的中心,以橢圓的長(zhǎng)軸為y軸,以橢圓的短軸為X軸,計(jì)算瞳孔邊緣點(diǎn)在以橢圓中心為原點(diǎn)的平面坐標(biāo)系內(nèi)的坐標(biāo),計(jì)算與瞳孔邊緣點(diǎn)擁有相同橫坐標(biāo)的最優(yōu)橢圓上的點(diǎn)對(duì)應(yīng)的縱坐標(biāo),將計(jì)算得到的縱坐標(biāo)與對(duì)應(yīng)瞳孔邊緣點(diǎn)的縱坐標(biāo)進(jìn)行比值運(yùn)算,將比值與閾值T6比較,若在閾值Τ6范圍,0〈Τ6〈0.15,內(nèi)則加入新的瞳孔邊緣隊(duì)列,若不在范圍內(nèi)則不加入新的瞳孔邊緣隊(duì)列;
[0023](12)計(jì)算視線坐標(biāo):基于新的瞳孔邊緣點(diǎn)隊(duì)列,利用最小二乘法,擬合最優(yōu)橢圓,第二次擬合的橢圓中心和光斑中心計(jì)算PCR向量,即瞳孔中心與光斑中心連線形成的向量,設(shè)瞳孔中心為(xl,yl),光斑中心為“2,72),則?0?向量為&112,71-72),根據(jù)?0?向量和人眼參數(shù),帶入視線計(jì)算公式,計(jì)算視線坐標(biāo)。
[0024]按上述方案,第一正方形搜索窗口選為:長(zhǎng)=圖像長(zhǎng)度X0.15,寬=圖像寬度 X0.2。
[0025]按上述方案,第二正方形搜索窗口選為:長(zhǎng)=圖像長(zhǎng)度X0.1,寬=圖像寬度 X0.15。
[0026]按上述方案,所述T3確定為,圖像長(zhǎng)度X0.1X圖像寬度Χ0.15X0.3.[0027]按上述方案,所述瞳孔搜索范圍優(yōu)選為:長(zhǎng)=圖像長(zhǎng)度Χ0.2,寬=圖像寬度 Χ0.3。
[0028]按上述方案:步驟剔除虛假光斑中的修改元光斑范圍內(nèi)的像素的灰度值具體指:以光斑中心C1為中心,在長(zhǎng)=圖像長(zhǎng)度Χ0.02,寬=`圖像寬度Χ0.03區(qū)域內(nèi),將窗口內(nèi)的像素的灰度值修改為當(dāng)前像素灰度值Χ0.5。
[0029]按上述方案,所述感應(yīng)設(shè)備由嵌入在眼鏡的鏡框上的攝像頭,與眼鏡一起構(gòu)成。
[0030]按上述方案,步驟計(jì)算瞳孔灰度閾值所述所述通過(guò)分析比較光斑閾值和瞳孔閾值對(duì)瞳孔閾值進(jìn)行調(diào)整,具體為:若瞳孔閾值小于光斑閾值Χ0.4,則將瞳孔閾值調(diào)整為,新瞳孔閾值=(舊瞳孔閾值+光斑灰度閾值X 0.5)/2 ;若瞳孔閾值大于光斑閾值X 0.6,則將瞳孔閾值調(diào)整為,新瞳孔閾值=(舊瞳孔閾值+光斑灰度閾值X0.5)/2 ;其他情況下,瞳孔閾值不進(jìn)行調(diào)整
[0031]按上述方案,所述感應(yīng)設(shè)備由嵌入在眼鏡的鏡框上的攝像頭,與眼鏡一起構(gòu)成。
[0032]本發(fā)明與傳統(tǒng)的視線追蹤方法相比其優(yōu)點(diǎn)在于:儀器設(shè)備簡(jiǎn)單,算法處理效率高,精確度高,處理頭動(dòng)范圍廣;用戶操作便捷、儀器使用舒適,人機(jī)交互更加趨于自然;設(shè)備制造成本低廉。
[0033]注:本發(fā)明的圖形的長(zhǎng)和寬的數(shù)值單位為像素。
【專利附圖】
【附圖說(shuō)明】
[0034]圖1攝像機(jī)采集到的原始人眼圖像;
[0035]圖2人眼圖像預(yù)處理;
[0036]圖3角膜反射光斑搜索范圍;
[0037]圖4定位角膜反射光斑;[0038]圖5a精確計(jì)算角膜反射光斑中心算法的計(jì)算區(qū)域;
[0039]圖5b角膜反射光斑中心;
[0040]圖6人眼圖像的灰度直方圖,其中黑色豎線為計(jì)算的瞳孔閾值;
[0041]圖7a瞳孔中心區(qū)域圖其中黃色方框?yàn)榈谝淮斡?jì)算瞳孔中心的搜索區(qū)域,紫色的方框?yàn)楦鶕?jù)算法不斷進(jìn)行調(diào)整后的計(jì)算瞳孔中心的搜索區(qū)域;
[0042]圖7b用計(jì)算得到的瞳孔灰度閾值對(duì)瞳孔搜索區(qū)域進(jìn)行二值化后的結(jié)果圖,其中,最小的方框內(nèi)只有包含二值化后的橢圓型瞳孔,在搜索區(qū)域變化的過(guò)程中將瞳孔上方由于眼瞼、睫毛和圖像噪聲造成的虛假瞳孔像素點(diǎn)全部剔除;
[0043]圖7c最終粗算后的瞳孔中心區(qū)域圖,其中,紫色的方框?yàn)楦鶕?jù)算法不斷進(jìn)行調(diào)整后的計(jì)算瞳孔中心的搜索區(qū)域;
[0044]圖8a用索貝爾算子進(jìn)行邊緣檢測(cè)后的結(jié)果圖;
[0045]圖Sb去除眼瞼,睫毛,反射光斑這些虛假瞳孔邊緣之后的瞳孔邊緣檢測(cè)結(jié)果;
[0046]圖9a以步驟6計(jì)算的瞳孔中心為中心,利用掃描線算法,讓掃描線分別沿不同的方向搜索瞳孔索貝爾算子檢測(cè)到的瞳孔邊緣點(diǎn)模擬圖;
[0047]圖9b掃描線檢測(cè)到瞳孔邊緣點(diǎn)后,精確計(jì)算瞳孔亞像素邊緣點(diǎn)的搜索區(qū)域圖;
[0048]圖1Oa瞳孔邊緣點(diǎn)篩選圖;
[0049]圖1Ob使用未經(jīng)篩選的瞳孔邊緣點(diǎn)使用最小二乘法進(jìn)行橢圓擬合后的結(jié)果圖;
[0050]圖1Oc使用平均距離進(jìn)行瞳孔邊緣點(diǎn)篩選后進(jìn)行橢圓擬合后的結(jié)果圖;
[0051]圖11使用橢圓方程進(jìn)行瞳孔邊緣點(diǎn)篩選的篩選圖;
[0052]圖12a使用經(jīng)過(guò)兩次篩選后的瞳孔邊緣點(diǎn)進(jìn)行橢圓擬合后的結(jié)果圖,其中,紫色的圓點(diǎn)分別為瞳孔中心和反射光斑中心;
[0053]圖12b瞳孔中心到反射光斑中心的PCR圖,其中,紫色箭頭表示瞳孔中心到反射光斑中心形成的PCR向量;
[0054]圖13本發(fā)明檢測(cè)方法流程圖;
[0055]圖14感應(yīng)設(shè)備和眼鏡鏡框的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0056]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限制本發(fā)明。
[0057]圖13示出了本發(fā)明檢測(cè)方法流程圖,圖1至圖12b示出了本發(fā)明相關(guān)步驟所對(duì)應(yīng)的影像圖。
[0058]感應(yīng)設(shè)備由嵌入在眼鏡I的鏡框上的攝像頭3 —起構(gòu)成,如圖14所示,通過(guò)感應(yīng)設(shè)備,采集人眼的圖像數(shù)據(jù)圖1所示;接收采集的人眼數(shù)據(jù),使用視線追蹤算法進(jìn)行分析和處理,并定位視線坐標(biāo);接收數(shù)據(jù)處理步驟的分析處理結(jié)果并輸出給用戶,其輸出方式可以使終端顯示器顯示或打印機(jī)打印。
[0059]所述數(shù)據(jù)處理步驟中的視線追蹤算法具體包括以下步驟:
[0060](I)圖像預(yù)處理:對(duì)攝像頭捕捉到的人眼圖像進(jìn)行桶形畸變校正,再將其轉(zhuǎn)化為灰度圖像,對(duì)灰度圖像進(jìn)行中值濾波和高斯模糊,如圖2所示;[0061](2)確定光斑搜索區(qū)域:在灰度圖像上尋找反射光斑粗略中心,如圖3所示,紫色方框?yàn)榇_定的搜索方位,在搜索范圍內(nèi)掃描圖像上的每個(gè)像素的灰度值,記錄搜索范圍內(nèi)像素灰度值最高點(diǎn)的灰度值Η和坐標(biāo)(Xh,Yh),同時(shí)記錄像素灰度值最低點(diǎn)的灰度值L和坐標(biāo)(XI,Y1);
[0062](3)搜索光斑位置:以搜索到的像素灰度值最高點(diǎn)的坐標(biāo)(Xh,Yh)為中心,設(shè)定閾值?\,取第一方正形搜索窗口,長(zhǎng)=圖像長(zhǎng)度X 0.15,寬=圖像寬度X 0.2,在搜索窗口內(nèi)掃描每一個(gè)像素的灰度值,若該像素的灰度值大于閾值!\則以該像素為新的中心,設(shè)定閾值Τ2,取第二正方形搜索窗口,長(zhǎng)=圖像長(zhǎng)度Χ0.1,寬=圖像寬度Χ0.15,在該窗口內(nèi),掃描每個(gè)像素的灰度值,并計(jì)算小于閾值Τ2的像素的個(gè)數(shù),設(shè)定閾值Τ3,若小于閾值Τ2的像素的個(gè)數(shù)大于閾值Τ3則停止掃描并認(rèn)為該像素為檢測(cè)到的光斑,如圖4四所示,紫色標(biāo)記對(duì)光斑進(jìn)行標(biāo)記定位;否則繼續(xù)掃描直到掃描完窗口內(nèi)所有像素為止,若掃描完第二窗口內(nèi)的所有像素均未檢測(cè)到光斑則認(rèn)為沒(méi)有檢測(cè)到光斑重新采集圖像進(jìn)行運(yùn)算;其中,Tl=搜索到的像素灰度值最高點(diǎn)的灰度值ΗΧ0.9,Τ2=搜索到的像素灰度值最低點(diǎn)的灰度值LX 1.2,Τ3=圖像長(zhǎng)度Χ0.1X圖像寬度Χ0.15X0.3 ;如果步驟(2)中得到的像素灰度值最高點(diǎn)(Xh, Yh)的灰度值Η小于ΤΙ X0.5+T2,則認(rèn)為該圖像上沒(méi)有光斑,重復(fù)前述所有步驟直至確定圖像上有光斑;
[0063](4)計(jì)算光斑中心:以檢測(cè)到的光斑坐標(biāo)為圓心,設(shè)定光斑區(qū)域搜索范圍,即光斑為中心的15X15的窗口,如圖5a所示,逐個(gè)掃描區(qū)域內(nèi)的像素的灰度值,利用亮度加權(quán)算法,計(jì)算光斑的中心C1,如圖5b所示;
[0064](5)計(jì)算瞳孔灰度閾值:光斑中心C1為中心,設(shè)定瞳孔搜索范圍為長(zhǎng)=圖像長(zhǎng)度X0.2,寬=圖像寬度X0.3,在該范圍內(nèi)統(tǒng)計(jì)灰度直方圖,如圖6所示,用貪心算法計(jì)算瞳孔灰度閾值、光斑灰度閾值,利用閾值調(diào)整算法,通過(guò)分析比較光斑閾值和瞳孔閾值對(duì)瞳孔閾值進(jìn)行調(diào)整,具體調(diào)整原則為,若瞳孔閾值小于光斑閾值X0.4,則將瞳孔閾值調(diào)整為,新瞳孔閾值=(舊瞳孔閾值+光斑灰度閾值X 0.5)/2 ;若瞳孔閾值大于光斑閾值X0.6,則將瞳孔閾值調(diào)整為,新瞳孔閾`值=(舊瞳孔閾值+光斑灰度閾值X0.5)/2 ;其他情況下,瞳孔閾值不進(jìn)行調(diào)整;
[0065](6)粗略計(jì)算瞳孔中心位置:以光斑中心為中心,設(shè)定瞳孔搜索范圍,根據(jù)灰度直方圖計(jì)算得到的瞳孔灰度閾值,利用重心法計(jì)算瞳孔中心,若通過(guò)計(jì)算未得到瞳孔中心坐標(biāo)則認(rèn)為未檢測(cè)到瞳孔,重新采集人眼圖像,并從步驟一開(kāi)始重新進(jìn)行計(jì)算,直至計(jì)算得到瞳孔中心坐標(biāo);若計(jì)算得到瞳孔中心坐標(biāo)則認(rèn)為檢測(cè)到瞳孔,并比較新、舊瞳孔中心的坐標(biāo),第一次計(jì)算時(shí)認(rèn)為光斑中心坐標(biāo)等于舊的瞳孔中心坐標(biāo),,若新瞳孔坐標(biāo)橫、縱坐標(biāo)與對(duì)應(yīng)舊瞳孔坐標(biāo)橫、縱坐標(biāo)的差值均小于1,則停止運(yùn)算,采集圖像過(guò)程如圖7a所示,否則以該坐標(biāo)為瞳孔中心坐標(biāo);若新瞳孔坐標(biāo)橫、縱坐標(biāo)與對(duì)應(yīng)丨日瞳孔坐標(biāo)橫、縱坐標(biāo)的差值中任何一值大于1,則以新的瞳孔中心坐標(biāo)為中心,縮小搜索窗口,迭代運(yùn)算瞳孔中心,直到新舊瞳孔中心坐標(biāo)的橫縱差值均小于1為止,整個(gè)過(guò)程如圖7b、圖7c所示,若瞳孔中心坐標(biāo)始終無(wú)法收斂則認(rèn)為未檢測(cè)到瞳孔,重新采集人眼圖像并從步驟一開(kāi)始重新進(jìn)行計(jì)算;需要說(shuō)明的是,圖7b進(jìn)而了局部二值化,是為了展示瞳孔搜索區(qū)域變化的過(guò)程,最后最小的框體內(nèi)只有瞳孔,沒(méi)有其他噪聲的干擾,說(shuō)明這個(gè)算法是有效的。
[0066](7)剔除虛假光斑:計(jì)算瞳孔中心到光斑中心的距離,若該距離大于100像素,則修改原光斑范圍內(nèi)像素的灰度值,優(yōu)選的,以光斑中心Cl為中心,在長(zhǎng)=圖像長(zhǎng)度X0.02,寬=圖像寬度X 0.03區(qū)域內(nèi),將窗口內(nèi)的像素的灰度值修改為當(dāng)前像素灰度值X 0.5,依據(jù)步驟(4)計(jì)算的得到的光斑中心Cl,以Cl為中心在15X15窗口內(nèi)將窗口內(nèi)的像素的灰度值修改為當(dāng)前像素灰度值X0.5,重新計(jì)算光斑中心和瞳孔中心,以瞳孔中心為中心設(shè)定二值化區(qū)域,利用瞳孔灰度閾值進(jìn)行局部二值化,并統(tǒng)計(jì)二值化區(qū)域內(nèi)小于瞳孔灰度閾值的像素個(gè)數(shù);
[0067](8)邊緣檢測(cè):若二值化區(qū)域內(nèi)小于瞳孔灰度閾值的像素個(gè)數(shù)小于搜索區(qū)域面積X0.1或二值化區(qū)域內(nèi)小于瞳孔灰度閾值的像素個(gè)數(shù)大于搜索區(qū)域面積X0.5則認(rèn)為沒(méi)有檢測(cè)到瞳孔,重新采集人眼圖像,重新計(jì)算,利用9X9模板的索貝爾算子進(jìn)行瞳孔區(qū)域的邊緣檢測(cè),如圖8a、圖8b所示;
[0068](9)瞳孔邊緣點(diǎn)提取:以瞳孔中心為中心,做一條直線,從瞳孔中心出發(fā)分別沿直線的兩個(gè)方向,掃描直線上的像素的灰度值,圖9a所不,若灰度值為O則繼續(xù)掃描,若灰度值為255,以該像素坐標(biāo)為中心設(shè)定窗口,窗口長(zhǎng):圖像長(zhǎng)度X0、2,窗口寬:圖像寬度X0.4.計(jì)算瞳孔邊緣點(diǎn)坐標(biāo),利用得到的重心坐標(biāo)沿梯度方向上將掃描直線穿過(guò)的相關(guān)點(diǎn)的梯度值變化擬合成一條二次曲線y=aX~2+bX+C,通過(guò)令曲線導(dǎo)數(shù)為零的條件建立方程來(lái)確定亞像素邊界點(diǎn)的位置,并將得到的瞳孔邊緣點(diǎn)坐標(biāo)加入瞳孔邊緣點(diǎn)隊(duì)列,改變直線角度,使直線旋轉(zhuǎn)掃描180度,結(jié)果如圖9b所示;
[0069](10)瞳孔邊緣點(diǎn)篩選并擬合橢圓:利用得到的瞳孔邊緣點(diǎn)坐標(biāo),計(jì)算瞳孔邊緣點(diǎn)到瞳孔中心的距離,并計(jì)算瞳孔邊緣點(diǎn)到瞳孔中心的平均距離;將每個(gè)邊緣點(diǎn)計(jì)算得到的到瞳孔中心的距離與平均距離進(jìn)行比值運(yùn)算,若該比值不在閾值T5范圍,內(nèi)則排除該邊緣點(diǎn),迭代計(jì)算平均距離直至平均距離穩(wěn)定為止,篩選結(jié)果如圖1Oa所示;將篩選過(guò)的瞳孔邊緣點(diǎn),利用最小二乘法,擬合最優(yōu)橢圓(0.7〈T5〈1.2),擬合結(jié)果如圖1Ob所示;
[0070](11)計(jì)算瞳孔邊緣點(diǎn)進(jìn)一步優(yōu)化:以最優(yōu)橢圓中心為平面坐標(biāo)系的中心,以橢圓的長(zhǎng)軸為y軸,以橢圓的短軸為X軸,計(jì)算瞳孔邊緣點(diǎn)在以橢圓中心為原點(diǎn)的平面坐標(biāo)系內(nèi)的坐標(biāo),計(jì)算與瞳孔邊緣點(diǎn)擁有相同橫坐標(biāo)的最優(yōu)橢圓上的點(diǎn)對(duì)應(yīng)的縱坐標(biāo),將計(jì)算得到的縱坐標(biāo)與對(duì)應(yīng)瞳孔邊緣點(diǎn)的縱坐標(biāo)進(jìn)行比值運(yùn)算,將比值與閾值T6比較,若在閾值T6范圍,0〈T6〈0.15,內(nèi)則加入新的瞳孔邊緣隊(duì)列,若不在范圍內(nèi)則不加入新的瞳孔邊緣隊(duì)列,篩選結(jié)果如圖11所示;
[0071](12)計(jì)算視線坐標(biāo):基于新的瞳孔邊緣點(diǎn)隊(duì)列,利用最小二乘法,擬合最優(yōu)橢圓,圖12a為示例圖,第二次擬合的橢圓中心和光斑中心計(jì)算PCR向量,即瞳孔中心與光斑中心連線形成的向量,設(shè)瞳孔中心為(xl,yl),光斑中心為(x2,y2),則PCR向量為(xl-x2, yl_y2),根據(jù)PCR向量和人眼參數(shù),帶入視線計(jì)算公式,計(jì)算視線坐標(biāo),如圖12b所
/Jn ο
【權(quán)利要求】
1.一種基于單攝像頭單光源的視線追蹤方法,包括: 數(shù)據(jù)采集步驟,具體為通過(guò)裝有攝像頭的感應(yīng)設(shè)備,采集人眼的圖像數(shù)據(jù); 數(shù)據(jù)處理步驟,包括計(jì)算機(jī)接收采集的人眼數(shù)據(jù),通過(guò)計(jì)算機(jī)使用視線追蹤算法進(jìn)行分析和處理,并定位視線坐標(biāo); 數(shù)據(jù)分析結(jié)果輸出步驟,接收數(shù)據(jù)處理步驟的分析處理結(jié)果并輸出到數(shù)字顯示頻顯示給客戶或打印機(jī)打印給客戶。
2.根據(jù)權(quán)利要求1所述基于單攝像頭單光源的視線追蹤方法,其特征在于:所述數(shù)據(jù)處理步驟中的視線追蹤算法具體包括以下步驟: (1)圖像預(yù)處理:對(duì)攝像頭捕捉到的人眼圖像進(jìn)行桶形畸變校正,再將其轉(zhuǎn)化為灰度圖像,對(duì)灰度圖像進(jìn)行中值濾波和高斯模糊; (2)確定光斑搜索區(qū)域:在灰度圖像上尋找反射光斑粗略中心,在搜索范圍內(nèi)掃描圖像上的每個(gè)像素的灰度值,記錄搜索范圍內(nèi)像素灰度值最高點(diǎn)的灰度值H和坐標(biāo)(Xh,Yh),同時(shí)記錄像素灰度值最低點(diǎn)的灰度值L和坐標(biāo)(XI,Yl); (3)搜索光斑位置:以搜索到的像素灰度值最高點(diǎn)的坐標(biāo)(Xh,Yh)為中心,設(shè)定閾值T1,取第一方正形搜索窗口,在搜索窗口內(nèi)掃描每一個(gè)像素的灰度值,若該像素的灰度值大于閾值T1則以該像素為新的中心,設(shè)定閾值T2,取第二正方形搜索窗口,在該窗口內(nèi),掃描每個(gè)像素的灰度值,并計(jì)算小于閾值T2的像素的個(gè)數(shù),設(shè)定閾值T3,若小于閾值T2的像素的個(gè)數(shù)大于閾值T3則停止掃描并認(rèn)為該像素為檢測(cè)到的光斑,否則繼續(xù)掃描直到掃描完窗口內(nèi)所有像素為止,若掃描完第二窗口內(nèi)的所有像素均未檢測(cè)到光斑則認(rèn)為沒(méi)有檢測(cè)到光斑重新采集圖 像進(jìn)行運(yùn)算;其中,Tl=搜索到的像素灰度值最高點(diǎn)的灰度值HX0.9,T2=搜索到的像素灰度值最低點(diǎn)的灰度值LX 1.2,T3=圖像長(zhǎng)度X0.1X圖像寬度X0.15X0.1~0.8 ;如果步驟(2)中得到的像素灰度值最高點(diǎn)(Xh,Yh)的灰度值H小于T1X0.5+T2,則認(rèn)為該圖像上沒(méi)有光斑,重復(fù)前述所有步驟直至確定圖像上有光斑; (4)計(jì)算光斑中心:以檢測(cè)到的光斑坐標(biāo)為圓心,設(shè)定光斑區(qū)域搜索范圍,即光斑為中心的15X15的窗口,逐個(gè)掃描區(qū)域內(nèi)的像素的灰度值,利用亮度加權(quán)算法,計(jì)算光斑的中心Cl ; (5)計(jì)算瞳孔灰度閾值:光斑中心Cl為中心,設(shè)定瞳孔搜索范圍,統(tǒng)計(jì)灰度直方圖,用貪心算法計(jì)算瞳孔灰度閾值、光斑灰度閾值,利用閾值調(diào)整算法,通過(guò)分析比較光斑閾值和瞳孔閾值對(duì)瞳孔閾值進(jìn)行調(diào)整; (6)粗略計(jì)算瞳孔中心位置:以光斑中心為中心,設(shè)定瞳孔搜索范圍,根據(jù)灰度直方圖計(jì)算得到的瞳孔灰度閾值,利用重心法計(jì)算瞳孔中心,若通過(guò)計(jì)算未得到瞳孔中心坐標(biāo)則認(rèn)為未檢測(cè)到瞳孔,重新采集人眼圖像,并從步驟一開(kāi)始重新進(jìn)行計(jì)算,直至計(jì)算得到瞳孔中心坐標(biāo);若計(jì)算得到瞳孔中心坐標(biāo)則認(rèn)為檢測(cè)到瞳孔,并比較新、舊瞳孔中心的坐標(biāo),第一次計(jì)算時(shí)認(rèn)為光斑中心坐標(biāo)等于舊的瞳孔中心坐標(biāo),若新瞳孔坐標(biāo)橫、縱坐標(biāo)與對(duì)應(yīng)舊瞳孔坐標(biāo)橫、縱坐標(biāo)的差值均小于1,則停止運(yùn)算,否則以該坐標(biāo)為瞳孔中心坐標(biāo);若新瞳孔坐標(biāo)橫、縱坐標(biāo)與對(duì)應(yīng)舊瞳孔坐標(biāo)橫、縱坐標(biāo)的差值中任何一值大于1,則以新的瞳孔中心坐標(biāo)為中心,縮小搜索窗口,迭代運(yùn)算瞳孔中心,直到新舊瞳孔中心坐標(biāo)的橫縱差值均小于I為止,若瞳孔中心坐標(biāo)始終無(wú)法收斂則認(rèn)為未檢測(cè)到瞳孔,重新采集人眼圖像并從步驟一開(kāi)始重新進(jìn)行計(jì)算;(7)剔除虛假光斑:計(jì)算瞳孔中心到光斑中心的距離,若該距離大于100像素,則修改原光斑范圍內(nèi)像素的灰度值,依據(jù)步驟(4)計(jì)算的得到的光斑中心Cl,以Cl為中心在15X15窗口內(nèi)將窗口內(nèi)的像素的灰度值修改為當(dāng)前像素灰度值X0.5,重新計(jì)算光斑中心和瞳孔中心,以瞳孔中心為中心設(shè)定二值化區(qū)域,利用瞳孔灰度閾值進(jìn)行局部二值化,并統(tǒng)計(jì)二值化區(qū)域內(nèi)小于瞳孔灰度閾值的像素個(gè)數(shù); (8)邊緣檢測(cè):若二值化區(qū)域內(nèi)小于瞳孔灰度閾值的像素個(gè)數(shù)小于搜索區(qū)域面積X0.1或二值化區(qū)域內(nèi)小于瞳孔灰度閾值的像素個(gè)數(shù)大于搜索區(qū)域面積X0.5則認(rèn)為沒(méi)有檢測(cè)到瞳孔,重新采集人眼圖像,重新計(jì)算,利用9X9模板的索貝爾算子進(jìn)行瞳孔區(qū)域的邊緣檢測(cè); (9)瞳孔邊緣點(diǎn)提取:以瞳孔中心為中心,做一條直線,從瞳孔中心出發(fā)分別沿直線的兩個(gè)方向,掃描直線上的像素的灰度值,若灰度值為O則繼續(xù)掃描,若灰度值為255,以該像素坐標(biāo)為中心設(shè)定窗口,窗口長(zhǎng):圖像長(zhǎng)度X0、2,窗口寬:圖像寬度X0.4.計(jì)算瞳孔邊緣點(diǎn)坐標(biāo),利用得到的重心坐標(biāo)沿梯度方向上將掃描直線穿過(guò)的相關(guān)點(diǎn)的梯度值變化擬合成一條二次曲線y=aX~2+bX+C,通過(guò)令曲線導(dǎo)數(shù)為零的條件建立方程來(lái)確定亞像素邊界點(diǎn)的位置,并將得到的瞳孔邊緣點(diǎn)坐標(biāo)加入瞳孔邊緣點(diǎn)隊(duì)列,改變直線角度,使直線旋轉(zhuǎn)掃描.180 度; (10)瞳孔邊緣點(diǎn)篩選并擬合橢圓:利用得到的瞳孔邊緣點(diǎn)坐標(biāo),計(jì)算瞳孔邊緣點(diǎn)到瞳孔中心的距離,并計(jì)算瞳孔邊緣點(diǎn)到瞳孔中心的平均距離;將每個(gè)邊緣點(diǎn)計(jì)算得到的到瞳孔中心的距離與平均距離進(jìn)行 比值運(yùn)算,若該比值不在閾值T5范圍,內(nèi)則排除該邊緣點(diǎn),迭代計(jì)算平均距離直至平均距離穩(wěn)定為止;將篩選過(guò)的瞳孔邊緣點(diǎn),利用最小二乘法,擬合最優(yōu)橢圓(0.7〈Τ5〈1.2); (11)計(jì)算瞳孔邊緣點(diǎn)進(jìn)一步優(yōu)化:以最優(yōu)橢圓中心為平面坐標(biāo)系的中心,以橢圓的長(zhǎng)軸為y軸,以橢圓的短軸為X軸,計(jì)算瞳孔邊緣點(diǎn)在以橢圓中心為原點(diǎn)的平面坐標(biāo)系內(nèi)的坐標(biāo),計(jì)算與瞳孔邊緣點(diǎn)擁有相同橫坐標(biāo)的最優(yōu)橢圓上的點(diǎn)對(duì)應(yīng)的縱坐標(biāo),將計(jì)算得到的縱坐標(biāo)與對(duì)應(yīng)瞳孔邊緣點(diǎn)的縱坐標(biāo)進(jìn)行比值運(yùn)算,將比值與閾值T6比較,若在閾值T6范圍,0〈T6〈0.15,內(nèi)則加入新的瞳孔邊緣隊(duì)列,若不在范圍內(nèi)則不加入新的瞳孔邊緣隊(duì)列; (12)計(jì)算視線坐標(biāo):基于新的瞳孔邊緣點(diǎn)隊(duì)列,利用最小二乘法,擬合最優(yōu)橢圓,第二次擬合的橢圓中心和光斑中心計(jì)算PCR向量,即瞳孔中心與光斑中心連線形成的向量,設(shè)瞳孔中心為(xl,yl),光斑中心為(叉2,72),則?0?向量為&112,7112),根據(jù)卩0?向量和人眼參數(shù),帶入視線計(jì)算公式,計(jì)算視線坐標(biāo)。
3.根據(jù)權(quán)利要求2所述基于單攝像頭單光源的視線追蹤方法,其特征在于:所述第一正方形搜索窗口選為:長(zhǎng)=圖像長(zhǎng)度X0.15,寬=圖像寬度X0.2。
4.根據(jù)權(quán)利要求2所述基于單攝像頭單光源的視線追蹤方法,其特征在于:所述第二正方形搜索窗口選為:長(zhǎng)=圖像長(zhǎng)度X0.1,寬=圖像寬度X0.15。
5.根據(jù)權(quán)利要求2所述基于單攝像頭單光源的視線追蹤方法,其特征在于:所述所述T3確定為,圖像長(zhǎng)度X0.1X圖像寬度X0.15X0.3。
6.根據(jù)權(quán)利要求2所述基于單攝像頭單光源的視線追蹤方法,其特征在于:所述瞳孔搜索范圍優(yōu)選為:長(zhǎng)=圖像長(zhǎng)度X0.2,寬=圖像寬度X0.3。
7.根據(jù)權(quán)利要求2所述基于單攝像頭單光源的視線追蹤方法,其特征在于:所述步驟剔除虛假光斑中的修改元光斑范圍內(nèi)的像素的灰度值具體指:以光斑中心Cl為中心,在長(zhǎng)=圖像長(zhǎng)度X0.02,寬=圖像寬度X0.03區(qū)域內(nèi),將窗口內(nèi)的像素的灰度值修改為當(dāng)前像素灰度值X0.5。
8.根據(jù)權(quán)利要求2所述基于單攝像頭單光源的視線追蹤方法,其特征在于:所述感應(yīng)設(shè)備由嵌入在眼鏡的鏡框上的攝像頭,與眼鏡一起構(gòu)成。
9.根據(jù)權(quán)利要求2所述基于單攝像頭單光源的視線追蹤方法,其特征在于:所述步驟計(jì)算瞳孔灰度閾值所述所述通過(guò)分析比較光斑閾值和瞳孔閾值對(duì)瞳孔閾值進(jìn)行調(diào)整,具體為:若瞳孔閾值小于光斑閾值X0.4,則將瞳孔閾值調(diào)整為,新瞳孔閾值=(舊瞳孔閾值+光斑灰度閾值X0.5)/2 ;若瞳孔閾值大于光斑閾值X0.6,則將瞳孔閾值調(diào)整為,新瞳孔閾值=(舊瞳孔閾值+光斑灰度閾值X0.5) /2 ;其他情況下,瞳孔閾值不進(jìn)行調(diào)整。
10.根據(jù)權(quán)利要求1或2所述基于單攝像頭單光源的視線追蹤方法,其特征在于:所述感應(yīng)設(shè)備由嵌入在眼鏡的鏡`框上的攝像頭,與眼鏡一起構(gòu)成。
【文檔編號(hào)】G06K9/54GK103679180SQ201210346380
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2012年9月19日 優(yōu)先權(quán)日:2012年9月19日
【發(fā)明者】楊碩, 蔡恒進(jìn), 張慧婷, 蘇澤垚 申請(qǐng)人:武漢元寶創(chuàng)意科技有限公司