APP下载

一种基于ALO优化和图像梯度的瞳孔中心定位算法

2022-08-31王晶仪王艳霞朱原雨润张领

电脑知识与技术 2022年17期

王晶仪 王艳霞 朱原雨润 张领

摘要:眼动追踪的应用很广泛,而瞳中心孔定位是眼动跟踪中的一项基本任务。基于图像梯度的瞳孔中心定位算法比较精确,但是难以在精度和速度之间取得平衡,因此使用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。可见使用ALO优化算法改进之后,在速度上得到了很大的提升,同时也保持了瞳孔中心定位的精确性。

4结论

本文将ALO优化算法应用基于梯度响应的瞳孔定位算法,进行瞳孔中心适应度函数寻优,可以提升定位速度,同时保证其精确度。可以将一张32x24图片的定位速度由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—),湖北黄冈人,硕士研究生,研究方向为深度学习,表情识别。