王晶儀 王艷霞 朱原雨潤(rùn) 張領(lǐng)
摘要:眼動(dòng)追蹤的應(yīng)用很廣泛,而瞳中心孔定位是眼動(dòng)跟蹤中的一項(xiàng)基本任務(wù)?;趫D像梯度的瞳孔中心定位算法比較精確,但是難以在精度和速度之間取得平衡,因此使用ALO優(yōu)化算法對(duì)其改進(jìn),在保證精度的同時(shí),大幅提升其算法速度。經(jīng)過(guò)實(shí)驗(yàn)證明,改進(jìn)之后的算法,對(duì)于一張32×24大小的圖片,其瞳孔中心定位速度由4秒提升到1秒以?xún)?nèi),中心點(diǎn)平均誤差在1.2個(gè)像素差左右。
關(guān)鍵詞:ALO算法;圖像梯度;瞳孔定位;眼動(dòng)追蹤;眼球中心
中圖分類(lèi)號(hào):TP301? 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1009-3044(2022)17-0086-03
眼動(dòng)跟蹤一直是個(gè)值得研究的領(lǐng)域,它有著廣泛的應(yīng)用,如自閉癥譜系障礙早期診斷[1],利用自閉癥兒童與普通兒童不同的注視模式,可以進(jìn)行自閉癥兒童的輔助診斷。人機(jī)交互[2]方面,通過(guò)眼睛操作虛擬現(xiàn)實(shí)場(chǎng)景或游戲,既可以減緩眼睛的疲勞,又可以通過(guò)捕捉用戶(hù)注視點(diǎn),增強(qiáng)注視點(diǎn)區(qū)域圖像,從而呈現(xiàn)出高質(zhì)量圖像,提升用戶(hù)體驗(yàn)。神經(jīng)學(xué)營(yíng)銷(xiāo)[3]領(lǐng)域,追蹤顧客視線(xiàn)的移動(dòng)軌跡,可以發(fā)現(xiàn)顧客對(duì)什么產(chǎn)品更感興趣。疲勞駕駛檢測(cè)[4]領(lǐng)域,及時(shí)跟蹤判斷駕駛員的視線(xiàn)注意力情況,連續(xù)提醒駕駛員預(yù)防疲勞駕駛。可見(jiàn)眼動(dòng)追蹤的應(yīng)用領(lǐng)域十分廣泛,而瞳孔中心定位是眼動(dòng)跟蹤的基本任務(wù),具有很高的研究?jī)r(jià)值。
在瞳孔中心定位領(lǐng)域中,Daugman等人[5]提出了一種利用圖像梯度進(jìn)行精確和穩(wěn)定的瞳孔中心定位的方法,后文簡(jiǎn)稱(chēng)MOG瞳孔中心算法。該方法給出了一個(gè)只包含點(diǎn)積的目標(biāo)函數(shù),這個(gè)函數(shù)的最大值對(duì)應(yīng)于大多數(shù)圖像梯度向量相交的位置,由此確定眼睛的中心。
MOG算法精度很高,但是計(jì)算量大,對(duì)于每個(gè)像素,都需要計(jì)算其目標(biāo)函數(shù)值。因此,本文使用ALO優(yōu)化算法[6](antlion optimization)對(duì)其進(jìn)行改進(jìn)。ALO算法即蟻獅算法,是2015年被人提出來(lái)的一種仿生優(yōu)化算法,具有全局優(yōu)化、調(diào)節(jié)參數(shù)少、收斂精度高、魯棒性好的優(yōu)點(diǎn),已被應(yīng)用到SVM[7]、Elman神經(jīng)網(wǎng)絡(luò)[8]等場(chǎng)合。經(jīng)過(guò)驗(yàn)證,將ALO優(yōu)化算法與MOG瞳孔中心算法結(jié)合,可以大幅提升定位算法速度,同時(shí)也保持了算法的精確度。
1相關(guān)技術(shù)
1.1 圖像梯度
圖像的梯度是指圖像某像素點(diǎn)在[x]和[y]兩個(gè)方向上的變化率,假設(shè)有一幅圖像[f],且[f(x,y)]是像素點(diǎn)[(x,y)]的灰度值,那么點(diǎn)[(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)
其中,點(diǎn)[(x,y)]的梯度向量就是[(gx,gy)]。
1.2 MOG瞳孔中心算法
MOG瞳孔中心算法給出了一個(gè)用于確定瞳孔中心的適應(yīng)度函數(shù),適應(yīng)度最大的像素點(diǎn)就是瞳孔中心。其算法原理如下:假設(shè)有人眼圖片中有一個(gè)圓形的虹膜,首先在圖像中取2個(gè)坐標(biāo)點(diǎn):[o]和[xi],其中點(diǎn)[o]是假設(shè)的瞳孔中心點(diǎn),點(diǎn)[xi]是虹膜邊緣上的點(diǎn),如圖1所示。
其次計(jì)算兩個(gè)向量:[di]和[gi],其中[di]是點(diǎn)[o]到點(diǎn)[xi]的向量,[gi]為點(diǎn)[xi]處的梯度向量。
[o=(x0,y0)],[xi=(x1,y1)]? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3)
[di=xi-o=(x1-x0,y1-y0)]? ? ? ? ? ? ? ? ?(4)
[gi=(gx,gy)]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(5)
根據(jù)向量的點(diǎn)積公式可知,當(dāng)兩個(gè)向量都是單位向量,那么它們的夾角[θ]越小,則點(diǎn)積值越大。[di]與[gi]兩個(gè)單位向量的點(diǎn)積如下所示。
[di?gi=digicosθ]? ? ? ? ? ? ? ? ? ? ? ? ? (6)
[di=xi-o∥xi-o∥2,?i:∥gi∥2=1]? ? ? ? ? ? ? (7)
如圖1(a)所示,當(dāng)[di]與[gi]兩個(gè)單位向量方向不同,它們的點(diǎn)積值范圍是[[-1,1)];如圖1(b)所示,當(dāng)它們方向相同(即夾角為0°),則點(diǎn)積為最大值1,而此時(shí)點(diǎn)[o]恰好是正確的圓心點(diǎn)。因此,可以通過(guò)計(jì)算[di]與[gi]向量的點(diǎn)積來(lái)求取最優(yōu)圓心點(diǎn)。
又因?yàn)榕c鞏膜、皮膚相比,瞳孔通常是暗的,因此將每一個(gè)像素點(diǎn)的亮度權(quán)值[wc]融入目標(biāo)函數(shù)中,當(dāng)某像素點(diǎn)灰度值越小(圖像越暗),[wc]取值越大。最終,瞳孔中心的適應(yīng)度函數(shù)如下所示,當(dāng)某個(gè)像素點(diǎn)的適應(yīng)度最大時(shí),就是瞳孔中心點(diǎn)。
[C=1Ni=1Nwc(dTigi)2]? ? ? ? ? ? ? ? ? ? ?(8)
[wc=255-fx,y]? ? ? ? ? ? ? ? ? ? ? ? ?(9)
1.3 ALO優(yōu)化算法
ALO算法包含以下幾個(gè)角色:螞蟻,蟻獅,精英蟻獅。螞蟻表示嘗試解,蟻獅表示局部最優(yōu)解,精英蟻獅表示全局最優(yōu)解。螞蟻圍繞蟻獅隨機(jī)走動(dòng),還會(huì)因?yàn)橄葳鍟?huì)滑向蟻獅。在每次螞蟻隨機(jī)走動(dòng)之后,根據(jù)螞蟻和蟻獅的適應(yīng)度大小來(lái)更新蟻獅。每輪迭代完成會(huì)選取適應(yīng)度最優(yōu)的蟻獅作為精英蟻獅,這樣可以避免陷入局部最優(yōu)解。通過(guò)不斷地迭代,在局部最優(yōu)解附近尋找更優(yōu)解,最后得到一個(gè)比較精確的全局最優(yōu)解。
2基于A(yíng)LO優(yōu)化的MOG瞳孔中心算法
在MOG瞳孔中心定位算法中,需要求解最大值的目標(biāo)適應(yīng)度函數(shù)是公式(8),解空間是圖像中的像素坐標(biāo)范圍[(x,y)]。使用ALO算法對(duì)其進(jìn)行求解,首先初始化螞蟻、蟻獅的坐標(biāo),使用輪盤(pán)賭算法讓每一只螞蟻隨機(jī)選擇一只蟻獅進(jìn)行隨機(jī)游走,蟻獅的適應(yīng)度越大,被選擇的概率越大。然后通過(guò)隨機(jī)游走函數(shù)[Xt]確定螞蟻隨機(jī)游走的步數(shù)集合。
[w=-1, 0 [Xt=i=0tw]? ? ? ? ? ? ? ? ? ? ? ? ? (11) 其中t是迭代的輪次,[r]是0到1之間的隨機(jī)數(shù)。 確定游走步數(shù)集之后,還要根據(jù)蟻獅的陷阱范圍確定其游走范圍。蟻獅的陷阱范圍只與當(dāng)前迭代次數(shù)有關(guān),隨著迭代次數(shù)的增加,陷阱比例逐漸減小,螞蟻隨機(jī)游走的范圍也會(huì)逐漸減小,這里將陷阱比例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]為算法迭代輪次總數(shù)。 螞蟻在選擇的蟻獅陷阱內(nèi)隨機(jī)游走的坐標(biāo)范圍如下公式: [cti=antliontj+c×I]? ? ? ? ? ? ? ? ? ? ? (13) [dti=antltontj+d×I]? ? ? ? ? ? ? ? ? ? (14) 其中,[c]是坐標(biāo)取值范圍的最小值,[d]是坐標(biāo)取值范圍的最大值,[I]是陷阱比例,[cti]是第[t]輪第[i]個(gè)螞蟻?zhàn)鴺?biāo)取值范圍的最小值,[dti]是第[t]輪第[i]個(gè)螞蟻?zhàn)鴺?biāo)取值范圍的最大值,[antliontj]是第[t]輪第[i]個(gè)螞蟻選擇的蟻獅坐標(biāo)位置。 得到游走步數(shù)和游走范圍之后,就可以計(jì)算螞蟻的具體游走坐標(biāo)。為了防止螞蟻游走到坐標(biāo)范圍之外,因此還需要通過(guò)以下公式對(duì)游走坐標(biāo)進(jìn)行規(guī)范化。 [Rti=Xti-Xmini×(Xmaxi-cti)(dti-Xmini)+cti]? ? ? ? ? ? ? (15) 其中,[Xti]是第[t]輪第[i]個(gè)螞蟻隨機(jī)游走的步數(shù),[Xmini是]第[i]個(gè)螞蟻隨機(jī)游走步數(shù)集合中的最小值,[Xmaxi是]第[i]個(gè)螞蟻隨機(jī)游走步數(shù)集合中的最大值。 螞蟻的游走范圍還會(huì)受到精英蟻獅的影響,要算出螞蟻圍繞選擇蟻獅和精英蟻獅的隨機(jī)游走坐標(biāo),取其平均值得到螞蟻?zhàn)罱K的游走坐標(biāo)。 [Antti=RtA+RtE2]? ? ? ? ? ? ? ? ? ? (16) 其中[RtA]是第[i]個(gè)螞蟻第[t]輪繞著輪盤(pán)賭選擇的蟻獅隨機(jī)游走的位置,其中[RtE]是第[i]個(gè)螞蟻第[t]輪繞著精英蟻獅隨機(jī)游走的位置,[Antti]是第[i]個(gè)螞蟻第[t]輪的最終像素坐標(biāo)。 2.1算法流程偽代碼 N: 種群數(shù)量; dim: 解的維度; t: 當(dāng)前迭代次數(shù); T: 最大迭代次數(shù); ant: 螞蟻的坐標(biāo);antlion: 蟻獅的坐標(biāo); elite: 精英蟻獅坐標(biāo) antlion_finess: 蟻獅適應(yīng)度值; elite_fitness: 精英蟻獅適應(yīng)度值 根據(jù)適應(yīng)度函數(shù)公式(8)計(jì)算第一代蟻獅的適應(yīng)度值并按降序排序 elite更新為適應(yīng)度最大的蟻獅 while t for i = 1∶N 根據(jù)蟻獅適應(yīng)度值,螞蟻使用輪盤(pán)賭方法選擇蟻獅, 根據(jù)公式(10)~(15)計(jì)算螞蟻圍繞被選中蟻獅的隨機(jī)游走的坐標(biāo) 根據(jù)公式(10)~(15)計(jì)算螞蟻圍繞精英蟻獅隨機(jī)游走的坐標(biāo) 根據(jù)公式(16)更新螞蟻?zhàn)罱K的游走坐標(biāo) 計(jì)算螞蟻游走后的適應(yīng)度值并與上一代蟻獅合并,并按適應(yīng)度按降序排序 選擇適應(yīng)度值最大的前 N 個(gè)個(gè)體為當(dāng)代蟻獅種群antlion if antlion_finess( 1)elite_fitness = antlion_finess( 1) end if t++ end while 3實(shí)驗(yàn)結(jié)果及分析 為了驗(yàn)證本研究改進(jìn)的算法的速度提升和準(zhǔn)確度可靠性,在一臺(tái)Intel(R) Core(TM) i5-9300H2.40 GHz16GB的PC機(jī)上進(jìn)行實(shí)驗(yàn)。使用20張眼睛圖像進(jìn)行實(shí)驗(yàn),每張圖片大小為32×24像素。首先使用原始的MOG瞳孔中心算法計(jì)算出每張圖片的瞳孔中心坐標(biāo),如圖3所示,每張圖片適應(yīng)度最大的點(diǎn)就是瞳孔中心點(diǎn)。 然后使用基于A(yíng)LO改進(jìn)的梯度相應(yīng)定位算法對(duì)其進(jìn)行中心點(diǎn)計(jì)算,實(shí)驗(yàn)結(jié)果如表1所示。在以下的參數(shù)設(shè)置中,最短運(yùn)行時(shí)間為542ms,其誤差為1.363像素;最長(zhǎng)運(yùn)行時(shí)間為792ms,其誤差為1.072像素。而原始的MOG瞳孔中心算法對(duì)于一張32×24的圖片計(jì)算需要3800ms??梢?jiàn)使用ALO優(yōu)化算法改進(jìn)之后,在速度上得到了很大的提升,同時(shí)也保持了瞳孔中心定位的精確性。 4結(jié)論 本文將ALO優(yōu)化算法應(yīng)用基于梯度響應(yīng)的瞳孔定位算法,進(jìn)行瞳孔中心適應(yīng)度函數(shù)尋優(yōu),可以提升定位速度,同時(shí)保證其精確度。可以將一張32x24圖片的定位速度由3.8秒減少到0.6秒左右,誤差只有1.2個(gè)像素點(diǎn)左右,定位速度快而且較為精確。但是對(duì)于包含了眼睛、眉毛的圖片,由于定位算法和優(yōu)化算法二者本身的局限性,容易陷入局部最優(yōu)解,還有待改進(jìn)。 參考文獻(xiàn): [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] 趙世杰,高雷阜,于冬梅,等.帶混沌偵查機(jī)制的蟻獅優(yōu)化算法優(yōu)化SVM參數(shù)[J].計(jì)算機(jī)科學(xué)與探索,2016,10(5):722-731. [8] 崔東文,王宗斌.基于A(yíng)LO-ENN算法的洪災(zāi)評(píng)估模型及應(yīng)用[J].人民珠江,2016,37(5):44-50. 收稿日期:2022-02-15 作者簡(jiǎn)介:王晶儀(1996—),江蘇無(wú)錫人,碩士研究生,研究方向?yàn)樯疃葘W(xué)習(xí),語(yǔ)義分割,眼動(dòng)追蹤;王艷霞,山東青島人,副教授,研究方向?yàn)橛?jì)算機(jī)視覺(jué),深度學(xué)習(xí),膜計(jì)算;朱原雨潤(rùn)(1997—),河南焦作人,碩士研究生,研究方向?yàn)樯疃葘W(xué)習(xí),微表情識(shí)別;張領(lǐng)(1995—),湖北黃岡人,碩士研究生,研究方向?yàn)樯疃葘W(xué)習(xí),表情識(shí)別。