王晶儀 王艷霞 朱原雨潤 張領



摘要:眼動追蹤的應用很廣泛,而瞳中心孔定位是眼動跟蹤中的一項基本任務?;趫D像梯度的瞳孔中心定位算法比較精確,但是難以在精度和速度之間取得平衡,因此使用ALO優化算法對其改進,在保證精度的同時,大幅提升其算法速度。經過實驗證明,改進之后的算法,對于一張32×24大小的圖片,其瞳孔中心定位速度由4秒提升到1秒以內,中心點平均誤差在1.2個像素差左右。
關鍵詞:ALO算法;圖像梯度;瞳孔定位;眼動追蹤;眼球中心
中圖分類號:TP301? 文獻標識碼:B
文章編號:1009-3044(2022)17-0086-03
眼動跟蹤一直是個值得研究的領域,它有著廣泛的應用,如自閉癥譜系障礙早期診斷[1],利用自閉癥兒童與普通兒童不同的注視模式,可以進行自閉癥兒童的輔助診斷。人機交互[2]方面,通過眼睛操作虛擬現實場景或游戲,既可以減緩眼睛的疲勞,又可以通過捕捉用戶注視點,增強注視點區域圖像,從而呈現出高質量圖像,提升用戶體驗。神經學營銷[3]領域,追蹤顧客視線的移動軌跡,可以發現顧客對什么產品更感興趣。疲勞駕駛檢測[4]領域,及時跟蹤判斷駕駛員的視線注意力情況,連續提醒駕駛員預防疲勞駕駛。可見眼動追蹤的應用領域十分廣泛,而瞳孔中心定位是眼動跟蹤的基本任務,具有很高的研究價值。
在瞳孔中心定位領域中,Daugman等人[5]提出了一種利用圖像梯度進行精確和穩定的瞳孔中心定位的方法,后文簡稱MOG瞳孔中心算法。該方法給出了一個只包含點積的目標函數,這個函數的最大值對應于大多數圖像梯度向量相交的位置,由此確定眼睛的中心。
MOG算法精度很高,但是計算量大,對于每個像素,都需要計算其目標函數值。因此,本文使用ALO優化算法[6](antlion optimization)對其進行改進。ALO算法即蟻獅算法,是2015年被人提出來的一種仿生優化算法,具有全局優化、調節參數少、收斂精度高、魯棒性好的優點,已被應用到SVM[7]、Elman神經網絡[8]等場合。經過驗證,將ALO優化算法與MOG瞳孔中心算法結合,可以大幅提升定位算法速度,同時也保持了算法的精確度。
1相關技術
1.1 圖像梯度
圖像的梯度是指圖像某像素點在[x]和[y]兩個方向上的變化率,假設有一幅圖像[f],且[f(x,y)]是像素點[(x,y)]的灰度值,那么點[(x,y)]在[x]方向和y方向的梯度分別為:
[gx=?f(x,y)?x=fx+1,y-f(x,y)]? ? ? ? ? (1)
[gy=?f(x,y)?y=fx,y+1-f(x,y)]? ? ? ? ?(2)
其中,點[(x,y)]的梯度向量就是[(gx,gy)]。
1.2 MOG瞳孔中心算法
MOG瞳孔中心算法給出了一個用于確定瞳孔中心的適應度函數,適應度最大的像素點就是瞳孔中心。其算法原理如下:假設有人眼圖片中有一個圓形的虹膜,首先在圖像中取2個坐標點:[o]和[xi],其中點[o]是假設的瞳孔中心點,點[xi]是虹膜邊緣上的點,如圖1所示。
其次計算兩個向量:[di]和[gi],其中[di]是點[o]到點[xi]的向量,[gi]為點[xi]處的梯度向量。
[o=(x0,y0)],[xi=(x1,y1)]? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3)
[di=xi-o=(x1-x0,y1-y0)]? ? ? ? ? ? ? ? ?(4)
[gi=(gx,gy)]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(5)
根據向量的點積公式可知,當兩個向量都是單位向量,那么它們的夾角[θ]越小,則點積值越大。[di]與[gi]兩個單位向量的點積如下所示。
[di?gi=digicosθ]? ? ? ? ? ? ? ? ? ? ? ? ? (6)
[di=xi-o∥xi-o∥2,?i:∥gi∥2=1]? ? ? ? ? ? ? (7)
如圖1(a)所示,當[di]與[gi]兩個單位向量方向不同,它們的點積值范圍是[[-1,1)];如圖1(b)所示,當它們方向相同(即夾角為0°),則點積為最大值1,而此時點[o]恰好是正確的圓心點。因此,可以通過計算[di]與[gi]向量的點積來求取最優圓心點。
又因為與鞏膜、皮膚相比,瞳孔通常是暗的,因此將每一個像素點的亮度權值[wc]融入目標函數中,當某像素點灰度值越小(圖像越暗),[wc]取值越大。最終,瞳孔中心的適應度函數如下所示,當某個像素點的適應度最大時,就是瞳孔中心點。
[C=1Ni=1Nwc(dTigi)2]? ? ? ? ? ? ? ? ? ? ?(8)
[wc=255-fx,y]? ? ? ? ? ? ? ? ? ? ? ? ?(9)
1.3 ALO優化算法
ALO算法包含以下幾個角色:螞蟻,蟻獅,精英蟻獅。螞蟻表示嘗試解,蟻獅表示局部最優解,精英蟻獅表示全局最優解。螞蟻圍繞蟻獅隨機走動,還會因為陷阱會滑向蟻獅。在每次螞蟻隨機走動之后,根據螞蟻和蟻獅的適應度大小來更新蟻獅。每輪迭代完成會選取適應度最優的蟻獅作為精英蟻獅,這樣可以避免陷入局部最優解。通過不斷地迭代,在局部最優解附近尋找更優解,最后得到一個比較精確的全局最優解。
2基于ALO優化的MOG瞳孔中心算法
在MOG瞳孔中心定位算法中,需要求解最大值的目標適應度函數是公式(8),解空間是圖像中的像素坐標范圍[(x,y)]。使用ALO算法對其進行求解,首先初始化螞蟻、蟻獅的坐標,使用輪盤賭算法讓每一只螞蟻隨機選擇一只蟻獅進行隨機游走,蟻獅的適應度越大,被選擇的概率越大。然后通過隨機游走函數[Xt]確定螞蟻隨機游走的步數集合。
[w=-1, 0 [Xt=i=0tw]? ? ? ? ? ? ? ? ? ? ? ? ? (11) 其中t是迭代的輪次,[r]是0到1之間的隨機數。 確定游走步數集之后,還要根據蟻獅的陷阱范圍確定其游走范圍。蟻獅的陷阱范圍只與當前迭代次數有關,隨著迭代次數的增加,陷阱比例逐漸減小,螞蟻隨機游走的范圍也會逐漸減小,這里將陷阱比例I改為如下公式。 [I=0.8,? ? ? ? ? ? ? ? ? t<0.5T0.6,? ? 0.5T≤t<0.6T0.4,? ? 0.6T≤t<0.7T 0.3,? ? 0.8T≤t<0.9T 0.2,? ? ? ? ? ? ? ? ? t≥0.9T]? ? ? ? ? ? ? ? ? ? ? ? ? ?(12) 其中[T]為算法迭代輪次總數。 螞蟻在選擇的蟻獅陷阱內隨機游走的坐標范圍如下公式: [cti=antliontj+c×I]? ? ? ? ? ? ? ? ? ? ? (13) [dti=antltontj+d×I]? ? ? ? ? ? ? ? ? ? (14) 其中,[c]是坐標取值范圍的最小值,[d]是坐標取值范圍的最大值,[I]是陷阱比例,[cti]是第[t]輪第[i]個螞蟻坐標取值范圍的最小值,[dti]是第[t]輪第[i]個螞蟻坐標取值范圍的最大值,[antliontj]是第[t]輪第[i]個螞蟻選擇的蟻獅坐標位置。 得到游走步數和游走范圍之后,就可以計算螞蟻的具體游走坐標。為了防止螞蟻游走到坐標范圍之外,因此還需要通過以下公式對游走坐標進行規范化。 [Rti=Xti-Xmini×(Xmaxi-cti)(dti-Xmini)+cti]? ? ? ? ? ? ? (15) 其中,[Xti]是第[t]輪第[i]個螞蟻隨機游走的步數,[Xmini是]第[i]個螞蟻隨機游走步數集合中的最小值,[Xmaxi是]第[i]個螞蟻隨機游走步數集合中的最大值。 螞蟻的游走范圍還會受到精英蟻獅的影響,要算出螞蟻圍繞選擇蟻獅和精英蟻獅的隨機游走坐標,取其平均值得到螞蟻最終的游走坐標。 [Antti=RtA+RtE2]? ? ? ? ? ? ? ? ? ? (16) 其中[RtA]是第[i]個螞蟻第[t]輪繞著輪盤賭選擇的蟻獅隨機游走的位置,其中[RtE]是第[i]個螞蟻第[t]輪繞著精英蟻獅隨機游走的位置,[Antti]是第[i]個螞蟻第[t]輪的最終像素坐標。 2.1算法流程偽代碼 N: 種群數量; dim: 解的維度; t: 當前迭代次數; T: 最大迭代次數; ant: 螞蟻的坐標;antlion: 蟻獅的坐標; elite: 精英蟻獅坐標 antlion_finess: 蟻獅適應度值; elite_fitness: 精英蟻獅適應度值 根據適應度函數公式(8)計算第一代蟻獅的適應度值并按降序排序 elite更新為適應度最大的蟻獅 while t for i = 1∶N 根據蟻獅適應度值,螞蟻使用輪盤賭方法選擇蟻獅, 根據公式(10)~(15)計算螞蟻圍繞被選中蟻獅的隨機游走的坐標 根據公式(10)~(15)計算螞蟻圍繞精英蟻獅隨機游走的坐標 根據公式(16)更新螞蟻最終的游走坐標 計算螞蟻游走后的適應度值并與上一代蟻獅合并,并按適應度按降序排序 選擇適應度值最大的前 N 個個體為當代蟻獅種群antlion if antlion_finess( 1)elite_fitness = antlion_finess( 1) end if t++ end while 3實驗結果及分析 為了驗證本研究改進的算法的速度提升和準確度可靠性,在一臺Intel(R) Core(TM) i5-9300H2.40 GHz16GB的PC機上進行實驗。使用20張眼睛圖像進行實驗,每張圖片大小為32×24像素。首先使用原始的MOG瞳孔中心算法計算出每張圖片的瞳孔中心坐標,如圖3所示,每張圖片適應度最大的點就是瞳孔中心點。 然后使用基于ALO改進的梯度相應定位算法對其進行中心點計算,實驗結果如表1所示。在以下的參數設置中,最短運行時間為542ms,其誤差為1.363像素;最長運行時間為792ms,其誤差為1.072像素。而原始的MOG瞳孔中心算法對于一張32×24的圖片計算需要3800ms??梢娛褂肁LO優化算法改進之后,在速度上得到了很大的提升,同時也保持了瞳孔中心定位的精確性。 4結論 本文將ALO優化算法應用基于梯度響應的瞳孔定位算法,進行瞳孔中心適應度函數尋優,可以提升定位速度,同時保證其精確度??梢詫⒁粡?2x24圖片的定位速度由3.8秒減少到0.6秒左右,誤差只有1.2個像素點左右,定位速度快而且較為精確。但是對于包含了眼睛、眉毛的圖片,由于定位算法和優化算法二者本身的局限性,容易陷入局部最優解,還有待改進。 參考文獻: [1] SolovyovaA,DanylovS,OleksiiS,etal.Earlyautism spectrum disorders diagnosis using eye-tracking technology[J].arXiv preprint arXiv:2008.09670,2020. [2] Clay V,K?nigP,K?nigS.Eye tracking in virtual reality[J].Journal of Eye Movement Research,2019,12(1):10. [3] MustikawanA,SwastyW,Naufalina F E.Utilization of eyetracking technolog yindesign and marketing decisionmaking[J].ASEAN Marketing Journal,2021,13(2). [4] S A,MBA,DS,etal.Drowsydriver detection using eye-tracking through machine learning[C]//2021 Second International Conference on Electronics and Sustainable Communication Systems (ICESC).August4-6,2021,Coimbatore,India.IEEE,2021:1916-1923. [5] Timm F,Barth E.Accurate eye centrelocalisation by means of gradients[J].Visapp,2011,11: 125-130. [6] MirjaliliS.The ant lion optimizer[J].Advances in Engineering Software,2015,83:80-98. [7] 趙世杰,高雷阜,于冬梅,等.帶混沌偵查機制的蟻獅優化算法優化SVM參數[J].計算機科學與探索,2016,10(5):722-731. [8] 崔東文,王宗斌.基于ALO-ENN算法的洪災評估模型及應用[J].人民珠江,2016,37(5):44-50. 收稿日期:2022-02-15 作者簡介:王晶儀(1996—),江蘇無錫人,碩士研究生,研究方向為深度學習,語義分割,眼動追蹤;王艷霞,山東青島人,副教授,研究方向為計算機視覺,深度學習,膜計算;朱原雨潤(1997—),河南焦作人,碩士研究生,研究方向為深度學習,微表情識別;張領(1995—),湖北黃岡人,碩士研究生,研究方向為深度學習,表情識別。