999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于星射線法的瞳孔中心定位

2021-05-20 06:51:10馬啟瑋韓慧妍張增一
計算機工程與設計 2021年5期
關鍵詞:檢測

馬啟瑋,韓慧妍,韓 燮,張增一

(1.中北大學 大數據學院,山西 太原 030051;2.西安電子科技大學 通信工程學院,陜西 西安 710100)

0 引 言

目前,瞳孔中心定位的方法一般分為兩類:基于特征提取的方法和基于統計學習的方法[1-5]。基于特征提取的方法,主要是利用瞳孔區域的灰度特性來檢測瞳孔中心。臧晶等[7]通過hough變換檢測圓的方法和混合投影法定位瞳孔中心,但是由于hough變換在整個眼部圖象上,計算量大,時間復雜度高,難以滿足實時性的要求。而且隨著人眼注視的位置不同,瞳孔會呈現出一種近似于圓的橢圓形狀,因此該方法定位精度較低。余羅等[8]通過提取圖像輪廓像素,隨機選取6個點進行橢圓擬合得到瞳孔中心,但是該方法容易受到噪聲影響,且其計算量大,難以滿足實時性的要求。李擎等[9]提出了一種等距離補償瞳孔的方法,提高了瞳孔中心定位的精度,但是當瞳孔遮擋過大時,無法精準定位。

基于統計學習的方法,將眼部圖像作為輸入數據,由訓練好的模型直接檢測得到瞳孔中心點坐標。Su Yeong Gwon等[10]基于SVM算法可以檢測出某人戴眼鏡情況下的瞳孔中心。張婉綺等[11]通過改進的SVM算法,對低質量的眼動圖像也能產生較好的瞳孔中心定位效果。

由于眼部圖像存在眼瞼遮擋、睫毛遮擋以及角膜反射引起的白斑干擾等情況,使其提取難度增加。鑒于此,本文提出了由粗及精的瞳孔中心定位算法:首先通過YoloV3粗略定位瞳孔中心點,進而剔除瞳孔邊緣點中的偽邊緣點,逐步精確瞳孔中心。實驗結果表明,本文提出的算法有較高的精度,能夠滿足實時性和魯棒性的要求。

1 算法流程

本文的算法流程如圖1所示。

圖1 算法流程

(1)首先通過紅外攝像頭采集眼動視頻數據,灰度化并且通過中值濾波進行圖像的平滑性處理,通過YoloV3[12]深度學習模型定位瞳孔區域(長方形或正方形),提取正方形或長方形的對角線交點作為瞳孔中心的粗略位置;

(2)通過迭代法,求取合適的二值化閾值,將眼部圖像二值化。利用中值濾波平滑二值化后的瞳孔邊緣,再通過掃描線算法按序填充瞳孔內部的空洞區域;

(3)從粗略估計的瞳孔中心出發每15°向外發出一條射線,通過星射線法提取瞳孔的邊緣點;通過計算相鄰兩點間連線的斜率,剔除遮擋條件下的偽邊緣點。

(4)最后利用最小二乘法將剩余的邊緣點進行橢圓擬合,通過計算擬合后的橢圓與真正邊緣點之間的距離,對瞳孔中心的位置進行修正。

2 算法原理

2.1 圖片預處理

紅外攝像頭采集到的眼部圖像為RGB彩色圖像,RGB彩色圖像是由3種不同的顏色成分組合而成,分別為紅色、綠色和藍色。灰度圖像,也稱為灰階圖像,圖像中每個像素可以通過從0(黑色)到255(白色)的亮度值表示。不同的亮度值表示不同的灰度級。為了方便后續的處理,需要將RGB圖像轉化為灰度圖像。本文采用式(1),將RGB圖像轉化為灰度圖像

Gray(i,j)=R(i,j)*0.299+
G(i,j)*0.587+B(i.j)*0.114

(1)

式中:Gray(i,j) 為像素(i,j)的灰度值;R(i,j),G(i,j),B(i,j) 分別為像素(i,j)的紅色、綠色和藍色的像素值。

拍攝的眼動圖像中,不可避免存在睫毛的干擾,為此選用中值濾波減弱睫毛的影響[13]。中值濾波是一種非線性濾波,將每一個像素點的灰度值設置為該點某鄰域窗口內的所有像素點灰度值的中值。當中值濾波模板過大時,會增加系統運行時間,當模板過小時,濾波效果不明顯。本文采用1*7的中值濾波模板,如圖2所示。

圖2 中值濾波模板

2.2 瞳孔區域檢測

近年來,基于目標檢測的深度學習模型成功應用于各個領域。本文采用YoloV3深度學習模型檢測瞳孔區域,與R-CNN[14]、Fast-R-CNN[15]、Faster-R-CNN[16]、YoloV2[17]相比,YoloV3在檢測速度與檢測精度方面具有較好的綜合性能。YoloV3是一種端到端的開源目標檢測算法,它的核心思想是將目標識別問題轉化為回歸問題,在保證準確率較高的前提下實現了目標的快速識別。YoloV3采用基于ResNet網絡進行改進的DarkNet-53網絡作為特征提取器,使其可以檢測較小的目標物體。

本文通過遷移學習的方法,使用預訓練模型作為基礎特征提取網絡,學習過程包括以下步驟:

(1)制作數據集;首先通過紅外攝像頭采集了3000張包含瞳孔的眼睛圖像,作為數據集并按照8∶1∶1的比例將數據集分成訓練集、驗證集、測試集,分別用于模型的訓練、驗證和測試過程。

(2)網絡參數的設置;整個過程一共進行了10 000次迭代,其中批處理大小(batch)和分組(subdivision)分別設置為64和16,動量(momentum)設置為0.9,初始學習率(learning rate)為0.001,并且在迭代次數達到6000和8000次時,學習率為0.0001和0.000 01。

迭代次數與損失函數的關系如圖3所示,圖3可以看出,在迭代至7000次左右的時候,損失函數在0.1上下浮動,即達到理想效果。

圖3 平均損失變化曲線

本文通過YoloV3檢測到的瞳孔為一正方形或長方形區域,當瞳孔位于人眼不同的位置時,將呈現圓形或橢圓形,導致檢測到的區域為正方形或長方形。如圖4所示,其中圖4(a)、圖4(b)、圖4(c)和圖4(d)中的方框分別為瞳孔中間、偏右、偏左遮擋和無遮擋情況下YoloV3檢測出來的區域框。圖4中的圖4(e)和圖4(f)分別為白斑在瞳孔邊緣處和瞳孔內部的檢測結果。

圖4 基于YoloV3的人眼瞳孔區域檢測結果

2.3 眼部圖像二值化處理

瞳孔區域的像素值相對于其它區域的像素值較低,本文采用迭代法對眼部區域進行二值化處理,通過選擇合適的閾值將瞳孔區域與其它區域分開,算法步驟如下:

(1)求出瞳孔區域內灰度的平均值,記為a,a為二值化的初始閾值;

(2)統計大于閾值a的像素平均值記為b,小于閾值a的像素平均值記為c;

(3)求出新閾值a=(b+c)/2;

(4)若第k+1次迭代時ak+1=ak, 則ak+1即為最終閾值;否則繼續執行步驟(2)的操作。

通過迭代法可以得到圖像二值化的自適應閾值,將圖4(e) 和圖4(f)進行二值化,結果如圖5(a)和圖5(b) 所示。從圖5可以看出,二值化后的瞳孔區域,在邊緣處存在許多毛刺,而且在瞳孔內部和邊緣存在由角膜反射引起的白斑(區域A),圖5(a)為白斑在瞳孔邊緣處的二值化圖像,圖5(b)為白斑在瞳孔內部的二值化圖像。本文通過中值濾波平滑瞳孔邊緣,并通過掃描線算法,填充瞳孔內部的反射光斑。掃描線算法如下:

圖5 瞳孔區域二值化

(1)行填充:從左邊第一行開始,記錄點pi1和點pi2, (i=1,2,3…n,n為圖片行數)。其中點pi1為第i行第一個左邊像素值為255(白色),右邊像素值為0(黑色)的記錄點;點pi2為第i行最后一個左邊像素值為0(黑色),右邊的像素值為255(白色)。對兩點之間的白色區域進行填充。

(2)列填充:從左邊第一列開始,記錄點Li1和點Li2, (i=1,2,3…m,m為圖片列數)。其中點Li1為第i列第一個上面像素值為255(白色),下面像素值為0(黑色);點Li2為第i列最后一個上面邊像素值為0(黑色),下面的像素值為255(白色)。對兩點之間的白色區域進行填充。

對圖5(a)、圖5(b)兩幅圖像分別用中值濾波和掃描線算法進行處理,其二值圖像如圖6(a)、圖6(b)所示。圖6可以看出,瞳孔邊緣處的毛刺通過中值濾波后得到了有效的平滑。瞳孔內部和邊緣處的反射光斑得到了填充。本文將在此基礎上進行瞳孔邊緣點的提取。

圖6 平滑及孔洞填充后的瞳孔圖像

2.4 瞳孔邊緣點處理

本文采用星射線算法的思想提取瞳孔邊緣點,YoloV3檢測的瞳孔區域中心點為瞳孔粗定位的中心點C,以角度θ(0≤θ≤2π), 每隔15°向外發出一條射線。設在射線上瞳孔邊緣點上的坐標為pi(xi,yi), 則點pi的坐標如式(2)所示,其中xc和yc分別為C的橫坐標和縱坐標,li為點C與邊緣點pi之間的長度。從圖6可知,瞳孔邊緣點處的像素值變化較大,由式(2)可以求得瞳孔的邊緣點pi(i=1,2…24), 對圖4中的各種情況提取瞳孔邊緣點,結果如圖7所示,其中圖7(a)中的A、B、C、D、E,圖7(b)中的A、B、C、D,圖7(c)中的A、B、C、D以及圖7(f) 中的A點為偽邊緣點。因為圖7(d)和圖7(e)中的瞳孔邊緣點不存在誤差,無需偽邊緣點檢測,圖7(f)所示的情況將在下文2.5節進行偽邊緣點檢測。本文首先剔除圖7在遮擋條件下(圖7(a)、圖7(b)和圖7(c))的偽邊緣點,算法步驟如下所示

圖7 瞳孔邊緣點提取結果

(2)

(1)通過大量的眼部圖像數據可得,只存在上眼瞼遮擋。所以,首先提取出瞳孔下半部分的邊緣點;

(2)計算上半部分瞳孔邊緣相鄰兩點間連線的斜率hi(i=1,2…13);

(3)由圖7(c)可以看出眼瞼遮擋處的邊緣點之間的連線較為平緩(偽邊緣點近似在一條直線上)且其相鄰兩條連線的斜率之差近似為0;

(4)設置閾值t,因為兩條相鄰連線之間的斜率差近似為0,所以將t設置為0.1。當點pi-1與點pi+1和pi之間的斜率之差小于閾值t時,則點pi為偽邊緣點。

通過以上算法逐步剔除眼瞼遮擋處的瞳孔邊緣點,將圖7(a)、圖7(b)和圖7(c)中的偽邊緣點剔除之后的結果如圖8(a)、圖8(b)和圖8(c)所示。

圖8 眼瞼遮擋處的偽邊緣點剔除

圖8(a)、圖8(b)和圖8(c)分別為其剔除相應的遮擋邊緣點后的圖片。由以上方法提取到的瞳孔邊緣點為離散點,為了提取瞳孔的中心點,本文采用最小二乘法進行橢圓擬合。在平面坐標系中,橢圓方程一般可用平面坐標系的幾何參數表示,橢圓方程如式(3)所示

Ax2+Bxy+Cy2+Dx+Ey+F=0

(3)

其中,A、B、C、D、E和F為待求參數,橢圓中心點為(Xc,Yc),長軸為a,短軸為b,如式(4)-式(5)所示

(4)

(5)

最小二乘法即實際的瞳孔邊緣點坐標與擬合的橢圓之間的誤差平方和最小,來確定橢圓的各個參數,其目標函數如式(6)所示

F(A,B,C,D,E)=

(6)

為了使式(6)最小,由極值原理(一階導為零)即可求得橢圓的各個參數,其中N為瞳孔邊緣點的個數。將圖4中的6種情況進行第一次橢圓擬合,對應結果如圖9中6幅圖所示,圖中的C點即為第一次橢圓擬合求得的瞳孔中心點。

圖9 第一次橢圓擬合

2.5 瞳孔中心的修正

由以上方法可以得到遮擋條件下的瞳孔中心點,但是當白斑位于瞳孔邊緣(圖9(f))時,其邊緣點到第一次擬合后的橢圓距離較大,使得瞳孔中心定位的精度誤差較大。所以需要剔除由白斑引起的偽邊緣點,對瞳孔邊緣點進行二次橢圓擬合,提高瞳孔中心的精度。本文通過以下算法剔除偽邊緣點:

(1)計算瞳孔邊緣點pi(xi,yi), (i=1,2…n) 到擬合的瞳孔橢圓之間的距離Di,由式(7)所示

Di=Axi2+Bxiyi+Cyi2+Dxi+Eyi+F

(7)

(2)設置閾值t,當D大于閾值t時,則pi點為偽邊緣點,剔除點pi。通過大量的實驗數據可得,當t設置為0.1時可以較好地將誤差點分離出來。當t過小時,容易將真實的邊緣點誤判為誤差點。當t過大時,容易將偽邊緣點歸為真實的邊緣點。

由以上步驟,即可剔除邊緣點到第一次擬合后的橢圓距離較大的偽邊緣點,將剩余的瞳孔邊緣點,進行第二次橢圓擬合,以此來提高瞳孔中心的精度,圖7(f)中的A點為偽邊緣點,點A距離真實的瞳孔邊緣距離較大,將點A剔除后其結果如圖10所示。

圖10 兩次橢圓擬合結果

圖10中C1和C2分別為其剔除誤差點前和剔除誤差點后的橢圓擬合所得的瞳孔中心點。兩次橢圓擬合后瞳孔中心坐標的比較結果見表1。

表1 兩次橢圓擬合結果

3 實驗結果分析

本文實驗平臺為VS2019(Visual Studio 2019),VS2019是windows平臺下的集成開發環境。本文通過c++ 編程語言在VS2019平臺下編程實現。計算機系統配置中處理器為Intel(R) Core(TM) i5-6300 2.3 GHz,內存為8 GB,GPU為GenForce GTX 970。獲取眼動視頻圖像數據的紅外攝像機幀率為30 幀/s,紅外波長為850 nm。

為了驗證本文算法的魯棒性,采集了8名實驗者的眼動視頻圖像,圖片大小為960*540。其中3名實驗者的實驗結果如圖11所示,其中圖11(a)~圖11(c)為YoloV3檢測瞳孔區域后的結果,圖11(d)~圖11(f)為瞳孔邊緣點提取及偽邊緣點剔除后的結果,圖11(g)~圖11(i) 為擬合后的橢圓以及提取的瞳孔中心點(C點)。

圖11 3名不同實驗者的人眼圖像結果

從圖11可以看出,本文算法可以較好地適用不同的個體,具有較好的魯棒性。為了驗證本文算法在無眼瞼遮擋、眼瞼遮擋和白斑存在時的精度和有效性。將本文算法分別與文獻[18]、文獻[19]、文獻[20]進行定性及定量對比,定性比較結果如圖12~圖14所示,圖中C點即為提取的瞳孔中心點。

文獻[18]基于Starburst方法進行瞳孔邊緣點檢測,由圖12和表2得,在無眼瞼遮擋的情況下,可以較好檢測出瞳孔中心,但是,當眼瞼遮擋和白斑存在時,存在誤差。文獻[19]算法,首先去除了白斑區域,通過Canny邊緣檢測,得到瞳孔邊緣點,再通過隨機抽樣一致性算法進行橢圓擬合。由圖13和表3可得,當白斑存在時可以較好檢測出瞳孔中心點,但是當眼瞼遮擋時,誤差較大。文獻[20]通過星射線算法,提取了部分角度的瞳孔邊緣點,同時每組選取5個點進行橢圓擬合,尋找到最優橢圓。由圖14和表4可得,當遮擋存在時可以較好5檢測出瞳孔中心點,但是當白斑存在時,存在明顯誤差。無遮擋條件下本文算法與其它文獻結果比較如圖12所示。

圖12 無眼瞼遮擋實驗對比結果

各個算法求得的瞳孔中心坐標與標準坐標比較見表2。

表2 無眼瞼遮擋檢測誤差對比

在白斑干擾情況下,本文算法與其它文獻算法對比結果如圖13所示。

圖13 存在白斑實驗對比結果

各個算法求得的瞳孔中心坐標各個算法求得的瞳孔中心坐標與標準坐標比較,見表3。

表3 存在白斑條件下的誤差對比

在遮擋條件下本文算法與其它文獻算法對比結果如圖14 所示。

為了驗證本文算法的精度,將圖14中遮擋條件下的瞳孔中心點C和瞳孔中心點的標準坐標進行比較,結果見表4。

圖14 上眼瞼遮擋實驗對比結果

表4 上眼瞼遮擋條件檢測誤差對比

由以上結果可以看出,在無遮擋和白斑干擾時,都可以較好的檢測出瞳孔中心點。但是當遮擋和白斑存在時,本文算法擬合出的瞳孔橢圓,更接近真實的瞳孔邊緣,求得的瞳孔中心點與標定的瞳孔中心點之間的誤差更小,精度更高。

本文算法與其它文獻的速度比較見表5。因為本文算法通過深度學習模型進行了瞳孔區域的檢測,所以本文算法的時間復雜度比文獻[18]的時間復雜度略高。

表5 瞳孔定位速度對比

本文對拍攝得到的320幅清晰圖片進行了實驗,其中100幅圖片存在眼瞼遮擋,70幅圖片存在白斑遮擋,150幅圖片不存在眼瞼遮擋和白斑遮擋。本文算法的穩定性(成功檢測出瞳孔中心的圖像數量與總的圖像數量的比值),結果見表6。

表6 算法穩定性對比

綜上所述,本文算法的魯棒性較好。在遮擋和白斑存在時相較于其它算法,誤差更小,檢測出的瞳孔中心更接近真實的瞳孔中心。本文算法的綜合性能(速度、精度和穩定性)優于其它算法,可以廣泛應用于不同的實驗個體。

4 結束語

本文提出了一種由粗及精的瞳孔中心定位算法。該算法通過YoloV3深度學習模型粗定位瞳孔中心,通過瞳孔橢圓參數修正,逐步精確瞳孔中心。該算法依次減弱了眼瞼遮擋、睫毛遮擋和白斑干擾存在情況下,對提取瞳孔中心點所造成的誤差。實驗結果表明,在眼瞼遮擋、睫毛遮擋和白斑干擾存在的情況下,本文算法提取的瞳孔中心點的精度、實時性和魯棒性較好。

如何檢測實驗者在戴眼鏡情況下的瞳孔中心以及提高檢測速度是本文下一步的研究工作。

猜你喜歡
檢測
QC 檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
“有理數的乘除法”檢測題
“有理數”檢測題
“角”檢測題
“幾何圖形”檢測題
主站蜘蛛池模板: 亚洲中文字幕日产无码2021| 国产成人精品高清在线| 波多野结衣AV无码久久一区| 日韩无码视频专区| 伊人大杳蕉中文无码| 91精品国产91欠久久久久| 中文字幕永久在线看| 亚国产欧美在线人成| 久草国产在线观看| 亚洲三级成人| 狠狠综合久久久久综| 夜夜爽免费视频| 高清欧美性猛交XXXX黑人猛交 | 精品免费在线视频| 国产理论精品| 免费国产福利| 欧美高清视频一区二区三区| 国产在线专区| 成人精品免费视频| 亚洲精品无码在线播放网站| 国产精品永久不卡免费视频| 欧美在线综合视频| 欧美综合区自拍亚洲综合绿色| 欧美在线一二区| 中文字幕亚洲精品2页| 99色亚洲国产精品11p| 欧美亚洲香蕉| 色悠久久综合| 视频一本大道香蕉久在线播放 | 国产亚洲高清在线精品99| 日本伊人色综合网| 国产一级α片| 亚洲精品第五页| 久久国产V一级毛多内射| 毛片卡一卡二| 毛片视频网址| 欧美在线观看不卡| 爆乳熟妇一区二区三区| 嫩草影院在线观看精品视频| 欧美日韩中文国产| 国产成熟女人性满足视频| 伦精品一区二区三区视频| 精品无码一区二区三区电影| 99久久国产综合精品2023| 国产91丝袜在线播放动漫 | 亚洲精品国产乱码不卡| 精品视频福利| 人人艹人人爽| 一级毛片免费不卡在线| 久久精品亚洲专区| 欧美激情视频二区| 国产高清免费午夜在线视频| 2021国产精品自产拍在线| 亚洲成人免费在线| 视频二区中文无码| 国产福利小视频高清在线观看| 国产欧美视频在线观看| 亚洲色大成网站www国产| 97视频在线观看免费视频| 毛片大全免费观看| 喷潮白浆直流在线播放| 国产午夜一级毛片| 88国产经典欧美一区二区三区| 日韩精品高清自在线| 女人18毛片水真多国产| 极品性荡少妇一区二区色欲 | 亚洲一区二区三区香蕉| 中文字幕亚洲综久久2021| 国产精品污污在线观看网站| 一本色道久久88| 99久久人妻精品免费二区| 国内精品手机在线观看视频| 久久黄色毛片| 国模视频一区二区| 欧美a级在线| 情侣午夜国产在线一区无码| 亚洲日韩每日更新| 国产一区二区福利| 国产精品福利社| 2021国产在线视频| 久久久久国色AV免费观看性色| 日韩二区三区无|