题目:Non-contact Eye Gaze Tracking System by Mapping of Corneal Reflections
作者:Dong Hyun Yoo, Jae Heon Kim, Bang Rae Lee, and Myoung Jin Chung
来源:Proceedings of Fifth IEEE International Conference on Automatic Face Gesture Recognition, 2002

基于角膜反射映射的非接触式视线追踪系统

  • 摘要
  • 1.介绍
  • 2.相关研究
  • 3.系统描述
  • 4.估值
    • 4.1.特征提取
    • 4.2.通过交叉比率估计眼睛凝视点
  • 5.实验
  • 6.结论

摘要

在本文中,我们提出了一种新的系统来估计用户眼睛注视的方向。我们的系统由五个IR-LED和一个CCD相机组成。附着在电脑监视器角落的IR-LED使眼睛的角膜表面闪烁。如果用户看到监视器,瞳孔的中心总是在由闪烁形成的多边形中。因此,可以在不计算3D空间中的眼睛、照相机和监视器之间的几何关系的情况下计算用户的眼睛注视的方向。我们的方法比较简单和快速。我们将介绍这种方法并展示实验结果。

1.介绍

眼睛凝视跟踪系统是估计人类眼睛凝视方向的系统。换句话说,这些系统可以找到一个人看的地方。在第一阶段,神经学家对它们进行了研究,他们想要更多地了解人类视觉系统的机制。每当人类看到什么东西,他们的眼睛就会反复注视和移动。一些研究人员想要观察眼睛的动作,以便找到眼睛固定的地方。因此,他们开发了一些方法来测量眼睛的凝视点或凝视方向。

眼睛注视跟踪系统可用于因脊髓受伤而无法使用手臂的残疾人。目前,他们通常用嘴里叼着的长棍在电脑键盘上打字。然而,长时间使用这样的棍子是不方便的。此外,还有另一个问题。当计算机的操作系统(OS)具有类似微软的Windows98的基于图形用户界面(GUI)的界面时,用棒来控制鼠标指针是不容易的。因此,如果提出的系统能够估计用户的眼睛注视方向,并将鼠标指针定位在监视器屏幕上他们正在看的位置,他们就可以更容易地使用计算机。

有一些方法可以跟踪眼睛凝视的方向,如通过使用光的反射,皮肤电势或隐形眼镜。在这些方法中,由于光反射的简单性和低成本,人们已经做了大量的研究来达到这一目的。当红外LED(IR-LED)在用户面前打开时,光被反射在用户眼睛的角膜表面上。用户的眼睛凝视方向可以通过瞳孔的中心和CCD摄像机捕获的图像中的光的反射来计算。

本文所描述的方法也是基于光的反射。然而,我们的系统由五个红外LED和一个CCD摄像机组成。其中四个附着在监视器的角落里,在眼睛的角膜表面进行反射。另一个位于相机镜头的中心,以便准确地检测瞳孔区域。为了估计用户看哪里,我们使用四个闪烁之间的相对位置,反射产生的亮点,以及图像中瞳孔的中心。该方法简单、快速、准确。

第二节讨论了相关的研究,第三节介绍了我们的系统配置,第四节介绍了新的方法,第五节给出了一些实验结果。最后,我们在第六节中总结并讨论了未来的研究领域。

2.相关研究

如前所述,发展了几种估计眼睛凝视方向的方法:光的反射,皮肤电位和隐形眼镜。

一些研究人员用光在角膜表面的反射进行了实验。通常,选择红外光是因为CCD摄像机可以探测到它,而人眼却不能。当红外LED发光时,光线被反射到角膜表面,这种反射在CCD相机的图像中形成一个亮点。眼睛凝视方向可以在亮斑之间使用相关位置来计算,这是通过反射光线和图像中虹膜的中心来实现的。如果用户直接看到LED,那么亮点在虹膜中心附近。另一方面,眼睛的注视距离LED越远,亮点和虹膜中心之间的距离就越长。

在图像中找到虹膜的中心不是一个微不足道的问题,因为图像是通过照明改变的。检测眼睛的白色巩膜和黑色虹膜之间的边界,即边缘,更加健壮。由于巩膜和虹膜的强度水平差异很大,因此可以很容易地检测到这个边界。但是,这种解决方案也有缺点。边界的顶部和底部通常被眼睑遮住。因此,不能准确地检测出虹膜的中心。为了解决这个问题,检测瞳孔而不是边缘检测。

其他研究人员试图开发使用皮肤电势的系统。基于皮肤电势的方法可以测量人体信号,并通过将电极连接到眼睛周围的皮肤来估计眼睛的运动。这些方法也有一些问题。它们要求电极与用户紧密接触,并且眼睛的运动所发送的信号是如此之小,以至于难以检测。此外,用于检测信号的设备很昂贵。

在基于使用镜头的技术中,可以通过使用高倍镜来记录镜头的精确位置。通过将微小的感应线圈植入镜头,在用户头部周围产生高频电磁场。但是,涉及高频电磁场的健康问题仍未得到解决,用户可能会感到不舒服,因为他们必须佩戴连接到电线上的特殊隐形眼镜。

在这些方法中,通过光反射的方法是最流行的。下面描述基于该方法的一些引人注目的研究。

率先提出一种使用IR-LED来计算视线方向的方法。当红外光射入用户的眼睛时,在角膜表面会发生反射。因此,在角膜上会出现一个非常亮的点。这个亮点称为闪烁。他通过这种闪烁和使用CCD相机拍摄的图像中的瞳孔中心来计算视线方向。如上所述,如果用户直接注视IR-LED,则闪烁和瞳孔中心之间的距离很小。但是,如果用户注视着距离LED较远的地方,则闪烁的位置距离瞳孔中心很远。在这种方法中,找到图像中的确切特征点至关重要。但是,由于相机通常对照明变化敏感,因此很难进行精确的特征检测。尤其是,仅通过图像处理进行瞳孔检测非常困难,因为瞳孔的颜色类似于虹膜的颜色。

Hutchinson过利用亮眼效应,可以更准确地检测出瞳孔在图像中的位置。当IR LED位于相机镜头的中央时,来自LED的光会通过瞳孔进入眼睛,并在视网膜中反射。这种反射使瞳孔变亮。这种白眼被称为明眼。当这种情况发生时,瞳孔和虹膜的强度水平的差异变大,并且容易分割瞳孔区域。

图1。 系统配置:一个带有四个红外灯的监视器和一个带红外灯的CCD摄像机


在那些先前的方法中,假定凝视方向与两个特征的距离成线性比例。Cleveland制定了方程式,该方程式根据瞳孔和红外光反射产生的闪光来计算视线方向,并通过校准获得了方程式的系数。但是,相机和眼睛之间的距离应该是已知的,以便求解该方程式。他估计了距离,因为它太难找到了。因此,如果用户的头部移动太多,则误差会变大。为了解决这个问题,Sugioka等人使用超声波传感器测量了距离。但是,这些先前的方法存在严重的问题,因为眼睛,相机和IR-LED的关系很难精确建模。

3.系统描述

我们的系统由一台单色CCD相机和五个IR-LED组成,如图1所示。四个IR-LED固定在监视器的角上,以引起角膜表面的反射,另一个位于相机镜头的中央,以产生明亮的效果。监视器上的四个IR-LED一起打开和关闭,并且相机的IR-LED单独激活。这些指示灯由计算机中的并行端口控制。相机在监视器下方。摄像机的镜头是高变焦镜头,以捕获大眼图,如图2所示。眼睛的图像越大,准确性越高,但是在这种情况下,跟踪眼睛变得更加困难,因为头部的少量移动会使图像的差异更大。

图2。 用于特征检测的输入图像和预处理图像(a)角膜反射和黑眼效应(b)瞳孔反射和亮眼效应(c)差异图像(d)提取的瞳孔和中心位置


4.估值

当显示器的IR LED点亮且相机之一关闭时,光会在角膜表面反射,并出现亮点(所谓的闪烁)(图2(a))。这种反射称为角膜反射。图3显示了我们用于估计用户视线方向的概念。假设角膜表面是平面。在图中,点A,B,C和D是附着在监视器上A’,B’,C’和D’上的IR LED在角膜上产生的闪光。然后,我们可以在拐角处绘制一个带有这些闪烁的多边形,它是监视器屏幕的投影。在图3中,P是图像中瞳孔的中心,如果用户看着屏幕,则P总是在多边形中。P’是用户注视的视线点。视线与屏幕在P’(眼睛注视点)处相交,也就是用户正在看的地方。因此,瞳孔的中心(P)是眼睛凝视点(P’)的投影。为了估计眼睛凝视点,我们使用以下事实:图像中瞳孔中心(P)与多边形(ABCD)之间的位置关系与眼睛凝视点(P’)与屏幕(A’ B’ C’ D’)。

图3。IR-LED(a',b',c',d')和闪光(a,b,c,d)之间的关系。闪烁是红外发光二极管在眼睛表面的投影。p是图像中的瞳孔位置,p'是眼睛的凝视点。


4.1.特征提取

为了估计眼睛凝视点,应该从图像中获得一些特征。这是四个闪光点和瞳孔的中心。闪烁的检测很容易,因为它们的强度值通常高于其余强度。因此,使用了简单的图像处理算法。首先,对输入图像进行阈值分割,并以某个阈值制作二进制图像。如果每个像素的强度值都高于阈值,则二进制图像的相应像素的值为1。否则,二进制图像的强度值为0。阈值是通过实验确定的。在此二值图像中,有四个通过红外光反射产生的1值斑点,并且可能是由噪声和不同照明所产生的额外的1值斑点。此外,由于阈值不合适,一闪可能会分为两个斑点。为了解决这些问题,二进制图像必须通过诸如腐蚀和膨胀之类的二进制形态进行多次处理。然后,应该使用顺序连接的分量算法对区域进行分组,以计算每个区域。从计算出的所有区域中,选择最大的四个区域,而忽略其他区域。用这种方法检测到四个区域后,可以计算每个区域的中心。

由于瞳孔的强度与相邻区域相似,因此瞳孔检测比闪烁检测更难。因此,我们使用了Ebisawa提出的鲁棒的瞳孔检测方法。在他的方法中,当IR-LED位于相机的光轴上时,像图2(b)所示,在来自相机的图像中,瞳孔显示为明亮区域。另一方面,当IR LED远离轴时,瞳孔变暗。(图2(a))

图4。 如何计算图像中的交叉比率。a,b,c和d是瞳孔的闪光。p是图像中瞳孔的中心。e是多边形abcd的对角线的交点。


如果关闭显示器的IR-LED并打开一台相机,则瞳孔在图像中变亮。为了稳健地检测瞳孔,我们使用两个图像:一个是在显示器的IR LED开启且相机的IR LED关闭时拍摄的,另一幅是在显示器的IR LED熄灭时拍摄的以及相机的IR LED点亮。如果以非常短的间隔从照相机获得这些图像,则两个图像中的瞳孔区域的强度差很大,而瞳孔外部的区域的强度差很小。因此,如图2(c)所示,两个图像的差分图像在瞳孔区域中具有高强度值。可以通过类似于闪烁检测的分割方法来提取瞳孔区域。图2(d)显示了在瞳孔区域中具有1值的提取二进制图像。根据该二进制图像,可以轻松计算区域的中心。

4.2.通过交叉比率估计眼睛凝视点

在图3中,有一个监视器,该监视器上连接了四个IR LED。它们位于显示器的角落。CCD相机拍摄的眼睛图像中,LED的光反射会产生四次闪烁。点A,B,C和D是图像中的闪光点,使这些闪光点的IR LED位于监视器的A’,B’,C’和D’中。矩形A’B’C’D’被投影为多边形ABCD。只要用户注视监视器,瞳孔的中心就在多边形ABCD内。如果瞳孔中心在图像中为P,则P为P’的投影,即眼睛的视线点。通过先前的特征检测方法已知图像坐标中的A,B,C,D和P的位置,并且可以测量A’,B’,C’和D’的实际尺寸。为了计算眼睛凝视点P’,图4显示了如何计算图像中的交叉比率。(xi,yi)(i= 1 ,2 ,⋯ ,7 ) 是图像中每个点的坐标。

图5。 监视器的屏幕。w是屏幕的宽度,h是屏幕的高度。p’是估计的视线点,其位置是(x^,y^\hat{x},\hat{y}x^,y^​)


像这样计算出眼睛注视点的x坐标。首先,应该通过直线AD‾\overline{AD}AD和BC‾\overline{BC}BC计算消失点,从而可以计算两个点M1,M2。M1是线AB的交叉点,是连接两个点E和消失点的线。E是多边形ABCD的对角线的交点。M2是线AB和连接P与消失点的线相交的点。需要两个点M1和M2来计算交叉比。直线AB上四个点的交叉比为以下方程式:

以类似的方式,通过类似于以下的等式来计算图5所示的监视器屏幕的交叉比率。

其中w是监视器屏幕的宽度,x^\hat{x}x^是估计的眼睛凝视点P’(x^,y^\hat{x},\hat{y}x^,y^​)的x坐标。

这些交叉比率相等,因为投影空间中的交叉比率不变。然后,我们可以获得估计的视线点的x坐标。


图6。 实验结果。屏幕分辨率为1024×768,屏幕分为6×4块。在此图中,顶部和底部颠倒了。


眼睛注视点的y坐标以相同的方式计算。然后,

并且,屏幕的交比是

其中h是监视器屏幕的宽度,y^\hat{y}y^​是估计的眼睛凝视点P’(x^,y^\hat{x},\hat{y}x^,y^​)的y坐标。

视线点的y坐标为

5.实验

进行了一些实验以证明我们的方法。使用的IR-LED是HDSL-4400。它们的峰值波长是875nm,视角是110度。当正向电流为50mA时,辐射同轴强度为3mW / sr。我们选择它们的原因有两个。一种是视角。反射必须与头部的位置无关地发生,因为我们假设用户的头部可以自由移动。因此,最好将红外光散布到国外。选择它的另一个原因与安全问题有关。高强度的红外线可能会伤害眼睛。因此,我们提到了像ANSI Z136.1标准这样的国际标准,该标准为红外光建立了MPE(最大允许暴露)极限。我们选择了强度较弱的红外LED。

表1。估计误差的平均值、标准偏差和最大值


该相机是近红外CCD相机,图像尺寸为640×480像素。使用的计算机是奔腾IV-1.4GHz系统,所选的显示器具有17英寸的屏幕。监视器的屏幕分为6×4块。使用者坐在屏幕前30厘米40厘米处,看着其中一块。该系统估计用户查看了哪个块。进行了约200次试验,结果如图6所示。在该图中,x和y轴是屏幕的坐标,点是估计的眼睛注视点。在表1中列出了估计误差的平均值,标准偏差和最大值。平均误差约为20像素。结果适中,因为图像的分辨率为640×480像素。我们使用高倍变焦镜头拍摄了眼睛的放大图像。在这些图像中,多边形(ABCD)的大小通常约为80×80像素。因此,图像中的一个像素的误差发生了12.8像素的宽度误差和9.6像素的高度误差。

有一些明显的错误原因。一是特征检测中的错误。该系统的准确性取决于特征检测的精确程度。要检测的特征是瞳孔中心和角膜反射的闪光。特别地,如先前所述,检测瞳孔中心更加困难。图7示出了对瞳孔中心的不良检测。通过阈值进行区域分割会导致不良的分割结果,因为阈值不合适。

误差的另一个来源是瞳孔的弯曲。在这项研究中,我们假设瞳孔的表面是一个平面,因为它的曲率很小。我们说过监视器的屏幕投影为瞳孔中的多边形。但是,事实并非如此。

因为用户可以自由移动他/她的头部,所以根据相机,眼睛和监视器之间的相对位置可能会发生错误。因此,估计结果可能会根据头部的运动而有所不同。

图7。对瞳孔中心的检测不佳


6.结论

我们提出了一种新的方法来估计人眼的视线。四个IR LED固定在计算机监视器上,这些LED发出的光在角膜表面反射。这种反射导致相机捕获的眼睛图像出现闪光。我们假设屏幕被投影到一个顶点为闪烁点的多边形。为了估计眼睛凝视点,在图像中检测到瞳孔的中心位置和角膜反射的闪烁,并使用交叉比率。实验结果表明,该方法可以实时跟踪人眼注视。这种方法既简单又快速。

扩展我们的研究成果,我们正在开发一种设备,可以快速,强大地跟踪用户的眼睛。而且,该系统需要面部检测和跟踪。我们将尝试使用像蛇算法那样的活动轮廓来做到这一点。这项研究还存在一些尚待解决的问题。我们必须考虑瞳孔的曲率以及眼睛,相机和显示器之间的相对位置。解决这些问题将提高我们系统的准确性。

《Non-contact Eye Gaze Tracking System by Mapping of Corneal Reflections》论文阅读相关推荐

  1. 《基于卷积神经网络的深度迁移学习,用于燃气轮机燃烧室的故障检测》论文阅读

    目录 突出 抽象 引言 1.1动机 1.2文献综述获得的结论 1.3贡献 1.4组织 2方法 2.1燃汽轮机组故障知识共享 2.2迁移学习 2.3 基于卷积神经网络的深度迁移学习 2.4用于燃气轮机燃 ...

  2. 基于卷积神经网络和投票机制的三维模型分类与检索 2019 论文笔记

    作者:白静 计算机辅助设计与图形学学报 1.解决的问题 由于三维模型投影得到的视图是由不同视点得到,具有相对独立性,这种像素级的融合运算并没有直接的物理或者几何意义,更有可能造成图像有益信息淹没和混淆 ...

  3. TextCNN——基于卷积神经网络的文本分类学习

    1.CNN基础内容 CNN的全称是Convolutional Neural Network,是一种前馈神经网络.由一个或多个卷积层.池化层以及顶部的全连接层组成,在图像处理领域表现出色. 本文主要学习 ...

  4. 读懂深度迁移学习,看这文就够了 | 赠书

    百度前首席科学家.斯坦福大学副教授吴恩达(Andrew Ng)曾经说过:迁移学习将是继监督学习之后的下一个促使机器学习成功商业化的驱动力. 本文选自<深度学习500问:AI工程师面试宝典> ...

  5. 一种基于卷积神经网络的图像去雾研究-含matlab代码

    目录 一.绪论 二.去雾卷积网络 2.1 特征提取 2.2 多尺度映射 2.3 局部均值 2.4 非线性回归 三.实验与分析 四.Matlab代码获取 一.绪论 雾是一种常见的大气现象,空气中悬浮的水 ...

  6. 机械臂论文笔记(一)【基于卷积神经网络的二指机械手 抓取姿态生成研究 】

    基于卷积神经网络的二指机械手 抓取姿态生成研究 论文下载 摘要 第1章 绪论 1.1 抓取生成国内外研究现状 1.1.1已知物体抓取生成 1.1.2相似物体抓取生成 1.1.3 未知物体抓取生成 1. ...

  7. 毕业设计 - 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

    文章目录 1 前言 2 前言 3 数据集 3.1 良性样本 3.2 病变样本 4 开发环境 5 代码实现 5.1 实现流程 5.2 部分代码实现 5.2.1 导入库 5.2.2 图像加载 5.2.3 ...

  8. 基于卷积神经网络与迁移学习的油茶病害图像识别

    基于卷积神经网络与迁移学习的油茶病害图像识别 1.研究思路 利用深度卷积神经网络强大的特征学习和特征表达能力来自动学习油茶病害特征,并借助迁移学习方法将AlexNet模型在ImageNet图像数据集上 ...

  9. Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类)

    Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类) 1.卷积神经网络 1.1卷积神经网络简介 1.2卷积运算 1.3 深度学习与小数据问题的相关性 2.下载数据 2.1下载原始数据 ...

  10. 基于卷积神经网络实现图片风格的迁移 1

    卷积神经网络详解 一.实验介绍 1.1 实验内容 Prisma 是最近很火的一款APP,它能够将一张普通的图像转换成各种艺术风格的图像.本课程基于卷积神经网络,使用Caffe框架,探讨图片风格迁移背后 ...

最新文章

  1. Dell服务器配置RAID1+RAID0磁盘阵列
  2. 使用logrotate做nginx日志分割
  3. uvm_comps.svh
  4. golang byte 转writer_聊聊golang的zap的WriteSyncer
  5. java数组求和递归,js数组去重 数组拼接 替换数组中的指定值 递归数组 判断数组中是否存在指定值 数组求和 根据条件判数组值...
  6. 如果你是IT技术人员,请思考这15个问题
  7. SpringBoot整合AOP + 自定义注解实现简单的权限验证
  8. 利用OpenIPMI监控服务器温度
  9. 深入了解preventDefault与stopPropagation
  10. 公司有内部推荐的名额
  11. net软件安装后不能卸载的解决方法
  12. 设计模式----原型模式(C++实现)
  13. 膝盖中了一箭之康复篇-第九个月暨3月份目标总结
  14. linux ubi代码分析,linux ubi文件系统
  15. KEIL5添加STC芯片库
  16. 搭建以太坊私链(单节点,多节点,windows,linux)
  17. html表单界面设计,ui界面表单设计的三个方面
  18. 小米手机Home键问题
  19. ajax前后端通信的头部消息之请求头与响应头
  20. Vue一级路由与二级路由/路由重定向

热门文章

  1. 李笑来-《自学是门手艺》-笔记
  2. android thumbnail获取图片,系统获取视频缩略图的getThumbnail()真的那么快吗?
  3. 数学奥赛狂砍10题!Meta发布全新定理证明器:AI即将接管数学?
  4. 刷脸签到python代码_背景提升|“刷脸”时代,如何运用Python实现人脸识别?
  5. h3c如何配置acl命令
  6. 手撸架构,Redis面试41问
  7. 基于R语言的随机森林算法运用
  8. 递归算法实现二分查找
  9. 直观理解拉格朗日乘子法和Karush-Kuhn-Tucker(KKT)条件
  10. 杰理AC692X,695X,696X方案NFC音响耳机、故事机