标题:A novel non-intrusive eye gaze estimation using cross-ratio under large head motion
作者:Dong Hyun Yoo, Myung Jin Chung*
来源:Computer Vision and Image Understanding 98 (2005) 25–51
一种新的头部大运动下基于交比的非侵入性眼睛凝视估计
摘要
眼睛凝视估计系统计算人眼凝视的方向。已经报道了许多考虑用户头部运动的精确眼睛凝视估计系统。虽然系统允许较大的头部运动,但为了获得眼睛、摄像机和监视器的几何位置,它们需要多个设备和复杂的计算。本文提出的基于光反射的方法不需要知道它们的位置,因此使用该方法的系统比传统的系统更轻,更容易使用。为了估计用户看在哪里允许充分的头部移动,我们利用射影空间的不变值(交比)。此外,提出了一种使用椭圆特定活动轮廓的鲁棒特征检测方法,以便准确地找到特征。我们提出的特征检测和估计方法简单快速,在大头运动情况下显示出准确的结果。
关键词:非侵入性眼睛凝视估计;头部大运动;交比;鲁棒性瞳孔检测
1.介绍
眼睛凝视在人类交流中起着重要的作用。当试图理解一个人的意图时,这是一种暗示。眼睛凝视可以用作人类和计算机化设备之间的接口。眼睛凝视界面为我们提供了一种比键盘和鼠标更自然的与设备交互的方式。有几种方法来估计眼睛凝视的方向:光的反射,皮肤电位和隐形眼镜。这些方法分为侵入性方法和非侵入性方法。非侵入式方法是首选的,因为它们往往比侵入式方法更容易使用。不幸的是,仍然有许多未解决的问题阻碍了非侵入式眼睛注视系统在实际应用中的使用。其中最普遍的是:精确度,受限的头部运动,健壮性和易于校准。虽然已经有一些关于系统精度在1°以内的报告,但其中许多都限制了用户假设头部是固定的移动范围,或者头部仅在有限的小范围内移动。其他系统可以精确地处理一定量的头部运动,但它们需要额外的信息,例如知道相机和眼睛之间的距离。为了测量这个距离,必须使用立体摄像机或超声波传感器,这使得眼睛凝视系统相当复杂。此外,任何复杂的校准都会给用户带来不适。
本文提出的方法是非侵入式的,基于光的反射,但它与现有系统的不同之处在于它由五个红外发光二极管(LED)和两个摄像机组成。我们将四个LED连接到监视器的每个角落,并且利用它们的闪烁来找到从闪烁到眼睛凝视点的映射函数。位于其中一个相机镜头中心的第五个LED对于考虑大头移动至关重要。为了估计用户的凝视将落在哪里,我们利用投影空间的不变值,这是一种简单、快速和准确的方法,即使用户有显著的头部移动。
准确的特征检测对于眼睛凝视估计系统是至关重要的,因为特征检测误差直接关系到系统的精度。瞳孔是一个有用的元素,但它的检测是困难的,因为它的强度与虹膜的强度非常相似。Hutchinson提出的明亮眼睛效应提高了瞳孔检测的可能性,因此它与暗眼图像一起使用。用活动轮廓法识别瞳孔边界,并用椭圆拟合以减小噪声的影响。该方法具有较好的鲁棒性和精确的特征提取能力。
第二节讨论了相关工作及其局限性。第三节解释了眼睛模型和眼睛凝视的定义。第四节介绍了我们提出的眼睛凝视估计系统,第五节描述了使用该系统的眼睛凝视估计方法。第六节提出了一种稳健的特征提取方法。第七节展示了一个人脸跟踪系统。第八节展示了实验结果。最后,第九节给出了结论。
2.相关工作
估计眼睛注视方向的方法分为两类:侵入性和非侵入性。侵入性方法执行得非常好,并且据报道比当前正在实践的非侵入性方法更准确。然而,侵入性方法有一个严重的缺点,即用户必须佩戴的眼睛凝视检测设备会引起不适并限制他们的移动。或者,最近提出了许多新的非侵入性方法,其精度水平显示出显着的改进。然而,它们的使用仍有许多未解决的问题。现在让我们更详细地看一下每种类型的方法。
(1)侵入性方法
一些研究人员试图利用皮肤电位来开发眼睛凝视估计系统[1,2]。方法基于皮肤电位测量身体信号,并利用附着在眼睛周围皮肤上的电极估计眼睛的运动。基于隐形眼镜的方法使用特殊的隐形眼镜。镜头的确切位置可以通过在镜头中植入一个微小的感应线圈并在用户的头部周围放置高频电磁场来记录。Kim等人。[3]建议采用基于视觉的方法。他们通过跟踪图像中的角膜缘来估计眼睛的运动,并用连接在头部上的磁性传感器测量头部的姿势。通过这两个结果,可以得到眼睛的凝视。
(2)非侵入性方法
非侵入式方法可以分为两类:主动的和被动的。主动方法使用光的反射和视觉处理,而被动方法仅基于视觉理论。
Hutchinson[4]通过使用LED产生的闪烁和相机捕获的图像中瞳孔的中心来计算眼睛凝视的方向。如果用户直接看LED,闪烁和瞳孔中心之间的距离很小。另一方面,如果用户将目光从LED移开,则距离会增加。Morimoto等人。[5]利用从闪烁瞳孔向量到凝视点的屏幕坐标的映射函数。函数由两个二阶多项式方程表示,方程的系数由校准程序确定。当用户的头部处于固定位置时,这些方法证明了增强的性能,但如果有任何程度的头部移动,则没有。为了提高性能,Ji和朱[6]提出了一种基于神经网络的方法。他们通过使用广义回归神经网络(GRNN)将瞳孔参数映射到屏幕坐标来计算眼睛凝视点。该系统使用瞳孔参数、瞳孔-闪烁位移、拟合瞳孔的椭圆的长短轴之比、椭圆方向和闪烁图像坐标。如果头部处于固定位置,这些方法非常有效。然而,由于估计结果随头部运动而变化,这些方法的准确性在自由头部运动期间存在风险。
有一些方法通过使用附加信息来处理用户的头部移动。Sugioka 等人[7]建立了利用瞳孔和闪烁的位置计算眼睛注视方向的公式。然而,为了求解方程,相机和眼睛之间的距离必须是已知的。为了解决这个问题,他们试图用超声波传感器测量相机和眼睛之间的距离。Ohno等人[8,9]提出了一种无头眼睛凝视跟踪系统。他们使用三个摄像头和一个LED开发了眼神跟踪系统。他们报告说,角膜曲率中心的3D位置可以使用一台相机和一张浦肯野图像来计算。然而,为了获得位置,眼睛和相机之间的距离仍然是必需的,所以他们利用立体相机系统来检测用户的头部并测量距离。Liu[10]和Pastoor等[11]开发了一种眼睛凝视估计系统,该系统通过使用两个摄像机来补偿头部的运动:凝视跟踪摄像机和眼睛跟踪摄像机。凝视跟踪相机通过监视瞳孔和反射闪烁来检测眼睛凝视。使用由眼睛跟踪相机估计的眼睛位置补偿的眼睛凝视来计算凝视点。
基于图像的方法只利用图像来估计眼睛的凝视方向。Matsumoto和Zelinsky[12,13]采用立体摄像机系统来确定眼睛凝视方向和头部方向。然后将这两个方向组合起来估计凝视方向。Wang和Sung[14]提出了一种使用两个摄像机的精确的基于图像的眼睛凝视估计系统。一个摄像机是凝视摄像机,用于估计相对于头部姿势的眼睛凝视,另一个是姿态摄像机,用于获取头部姿态。在这种方法中,他们使用单圈算法估计眼睛凝视相对于头部姿势。
正如所讨论的,许多方法的准确性受到危害,因为它们不能处理头部运动。尽管在显著的头部移动下应用了各种方法,但它们通常需要额外的信息来获得峰值效率,例如相机和用户眼睛之间的距离。为了测量这个距离,必须使用立体摄像机或超声波传感器,这就需要复杂的校准过程,从而使眼睛凝视系统复杂化。此外,传感器在距离上的微小误差导致总体估计结果缺乏精确度。
在本文中,产生了五种角膜反射,以便允许更大的头部运动,同时以负面的方式影响结果。我们提出的方法不需要任何关于摄像机、监视器或眼睛的几何位置的知识。此外,摄像机不需要校准。因此,这种方法可以很容易地应用到实际应用中。
3.眼睛模型和眼睛凝视
眼睛是平均直径为24 毫米的球体。眼睛的外层由巩膜形成,巩膜是一个坚固的白色不透明膜,围绕角膜并覆盖眼球的外部。它由坚固的结缔组织组成,其前部连续有透明膜,称为角膜(图1)。假设角膜的形状是半径约为 8mm 的假想球体的一部分。巩膜表面比角膜表面粗糙,并且曲率也较小。虹膜是不透明的组织,在其中心具有孔,即瞳孔。响应于不同的环境光水平和一些心理因素,瞳孔的直径在2到8mm之间变化 。最内层即视网膜直接接收光刺激。视网膜中央部分黄斑的厚度约为0.1mm 。黄斑黄色,主要由锥体占据。在黄斑黄体内有中央凹,视网膜的一部分具有最大的分辨能力。中央凹的直径约为0.4 毫米(约1°)。眼睛凝视系统的精度可以限制为1°,因为中央凹的宽度近似等于1°的视野。眼睛注视由连接中央凹与镜片中心的线确定。
凝视方向相对于眼球的中心。要使用眼睛凝视方向作为界面,必须计算凝视点(凝视点)。凝视点由视线和与视线交叉的对象确定。许多传统的眼睛凝视估计系统通过计算眼球在三维空间中的位置和方向来计算凝视点。这些系统需要了解眼球的确切位置和由眼睛的运动确定的眼睛方向。该位置与方向相结合,并且相对于世界坐标的总眼睛注视方向是在3D中计算的。为了获得固定点,对象相对于世界坐标的3D姿势应该是已知的。
在本研究中,使用简化的眼睛模型。假设眼睛是具有平均半径的球形,并且角膜是半径为r mm的假想球体的一部分。瞳孔位于角膜的中心。角膜和瞳孔之间的距离是d mm。
当用户看着监视器时,我们需要考虑头部移动的范围。假设监视器位于桌面上,并且用户坐在监视器前方约40-60cm处。头部运动仅限于特定区域,同时凝视着显示器。眼睛的旋转不严格,因为用户的注视点在监视器屏幕内。此外,头部和监视器之间的距离大于监视器的尺寸,因此眼睛旋转的范围很小。头部运动的范围可以参考人体工程学[16],[17],[18],[19]来定义 ;
(1)显示器的顶部应略高于视线水平。
(2)观看距离为400至600 毫米。
(3)侧面观察边界不应超过身体中心线两侧的30° 。
4.系统描述
为了适应充足的头部运动而不存在不精确的风险,我们的方法需要五个IR LED和两个摄像头,如图2所示。四个LED连接到显示器的角落以在角膜表面上产生反射,并且第五个LED位于变焦镜头相机的镜头的中心以产生亮眼效果(参见图3 )。显示器上的四个LED一起打开和关闭,而摄像机上的一个LED独立激活。这些LED通过计算机的并行端口进行控制。LED的切换与图像捕获同步,以便获得两个图像,如图3所示。监视器上的LED会在角膜上产生反射,然后在捕获的图像中显示四个闪烁。由于闪烁是由放置在监视器上的LED产生的,因此闪烁产生的多边形可以被认为是监视器的反射。这些闪烁用于通过从图像空间到监视器屏幕的映射来估计眼睛注视方向。放置在相机上的LED在视网膜上产生光的扩散,以产生明亮的眼睛效果,并在角膜上产生一个闪光。
摄像机安装在云台单元上,可以同时跟踪面部和眼睛。一个相机具有高倍率变焦镜头,用于捕捉放大眼睛的图像,如图3所示。捕获的眼睛的尺寸越大,系统精度越高。然而,仅通过变焦镜头相机跟踪放大的眼睛有些困难。变焦镜头相机的视场(FOV)非常窄,因此轻微的头部运动会导致眼睛从FOV中消失。因此,当变焦镜头相机不能这样做时,需要宽视角相机来稳健地跟踪眼睛。具有宽视角相机的面部跟踪子系统也是必不可少的。面部跟踪系统连续地跟踪面部,并且向平移 - 倾斜单元通知眼睛的位置,因此平移 - 倾斜单元可以控制摄像机的方向以捕获眼睛。
5.凝视点的估计
该系统利用射影空间的性质计算凝视点。当监视器的LED打开而摄像机的LED关闭时,光在角膜表面反射产生闪烁(见图3A)。相反,图3B是通过LED的反向操作而形成的。假设五个闪烁和瞳孔中心由摄像机观察,考虑到用户在第3节定义的空间内看到监视器,这是一个合理的假设。通常,因为用户位于监视器的正前面,所以头旋转的区域不会很大。
该系统利用射影空间的性质计算凝视点。当监视器的LED打开而摄像机的LED关闭时,光在角膜表面反射产生闪烁(见图3A)。相反,图3B是通过LED的反向操作而形成的。假设五个闪烁和瞳孔中心由摄像机观察,考虑到用户在第3节定义的空间内看到监视器,这是一个合理的假设。通常,因为用户位于监视器的正前面,所以头旋转的区域不会很大。
图4显示了我们估计眼睛注视方向的概念。在图中,p是瞳孔的中心,g是眼睛凝视点,这是用户看的地方。视线在g处与屏幕相交。我们的目的是根据我们对五个闪烁的位置、瞳孔和监视器屏幕的实际大小的知识来估计凝视点。我们试图利用射影空间的不变值来解决这个问题。在图中,假设角膜表面有一个虚拟切线平面。平面上的点v1、v2、v3和v4是监视器的四个IR LED(LED1、LED2、LED3和LED4)的投影点。这些点被称为虚拟投影点,并且它们的投影中心是角膜球的中心。如果虚拟投影点近似共面,则虚拟投影点形成的多边形是监视器屏幕的投影。虚拟投影点和瞳孔被投影到相机的图像平面中的五个点(uv1;uv2;uv3;uv4;和up)中。因此,从监视器屏幕到图像平面有两个投影变换。如果虚拟投影点近似共面,则可以通过使用投影不变量来估计g的屏幕坐标。它将在第5.2节中描述。
为了从闪烁中获得虚拟投影点,需要详细研究它们的几何关系。将问题简化为二维情况(见图5)将使其更容易理解。假设在带有LED的监视器前面有一只眼睛,并且放置了一台摄像机来捕捉眼睛。用户注视屏幕的一个凝视点(G)。在该图中,点r1、r2和c分别是由LED1、LED2和LEDC在角膜表面上产生的闪烁。光的反射产生闪烁ur1,ur2和uc在图像中。由于闪烁是由反射产生的,因此这些特征不适合与投影空间的特性一起使用。
为了解决这个问题,计算由投影产生的虚拟投影点。虚拟平面在点c处与角膜相切。切平面上的点v 1和v 2是切平面和从LED到角膜中心的线的交叉点。由于相机的LEDC位于镜头的中心,因此闪烁点c位于连接相机的光学中心和角膜中心的线上。三点v 1,v 2和c是切平面的交叉点和穿过同一消失点的线,这是消失角的中心。因此,监视器上的LED与图像中的闪烁之间的关系被认为是两个投影:从监视器到与角膜相切的平面,以及从相切线到相机的图像平面。此外,瞳孔的中心投影到图像平面中的一个点(up)。因此,我们可以假设图像中的两个虚拟点和瞳孔的中心是两个LED的投影点和屏幕上的凝视点。因此,凝视点由投影空间的不变值估计。这个概念也可以应用于三维情况。该图像坐标虚拟投影点不能直接观察,但可以使用5.1 节中描述的方法估算。
5.1.计算虚拟投影点
为了利用投影空间的性质,需要计算虚拟投影点。从真实反射点计算虚拟点有一定的挑战性,因为关系太复杂。幸运的是,在用户坐在监视器前并且直接看着它的情况下,头部运动的范围可以被限制在特定的区域。通常,用户坐在距离监视器30-50 cm的位置,移动范围小于30 cm。通过限制头部移动,可以近似计算虚拟投影点。图6是图5的放大视图。xcamera是相机和角膜中心之间的距离,xLED是LED和角膜中心之间的距离。xR1和xR2是点r1和相机之间的距离以及点r1和LED之间的距离。如果ur1;uc和uv1是闪烁(r1和c)和虚拟投影点的坐标。在坐标系原点为
∑
\sum
∑i 的图像中,则
其中r是角膜的半径,f是摄像机的焦距,φ是摄像机相对于角膜的方向。
图6。如何计算虚拟投影点。
∑
\sum
∑C是一个坐标系原点,其位于所述摄像机的光学中心,并且
∑
\sum
∑i 是图像坐标系原点。
θ1是点c和r1之间的角度,θ2是点r1和v1之间的角度。当用户操作计算机时,这两个角度非常相似,因为监视器和眼睛之间的距离比相机和LED之间的距离长。复合三角
根据反射定律,入射角等于反射角,所以
由于角膜的半径小于xcamera的距离,xLED、xR1和xR2分别接近xR1和xR2。式(6)近似于以下方程式:
因为角度范围是[0, π/ 2],所以角度几乎相同。角度φ接近π/ 2,因为高倍率相机具有跟踪相对小的眼睛的能力。通过近似,式(1)(2)(3)可以简化如下:
方程是xcamera和
θ
\theta
θ1的函数。根据xcamera和
θ
\theta
θ1的特征值如图7所示。
θ
\theta
θ1在先前限制的范围内小于10°,因此uv1和ur1的比率约为2。
如果
θ
\theta
θ1足够小,则式(9)和(10)可简化如下:
因此,我们有相关的等式:uv1 =2ur1 。但是,在实际情况下,uc可能偏离图像的中心。为了弥补这个问题,我们通过从ur1和uv1减去uc1消除偏移。因此,虚拟投影点可以通过以下等式计算:
其中
α
\alpha
α是接近2的常数。该值通过第5.5节中描述的简单标定过程确定。图8描述了根据闪烁计算虚拟投影点。
5.2.通过交叉比率估计眼镜凝视点
使用投影变换的交比不变量来估计凝视点。图9演示了如何计算图像中的交比。点uv1;uv2;uv3和uv4是通过上一节中描述的方法计算出的虚拟投影点。up是瞳孔的中心,e是uv1uv3和uv2uv4线的交点。
眼睛凝视点的x坐标通过以下方法计算。首先,必须通过行uv1uv4和行uv2uv3计算消失点,允许计算两个点um1和um1。消失点是uv1uv4和uv2uv3的交叉点。um1是线uv1uv2的交叉点,也是连接点e和消失点的线。um2是线uv1uv2和与消失点连接起来的线的交叉点。如果uvi=(xvi, yvi) (i=1,2,3,4)和umi=(xmi, ymi) (i=1,2,3,4)是图像中每个点的坐标,则直线uv1uv2上四个点的交比的方程式为:
类似地,如图10所示,监视器屏幕的交叉比率使用以下等式计算:
其中w是显示器屏幕的宽度和
x
^
\hat{x}
x^g是估计的眼睛注视点g的x坐标。
图10。显示器的屏幕。w是屏幕的宽度,h是它的高度。g是估计的眼睛注视点,其位置是(
x
^
\hat{x}
x^g,
y
^
\hat{y}
y^g)。
这些交比是相等的,因为交比在射影空间中是不变的。随后,我们能够获得估计的眼睛凝视点的x坐标
以相同的方式计算眼睛凝视点的y坐标。图像的交比为
屏幕的交比为
其中h是显示器屏幕的高度,
y
^
\hat{y}
y^g是估计的眼睛凝视点g的y坐标。眼睛凝视点的y坐标是
5.3.对所提出方法的稳定性进行仿真
为了确认估计的凝视点在头部运动下的稳定性,我们进行了仿真。我们假设如图11所示的模拟环境,其中有一个监视器,一个摄像机和一个眼睛(角膜)。用户在显示器前面40-50 cm。眼睛的建模如图1所示。眼球是半径为12 mm的球体,并且可以理解,角膜的半径®是8 mm,并且从角膜到透镜(d)的距离是根据人体测量数据的2.794 mm。这些值反映了成人眼睛的平均尺寸。在这个模拟中,凝视点固定在监视器屏幕的一个点上,眼睛的位置在x方向上改变(从左到右)。图12显示了当使用图像中闪烁的位置来计算交叉比时,根据眼睛的位置估计的交比和估计的凝视点。交叉比和估计结果随眼睛的位置而有显着变化,估计凝视点的变化量约为35 mm。假设监视器的宽度为300 mm,分辨率为1024像素,则此变化意味着最大误差可能约为119像素。此外,估计值与地面真值(0 mm)不同,因此应对该值进行缩放和偏移。
使用所提出的虚拟点和交叉比的方法也进行了类似的模拟。结果如图13所示。交叉比率在很小的范围内变化,估计结果变化小于1 毫米。请注意,因为估计值接近地面实况值(0 mm),所以不需要比例或偏移。因此,当存在大量的头部运动时,可以使用这种眼睛注视估计方法。
图13。根据眼睛的位置,交叉比率的变化。虚拟投影点的位置用于计算交叉比率。
5.4.虚拟投影点计算的灵敏度研究
在5.1节中,使用方程式近似计算闪烁的虚拟投影点。(13)。由于计算不是很精确,我们必须研究由估计的虚拟投影点产生的不准确性将如何影响凝视点的精度。在式(13),虚拟投影点根据α而变化。因此,我们检查估计的凝视点将α从1.8变为2.5。估计的凝视点的误差的变化在图14中示出。通常,α是小于2.5,因为θ1在平均操作环境不大于20° (见图7)。 根据角膜位置和注视方向可以产生约15 mm的估计误差。
5.5.标定
在式(13),如前所述,α接近2,但根据用户可能略有不同。为了提高所提出方法的准确度,可以使用计算系数精确值的校准过程。
当用户注视监视器上的LED时,检测到瞳孔的中心和由监视器和摄像机的LED引起的闪烁。因为用户直视LED,所以闪烁的虚拟投影点的位置应该与瞳孔的中心相同。通过这个约束,我们可以通过以下等式计算系数:
其中d(x1,x2)是点x1和x2之间的欧几里德距离。up、uc和ur1分别是瞳孔中心的图像坐标、摄像机LED产生的闪烁和监视器LED产生的闪烁。因为在我们的系统中有四个虚拟投影点,所以所有四个系数都是必需的。当用户看着监视器的每个LED时,该过程重复四次。
6.鲁棒特征提取
为了估计精确的眼睛注视点,必须从图像序列中获得由光反射和瞳孔中心产生的五个闪烁。精确的特征提取对于从任何眼睛注视估计系统实现高性能是必不可少的。此外,该方法应该能够快速操作,以便系统可以实时工作。在本节中,提出了一种鲁棒且快速的特征提取方法。
6.1.闪烁检测
由角膜反射产生的闪烁可以通过以下图像处理方法来检测,因为它们的强度值通常是图像中最高的。
步骤1:对输入图像(暗眼图像)进行阈值分割,得到二值图像。
如图15A所示,输入图像由阈值分割。
阈值通过实验确定。图15B显示了分段结果。
图15。检测角膜反射:(A)暗眼图像,(B)分割结果,和(C)检测到的闪烁。
步骤2:使用二进制形态处理二进制图像。
在该二值图像中,由红外光的反射产生四个1值的斑点,并且可能存在由噪声和不同照度水平引起的额外的1值斑点。此外,由于不合适的阈值,一个闪烁可能被分成两个以上的斑点。为了克服这些问题,二进制图像必须通过二次形态如腐蚀和膨胀处理几次。
步骤3:对每个区域进行分组。
区域分组应该使用顺序连接分量算法来计算每个区域。从计算的所有区域中,选择四个最大的区域,而忽略所有其他区域。
步骤4:计算每个区域的中心位置
一旦通过前面的步骤检测到四个区域,就可以计算每个区域的中心。
图15C显示了用红色十字标记的检测到的闪烁。
6.2.检测瞳孔中心
成功的瞳孔检测比闪烁检测更难实现,因为瞳孔的强度类似于相邻区域。为了克服这个困难,我们提到了Ebisawa [20]提出的鲁棒瞳孔检测方法。在他的方法中,当LED位于相机的光轴中时,瞳孔被显示为来自相机的图像中的明亮区域,如图3B所示。相反,当LED远离轴时,瞳孔变暗,如图3A所示。
为了稳健地检测瞳孔,我们使用两个图像:一个是在显示器的LED打开并且相机的LED关闭时拍摄的,另一个是在显示器的LED关闭和LED时拍摄的打开相机 如果在短间隔内从相机获得这些图像,则瞳孔区域内的强度差异较大,而瞳孔外部的区域的强度差异在两个图像中非常小。因此,两个图像的差异图像在瞳孔区域中具有高强度值,并且可以通过类似于闪烁检测的分割方法来提取瞳孔区域。从该二值图像中,可以容易地计算该区域的中心。
简单分割方法可能无法确定精确的瞳孔区域,因为分割的结果对阈值非常敏感。此外,在差异图像中存在由角膜反射产生的一些孔。图16显示了分割产生的三个例子。尽管第一图像表示来自适当阈值的结果,但是在瞳孔区域中仍然存在四个穿孔。当差异图像被高阈值分割时,如在第二图像中那样,在瞳孔区域中产生许多额外的孔。由于这些孔,分割区域的质心与实际的瞳孔中心略有不同。在第三图像中,瞳孔区域的边界不清楚,并且由于不正确的阈值和噪声而存在小的斑点。由于噪声,质心的计算无法检测到瞳孔的确切中心。为了减少噪声的影响,我们利用瞳孔边界看起来像椭圆的事实。椭圆拟合可以减轻噪音的影响,并改善噪音检测系统的准确性。不正确的阈值可能在瞳孔区域外引起额外的斑点。此外,如果有很多斑点,分割方法就像角膜检测(即标记和质心计算)一样,需要很长时间。因此,使用标记和质心计算的方法不适合于实时应用。为了解决这个问题,确定瞳孔区域的边界,然后通过椭圆拟合边界。对于椭圆拟合,使用直接椭圆拟合算法 [21]。
必须计算椭圆拟合的边界检测。然而,先前使用诸如Sobel和Canny的卷积算子的边缘检测方法不适合于提取瞳孔边界。其原因如图17 所示,其中边缘图像由Sobel算子检测。检测内边缘以及瞳孔区域的边界,因为在瞳孔区域中存在许多孔。仅使用边缘算子难以检测瞳孔区域的边界。因此,拟合椭圆不准确。
图17。Sobel算子检测到的边缘的椭圆拟合。红色椭圆是拟合的结果。
本研究的边界检测方法类似于主动轮廓方法,如主动形状模型(ASM),但它是椭圆特定的,以减少计算负荷。瞳孔中心分两个阶段检测。在第一阶段计算粗略位置,然后在第二阶段确定精确位置。该算法利用瞳孔非常接近圆的约束; 换句话说,椭圆的长轴和短轴具有相似的长度。
步骤1:获得亮眼图像和暗眼图像的差异图像。
步骤2:通过阈值对差异图像进行分割。
得到的图像是二值图像,其中如果差图像的对应像素的强度大于阈值,则每个像素具有1值; 否则,像素具有0值。
第3步:计算瞳孔的粗略中心和大小。
将二进制图像调整为较小的比例以减少计算时间。粗糙的中心通过对缩小图像中的1值像素的位置(x i,y i)(i = 1,… ,n)求平均来确定瞳孔区域的光瞳区域。瞳孔区域的粗略尺寸等于1值像素的数量。
第4步:放置初始轮廓。
初始轮廓是由许多点组成的圆。这些点在两个相邻点之间以相同的角度放置。轮廓的中心位于光瞳区域的粗糙中心,轮廓的大小由前一步骤中计算的粗略大小初始化。
步骤5:确定瞳孔区域的边界。
通过沿轮廓的每个点处的法向矢量的1D线搜索来建立边缘。搜索线沿着点的初始圆的法线向量,并且诸如[0 0 0 1 1 1] 的简单模板用于边缘检测。
第6步:计算瞳孔的位置。
一旦检测到瞳孔的边界,就用椭圆拟合以减少噪声的影响。我们应用直接椭圆算法[21]。
1D边缘搜索如图18所示。轮廓由以相同度数间隔θ放置的多个点组成。在每个点上,沿着与点交叉并且与初始轮廓垂直的搜索线检测边缘。为减少计算时间,应减少搜索行的长度。但是,如果长度太短,边缘检测可能会失败。为了解决这个问题,利用先前检测到的点的边缘位置来确定下一个点的初始位置。初始点距轮廓中心的距离由先前检测点的距离确定。在图18中小三角形标记轮廓点的初始位置,十字形表示一维搜索后检测到的边缘位置。
图19示出了来自图16的三个示例的检测到的边界的结果。在该图中,小圆圈表示简化的活动轮廓的初始位置,并且交叉标记勾勒出瞳孔区域的边界。图16的精确拟合结果显示在图20中,其中黄点表示瞳孔区域的轮廓。
图19。来自图16 的示例的边界检测结果。小圆圈是简化的活动轮廓的初始位置。十字标记瞳孔区域的边界。
7.人脸跟踪子系统
需要面部跟踪子系统来稳健地跟踪眼睛。在由安装在平移 - 倾斜单元上的宽视野相机捕获的图像中跟踪面部,并且平移 - 倾斜单元根据面部的位置控制相机的方向。使用此子系统,高变焦相机可以稳健地捕捉眼睛。
人脸跟踪算法基于人脸颜色和均值漂移算法的高斯建模 [22],[23]。在第一阶段,面部颜色通过联合高斯分布建模,因为已知该模型可以很好地模拟面部颜色[24]。我们利用归一化RGB空间来减少照明效果。
脸部颜色分布可以基于高斯模型 G(m,
∑
\sum
∑2),其中 m=(
r
‾
,
g
‾
\overline{r},\overline{g}
r,g)以及
其中r i和g i分别是归一化-R和-G值,N 是用于面部颜色的像素数。Σ是面部区域中r i和g i 的协方差矩阵。我们可以通过以下等式计算(x,y)处像素颜色的概率:
其中r是归一化的R值,g是(x,y)的归一化-G值。
然后,我们可以通过均值平移算法获得面部区域的中心:
平均搜索窗口位于
其中 I(x,y )是图像中位置(x,y)的概率值,搜索窗口上的x和y范围。
在图像中,检测面部,然后相对于检测到的面部区域的中心计算眼睛的位置。图21显示了跟踪结果。用户从右向左移动头部。在时间 t = 72时,头部运动导致眼睛不在图像中。在t = 94时,眼睛再次出现在图像中。
8.实验结果
进行了各种实验以证明所提出方法的可行性。图22描绘了实验装置。相机是近红外CCD相机,图像尺寸为640 × 480像素。使用的计算机是奔腾IV-1.4GHz系统,显示器有15英寸。屏幕。屏幕分辨率为1024 × 768像素。显示器屏幕上有5 × 5个目标点。用户坐在 离屏幕40-60 厘米处,看着其中一个目标点。该系统估计了用户查看的点。进行了大约200次涉及显着头部运动的试验,其结果如图23所示。交叉表示估计结果,数字表示目标数。为了将所提出的方法与传统方法的哈钦森方法进行比较,传统方法的估计结果也显示在图中。在传统方法中,通过一个IR LED的闪烁和瞳孔的位置来估计凝视点。在图23中,x和y轴是屏幕的坐标,点表示估计的眼睛注视点。在表1和表2中,列出了估计误差的平均值,标准偏差和最大值。所提出的方法的平均误差在x和y中分别为0.98°和0.82° 。
图22。实验装置:带有四个红外LED的监视器和安装在云台装置上的两个摄像头。一个小型宽视角相机连接到高变焦相机的顶部。
图23。实验结果。屏幕分辨率为1024 × 768,屏幕有5 × 5个目标点。
表1。使用传统方法的估计误差的平均值,标准偏差和最大值
表2。使用所提出的方法的估计误差的平均值,标准偏差和最大值
有一些值得注意的错误原因。一个是特征检测。该系统的准确性取决于特征检测的准确性。然而,检测瞳孔的中心特别困难,因为瞳孔的强度与邻近区域相似。此外,特征检测还受到诸如照明的环境条件的影响。不精确的特征检测结果估计错误。其次,闪光的多边形仍然很小。它大约是45像素乘35像素。因为两个闪烁之间的距离可以根据头部位置而短,所以闪烁的小区域可能导致精度低。图像中的一个像素对应于屏幕中的几十个像素。某些情况会导致闪烁太接近彼此。一个这样的例子是当用户离监视器太远时。在这种情况下,由闪烁产生的多边形可能太小。但是,这种情况并不正常,因为用户和显示器之间的距离通常为40到60 厘米,如第3节中所定义。如果用户远离显示器并且由闪光产生的区域太小,那么我们必须使用具有更高放大率的镜头。第二个例子是用户位于监视器的侧面。但是,这种情况也是异常的,因为用户无法很好地看到屏幕。另一个误差来源是虚拟投影点的近似。利用投影空间的属性,虚拟计算投影点。通过虚拟投影点和交叉比,当考虑头部运动时,估计结果优于传统方法。然而,为了简化虚拟投影点的计算,使用了光的反射的近似,但是这种近似导致估计误差。当用户注视屏幕的一角时,错误特别大。
实时问题对眼睛注视估计系统非常重要。该系统以15 帧/秒的速度运行,因为特征检测需要很长时间。为了减小搜索空间,首先识别瞳孔的区域,然后在瞳孔的区域中检测闪烁。这样,计算时间急剧减少,特征检测不受外部噪声的影响。
9.结论
在本文中,提出了一种估计人眼注视点的新方法。四个IR LED连接到计算机监视器,来自这些LED的光在角膜表面上反射。该反射在由相机捕获的图像中产生闪烁。为了估计眼睛注视点,在图像中检测瞳孔的中心位置和角膜反射的闪烁,并且使用交叉比率。为了使用交叉比率,建议使用虚拟投影点。所提出的方法的优点在于它不需要关于LED,监视器,相机或眼睛的任何几何知识。而且,它不需要复杂的校准过程。这种方法在大头部运动中实时工作良好,并且由相对简单的装置组成。
瞳孔的中心位置很难被发现。因此,提出了椭圆特定的活动轮廓。实验结果表明,该方法能够实时,简单,快速地跟踪人眼凝视。
扩展我们的研究,我们正在努力提高所提方法的准确性。在虚拟投影点的计算中,近似是粗略的。为了提高性能,必须改进近似值。此外,我们已经提出了一种稳健的瞳孔检测方法,但仍然难以准确地检测瞳孔。改善系统的这一方面很重要,因为一旦特征检测快速准确,将不再需要面部跟踪系统。在本文中,我们提出的方法需要五个光源和两个摄像头,但如果系统可以改进,只需一台摄像机即可进行特征检测和凝视估计,系统将更轻便,更便宜。因此,我们现在正在考虑一种更好的特征检测方法。