用来研究眼动活动的结合基于特征和基于模型思想的算法Dongheng Li, David Winfield, Derrick J. Parkhurst摘要:由于用户的注视点能极大的改善人机接口,则可以把眼动活动当作用户注意力状态的标志。
将眼动活动整合成现在这种接口的障碍就是没有一种可用的,可靠的,低成本的,开源的眼动跟踪系统。
为了给那些接口设计者提供这样一个系统,我们研发了一种基于特征和模型思想的混合算法并且提供了一个开源的软件包。
我们将这种算法命名为Starburst。
这种算法比单纯基于特征跟踪的算法更准确而且比单纯基于模型跟踪的算法更省时。
当前能够将红外视频剪辑来跟踪眼动活动。
这种视频可以用一个廉价的头盔式眼动仪来获取。
这是一个可靠的研究并且指出该电子技术能够估计眼睛的位置,误差不超过一度。
关键词:眼动跟踪;头盔式眼动仪;算法;基于特征;1 简介眼动活动的使用能极大的改善人机接口的质量。
应用眼动活动的人机接口有两种:在线接口和离线接口。
在线接口允许用户利用眼动活动详细的控制接口[8]。
比如,用户可以通过注视虚拟键盘上的按键来进行打字而不用使用传统的敲击键盘的方法[9]。
这种技术也可以用在常用的接口中,比如用户可以在图形用户接口中注视一个图标来选择它,这样大大提高了速度[16]。
另一方面,离线的接口能监视用户眼动活动并且自动调整。
例如,在视频传输和虚拟现实应用,可变分辨率显示技术能主动跟踪用户的眼睛并且提供一个关于凝视点的详细信息,同时省略了外围设备的细节[13,14]。
尽管眼动跟踪已经应用到一些研究系统和小型的产品中,但是眼动跟踪技术还没充分发挥它的潜力。
尤为重要的是,眼动跟踪技术的许多方法已经应用了很多年。
将这种技术整合成人机接口的首要障碍是这种系统要么容易被入侵,要么就是成本太高。
最近,由于头盔式视频眼动仪逐渐缩小,眼动跟踪的被入侵性显著下降[15,1]。
视频眼动跟踪移动技术也减少了入侵性[6,10],但是降低了系统的准确性。
随着技术的不断发展,剩下的障碍就是成本。
目前,有一些眼动跟踪系统已经投入市场,它们的价格大约5000到40000美元。
值得注意的是,这些开销并不是由于硬件,因为在过去10年中高清数码镜头的价钱已经下降了很多。
然而,开销主要和软件相关,有时候也需要整合特殊的数码处理器来获得高速性能。
这种分析清楚的指明了,为了将眼动活动结合到平常的人机接口中,需要广泛的可用性,可靠性和高速眼动跟踪算法,而这种算法需要在普通电脑硬件的支持下完成。
为了达到这个目的,我们发明了这个结合基于特征和模型思想的算法并且在一个开源包中使分布式系统得以实现。
通过结合低成本的头盔式眼动仪[18],眼动跟踪技术很可能成为下一代人机接口。
2 问题描述如上所述,眼动跟踪系统可以分为远程系统和头盔式系统。
每一种系统都有其特有的优势。
比如远程系统比头盔式系统不容易被入侵,但是却减少了准确性和灵活性。
另一方面,我们开发了一种低成本的头盔式眼动仪[18]。
这个眼动仪由两个CCD摄像头组成,它们绑定在一对安全眼镜上(如图1)。
其中一个摄像头捕捉眼镜的图像,另一个捕捉场景的图像。
两个摄像头是同步的并且以30赫兹的频率捕捉640×480像素。
在本文中,我们的眼动跟踪算法处理的图像就是利用这种头盔式眼动仪所获得的。
然而,这种算法也可以被应用到远程的视频捕捉系统。
眼动跟踪技术中主要使用两种图像处理方法,可见光谱成像和红外光谱成像[5]。
可见光谱成像是一种被动的方式,通过捕捉眼睛的反射光。
在这些图像中,通常情况下跟踪可见光谱图像最好的特征就是虹膜和巩膜之间的轮廓也叫角膜缘。
眼球的三种最相关的特征是瞳孔——让光进入眼球的光圈,虹膜——控制瞳孔直径的有色肌肉群,眼白保护覆盖在眼球其他部分的纤维。
可见光谱成像是很复杂的,因为环境中的光源是无法控制的,它包含许多镜面反射和漫反射成分。
红外光谱成像通过使用一个用户无法感知的红外光控制来主动消除镜面反射。
红外光谱成像的好处就是,瞳孔作为图像中最强的特征轮廓而不是角膜缘(如图1d)。
巩膜和虹膜都能够反射红外光,而只有巩膜能反射可见光。
跟踪瞳孔轮廓更具优势,因为瞳孔轮廓比角膜缘更小更尖锐。
还有,由于它的大小,瞳孔更不容易被眼皮遮住。
红外光谱成像也有缺点,那就是在白天不能用在户外,由于外界环境能清除红外线。
在本文中,我们的算法主要使用红外光谱成像技术同时也拓展到可见光谱成像技术。
红外眼球跟踪通常使用亮瞳或暗瞳技术(如参考文献[10]中结合了亮瞳和暗瞳技术)。
亮瞳技术通过在离摄像头光轴非常近的地方使用一个光源来照射眼球。
由于眼球后部的照片反光特性而形成了一个瞳孔分明的明亮区域。
暗瞳技术通过在远离光轴的地方使用一个光源,这样瞳孔在图像中就是黑暗的区域,同时巩膜、虹膜和眼皮反射比较多的光。
两种方法都是使用对照明光源的表面反射而使角膜(眼球最具光学特性的结构)可见。
使用瞳孔中心到角膜反射点的向量比单独使用瞳孔中心的方法要可靠的多。
这是由于向量对于头盔摄像头和光源的同时移动所造成的误差不敏感(参考下面的实用性研究)。
本文中我们的算法主要以暗瞳技术为核心,同时也可以应用到亮瞳技术中。
图1 (a)和(b)头盔式眼动仪(c)眼动仪获得的图像(d)用户右眼的图像3 相关工作眼动跟踪算法可以分为两种方法:基于特征和基于模型。
基于特征的方法根据眼球的位置探测和定位图像特征。
基于特征的方法有一个共性,那就是需要一个标准(比如一个阈值)来确定特征的存在。
这个阈值应该是一个由用户自行确定的参数。
跟踪特性在整个算法中有很大变化但是主要依靠亮度水平和亮度梯度。
比如,应用暗瞳技术的红外成像,可以设置适当的亮度阈值来提取对应该区域的瞳孔。
将瞳孔中心当做该区域的几何中心。
在可见光谱成像中,亮度梯度可以用来检测角膜缘[21]。
在红外光谱成像中,亮度梯度可以用来检测瞳孔中心[12]。
这些特征点最后可以拟合成一个椭圆。
另一方面,基于模型的方法不能发掘详细的特征但是可以找到连续图像的最佳模型。
例如,可以利用积分微分运算来寻找角膜缘和瞳孔边缘点的最佳拟合圆[3]或者椭圆[11]。
这种方法需要对模型的参数空间进行反复的搜索来寻找最大的圆边界或者椭圆的边界导数。
基于特征的方法定义的特征标准不能应用到图像数据中,所以基于模型的方法能更准确的估计瞳孔中心的位置。
但是这种方法需要搜索一个复杂的参数空间,这里面可能充满了位置的最小值。
因此,没有对模型参数的一个初始估计,梯度技术就不能实现。
由此可见,这种方法的准确性是以综合速度和灵活性为代价的。
然而,在多重标准的图像处理方法[2]中结合基于模型的方法对于实时操作有很好的前景[5]。
4 Starburst算法这部分阐述的是结合基于特征和基于模型思想的眼动跟踪算法,用这种算法来权衡在红外照射下的暗瞳技术的运行时间和准确性。
该算法的目的是提取瞳孔中心和角膜反射点的位置来完成对视场图像的坐标转换。
该算法从定位和去除图像中角膜反射点开始。
然后反复使用基于特征技术来定位瞳孔边缘点。
使用随机样本一致性范式来找到这些点的最佳拟合椭圆[4]。
从基于特征的方法中提取的最佳适应参数来初始化对模型参数的搜索,以便计算椭圆参数。
4.1 去噪根据第二章描述的低成本的头盔式眼动仪,我们需要先对图像进行去噪。
我们通过应用标准偏差2个像素的5×5的高斯滤波器来实现去噪。
利用标准化因子能够将直线一条条转化成前一帧图像的连续均值。
在第i帧中的每一条直线l的这个因子C如下:式中,I(i,l)是直线强度,β=0.2。
注意,去噪技术是选择性的,当算法用来处理噪声小的图像时,可以省略去噪环节。
4.2 角膜反射的发掘,定位和移动角膜反射点也就是眼球图像中最明亮的区域。
通过二值法能够获取角膜反射点。
但是每个观察者的阈值常量都不是最佳的。
所以我们使用自适应的二值法在每一帧中定位角膜反射点。
因为角膜延伸到大约角膜缘的位置,我们就将角膜反射点的搜索限制在宽度为h=150像素的正方形区域内(见讨论部分的参数值)。
最大门限值是用来产生一个二值图像,仅取像素大于这个阈值的点作为角膜反射点。
基本上最大的候选区域就是角膜反射区域,至于其他的反射区域都是很小的或者脱离了角膜范围,也有在图像边缘眼皮位置的。
最大候选区和其它区域的均值之间的比例随着阈值的降低能够被计算出来。
首先,由于角膜反射区域比其它区域增长的快,所以这个比例会增大。
角膜反射区域的强度沿着径向递减。
一个较小的阈值一般会产生错误的候选区域。
当错误候选区域更加显著并且角膜反射区域扩大的时候,比例就会下降。
我们就认为这个时候产生最大比例的阈值为最佳的。
角膜反射区域的位置就用自适应门限法,由最大区域的几何中心(x c,y c)确定。
角膜反射区域在图像中大致成圆形。
角膜反射区域的大致大小可以由定位步骤中应用阈值的区域导出,这个区域不一定能完全包含角膜反射区域的整个轮廓。
我们假设角膜反射的强度分布遵循一个二元高斯分布,这样来确定角膜的全反射。
如果我们发现半径r在亮度衰减最大的地方是最大高斯衰减,那么我们就可以取2.5r的最大角膜反射来捕捉99%的角膜反射剖面。
我们通过梯度来搜索合适的最小值从而确定r。
式中δ=1,I(r,x,y,θ)是由x,y,r确定的圆,圆心角为θ处的像素强度。
r 使用下式来初始化,面积就是二值区域中像素的数目。
该搜索快速收敛。
使用径向的内插法来移动角膜反射区域。
首先,将角膜反射区域的中心像素设定成该区域边缘强度的均值。
从中心到边缘中间的每个像素值都是由线性内插法来确定。
该过程的流程如图5(比较a和b)。
4.3 瞳孔边缘检测我们已经开发了一个新颖的基于特征的方法来检测瞳孔边缘。
伪代码如图2所示。
如果把其它的基于特征的方法应用到边缘检测或者整个眼球图像中,由于瞳孔边缘通常只占图像的一小部分,这些计算方法就显得有些浪费。
与之相反,我们从一个最佳猜测的瞳孔中心射出的有限数量的光线中来检测边缘。
这些光线从图3a中能看出来。
利用暗瞳技术从红外照射成像中提取瞳孔轮廓,该方法充分利用了瞳孔轮廓的高对比度椭圆剖面。
图2 特征点检测方法每一帧都有一个对瞳孔中心的最佳猜测位置。
对于第一帧,通常将图像的中心作为猜测的瞳孔中心。
后面的每一帧都来源于前一帧。
在N=18时,从出发点呈放射状延伸的每一个Δ都是逐个像素独立估计的直到阈值超过φ=20。
由于我们使用的暗瞳技术,只取正值(因为亮度沿着光线方向递增)。
当超过阈值时,就不在沿着光线放下进行处理,特征点就定为该点。
如果光线延伸到图像边缘,那么就不再定义特征点。
图3a中是一系列候选特征点的选取。
对于每个候选特征点,上述的方法是循环进行的。
但是光线的角度限定为初始点的正负50度。
用这种方式限制返回光线的动机就是如果候选特征点正好是瞳孔中心(如图3b所示),返回光线会在瞳孔反方向产生额外的特征点,也在同一个椭圆上(也就是瞳孔轮廓)。