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