题目:A Novel Approach to 3-D Gaze Tracking Using Stereo Cameras
作者:Sheng-Wen Shih and Jin Liu
来源:IEEE Transactions on Systems, Man, and Cybernetics, Part B (Cybernetics) ( Volume: 34 , Issue: 1 , Feb. 2004 )

特点:采用一套大视野摄像机建立辅助的立体视觉系统,通过这套辅助系统标定摄像机和屏幕之间的位置关系,再进行坐标系转换,前提是辅助系统必须是固定且已标定的。

一种使用立体相机进行3D凝视追踪的新颖方法

  • 摘要
  • 1. 介绍
    • A. 相关工作
    • B. 本论文的组织结构
  • 2. 人眼的简化结构
  • 3. 从第一浦肯野(Purkinje)图像计算角膜中心
    • A. 用一台摄像机和一个点光源计算角膜中心的非线性约束
    • B. 使用一台摄像机和多点光源计算角膜中心的线性约束
  • 4. 3-D视线方向
    • A. 3-D瞳孔的虚拟图像
    • B. 眼睛光轴方向的线性约束
  • 5. 凝视跟踪系统概述
  • 6. 凝视跟踪系统的标定
    • A. 估计LED的位置
    • B. 估算显示器的几何特性
    • C. 从注视跟踪立体相机的坐标系到屏幕坐标系的坐标变换矩阵的估计
    • D. 估计3-D LoS和用户眼睛OA之间的角度
  • 7. 实验![在这里插入图片描述](https://img-blog.csdnimg.cn/20191119090104267.png)
  • 8. 结论
  • 附录
    • A. 使用两点光源的角膜中心位置估计算法的误差分析

摘要

本文提出了一种使用3-D计算机视觉技术进行三维(3-D)视线跟踪的新方法。该方法使用多个摄像机和多个点光源来估计用户眼睛的光轴,而无需使用任何与用户相关的参数。因此,它使得可能产生可能的校准误差的不方便的系统校准过程变得不必要。开发了一种实时3D视线追踪系统,该系统每秒可提供30次凝视测量。此外,提出了一种简单而准确的标定方法来标定视线追踪系统。在使用该系统之前,每个用户只需凝视目标点几(2-3)秒,这样就可以估计3-D视线和光轴之间的恒定角度。

关键词:视线追踪,眼动跟踪,视线,人机接口。

1. 介绍

当一个人盯着三维(3-D)点时,他/她的动眼机制控制他/她的眼睛,使该点的图像出现在中央凹区域。眼睛的3D 视线(LoS)是穿过3D点,中央凹点和眼睛光学中心的直线。三维注视跟踪可以根据人的眼睛外观确定并跟踪其3-D视距,并且在人机交互领域具有许多应用。Hutchinson等人提出了一种眼睛-注视界面(称为Erica)作为假肢修复设备。由于凝视输入用于选择多个大菜单框,因此凝视跟踪精度要求不高;因此,标定过程非常简单,可以在几秒钟内完成。Frey 等根据Erica开发了一个文本输入系统。Jacob 描述了如何处理视线追踪结果以提取稳定的注视点,以便人们可以利用眼睛的移动来指向和选择屏幕上的对象。Zhai 等提出将注视输入和鼠标指针结合起来以有效地控制光标位置。Sharkey和Murray 报告了合并注视跟踪结果以提高视觉远程呈现分辨率的可行性。Pastoor等和Redert等表明,通过合并凝视追踪器,可以以更现实的方式完成3-D渲染。请注意,由于中央凹的宽度大约等于1°的视野,因此大多数现有视线追踪方法的角度精度也约为1°。

在本文中,提出了一种使用3-D计算机视觉技术估算3-D 视线(LoS)的新方法。在这项工作中开发的视线追踪理论是根据Le Grand提出的简化眼睛模型得出的。结果表明,仅使用两个摄像头和两个位于已知位置的点光源,即可通过求解线性方程式来确定眼睛的光轴(OA)。人眼的光轴被定义为连接瞳孔中心和角膜曲率中心的3-D线。如果已经标定了摄像机和屏幕之间的几何关系,则一旦确定了眼睛的光轴,就可以将其转换为屏幕坐标系,以获取屏幕上的凝视点。这样,用户不再需要按照其他方法的要求参与密集的依赖于用户的标定过程。结果,可以采用复杂的标定方法来精确地标定跟踪系统,从而为不戴眼镜的用户提供几乎立即可用的视线追踪器。每个用户唯一需要标定的用户相关参数是OA和LoS之间的角度。每个用户只需确定一次,通常只需2-3秒。

A. 相关工作

现有的凝视追踪技术可以分为以下三类。

  1. 二维(2-D)技术:那些无法提供3-D 视线完整信息的视线追踪技术被归类为2-D技术。在2-D凝视跟踪系统中,眼睛的3-D位置通常是未知的,并且仅测量用户的眼睛相对于用户的头部的相对方向。通常,二维技术要求用户保持头部静止不动。此外,如果期望获得高度准确的凝视追踪结果,则必须将某些辅助设备(如头枕,下巴托或咬合棒)与2-D凝视追踪技术结合使用。二维视线追踪技术包括:眼电位(EOG)技术、瞳孔跟踪技术、人工神经网络技术、瞳孔和角膜反射跟踪技术、双重浦肯野(Purkinje)图像跟踪技术和巩膜线圈(或搜索线圈)技术。如果可以在系统中确定眼睛的绝对3-D位置(它可以是角膜的曲率中心,眼球的旋转中心或头部上的任何其他固定位置),则任何2-D凝视跟踪系统都可以扩展为3-D跟踪系统)。
  2. 基于模型的3-D技术:顾名思义,这些技术使用某些面部特征点的3-D模型从单眼图像中提供LoS的3-D信息。Stiefelhagen 等人实现的注视跟踪系统,跟踪六个面部特征点,以估计头部姿势和注视方向。Collet 等还开发了类似的注视跟踪系统,他们提出通过引入识别模块来验证跟踪结果来提高其面部特征跟踪子系统的鲁棒性。为了跟踪面部特征,必须使跟踪摄像机的视野足够大以覆盖用户的整个头部。这种方法的优点是允许用户在指定区域内自由移动其头部,但是使用大视野的相机会降低凝视跟踪的精度。为了克服这个缺点,可以使用另一台摄像机来获取用户眼睛的高清图像。
  3. 三维技术: Pastoor 等已经实现了凝视跟踪系统,该系统包括一个用于跟踪3-D眼睛位置的头部跟踪器和一个使用角膜反射和瞳孔图像来跟踪凝视方向的平移-变焦相机。Sugioka等还开发了一种带有平移-变焦相机的注视跟踪系统,用于注视跟踪。两种算法都需要单独的标定过程。[6]和[16]中提出的凝视跟踪系统之间的主要区别是Sugioka等人直接使用超声波测距设备来估计平移变焦相机与眼睛之间的距离。但是,仍然可以通过使用瞳孔和角膜反射的2-D技术来估计LoS的方向,如[1],[2]和[11]所述。

图1.Le Grand简化眼睛的结构


本文提出的视线跟踪方法与现有的视线跟踪方法有以下不同之处。

  1. 一对校准的立体摄像机用于跟踪一只眼睛的凝视信息,而其他方法则使用一个摄像机跟踪一只眼睛。
  2. 发光二极管(LED)的位置已预先标定。
  3. 通过求解线性方程,可以明确确定用户眼睛光轴OA的位置和方向。因此,注视跟踪结果不仅可以用于推断屏幕上的注视点,还可以用于推断现实世界中的3-D注视点。
  4. 由于所提出的方法采用了3-D计算机视觉技术,因此用户不必保持头部静止,也不必花费大量的时间来标定凝视跟踪系统。

B. 本论文的组织结构

第二节描述了本文中提出的基于眼睛模型的凝视跟踪方法。该方法使用点光源的第一浦肯野图像和多个摄像机来确定角膜的曲率中心(为方便起见,在下文中将其称为角膜中心),如第三部分所述。第四部分讨论了如何使用估计的眼睛3-D位置和观察到的瞳孔图像中心来计算视线方向。第五部分介绍了凝视跟踪系统的概况。第六节提出了一种简单准确的标定视线跟踪系统的方法。实验结果显示在第七节。结论在第八节中给出。

2. 人眼的简化结构



图2。(a)图解说明点光源,角膜,第一浦肯野图像和相机之间的几何关系的示意图。(b)瞳孔内的亮点是所记录的红外LED的第一浦肯野图像(虚拟图像)。


Le Grand 提出了在这项工作中采用的简化眼图模型(见图1)。在Le Grand的简化眼睛模型中,假设角膜和房水(角膜和晶状体之间的透明液体)具有相同的折射率。角膜的形状被假定为半径为8mm的假想球的一部分。巩膜是白色且不透明的膜,围绕角膜并覆盖眼球的其他部分。巩膜的表面比角膜的表面相对更粗糙,并且其曲率小于角膜的曲率。虹膜是不透明的组织,在其中心有一个孔,即瞳孔。人类的不同种族可能有不同颜色的虹膜。瞳孔的直径在2到8毫米之间变化,以适应不同的环境光线水平和某些心理因素。在简化的眼睛模型中,最复杂的结构是透镜。凝视不同距离的物体时,镜头的形状会发生变化。透镜形状和物体距离之间的未知关系导致难以预测穿过透镜的光的反射和折射。为了避免透镜引入更复杂的光学特性,我们将使用角膜第一表面的反射光和瞳孔的折射图像来推断眼睛的视线。因此,仅需考虑角膜的反射和折射。所提出的方法进行了以下假设。

  1. 角膜表面具有恒定的曲率 1 / ρ (即,角膜的球面半径为 ρ)。
  2. 可以将角膜和房水建模为具有均匀折射率的凸球形透镜。

3. 从第一浦肯野(Purkinje)图像计算角膜中心

当光束进入人眼的角膜表面时,一部分光线会被该表面反射,并且一部分光线在穿过该表面后会发生折射。被角膜外表面反射的光称为第一浦肯野图像(见图2(a) )。由于第一浦肯野图像是镜面反射的结果,因此不同方向的观察者将观察到不同的图像。图2(b)显示了红外发光二极管(LED)的第一浦肯野图像。在视线追踪系统中,LED通常代替点光源,因为它们价格便宜。

图3。第一浦肯野图像Pimg、点光源的位置Q和角膜中心的位置之间的关系。


让O表示相机的光学中心,Q表示点光源的位置。假设摄像机参数和点光源相对于摄像机坐标系的位置(由OQ⃗\vec{OQ}OQ​表示)已被精确标定(标定过程将在第六节中讨论)。给定CCD传感器平面上第一浦肯野图像的二维点(由Pimg表示)和摄像机的标定光学中心O,可以通过反向投影Pimg来计算三维矢量−OP⃗\vec{OP}OPimg(见图3)。为了导出角膜中心位置的非线性约束和线性约束的清晰度,将辅助2-D坐标系定义如下:

  • 原点由O定义,
  • x轴由光线OQ⃗\vec{OQ}OQ​定义,并且
  • 选择y轴,使得x-y平面包含向量OP⃗\vec{OP}OPimg

A. 用一台摄像机和一个点光源计算角膜中心的非线性约束

根据基本几何光学中的反射定律,即入射角等于反射角,我们有∠MP0Q = ∠MP0O = π+α−β2π+α-β \over 22π+α−β​,∠MP0O = π+α−β2π+α-β \over 22π+α−β​(见图3)。注意,角度α可以很容易确定,因为OP⃗img\vec{OP}~img~OP img 和OQ⃗\vec{OQ}OQ​都是已知的。

设点P0的二维坐标是(x0,y0),其中y0=x0tan(α),x0是未知参数。由于 P⃗\vec{P}P0P⃗\vec{P}P1 = [ρcos(π+α−β2π+α-β \over 22π+α−β​), ρsin(π+α−β2π+α-β \over 22π+α−β​)]t。因此可以很容易地导出角膜中心的二维坐标,即P1,如下所示:

如果角膜半径ρ是已知的,则公式(1)定义了一个具有独立参数x0的二维曲线。该二维曲线将通过具有特定值x0的角膜中心。在这种情况下ρ未知,(1)将成为由两个独立参数x0和ρ确定的平面方程。这个线性平面约束将在下一小节中详细讨论。

等式(1)表明,仅通过使用一个点光源和一个摄像机不能唯一地确定眼睛的3-D位置。以下命题陈述了使用一台摄像机计算角膜中心的必要条件。

命题1:如果角膜半径 ρ 已知,那么我们将需要至少一台照相机和至少两个具有已知位置的点光源来计算角膜中心。

证明:只有一台相机和一个点光源,方程(1)的解是一条穿过角膜中心的2-D曲线。如果有两个点光源,那么我们将获得两个通过角膜中心的两个点光源的第一浦肯野图像得出的二维曲线。

B. 使用一台摄像机和多点光源计算角膜中心的线性约束

根据反射定律,点光源的位置、入射光和反射光的光束以及反射面的法向量都是共面的。也就是说,法向量P⃗\vec{P}P0M⃗\vec{M}M在平面QP0O上。由于角膜表面是球形的,并且球形表面的法向量总是通过球形中心,因此角膜中心P1也在平面QP0O上。

通过相机记录的点光源位置及其第一浦肯野图像的位置,可以通过相机坐标系中的以下平面方程来表示用于计算角膜中心位置的线性约束:

其中,法向量s由OP⃗\vec{OP}OPimg和OQ⃗\vec{OQ}OQ​的叉积给出,并且kc=OP⃗\vec{OP}OP1是表示角膜中心的向量。如果对于所有点光源来说,有N个识别出的点光源,Qi,i=1,2,…,N;N个识别出的浦肯野图像,则我们将具有公式(2)形式的N个平面方程。然而这些平面方程的解并不是唯一的。一下命题总结了此属性。

命题2:如果摄像机的光学中心O和一组点光源Qi不是共线的,则方程(2)形式的平面方程的解是三维直线。

证明:很明显,平面方程的系数矩阵不是满秩的,因为所有的平面都包含相机的光学中心O和角膜中心Kc。此外,如果存在两个点光源Qi和Qj,使得 OQ⃗\vec{OQ}OQ​i和OQ⃗\vec{OQ}OQ​j不共线,则 si=OP⃗\vec{OP}OPimg,i×OQ⃗\vec{OQ}OQ​j,sj=OP⃗\vec{OP}OPimg,j×OQ⃗\vec{OQ}OQ​j不共线;因此平面方程的系数矩阵的秩是2。

从命题2得出,如果角膜半径ρ用户的身份未知,使用一台摄像机的凝视跟踪系统只能确定角膜中心的3-D位置,直到相对于摄像机坐标系的比例因子为止。以下命题总结了当角膜半径未知时获得角膜中心唯一解的条件。

命题3:如果角膜半径ρ未知,则至少需要两台摄像机和两个点光源来恢复角膜中心的3-D位置。此外,为了获得3-D角膜中心的唯一解决方案,光源和相机的至少一个光学中心不应该共线。

证明:根据命题2,可以通过使用相机和至少两个点光源来确定包含相机的光学中心和相机坐标系中的角膜中心的3-D线,其中点光源不是共线的。为了获得独特的解决方案,需要第二台摄像机提供平面方程(点光源和光学中心共线)或线方程(点光源和光学中心不共线)。通常,除非采用特殊的光学设备,否则两个摄像机的光学中心将不会重合。因此,可以通过使用至少两个照相机和至少两个点光源来唯一地确定角膜中心。

命题3陈述了获得角膜中心唯一解的充分条件。为了找到LED的最佳位置,分析了角膜中心的估计误差(请参阅附录A),结果表明,应将LED放置为使得对于每个摄像机,都有两个LED分别位于相机的x轴和y轴。

4. 3-D视线方向

A. 3-D瞳孔的虚拟图像

人眼的瞳孔位于由角膜和房水组成的凸透镜内部。由于凸透镜的折射,从相机观察到的是瞳孔的虚像,而不是瞳孔本身。为了清楚地得出凸透镜内部的实物点的位置与从凸透镜的外部观察到的对应虚像点的位置之间的关系,以下定义了辅助3-D坐标系。

  • 原点由角膜中心定义,
  • 将x轴定义为平行于−Kc(参见公式(2)后面的定义),以及
  • y轴被定义为使得x-y平面包含眼睛的OA(见图4)。

图4。 在角膜中心定义的辅助3-D坐标系。


假设瞳孔法线与x轴之间的角度为φ,瞳孔半径为rp,角膜中心与瞳孔中心之间的距离为d。瞳孔圆形边缘的三维坐标由下式给出

其中θ∈[0,2π]。虚拟瞳孔图像的坐标可以使用基本几何光学[17]来计算,并且虚拟瞳孔图像的导出坐标由下式给出


其中 l=ρ−pl=ρ−pl=ρ−px,R=∣n′−n∣ρ|n'-n| \over ρρ∣n′−n∣​,m=nR⋅l+nn \over R·l+nR⋅l+nn​,n是角膜的折射率,n’≈1是空气的折射率。

可以看出,瞳孔的虚拟图像仍然是平面物体,并且可以通过在等式(4)中将rp置为零来确定虚拟瞳孔的中心:

同样,当Rp在等式(3)中设置为零时,我们获得真实瞳孔的中心

其位于辅助三维坐标系的x-y平面上。由于等式(5)中所示的虚拟瞳孔图像的中心也在x-y平面上,因此,Pc(即,眼睛的OA)、Pc’ 和辅助3-D坐标系的x轴(即,−Kc)共面。

假设2-D瞳孔图像的边缘点被发现是pi,i=1,2,…,N,在相机的图像平面上。因为3-D虚拟瞳孔图像的中心是不可见的,所以其由Pc’ 表示的2-D图像位置只能通过使用瞳孔边缘的投影2-D图像点Pi’ 们来推断。由于透视投影引入的非线性,使用Pi估计Pc’ 很困难。然而,由于虚拟瞳孔图像的半径与眼睛和凝视跟踪相机之间的距离相比非常小,因此仿射投影可以用于准确地描述三维虚拟瞳孔图像与其投影的二维瞳孔图像之间的关系。由于仿射投影的线性,虚拟瞳孔图像中心Pc’ 的图像位置可以通过P^\hat{P}P^’c=1N1 \over NN1​∑i=1N\sum_{i=1}^{N}∑i=1N​pi 来确定。当P^\hat{P}P^’c投影回3-D空间时,所得到的3-D向量P^\hat{P}P^’c将平行于CTAP’c(见图4),其中CTA是从3-D辅助坐标系到相机坐标系的变换矩阵。在下面的小节中,将使用虚拟瞳孔图像中心的图像位置来估计LOS的方向。

B. 眼睛光轴方向的线性约束

由于每个摄像机只能记录一个瞳孔图像,为了在不知道n和d的值的情况下确定PC的3-D位置,必须使用至少两个摄像机。下面的命题总结了OA方向唯一解的充分条件。

命题4:假设配备有至少两个摄像机的凝视跟踪系统已经被校准,使得摄像机的任意两个坐标系之间的变换矩阵是已知的。如果角膜中心kc也是已知的(可以通过使用在第三节中描述的方法来估计),则kc相对于第i个相机坐标系的三维坐标,由kci表示,可以利用校准的变换矩阵来计算。让第i相机坐标系中虚拟瞳孔图像的中心的估计方向表示为 P^\hat{P}P^'ci。因为眼睛的OA与P^\hat{P}P^’ci和Kci共面,如果由(P^\hat{P}P^'ci,kci)定义的三维平面不重合,则可以唯一确定眼睛的OA。

证明:让在第一个相机的坐标系中测量的眼睛的未知OA方向用Pc1表示。如果P^\hat{P}P^’ci和KCi不共线,则平面方程可以定义如下:

其中Ri,1是相机坐标系iii和1之间的相对方向矩阵。显然,如果由(P^\hat{P}P^'ci,kci)定义的3-D平面不重合,则可以唯一确定眼睛的OA。特别地,如果凝视跟踪系统由两个摄像机组成,则当用户盯着连接两个摄像机的光学中心的线上的点时,不能唯一地确定用户眼睛的OA。在这种情况下,P^\hat{P}P^'c1、P^\hat{P}P^'c2、kc1和kc2共面。

方向估计算法的误差分析可以通过使用附录中描述的技术来完成。然而,由于分析结果涉及眼睛和相机的参数,结果如此复杂,以致于从导出的结果中找不到规律;因此,它们不包括在本文中。然而,从命题4可以得出直观的规则,即角膜中心和瞳孔中心之间的图像之间的距离应该尽可能大(与图像噪声相比),以便增加信噪比。因此,相机和LED应该仔细布置,以最大化信噪比。

5. 凝视跟踪系统概述


图5。 (a)视线追踪系统的前视图。(b)视线追踪系统的侧视图。(c)用户可以通过IR LED和立体声相机之间的矩形窗口看到整个屏幕,而不会被遮挡。


为了验证前几节提出的凝视跟踪理论,开发了凝视跟踪系统。它由一对立体摄像机和三个IR-LED组成,即D1,D2和D3,如图5所示。IR LED用作定位角膜中心的点光源。系统中使用的LED的数量和位置不是如本文所述那样固定的,但可以改变。唯一的限制是确保两个立体摄像机观察到的LED的第一Purkinje图像的总数始终足以唯一确定角膜中心(即至少两个反射)。为了过滤掉不需要的可见光,在立体相机的镜头前安装了长通滤光片。立体摄像机被同步以同时获取立体图像。

6. 凝视跟踪系统的标定

注视跟踪系统的校准涉及五个主要步骤。

  1. 校准立体摄像机,以便它们可以提供准确的3D测量。在这项工作中,首先使用线性方法[18]估计摄像机参数,然后使用著名的Levenberg-Marquardt优化算法和[19]中提出的非线性摄像机模型对其进行细化。为了方便起见,以下将立体摄像机的坐标系称为摄像机坐标系(CCS)。
  2. 估计IR LED的位置,以便估计角膜中心。
  3. 解决显示器的几何特性。
  4. 确定立体相机和屏幕之间的关系,以便一旦确定了3-D LoS,就可以将其转换为屏幕的坐标系以计算LoS的交点。注意,尽管上述校准步骤看起来很复杂,但是这四个步骤仅需要执行一次,并且与用户无关。另一方面,注视系统校准的最后一步取决于用户。
  5. 确定用户的视线与视线之间的角度。由于此步骤需要由用户完成,因此其设计非常简单,可以在几秒钟内完成。

注视跟踪系统的最后四个校准步骤将在以下小节中详细介绍。

A. 估计LED的位置

校准立体摄像机之后,确定IR LED的3-D坐标的最简单方法是使用校准的立体摄像机本身来测量IR LED的3-D位置。由于IR LED不在立体摄像机的视野中,因此立体摄像机无法直接观察到它们。通过将在平面镜上附着至少三个基准标记的平面镜引入测量系统,立体摄像机可以观察基准标记以及位于其旁边的IR LED。基准标记的3D位置可用于重建反射镜的反射表面。因此,可以容易地确定LED的实际3D位置。附录二中得出的误差分析结果 显示出LED和反射镜之间的距离应最小化,以便准确获得LED的3-D位置。

B. 估算显示器的几何特性

显示器校准包括以下两个主要任务:

  1. 校准显示器的位置,方向和形状参数:监视器通常用平坦或球形的屏幕表面制成,必须确定其参数才能计算屏幕表面与LoS的交点。可以使用另一对具有较大视场的校准立体摄像机(称为辅助立体摄像机)来测量屏幕表面的参数。校准屏幕后,将定义屏幕的参考坐标系[称为屏幕坐标系(SCS)]。监视器上附加了三个基准标记,还可以使用辅助立体摄像机确定它们在SCS中的3-D坐标,这也将用于计算从其他坐标系到SCS的坐标转换矩阵(请参阅第VI-C节))。
  2. 二维几何参数的校准:通常,可以通过线性变换来关联二维窗口坐标(以像素为单位)和屏幕表面上点的相应3-D坐标。给定屏幕表面上点的一组2D到3D对应关系,可以确定线性变换的参数。因此,我们可以将表面上固定点的3D坐标转换为2D窗口坐标,反之亦然。

C. 从注视跟踪立体相机的坐标系到屏幕坐标系的坐标变换矩阵的估计

由于监视器的几何形状和凝视跟踪立体相机的参数是独立标定的,因此CCS和SCS之间的坐标转换矩阵必须用另一种方法进行标定。在这项工作中,使用三维数字化仪(即Microscribe,Immersion Corporation)来计算STC,即从CCS到SCS的坐标转换矩阵。在立体相机前安装带有一些校准点的校准板,以便可以使用立体相机测量校准点的三维坐标。然后,通过MicroSribe测量校准点的三维坐标。利用三维对应关系,我们可以通过使用Arun等人提出的封闭形式的解决方案来计算从CCS到MicroSribe坐标系(MCS), MTC的转换矩阵。同样,3-D数字化仪用于测量粘贴在监视器上的三个基准标记的3-D坐标。由于基准标记相对于SCS的三维坐标也是已知的,因此可以通过使用提出的方法来确定从MCS到SCS的转换矩阵,由STM表示。未知变换矩阵可以由STC=STM MTC确定。

D. 估计3-D LoS和用户眼睛OA之间的角度

凝视跟踪系统校准后,可用于测量用户眼睛的OA。但是,由于用户眼睛的OA通常不同于其视线(LoS)[21],因此除非知道它们之间的关系,否则无法确定用户的注视点。在这项工作中,假设3-D LoS和OA之间的角度是恒定的。由于与眼睛和监视器之间的距离相比,眼睛的角膜中心与眼睛的光学中心之间的距离可以忽略不计,因此进一步假定眼睛的光学中心和角膜中心是一致的。为了公式化LoS和OA的两个3-D向量之间的关系,如下定义了眼睛坐标系(ECS)

  1. ECS的原点与测量的角膜曲率中心(即CKC)对齐。
  2. 通过估计的眼睛OA方向定义ECS的z轴方向,该方向由单位矢量dO表示。
  3. 让ECS的x轴平行于水平面。例如,在实施的凝视跟踪系统中,LED的D1和D2(见图5)水平布置。因此,我们的凝视跟踪系统中的ECS的x轴由LED D1和D2的3-D位置的差向量确定。
  4. 通过计算z轴和x轴的叉积来确定ECS的y轴的方向。

注意,通过将ECS的x轴定义为平行于水平面,这相当于要求用户在使用凝视跟踪系统时不要滚动头部(偏航和俯仰运动不影响凝视跟踪结果)。这不仅是我们的凝视跟踪系统的限制,也是所有不计算眼球扭转运动的凝视跟踪系统的共同缺点。如果用户在使用凝视跟踪系统时滚动他/她的头,凝视跟踪误差将与LOS和OA之间的角度和用户眼睛的净滚动角度(即,用户头部的滚动角度减去用户眼睛的滚动角度)成比例。

由于角膜中心、CKC、OA方向、dO和相对于CCS测量的LED的3-D位置都是已知的,即转换矩阵 ETC可以很容易地计算出从CCS到ECS的用户眼睛位置和方向的变化。为了估计关于ECS的恒定LoS矢量,要求用户盯着屏幕上的点(xd,yd)一段时间,并记录相应的凝视信息。由于监视器已经校准,因此可以计算SCS中该校准点的三维坐标,然后将其转换为CCS。让CCS中校准点的三维坐标由CF表示。每当获得眼睛光轴的新测量(例如测量I)时,计算新的变换矩阵ETC(I),然后将CF变换为ECS并由EFi表示。定义EFiEDi=EFi / ||EFi||的方向。为了最小化测量噪声和自发眼球运动的影响,使用以下公式估计ECS中的恒定LOS矢量,表示为EL:

其中EDi,xEDi,y分别是单位矢量EDi的x分量和y分量。SCS中表示的3-D LoS现在可以由以下方程确定:

其中,Ckc = [Ckct1]tEL = [ELt0]t 分别是三维点Ckc和三维方向EL的齐次坐标表示。

7. 实验

图6。 可以使用具有三个基准标记的第一表面平面镜确定在立体摄像机的坐标系中测量的LED的三维坐标。



图7。 一对LED的立体图像和由立体摄像机捕获的三个基准。


在视线跟踪系统中,使用两个黑白相机(Mintron OS-60D)来获取用户眼睛的立体图像序列。输出视频信号格式为RS-170。双通道图像采集卡(Luetron PicPort-Stereo)用于数字化并将立体声图像传输到具有128 MB内存的Pentium III / 500MHz PC的主内存。帧采集器被配置为将输入的隔行图像的偶数场和奇数场分别存储在两个连续的存储块中。仅一个场(有效图像尺寸为240×640像素)用于计算凝视信息。PC的显示分辨率调整为768×1024像素。PC的显示器(Proview PK-786)具有17英寸的CRT和16英寸的可视区域。显示器在水平和垂直方向上的校准像素间距约为0.29 mm。用户的眼睛与显示器之间的距离约为450毫米。三个IR LED用作点光源,以照在用户的一只眼睛上。LED的放置按照建议的指南进行。附录A。然后,调整IR LED的位置,以便无论用户在监视器上看什么,立体摄像机都可以检测到足够数量的LED第一浦肯野图像,以确定角膜中心。注视跟踪系统是在Microsoft Windows 2000环境下开发的。

图8。 计算机仿真结果。(a)LED的位置估计误差对LoS的方向估计误差的影响。(b)LoS的方向估计误差与图像噪声的标准偏差之间的关系。(c)角膜中心的位置估计误差与图像噪声的标准偏差的关系。


在进行凝视跟踪实验之前,凝视跟踪系统是使用第VI节所述的校准方法进行校准的。当二维特征位置误差为0.5像素时,校准后的立体摄像机的3D估计误差约为0.05毫米。用于估计LED位置的设置如图6所示(请参见第VI-A节)。所获取的立体图像在图7中示出。LED 3-D位置的估计误差,即σ2x+σ2y+σ2z\sqrt{σ^2x+σ^2y+σ^2z}σ2x+σ2y+σ2z​可以通过使用附录B中得出的公式进行评估,该公式约为1.5 mm(其中两个基准标记之间的距离w是15毫米)。LED的位置估计误差量仅为LED与摄像机之间实际距离的0.4%。为了测试0.4%的LED估算误差的影响,进行了计算机仿真。通过使用我们的凝视追踪器的校准参数和Le Grand的眼睛模型的参数,开发了一个仿真系统。每个点光源的位置都会受到3-D随机矢量的干扰,该矢量的长度设置为LED与左摄像头光学中心之间距离的一定百分比。进行了600次随机试验,图8(a)绘制了方向误差的均方根误差(RMSE)与LED位置误差的百分比。根据计算机仿真结果,LED的0.4%的位置校准误差导致LoS的方向估计误差约为0.1°,可以忽略不计。为了测试所提出算法对图像噪声的鲁棒性,我们进一步进行了另一次计算机仿真,结果如图8(b) – (c)所示。图8(b) – (c)中显示的每个数据都是通过计算600次随机试验的均方根误差(RMSE )获得的,而LED位置误差的百分比设置为0.4%。计算机仿真结果表明,角膜中心估计算法相当健壮。附录A中描述的错误分析结果显示出如果正确放置了LED,则角膜中心的图像位置估计误差与图像噪声的数量级大致相同。因此,当图像噪声增加到两个像素时,角膜中心的估计图像位置也大约为两个像素。当图像噪声为0.5像素时,由于校准后的立体摄像机的3-D估计误差为0.05 mm,因此如果图像噪声增加到两个像素(= 4×0.5 像素),则3-D估计误差将变为0.2毫米(= 4×0.05毫米)。仿真结果表明,位置估计误差为0.32 mm [见图8©],由于LED不在最佳位置,因此该误差略大于0.2 mm。简而言之,只要正确校准相机并确保角膜中心的位置估计误差,就可以准确获得角膜中心的位置估计误差。

图9。 从立体图像提取的特征,用于计算注视信息。左右栏中显示的图像分别从左右立体声图像中剪切。


LED正确放置。另一方面,仿真结果还表明,使用所提算法的视线定位估计误差对图像噪声有些敏感。这是因为,如果视差中心的长度比图像噪声短,则通过使用瞳孔中心和角膜中心的二维图像差向量来确定视差的方向。对图像噪声敏感。在我们的凝视追踪器的配置中,差异向量的长度只有大约50个像素。图像噪声的两个像素总计只有约25的信噪比。这是所有使用角膜反射和瞳孔图像的凝视跟踪技术的共同缺点。

图10。 六个主题的测试结果,其中“°”,“×”,“▽,”“∗,“□”和“◊分别标记这六个对象的估计注视点的样本均值。


表I六个对象的凝视跟踪误差的均方根误差(RMSE)

图9图4显示了四对典型的立体图像,其中包含提取的特征(例如,瞳孔中心和IR LED的第一Purkinje图像),用于计算凝视信息。在已实施的凝视跟踪系统中,瞳孔中心的计算精度为亚像素精度,而眩光点的计算精度仅为像素级精度(即,量化误差为±0.5像素)。为了优化凝视跟踪算法的运行时性能,已经做了很多工作。该系统目前每秒处理30对立体声图像,并且在Pentium III / 500MHz PC上仅使用3%的CPU时间。因此,如果将RS-170立体摄像机替换为某些高速摄像机,则可以相应地提高凝视数据的采样率。每次成功计算二维固定点时,一个事件被发布到操作系统的消息队列中。如果瞳孔的图像区域小于指定的阈值,则将事件标记为“闪烁”。当估计的LoS突然变化时,可以将眼睛运动分类为扫视运动。请注意,由于图像采样率仅为30 Hz,因此当眼睛进行扫视运动时,由于运动模糊效应,所获取的图像将受到破坏。可以通过采用高速相机或通过激活相机的电子快门来减轻运动模糊问题。然而,由于在扫视期间眼睛的视觉感知被抑制,因此扫视的动力学对于人机交互不是特别有意义。因此,扫视期间获得的凝视信息可以在人机交互中被丢弃。

为了测试注视跟踪系统的准确性,要求六名不戴眼镜的受试者参加测试。在使用系统进行视线跟踪之前,必须使用VI-D节中所述的方法针对每个受试者分别确定LoS和OA之间的角度。要求每个受试者读出一系列随机生成的英语字母(每秒更新一次,以引起受试者的注意),该字母显示在16个预先指定的栅格位置之一中,持续10 s /位置。为了记录凝视信息,对象双击目标点,系统会发出鼓声2秒钟。此外,每次随机生成的字母将要更新时,都会发出滴答声。通过不同的声音,可以告知对象系统将要做什么并且可以做好准备。因此,获取的数据可以反映注视跟踪系统的准确性。如果受试者感到疲倦,可以离开座位休息一下。由于OA和LoS之间的角度已经过校准,因此只要受试者返回,就可以立即在下一个固定点恢复测试。图10中的16个目标点用十字标记,椭圆表示计算出的2-D固定点的标准偏差。由于用于估计每只用户的眼睛的LoS和OA之间的角度的目标点也位于16个网格位置之一(在第二行和第二列),因此图10所示的估计注视点匹配很好的目标点。

表I列出了整体注视跟踪误差的一些统计信息,其中ϵX 和 ϵÿ分别代表水平和垂直测量误差(即,在二维窗口坐标系中测量的估计的固定点和目标点之间的距离)。实验结果表明,由于不同对象眼睛之间的细微差异,估计的注视点的准确性取决于用户。例如,由于受试者4的角膜面积小于其他受试者的角膜面积,所以当他向监视器的左侧看时,LED的第一个Purkinje图像之一出现在受试者的角膜和巩膜之间的交界处。眼睛将估计的注视点指向屏幕外的不正确位置。但是,这并不是所提出的凝视跟踪算法的缺陷,可以通过调整LED的位置轻松解决。一般来说,在监视器边界处估计的固定点往往不如在监视器中央部分处准确。当受试者凝视监视器的边界区域时,发现了两个原因导致视线跟踪结果的准确性下降。

  1. 由于视网膜的中央凹区域不是无限小的点,因此用户视线的视线和眼角的恒定方向差模型只是一个近似模型。视线和光轴之间的角度可能会随注视点的位置而变化,从而产生凝视跟踪误差。
  2. 人的角膜表面是如此光滑,以至于角膜的中心部分可以近似地建模为球形表面。但是,球形模型可能不适合建模角膜的边界区域。当对象凝视监视器的边界区域时,观察到的眩光点移向角膜边界。因此,如果对象的角膜的曲率变化很大,则注视跟踪精度可能降低。

而且,由于将立体摄像机调整为以约70mm的距离聚焦,所以这种近距离聚焦布置具有景深短的缺点。当拍摄对象移开或移向相机时,拍摄的立体图像变得模糊。由于垂直图像分辨率仅为水平分辨率的一半,因此散焦效果会在垂直方向上放大。

请注意,凝视追踪的准确性受到中央凹的视野(大约1°)的限制,因为人们通常不必将其眼睛的位置确定得比中央凹区域的宽度更准确才能清楚地看到感兴趣的点[ 3]。尽管凝视跟踪系统的准确性可以在一定程度上提高,但应注意的是,精确的眼动跟踪结果包含微扫视,生理性眼球震颤和其他类型的非自愿眼动,这些对人机交互几乎没有帮助。实验结果表明,凝视跟踪系统的精度优于1°,对于许多应用来说都是令人满意的。

8. 结论

本文提出了一种估计用户3-D视线的新颖方法。所提出的方法采用立体摄像机,使用线性解来确定角膜中心和注视方向。此外,本文提出了一种简单而准确的校准注视跟踪系统的方法。这项工作的贡献总结如下。

  1. 本文提出了一种线性计算视线位置和方向的方法。得出获得3-D LoS唯一解的充分条件。
  2. 提出了一种简单的标定方法,用于估计注视跟踪系统的参数。
  3. 大多数校准过程与用户无关。新用户只需几秒钟(通常为2到3 s)即可完成依赖于用户的参数估计过程。
  4. 提供了该方法的误差分析结果,可作为设计一种新的视线跟踪系统的指南。

注视跟踪算法是在装有Microsoft Windows 2000操作系统的奔腾III / 500MHz计算机上实现的。该系统可以处理30对立体图像/秒,以提供有关用户视线的3D信息,而仅消耗3%的CPU时间。实施的凝视跟踪系统的精度约为1°,与人的中央凹的视野误差相当[3]。对于具有与该眼模型中使用的参数不同的眼内参数的其他人(例如,不能以恒定曲率对角膜表面进行建模),请执行局部校准程序[3]可以用来提高跟踪精度。此外,如果将摄像机替换为逐行扫描摄像机,以便可以使用图像的全分辨率,则系统精度将进一步提高。所提出的凝视跟踪算法可以用作假肢设备。凭借如此高精度的凝视跟踪算法,可以为瘫痪患者开发有效的界面。此外,对于仅需要知道眼睛位置的某些应用(例如3-D渲染),角膜中心估计算法可用于提供非常可靠的估计结果。因此,可以根据眼睛位置渲染3-D对象以获得更逼真的效果(例如运动视差)。

附录

A. 使用两点光源的角膜中心位置估计算法的误差分析

为了便于说明,命题2是使用3-D向量表示法得出的。但是,为了获得简明的误差分析结果,下面我们将使用投影几何表示。另外,由于仅需要两个LED即可确定角膜中心,因此误差分析的重点是如何放置这两个LED以获得最准确的估计结果。

让两个LED的投影图像坐标分别由p1和p2表示。由于LED必须放置在相机的视场之外,因此可以合理地假设LED放置在相机坐标系的x-y平面上(使得它们不会遮挡相机的视图),即,p1=[cos(θ1)sin(θ1)0]t和p2=[cos(θ2)sin(θ2)0]t。设q1和q2表示LED的第一浦肯野图像的投影图像坐标。可以证明,角膜中心的投影坐标可以计算如下:

角膜中心图像的非均匀坐标由下式给出

通过计算上述方程的一阶泰勒级数展开式,我们得到了

其中δP=[δqt1 δqt2]是图像噪声矢量,J是方程(11)相对于δP的雅可比矩阵。假设图像噪声矢量的所有分量具有相同的独立高斯分布,具有零均值和方差σ2。然后,可以使用Mathematica导出[C^\hat{C}C^xC^\hat{C}C^y]t 的近似协方差矩阵:

根据上述方程,当θ1=θ2+π/2时,角膜中心的估计图像位置的方差最小。设L1=A−1p1和L2=A−1p2分别表示通过将p1和p2反投影到欧几里得空间中获得的向量,其中A是包含内部相机参数的校准矩阵。将θ1=θ2+π/2替换为L1和L2的标量积,我们有

其中,δu、δv和f分别是水平和垂直像素间距以及相机的有效焦距。如果θ2=0,即,第二发光二极管沿着CCS的x轴放置,则即使当δu≠\not=​=δv时,方程(14)也变为零。这意味着第一发光二极管位于CCS的y轴。因此,为了准确估计角膜中心位置,可以将两个LED分别放置在相机坐标系的x轴和y轴上。否则,可能会放大位置估计误差。特别地,当LED和相机的光学中心共线时,即θ12,图像误差的方差将接近无穷大,因此应当避免。导出的角膜中心图像误差可以通过Blostein和Huang提出的误差分析结果来推断角膜中心的三维位置估计误差。

《A Novel Approach to 3-D Gaze Tracking Using Stereo Cameras》论文阅读相关推荐

  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. 分区视图(转自小春BOOK)
  2. 如何转移主机之间Docker镜像
  3. 中国钠离子电池行业竞争需求状况及投资盈利分析报告2021-2027年版
  4. pythonwin32api拖动图标_Python使用win32api,模拟鼠标移动并复制/粘贴到diskfi中
  5. MySql存储引擎的比较及选择
  6. 利用Python进行数据分析——重要的Python库介绍
  7. LiveNVR视频流拉转接入传统海康大华宇视安防摄像机如何获取通道视频直播流地址 RTSP/WebRTC/RTMP/HLS/HTTP-FLV/WS-FLV
  8. 实用小技术:Excel+网易邮箱处理VCF与CSV文件批量添加联系人
  9. guass法matlab
  10. 家谱整站源码php_基于PHP语言家谱网站设计与实现.doc
  11. GITLAB服务常用命令
  12. ps导出内容快捷键 快速导出png
  13. “互联网+”大学生创新创业大赛概述
  14. 利用python实现3种梯度下降算法
  15. 一文学会炫酷图表利器pyecharts!
  16. emoji-mart或者emoji-picker-react实现一个类似于微信聊天的在线发送表情,再加一个带源码的纯js实现,emoji图片本地加载
  17. 浪潮首创“容器+虚拟机”双引擎超融合一体机,降本增效再迎利器
  18. HTML5文本元素解析
  19. 5.准确量出2升水,如果你有4升和5升的碗
  20. 关于MathType生成的公式插入Word显示错误的原因和处理

热门文章

  1. 著名的软件系统开发公司有哪些公司
  2. 2021Java校招笔试题答案及评分标准
  3. [转]什么?你还不会写JQuery 插件
  4. java ews appointment_EWS Java API 1.1创建约会 - 缺少TimeZoneDefinition
  5. Python Ews exchange发送邮件demo
  6. C语言中的rewind()函数
  7. android 高通与MTK编译命令
  8. FrontEnd笔记 -- PhotoShop
  9. Ubuntu18.04安装RTL8125/RTL8168等网卡驱动程序
  10. 【数据结构算法】小结