基于特征的视线跟踪方法研究综述
2021-04-18刘佳惠迟健男尹怡欣
刘佳惠 迟健男 尹怡欣
视线跟踪是利用机械、电子、光学等现有的各种检测手段获取受试者当前“注视方向”的技术[1].视线跟踪的研究起源于有关眼睛运动规律的研究,早期心理学家是用肉眼或借助简单的仪器来观察眼动情况,如:观察法、机械记录法、胶片记录法等,后来逐渐探索出了电流记录法、电磁线圈法、反光记录法、双普尔钦象法、角膜反射法等多种眼动分析方法.随着眼动技术研究的不断深入和发展,其应用的领域也越来越广泛.人们不再是单纯地分析眼球的运动,而是将它用于视线的分析与跟踪,从人的眼睛特征乃至人的脸部特征中理解他们的欲望和需求.如今视线跟踪技术已广泛应用于人机交互、虚拟现实、车辆辅助驾驶、人因分析和心理研究等多个领域,有很好的应用前景.
视线跟踪系统按照系统构成和采用的检测方法可以粗略划分为侵入式和非侵入式[1],又称为穿戴式和遥测式.穿戴式系统需要用户佩戴特制的配置有光学系统的设备,采用近眼的相机获取眼睛图像,因此,视线方向检测精度较高,且其应用不受头部运动(头部与穿戴装置之间的相对滑动除外)的干扰,主要应用于虚拟现实头盔、军用头盔和智能眼镜等.遥测式系统则利用外部的摄像机获取人脸和人眼图像,通过对人脸和人眼图像进行处理与分析,估算出视线方向或视线关注点.遥测式方法不需要佩戴任何的设备,对人的干扰小,有着广泛的研究和应用空间.
目前,对视线跟踪技术的研究主要分为两大类:基于特征的视线跟踪方法和基于外观的视线估计方法.基于特征的视线跟踪方法一般是从采集的图像中检测眼睛的一些可视特征,如:瞳孔、虹膜、眼角和角膜反射点等,并提取相关视线参数,通过映射模型估计视线落点或通过几何模型估计三维视线方向.基于特征的视线跟踪方法在提高视线精度和处理头部自由运动问题上有很大的优势[2].而基于外观的视线估计方法是直接将人眼图像信息作为输入,通过一组大的训练样本将人眼图像中反映的人眼外观与屏幕视线落点之间的映射模型训练出来,从而通过采集到的新图像中的人眼外观,找出对应的屏幕视线落点.基于外观的视线估计方法只需要单目相机来获取人眼的外观,采用的统计样本信息量大,故鲁棒性比基于特征的视线跟踪方法强,但是不能有效地解决头部自由运动和光照条件变化的问题[2−3].相比于基于特征的方法,基于外观的视线估计方法距离实用化更远一些.
本文主要针对基于特征的视线跟踪方法进行了详细的研究和分析.结构如下:首先,第1节对视线跟踪技术进行了阐述,包括:视线跟踪技术的发展、国内外相关研究工作以及视线跟踪技术的研究现状三部分;然后,将基于特征的视线跟踪方法分成了二维视线跟踪方法和三维视线跟踪方法两大类,分别论述了二维视线跟踪方法和三维视线跟踪方法中的一些经典方法,并从硬件系统配置、误差主要来源、头部运动影响、优缺点等多个方面对这些方法进行了比较;此外,从系统标定、用户标定、视线精度、头部运动及应用场景等方面对二维视线跟踪方法和三维视线跟踪方法进行了总结,并对比分析了近五年现有的部分基于特征的视线跟踪方法;接着,第3节对基于特征的视线跟踪系统中的几个关键问题进行了探讨;第4节介绍了视线跟踪技术在多个领域的应用;最后,对基于特征的视线跟踪方法的研究趋势进行了总结与展望.
1 视线跟踪技术
1.1 发展概述
视线跟踪技术在获取视线方向或视线关注点的过程中,需要研究眼睛的生理结构和人眼运动特点、提取人眼特征并获得视线参数,根据人眼成像原理建立视线方向模型或视线落点映射模型,因此视线跟踪技术的研究内容涉及生理学与心理学、生物特征识别、计算机视觉等多个学科,技术手段需融合人脸和人眼特征检测与跟踪、计算机视觉三维重建、眼光学等多种技术,是一种典型的多学科交叉性研究课题.
早期的视线跟踪技术主要基于眼动检测技术.观察法简单方便且易操作,但只能对眼动有一个粗略的了解.随后出现的机械记录法、胶片记录法等操作过程复杂,且准确度低.1958年,Norman设计了基于一个电影摄像机的视线追踪器,这为当今视线跟踪技术的发展走向奠定了基础.
20世纪以后,研究者寻找新的能进行精确眼动测量的方法,逐渐探索出了通过眼球转动时眼睛周围皮肤的电位差的变化来获取眼动情况的电流记录法,该方法在20世纪70年代中期是应用最广泛的一种眼动研究方法.1963年,出现了基于电磁感应原理来分析眼球的运动的电磁线圈法,Robinson 设计了一种装有探测线圈的隐形镜片,将隐形镜片吸附在受试者眼睛上,线圈中产生感应电压,通过对线圈中感应电压的检测可精确的测量受试者眼睛运动方向.这些方法都需要人眼与装置有直接的接触,会给用户带来干扰和不适.
随着计算机视觉、图像处理、机器学习等技术的发展,视线跟踪技术也有了很大的进步[4−8].目前,眼动和视线检测方法主要是基于数字视频分析(Video oculographic,VOG)的视线跟踪技术,通过相机拍摄人眼图像,根据人眼图像信息来分析眼睛的注视方向.基于VOG的视线跟踪技术具有非侵入性,操作方便,用户体验较好.
1.2 相关研究工作
国外对视线跟踪技术的研究有着较长的研究历史,在2005年前后处于一个高峰期,主要开展了基于特征的视线跟踪方法研究.基于不同硬件系统配置的视线估计方法大量出现,满足在不同应用场合下进行的视线估计的需求.目前针对自由头动、标定复杂等问题的研究也在不断深入[9−11],促进了视线跟踪技术的快速发展.在国外,基于外观的视线跟踪方法[12−17]的研究开始于2009年,目前主要致力于解决该方法在头部自由运动方面存在的局限性[14−17].
国内对视线跟踪技术的研究起步较晚,近年来,随着计算机视觉、人机交互、模式识别等相关学科的发展,国内对视线跟踪技术的研究有上升的趋势.如天津大学、西安电子科技大学、北京理工大学、中国科学技术大学、哈尔滨工业大学、东南大学等都开展了视线跟踪技术的研究[18−24].在基于特征的视线跟踪方法的研究领域,华南理工大学的秦华标等[25]和哈尔滨工程大学的高迪等[26]对头动下视线估计的相关工作进行了研究.中科院自动化所熊春水等针对单相机系统单点标定进行了研究[27].浙江大学的Sun等采用Kinect深度传感器进行视线估计[28],为近年国内较有特色的研究.可见这些研究分别针对头部自由运动、简化用户标定过程和简化硬件系统配置三大研究热点进行了深入研究.近几年国内对基于外观的视线跟踪方法的研究比较多,如:北京航空航天大学、南京大学、清华大学等近几年都有相应的成果[29−30].
总体来说,国内视线跟踪技术起步晚,无论是应用基础研究还是产业化水平,都与国外存在差距.但相比于学术方面的研究,国内的产业化水平上升的比较快,在视线跟踪技术的产业化应用拓展方面,北京七鑫易维信息技术有限公司和上海青研科技有限公司在融资的支持下,在某些类型的产品方面正在逐步缩小与国外公司的差距.
1.3 研究现状
理想的视线跟踪系统应该具有如下特点:1)“即拿即用”,无需个体标定;2)大范围全自由头动下的高精度视线估计;3)简化的硬件系统配置;4)适合各种应用环境.
但目前,视线跟踪系统还属于一种在特定场合应用的专用设备,一些瓶颈技术限制了其普适应用.在物联网、大数据、云计算等技术高速发展的今天,对视线跟踪技术提出了更高的需求.例如:简化用户标定(甚至在保证一定的视线估计精度的情况下,免除用户标定)和实现真正的全自由头动下的视线估计,可以使基于眼动跟踪的人因分析、认知疾病筛查与诊断等网络和大数据行为真正成为可能.再例如:简化硬件系统配置,直至与基于外观的方法一样,采用单一相机就可以实现简化的用户标定、全自由头动下的视线估计,在移动式、便携式设备广泛应用的今天,有着非常重要的意义,这也对视线跟踪技术提出了新的挑战.
2 基于特征的视线跟踪算法
基于特征的视线跟踪技术是基于VOG的视线跟踪技术的重要组成部分,其基本原理是利用某些在眼球转动时相对位置不变的眼部特征,将其作为参照,然后根据相对位置变化的特征和这些不变特征之间的关系,提取变化的特征参数,作为判别视线方向的主要依据.因此视线跟踪技术一般包括两个部分:图像处理与特征提取、视线方向或视线落点估计,如图1所示.图像处理与特征提取过程对相机采集的人脸图像进行图像处理与分析,提取出估计视线所需要的视线参数特征;视线方向或视线落点估计过程根据视线估计模型来估计屏幕视线落点.
基于特征的视线跟踪方法一般分为二维视线跟踪方法和三维视线跟踪方法,二维视线跟踪方法从图像中提取眼睛的二维视线参数,将其代入由用户标定确定的视线参数到屏幕注视点的映射函数,换算成视线的屏幕落点.而三维视线跟踪方法是通过研究人眼的成像模型和空间几何模型,由图像的视线特征参数和光源位置坐标来计算三维视线方向,在系统标定出屏幕位置的情况下,视线与屏幕相交得到屏幕视线落点.下面本文分别对二维视线跟踪方法和三维视线跟踪方法进行了论述.
2.1 二维视线跟踪方法
二维视线跟踪方法是将从采集的图像中提取的二维人眼特征参数与采集图像时刻用户眼睛的注视方向或注视点建立映射模型,通过获取图像上用户的二维人眼特征参数,即可根据人眼特征参数与注视点之间的模型估计出用户的视线关注点[31−74].二维视线跟踪方法主要有:瞳孔(或虹膜)–眼角法[35−42]、瞳孔(或虹膜)–角膜反射法[1,3,43−56]、交比值法[57−66]、单应性归一化(Homography normalization,HN)法[67−74]等.
2.1.1 瞳孔(或虹膜)–眼角法
图1 基于特征的视线跟踪方法原理流程图Fig.1 The flow diagram for feature-based gaze tracking methods
瞳孔(或虹膜)–眼角法通常基于单相机无光源系统获取用户的注视点,在自然光照的条件下,虽不能将瞳孔与虹膜分开,但可以认定二者是同心圆,且在眼动过程中是同步变化的.如图2所示,当头部固定不动时,眼角的位置不动,由眼球的转动改变视线方向.当眼球转动时,瞳孔(或虹膜)中心的位置会发生变化,则以眼角为基准,视线方向改变时由瞳孔(或虹膜)中心指向眼角的矢量会相应发生变化.因此,通过从相机采集的图像中检测瞳孔(或虹膜)中心的位置,以及眼角的位置,得到瞳孔(或虹膜)中心–眼角的矢量,设定一个二维的映射模型,建立瞳孔(或虹膜)中心–眼角矢量与视线之间的对应关系,常用的二维映射模型如式(1)所示.
其中,sx,sy为屏幕上视线落点的横纵坐标,vx,vy为图像上对应的瞳孔(或虹膜)中心–眼角矢量的横纵坐标,a0∼a11为映射模型的系数.用户需要通过用户标定过程求取映射模型中未知的固定系数,这些系数包含用户的个体差异信息.下次使用该系统时,即可根据新采集的图像中提取出的瞳孔(或虹膜)中心–眼角矢量估计出当时的视线信息.
图2 瞳孔(或虹膜)–眼角法视线跟踪系统示意图Fig.2 The gaze tracking system of pupil (or iris)-corner technique
Zhu等[35]建立了一个虹膜中心–眼角矢量与注视角之间的二维线性映射模型,通过线性插值计算连续帧的视线方向,在眼睛图像的分辨率为320×240的情况下,视线精度可达到1.4◦.该方法的特点在于:采用的模型比较简单,提出了使虹膜中心和眼角检测达到亚像素精度的方法,从而在简单的线性模型中达到较高的精度,但需要保持头部静止.Shao等[36]先提出了传统的瞳孔中心–眼角矢量与屏幕上的视线关注点之间的映射模型,然后提出了一种根据人眼与屏幕的二维几何模型估计视线的方法,从所需的系统输入、标定点个数、视线精度和对头动的影响四个方面对这两种方法进行了对比分析,结果表明,后者比前者具有更高的精度,但后者利用了一个自变量为瞳孔中心–眼角矢量的横坐标的三次函数作为视线落点的误差补偿函数,导致所需要的人眼特征更多,且标定点更多.与式(1)中映射模型不同的,Xia 等[40]将映射模型简化为图像上瞳孔中心的坐标与屏幕注视点之间的线性映射模型,结果证明视线精度并未因模型简单受到影响.并基于伽柏小波变换和结构张量检测眼角点,确定感兴趣的区域用于检测瞳孔中心,以此增强光照条件发生变化时眼睛特征检测结果的鲁棒性,但该系统限制了头部的自由运动.
瞳孔(或虹膜)–眼角法所需的硬件配置简单,只需要一个普通相机,便于操作与实现,特征提取相对简单,只需要提取瞳孔(或虹膜)和眼角在图像上的坐标,但用户标定过程复杂,需要通过多个标定点计算人眼特征与视线之间的映射模型,耗时较长,并且为了保证视线的精度,在标定过程中需要保持头部固定,会给使用者带来不便.更重要的是,由于在角膜上没有光源形成的亮斑,为了构建眼球运动的基准点,只能采用眼角等固定点作为表述眼球运动的基准点,通过瞳孔(或虹膜)中心与眼角之间的矢量来描述眼球运动.而在自然光照条件下,准确稳定地分割眼角点也具有一定的挑战性.
2.1.2 瞳孔(或虹膜)–角膜反射法
针对瞳孔(或虹膜)–眼角法应用于单相机无光源系统中存在的精确检测眼角点较难的问题,瞳孔(或虹膜)–角膜反射法在系统中增加了光源,用光源通过角膜反射形成的普尔钦斑代替眼角点,作为眼球运动的基准点.当头部固定不动时,眼球的转动改变视线的方向.由于角膜近似球形,当眼球转动时,假设光源形成的普尔钦斑在角膜上的位置不动,以普尔钦斑为基准,则视线方向改变时由瞳孔(或虹膜)中心指向普尔钦斑中心的矢量会相应地发生变化.因此,将图像中提取出的瞳孔(或虹膜)中心和普尔钦斑中心构成矢量,作为视线参数,与屏幕上的视线落点建立映射模型(与式(1)类似),将该参数代入映射模型即可得到视线在屏幕上的落点.
采用瞳孔–角膜反射法和虹膜–角膜反射法一般选取的光源不同.由于在可见光条件下,瞳孔的边缘与虹膜的灰度值较接近,准确地定位瞳孔中心较难,而在红外光源照射下,瞳孔呈黑色特征,虹膜较白,瞳孔特征比较突出,分割难度较低,因此在使用瞳孔特征进行视线跟踪的方法中,通常采用的是红外光源[1,43−45],尤其是双环形红外光源[1,43,45].在双环形红外光源系统中,内环光源在光轴附近,主要的作用是用于检测瞳孔,而不对视线估计起作用,外环光源为远光轴光源,在角膜上形成普尔钦斑.双环形主动红外光源系统进行视线估计采用的是内环光源和外环光源交替亮灭,如图3所示.当内环光源点亮时,图像中会产生明亮的瞳孔,即“亮瞳”现象,便于精准地定位瞳孔.当外环光源点亮时,角膜表面形成的普尔钦斑会在相机中成像,用于检测普尔钦斑的中心位置.对亮瞳图像和暗瞳图像进行差分,可以更完整地保留瞳孔区域,更精确地检测瞳孔并确定瞳孔的中心位置.相反地,虹膜外侧的巩膜呈白色,在可见条件下可以较清晰地检测出虹膜的轮廓,与在红外光源条件下相比,对比度更高,因此在使用虹膜特征进行视线跟踪的方法中一般采用可见光源对虹膜–角膜反射法进行分析[3].
图3 “亮瞳”现象与“暗瞳”现象[43]Fig.3 Bright pupil and dark pupil[43]
1)单相机单光源系统
采用瞳孔(或虹膜)–角膜反射法进行视线估计的最小硬件系统配置为单相机单光源系统.在现有的文献中,单相机单光源系统的人眼视线参数到视线落点的映射关系都是采用一组多项式映射模型来描述[1,3,43−48].Blignaut[46]在一个相机和一个红外光源的系统配置下对比分析了已有文献中的不同的二维映射模型,得出标定点个数为9时的最佳的二维映射模型如式(1)所示,而标定点个数大于等于14时,最佳的二维映射模型如式(2)所示[48],视线精度可以达到0.5◦以内,最佳的用户标定过程是每个用户盯视屏幕上的14个标定点,大约耗时20秒.
其中,sx,sy为屏幕上视线落点的横纵坐标,vx,vy为图像上对应的瞳孔(或虹膜)中心–普尔钦斑矢量的横纵坐标,a0∼a7,b0∼b5为映射模型的系数.Morimoto等[44]指出当使用者的头部位于用户标定位置时,单相机单光源系统能够获得精确的视线在屏幕上的落点;当使用者头部偏离标定位置时,单相机单光源系统的视线落点估计精度会显著下降.Sigut等[3]通过实验详细研究了当采用典型的非线性多项式作为映射模型时,头部偏离标定位置后对屏幕视线落点精度的影响,结论是:当使用者在上下和左右方向移动头部时,视线落点的精度变化不大;当头部远离和靠近相机,即相对于屏幕前后移动时,对视线落点的精度影响非常大.因此,利用二维映射模型在单相机单光源系统下进行视线估计通常需要用户头部保持静止状态.
为了解决瞳孔(或虹膜)–角膜反射法在单相机单光源系统配置下对头部偏离标定位置的影响,Zhang 等[1]在单相机双环形光源系统中推导了头动状态下的视线参数的补偿模型,用来补偿头部运动产生的视线参数的变化,将视线参数修正回标定位置的相应的参数,进而获得准确的视线落点信息,但从补偿模型中可以看出,需要已知用户的真实瞳距.Kim 等[45]通过调整两个反光镜使人眼在窄视场角的相机中成像,并将两个反光镜的转角与人眼特征参数一起作为模型的输入,基于广义回归神经网络预测出来,即可将头部的运动通过反光镜的转角反馈到视线模型中,用于实现自由头动状态下的视线估计.该方法解决了单相机单光源系统的自由头动问题,鲁棒性强,但在系统的布局(如:反光镜的放置)和操作方面要求较高,也使系统过于复杂,缺少实用价值.
单相机单光源系统是目前应用最广的眼动仪形式,其系统配置相对简单,对硬件配置要求较低,视线参数只涉及到瞳孔(或虹膜)以及普尔钦斑中心的检测,且不需要对光源和屏幕的位置进行标定,利用补偿方法可以实现自由头动下的视线估计,但在一般的方法中,仍需要用户头部尽可能地位于标定位置,且尽可能地保持静止,标定过程相对复杂,映射模型中未知的系数较多,造成所需的标定点个数较多.
2)单相机多光源系统
当基于单相机多光源系统改进瞳孔(或虹膜)–角膜反射法[49−52]时,由于两个光源在同一只眼睛上会形成两个普尔钦斑,将两个普尔钦斑的位置关系引入映射模型中,可以有效地改善单相机单光源系统二维映射模型对头部运动的敏感程度,在保证视线精度的情况下,允许用户在一定范围内头动.Cerrolaza 等[53]强调对瞳孔–角膜矢量进行归一化有利于保证用户在头动状态下视线估计的鲁棒性,因此,Sesma-Sanchez等[50]提出了三种归一化因子的计算方法,分别为:同一只眼睛两个普尔钦斑之间的距离、左右眼瞳孔之间的距离、以及两个光源分别产生的左右眼普尔钦斑之间的距离的平均值,并在三个映射模型中进行了实验,结果表明,从头动状态下的系统精度及鲁棒性分析,同一只眼睛两个普尔钦斑之间的距离是最佳归一化因子,这决定了系统需要包含两个光源,此外,Sesma-Sanchez等指出映射模型的复杂程度对用户头动状态下的视线精度无显著影响,也就是说,可以采用相对简单的映射模型来进行视线估计.张太宁等[51]提出的基于单相机双光源系统的二维映射模型中,根据两个光源在同一只眼睛中产生的两个普尔钦斑,计算两个普尔钦斑的连线中心坐标以及两个普尔钦斑之间的水平距离,用虹膜中心与两个普尔钦斑的连线中心构成的矢量、两个普尔钦斑的连线中心以及两个普尔钦斑之间的水平距离这五个特征量与屏幕视线落点构成了一个一次多项式模型,如式(3)所示.
其中,sx,sy为屏幕视线落点的横纵坐标,Gx,Gy为用虹膜中心与两个普尔钦斑的连线中心构成的矢量的横纵坐标,Mx,My为两个普尔钦斑的连线中心坐标,L为两个普尔钦斑之间的水平距离,c1∼c3,d0∼d3为映射模型系数.该方法允许头部在左右约15 cm、上下约8 cm、转动约10◦范围内运动,简化了映射模型,进而减少了所需用户标定点的个数.
与基于单相机单光源系统的瞳孔(或虹膜)–角膜反射法相比,基于单相机多光源系统的改进的瞳孔(或虹膜)–角膜反射法通常具有以下优点:1)降低了映射模型对头部运动的敏感度,可实现一定范围内的头部自由运动;2)在保证视线精度的情况下,映射模型较简单,所需标定点个数较少,运算量较小.
3)多相机系统
针对基于单相机系统的映射模型中存在的自由头动影响、光照不均匀对结果的影响等,也有一些研究者在多相机系统中采用瞳孔(或虹膜)–普尔钦斑矢量与视线落点的映射模型[54−56].Zhu等[54−55]利用双相机系统对头部运动前后瞳孔中心–普尔钦斑中心矢量的变化进行了推导,将自由头动下的瞳孔中心–普尔钦斑中心矢量转换到标定位置下对应的瞳孔中心–普尔钦斑中心矢量,代入标定位置下的二维映射模型中计算视线落点,以补偿头动对视线估计的影响.Kim等[56]从实用化产品的角度,设计了基于三个相机的能够补偿光照不均匀的视线跟踪头盔,改善了光照不均匀对瞳孔检测的影响,并建立了图像上的瞳孔中心坐标与屏幕视线落点之间的二维多项式映射模型,用于估计视线落点.
利用多相机系统进行二维视线估计的研究较少,主要原因有:1)利用多相机系统可以高精度的估计三维视线,与二维视线估计相比,用户标定过程更简单,能更充分地利用多相机的优势,更便捷地实现视线估计中的头部自由运动、提高精度等.2)针对单相机系统中的二维映射模型存在的对头部运动敏感等问题,目前已经有很多研究者在单相机系统中进行相关的研究,简化系统的硬件配置无论从理论层面还是实用角度都具有更深远的意义.
2.1.3 交比值法
基于交比不变性的屏幕视线落点估计方法[57−66]应用了射影几何学中的交比射影不变性,即:空间中一条直线经空间几何变换后保持了直线上对应点列的交比不变,对于空间平面多边形,投影图像上某一条边上的交比值与几何变换前平面多边形上对应边的交比值相等.
如图4所示,使用交比值法的视线跟踪系统一般至少包含四个光源,分别放置在屏幕的四个角上,当用户看屏幕上一点S时,四个光源在角膜上形成反射,反射点为Gi(i=1,2,3,4),则在角膜图像上形成四个普尔钦斑gi.将角膜近似看作一个球体,故过U点存在一个虚拟正切平面,如图4(a)所示.该虚拟正切平面与四个光源Li和角膜中心C之间的连线会有交点V i.由于反射点为Gi与虚拟正切平面上的V i不相同,在成像面上,V i的像点用vi=u+α(gi−u)表示,其中的比例因子α可通过标定获得.以虚拟正切平面为媒介,根据交比不变性,屏幕上LED光源构成的多边形的某个边上的交比值与成像面上vi构成的多边形对应边上的点的交比值相等,如图4(b)所示,屏幕的宽为w,高为h,屏幕注视点为(sx,sy),则屏幕上的交比值为:
图4 交比值法视线估计模型Fig.4 Cross-ratio based gaze estimation model
根据图像上与屏幕上的交比值对应相等,可以解出sx和sy,如式(6)所示,即得到了视线在屏幕上的关注点.
Kang 等[58]着重分析了利用投影几何交比值不变的性质进行视线估计的两个主要误差来源:一是视轴与光轴不共线,存在着一个水平方向的偏差角和一个垂直方向的偏差角;二是真实的瞳孔中心不在角膜反射平面上,这一偏差与瞳孔中心到角膜中心的距离、角膜曲率半径等参数有关.Coutinho等[59]对基于交比不变性的方法进行了大量的实验,在已知角膜曲率半径、角膜中心位置、光源位置、相机位置的情况下,对比分析了三种已有的利用投影不变性估计视线落点的方法,在这三种方法中,均分析了考虑光轴与视轴的夹角以及不考虑光轴与视轴的夹角两种情况.并在这些方法通过标定比例因子α使普尔钦斑位于虚拟正切平面内的基础上,分别利用4点标定和9点标定计算比例因子α,用于投影计算,也通过这个标定过程计算了一个偏移向量来补偿光轴与视轴的夹角.通过比较分析,体现了该方法的优越性.为了改善传统交比值法中瞳孔中心不在虚拟正切平面内引入的计算偏差,Cheng 等[62]提出了使用动态虚拟正切平面的思想,通过动态矩阵描述光源反射点与虚拟点之间的关系,视线精度可达到0.7◦.Yoo等[61]提出了在两个相机和五个红外LED光源下实现的基于交比值法的视线估计方法,一个可变焦相机用于捕捉人眼特征,另一个广角相机用于检测人脸,以实现大范围头动下的视线估计,除放置在屏幕四个角的光源之外,还有一个光源置于可变焦相机上方,用于照亮人眼,以便得到清晰的人眼图像,提取出更准确的瞳孔特征.
交比值法的优点在于它只需要已知光源位置及屏幕的大小,而不需要一个标定了的相机,就可以实现自由头动状态下的较精确的视线落点估计,模型简单.但由于实际的瞳孔中心不在虚拟正切平面上[58],因此交比值法是一种近似的模型,且对光源位置标定和图像处理精度的要求较高.为了利用交比不变性计算视线落点,系统中的四个光源均需在人眼中形成反射,并在相机中成像,这将限制头部运动的范围.此外,为了补偿光轴与视轴之间的夹角,用户标定过程需要多个标定点,增加了用户标定的复杂度.
2.1.4 单应性归一化法
图5 单应性归一化法视线估计模型Fig.5 HN based gaze estimation model
由于未对系统进行标定,角膜反射平面ΠC的三维坐标是未知的,因此假设角膜反射平面为一个归一化平面ΠN,即一个具有预定义坐标的单位正方形,则可以通过角膜反射产生的四个普尔钦斑和预定义的归一化平面ΠN的四个角点计算出来.而通过用户标定过程可以确定归一化平面ΠN与屏幕平面ΠS之间的投影矩阵,标定点个数不少于4个.最终得到从成像面到屏幕的投影转换矩阵为:
基于单应性归一化视线估计方法在四个红外光源的基础上,不需要增加额外的红外光源,且由于引入了归一化空间的特性,不需要知道由红外光源形成的屏幕矩形的尺寸,便于系统的实现[70].由于这两个单应性矩阵在估计视线之前对头部运动进行了标准化,且补偿了光轴与视轴之间的角度偏差,因此,该方法比瞳孔(或虹膜)–角膜反射法、交比值法鲁棒性更强,对头部姿态变化的敏感性较低[69].但为了求解两个投影转换矩阵,系统中的四个光源均需在人眼中形成反射,并在相机中成像,这将导致头部运动的范围受到限制.且投影模型中近似瞳孔中心在四个普尔钦斑构成的平面内,引入了误差.此外,为了标定出归一化平面与屏幕平面之间的投影矩阵,用户标定过程需要至少4 个标定点,增加了用户标定的复杂度.
2.1.5 小结
二维视线跟踪方法利用人眼的可视特征,如:瞳孔、虹膜、眼角、光源反射形成的普尔钦斑等,通过模拟眼动变化特征与视线落点之间的二维模型来进行视线跟踪.根据上述二维视线跟踪方法,表1简单总结了这些方法的系统配置、误差主要来源、头动影响、优缺点等.
由表1可知,在单相机系统中,当不采用光源或只采用一个光源时,映射模型无法保证头动不变性,故要求用户头部保持固定.而采用两个及两个以上光源时,可以根据不同光源在角膜外表面产生反射形成的普尔钦斑之间的相对位置关系,将头动因素考虑在内,实现头部在一定范围内的自由运动.基于单相机系统的二维映射模型所需系统配置简单,不需要标定相机,且便于实现,在头部固定和小范围头动的情况下可以达到较高的精度,故在含有头枕、腮托等固定装置的设备以及头盔、智能眼镜中应用较广泛.但在遥测式系统中,头部自由运动会使得视线精度明显降低.在多相机系统中,头部自由运动引入的眼动变化特征的变化量可以计算出来,用于补偿头动对视线落点估计的影响,但需要标定相机之间的位置关系,增加了系统标定的复杂度.二维视线跟踪方法不可避免的需要多个标定点来完成用户标定过程,以确定眼部特征与视线落点的转换关系,过程相对复杂,与实现自然人机交互相违背.
2.2 三维视线跟踪方法
三维视线跟踪方法[28,75−116]是根据眼球的几何模型来估计三维视线.人眼模型如图6所示,眼睛近似于球状,半径约为12 mm.从眼球的外层向内,依次是巩膜,虹膜和瞳孔.角膜覆在虹膜外面,虹膜中心有一个环状体,称作瞳孔,用来调节进入眼睛的光量.虹膜后面是晶状体,用来调节光线聚集在视网膜上形成图像.视网膜位于眼球后面,蕴含大量感光细胞.角膜和晶状体之间是水样液体,晶状体和视网膜之间是玻璃体.光线进入眼睛后经过这一系列的光介质并在各个层面上反射和折射后才到达视网膜.
表1 二维视线跟踪方法的特点对比Table 1 Comparison of the characteristics of two-dimensional gaze tracking methods
图6 人眼模型Fig.6 Eye model
在视网膜上有一个特殊的小区域,称为小凹.上面集中了绝大部分颜色敏感的细胞,用于感知景物细节.小凹并不准确位于眼球的对称轴上,而是与角膜中心构成视轴.眼球的对称轴是光轴,眼球的光轴与视轴之间存在一个因人而异的固定的偏角,这个角被称为kappa 角,大小通常在5◦左右.视线跟踪指的是估计视轴的方向,并根据所观察景物的信息确定注视点.视轴上有小凹和角膜中心,角膜中心是光轴与视轴的唯一交点,但小凹从眼球外侧无法获取其相关信息,所以直接计算视轴是无法实现的.目前常用的三维视线估计方法通常先重建出眼睛的光轴,然后根据人眼特定的kappa 角,从光轴换算到视轴,进而得到注视点的位置.因此,三维视线估计的基本任务是光轴的求解.
眼球中心E、角膜中心C、虹膜中心I和瞳孔中心P都位于光轴上,此外,由于在眼球的转动过程中,眼球的光轴始终垂直于瞳孔边缘所在的平面,也同时垂直于虹膜边缘所在的平面,故如果将瞳孔或虹膜看作是空间的圆形目标,则光轴的方向向量可以用瞳孔或虹膜的空间法向量表示.综上,在视线跟踪系统中,利用眼球的可视特征重建光轴的方法如图7 所示.在瞳孔或虹膜的空间法向量已知的情况下,如果已知眼球中心E、角膜中心C、虹膜中心III、瞳孔中心PPP中的任意一点的坐标,则可以利用点法式方程重建光轴;而在瞳孔或虹膜的空间法向量未知的情况下,则需要已知眼球中心E、角膜中心C、虹膜中心I、瞳孔中心P中的任意两点的坐标,才能重建光轴.
图7 光轴重建方法示意图Fig.7 The methods of optical axis reconstruction
在上述光轴重建方法中,由于眼球中心很难通过眼睛的外部可视特征计算出来,除非眼球转动,盯视不同点时才可以反映眼球中心的信息,因此在眼球光轴重建模型中,一般不采用眼球中心作为重建光轴的条件.
图8 三维视线估计关键技术构成图Fig.8 Key technologies of three-dimensional gaze estimation
三维视线估计关键技术如图8所示,主要包括三个部分:系统标定技术、用户标定技术、三维视线估计技术,而用户标定和三维视线估计都包含图像的人眼特征检测部分.三维视线估计需要在用户标定阶段确定用户的眼球不变参数,然后在视线跟踪阶段基于标定的眼球不变参数和系统参数估计眼球的变化参数,进而重建眼球光轴和视轴.眼球的不变参数是每个用户固定不变、但具有个体差异的眼球参数,如角膜曲率半径、虹膜半径、kappa 角等,而眼球的变化参数是眼动过程中与视线方向密切相关的眼球参数,如角膜中心、瞳孔中心、虹膜中心等.
根据采用的相机种类的不同,将基于特征的三维视线跟踪方法分为以下两类:基于深度相机的三维视线估计方法和基于普通相机的三维视线估计方法.
2.2.1 基于深度相机的三维视线估计方法
基于深度相机的三维视线估计方法[28,88−97]通常只需要一个深度相机,如:Kinect等,在获取图像信息基础上还能获取深度信息.通过结合图像信息和深度信息来对人眼进行三维建模,进而实现三维视线估计.以利用Kinect的三维视线跟踪方法为例,如图9所示.
图9 基于Kinect的三维视线估计模型Fig.9 3D gaze estimation model based on a kinect
其基本思路为:首先,根据头部姿态跟踪得到头部坐标系与相机坐标系之间的转换关系,包括:头部坐标系原点在相机坐标系下的坐标以及头部坐标系与相机坐标系之间的转换矩阵.根据眼球中心相对于头部位置保持固定这一性质,通过标定过程计算出头部坐标系下的眼球中心坐标,从而可以根据转换矩阵得到相机坐标系下三维空间中的眼球中心坐标E;然后根据虹膜中心的成像关系,利用小孔成像模型计算出三维空间中虹膜中心的坐标I.利用眼球中心和虹膜中心建立光轴单位方向向量NNNo=通过用户标定计算出光轴与视轴之间的转换关系(转换矩阵M或水平与竖直方向的旋转角α,β),即可得到视轴单位方向向量Nv=MNo(或f(No,α,β)).最后根据眼球中心E、眼球中心与角膜中心的矢量、以及角膜中心与视线落点的矢量,可以直接表示出视线落点S的三维坐标为:
其中,l为眼球中心与角膜中心的距离,一般采用5.3 mm[98]或忽略不计;λ为角膜中心到视线落点之间的距离,可以用眼球中心E、光轴单位方向向量No、视轴单位方向向量Nv以及系统标定出的屏幕在相机坐标系的位置关系表示为:λ=对于屏幕上的任意一点S,Ns和n满足S·Ns=−n,Ns和n可以通过系统标定获得[28].
基于深度相机的三维视线估计方法需要系统标定和用户标定,系统标定包括相机参数标定及屏幕位置标定,用户标定包括眼球中心标定以及光轴与视轴之间的转换关系标定.Sun 等[28]为了提高头部姿态跟踪的精度,借助内眼角点来计算眼球中心坐标,用户标定过程还需要标定眼球半径以及眼球中心与内眼角点矢量,最终视线估计的精度为1.38◦∼2.71◦.该方法在只使用一个Kinect的简单系统中实现了在自由头动状态下的视线估计,但系统标定中的屏幕标定太繁琐,需要用一个长为1 800 mm 的棍子,一头指向屏幕角点,另一头指向相机视线范围内的某一点,用来标定屏幕角点,还需要换屏幕四个不同的角点进行多次实验;并且用户标定的参数较多,建立的方程较多,增加了标定过程的复杂性.Zhou等[89]利用双眼模型来提高视线估计的精度,并提出了一种只需要一个标定点的用户标定方法,最终视线精度为1.99◦.该方法中将视轴用虹膜中心与视线落点的连线近似表示,导致视线精度不高.
基于深度相机的三维视线估计方法系统配置简单,且允许头部自由运动,但其运用的基本原理是以眼球中心为起点,根据已知长度的方向向量的矢量叠加,直接换算到空间中的视线落点,这非常依赖于每一个量的精确检测和计算,如果眼球中心、虹膜中心、光轴方向向量或视轴方向向量中的任意一个量偏离了正确值,都会造成最终的视线落点不准确,这也是该方法精度不高的一个主要原因.实际上,基于深度相机的三维视线估计方法需要采集和检测人眼或人脸的若干三维特征,例如:眼角点的三维坐标等.因此,高精度的三维视线估计十分依赖三维测量设备的检测精度,如果三维成像设备的检测精度足够高,根据人眼的成像模型,可以高精度重构人眼光轴.
2.2.2 基于普通相机的三维视线估计方法
基于普通相机的三维视线估计方法通常利用光源反射以及瞳孔折射等几何成像关系,求解与视线相关的空间三维信息,如:角膜中心、光轴方向向量、光轴与视轴的转换关系等,估计出三维视线,与屏幕相交得到视线落点.根据采用的硬件系统的复杂程度可分为:单相机单光源系统、单相机多光源系统和多相机多光源系统,下面分别对这三种系统配置下的三维视线估计方法进行论述.
1)单相机单光源系统
单相机单光源系统三维视线估计模型如图10所示,光源L在角膜外表面形成反射,反射点为G,在相机成像面上成像为普尔钦斑g,法线为角膜中心C与反射点GGG的连线.设角膜曲率半径为R,则存在:|GGG−C|=R.根据反射平面可知,光源L、反射点G、相机光心OO以及角膜中心C四点共面,表示为:
其中,反射点G用成像面上的普尔钦斑g表示为:G=O+u(O−g),u为比例系数.
图10 单相机单光源系统三维视线估计模型Fig.10 3D gaze estimation model based on one-camera-one-light-source system
根据入射角与反射角相等,可得:
瞳孔在角膜外表面存在折射,则存在:|F−C|=R.根据折射平面可知,瞳孔中心PPP、折射点F、相机光心OOO以及角膜中心C四点共面,表示为:
其中,折射点F用成像面上的瞳孔中心p表示为:F=O+m(O−p),m为比例系数.
根据折射定律可得:
其中,n1为房水和角膜的有效折射率,n2为空气折射率.
利用上述关系式计算出角膜中心C和瞳孔中心P的坐标,则眼球的光轴可以根据求得的角膜中心C和瞳孔中心P重建.为了得到视线方向,需要获取光轴与视轴之间的转换关系,一般通过用户标定过程计算.在用户标定过程中,用户依次盯视屏幕上的多个已知标定点,则根据上述公式求解出的角膜中心C和标定点坐标S表示出视轴单位方向向量.根据盯视多个标定点对应的多组光轴单位方向向量与视轴单位方向向量,可以利用最小二乘法求解光轴与视轴的转换矩阵M,如式(13)所示[54].
则在视线估计过程中,根据得到的此刻的角膜中心C和瞳孔中心P计算光轴单位方向向量,通过式(13)计算出视轴单位方向向量,那么根据此刻的角膜中心C和视轴单位方向向量可以建立视线方向,与系统标定出的屏幕方程相交,得到视线落点.
而Shih等[99]证明了当人眼参数未知的情况下,用空间三维的角膜中心计算三维视线需要至少两个相机和至少两个光源.因此,基于单相机单光源系统的三维视线跟踪方法通常依赖于根据人类平均值或人眼模型参数设定人眼的一些不变参数,如:角膜曲率半径、瞳孔中心与角膜中心之间的距离等,将这些眼球参数作为已知量,用于三维视线估计[98,100].Guestrin等[98]指出,如果角膜曲率半径、瞳孔中心到角膜中心之间的距离以及房水的折射率已知的情况下,在包含一个相机和一个光源的最简化的系统配置下,需要满足头部位置相对于系统保持静止或者已知眼睛与相机之间的距离.Ohno等[100]使用一个网络相机和一个红外LED阵列对三维视线进行了估计,其中将因人而异的角膜曲率半径、瞳孔中心到角膜中心之间的距离以及眼球内外的折射率,用文献中的固定值表示,最终得到的视线用瞳孔中心和角膜中心确定的光轴代替表示,未考虑人眼光轴与视轴之间的偏角.
利用单相机单光源系统的三维视线估计方法需要已知一些眼球不变参数来辅助计算三维空间中的点坐标,进而重建光轴和视轴,得到视线落点.然而每一个用户的眼球参数往往都是不同的,利用某一固定值进行视线估计会引入系统误差,视线落点的精度会因此降低.近几年基于单相机单光源系统的三维视线跟踪方法的研究成果较少,需要解决的问题是如何在该系统配置下利用简单的用户标定过程标定出这些人眼不变参数,用于三维视线估计.这样既可以规避因人眼不变参数引入的误差,提高视线精度,也可以突破已有文献对三维视线估计所需硬件系统配置的限制,实现简化硬件系统配置下的三维视线估计,促进视线跟踪技术在手机、平板电脑等移动便携式设备的广泛应用.
北京科技大学的迟健男课题组对单相机单光源系统的三维视线估计进行了深入研究.针对瞳孔检测对光源的需求以及瞳孔在角膜外表面产生折射引出的复杂的折射方程,课题组选取虹膜作为眼球的研究特征,在单相机单光源系统配置下,根据空间圆形目标的三维重建方法[117]以及光轴与视轴之间固定的位置关系,将三维视线估计所需的人眼不变参数,即:虹膜半径、kappa 角,通过用户标定过程标定出来.三维视线估计过程中,利用标定的虹膜半径计算光轴的方向向量及角膜中心,然后根据光轴与视轴之间的转换关系计算视轴的方向向量,结合角膜中心建立三维视线,并与屏幕相交得视线落点.该方法解决了在单相机单光源系统中进行三维视线估计需要预先设定人眼不变参数的问题,通过简单的用户标定过程计算人眼不变参数,将个体差异考虑在内,提高了视线的精度,且虹膜特征可以在自然光照条件下进行检测,基于虹膜特征的三维视线估计为今后用于单相机无光源系统奠定了基础.
2)单相机多光源系统
在单相机多光源系统中,设光源个数为N,光源Li(i=1,2,···,N)在角膜外表面产生反射,反射点为Gi,在相机中成像为普尔钦斑gi.设Gi=O+ki(O−gi),其中,ki为比例系数,则存在:
根据入射光线、法线、反射光线共面可知,反射平面中Li,Gi,C,O,gi共面,则在N ≥2时,反射平面的交线即为角膜中心CC和相机光心O构成的直线[98].因此,角膜中心C的坐标表示为:C=O+teeecross,其中,eeecross用两个反射平面交线的方向向量表示为:eeecross=t为比例系数.根据反射原理可知:入射角等于反射角,则满足下式:
式(14)可以列出N个方程,根据式(15)可以列出3N个方程,共有4N个方程,未知数有N+2个,即:ki,t,R.故通过求解非线性方程组可以解出角膜中心C的坐标和角膜曲率半径R[76,80].
然后根据瞳孔的折射作用,瞳孔边缘点在角膜上的几何成像模型满足:
其中,n1为房水和角膜的有效折射率,n2为空气折射率,j=1,2,···,T为T个瞳孔边缘点,由于空间各瞳孔边缘点到空间瞳孔中心之间的距离为瞳孔半径,可得表达式:
其中j=k,j,k=1,2,···,T.
图11 单相机多光源系统三维视线估计模型Fig.11 3D gaze estimation model based on one-camera-multi-light-source system
基于上述求解出来的角膜中心C、角膜曲率半径R,求解式(16)∼(18)可得到瞳孔中心P的坐标[98,101].则利用角膜中心C和瞳孔中心P重建眼球的光轴,并根据式(13)标定出的光轴与视轴之间的转换关系,确定视线方向及视线落点.
与此经典方法不同的是,Morimoto等[102]提出的基于单相机双光源系统的三维视线估计方法是以球面光学表面理论为基础,利用Gullstrand眼球模型中的一些人眼参数,包括:角膜曲率半径、角膜折射率、瞳孔中心与角膜中心之间的距离,来计算空间中的角膜中心和瞳孔中心,这两点的连线用于计算视线.该方法不需要进行用户标定,且允许自由头动,但没有考虑光轴与视轴之间的偏角,以及不同用户的眼睛之间存在的个体差异.
基于单相机多光源的三维视线跟踪方法[98,101−105]从视线估计的几何模型角度是可行的,但如果不根据人类平均值去定义一些眼球不变参数,则需要求解大量的非线性方程组,求解速度较慢,与视线跟踪所追求的实时性相违背,并且,得到的结果是数值解,精度与人为设定的求解非线性方程组的终止条件密切相关.
3)多相机多光源系统
多相机多光源系统在不需要已知任何眼睛参数的情况下,就可以实现三维视线估计.目前多相机多光源系统的三维视线估计方法从本质上与单相机多光源系统的类似,需要求解出角膜中心,然后重建光轴,利用光轴与视轴之间的转换关系,确定视线方向,最后根据求解得到的角膜中心和视线方向确定三维视线.但由于增加了相机个数,与单相机多光源系统相比,三维空间点及眼球参数的计算更加简单.
角膜中心是根据角膜反射进行求解,一般原理如图12所示.两个及两个以上的光源在角膜外表面形成反射,每一个光源形成的反射平面相交可以得到一条经过角膜中心和相机光心的直线,设光源为Li(i=1,2,···),相机光心为Ot(t=1,2,···),Li产生的角膜反射点在相机t中的成像点为git,则角膜中心C满足:
图12 多相机多光源系统中角膜中心的求解Fig.12 Solution of the cornea center in multi-camera-multi-light-source system
在双相机系统中,经过角膜中心和第一个相机光心的直线与经过角膜中心和第二个相机光心的直线相交,可以得到角膜中心C的坐标[98−99,106−114].
为了得到视线,除了角膜中心坐标之外,还需要重建光轴来转换出视轴的方向.光轴经过角膜中心、瞳孔中心、虹膜中心、眼球中心,一般利用角膜中心和瞳孔中心进行求解.基于多相机系统的光轴重建方法可以归纳为以下两种方法:折射平面法和直接求解法.
折射平面法是根据角膜中心和瞳孔中心都位于瞳孔中心折射平面内,因此利用每个由角膜中心、成像平面上的瞳孔中心和相机光学中心确定的折射平面相交,交线经过角膜中心和瞳孔中心,用来表示眼球的光轴[98,107,109,112],如图13所示.
设相机光心分别为O1,O2,瞳孔中心在两个相机中的成像点分别为p1,p2,则光轴的单位方向向量为:
直接求解法是根据瞳孔成像几何模型,利用多个相机采集的人眼图像中的瞳孔特征,直接计算出瞳孔中心的坐标,分为考虑瞳孔折射的方法[99,110]和不考虑瞳孔折射的方法[108,111,114],其中,不考虑瞳孔折射的方法是利用小孔成像原理计算出虚拟的瞳孔中心,作为人眼的瞳孔中心.然后利用求解得到的角膜中心和瞳孔中心重建光轴[99,108,110−111,114].
图13 多相机多光源系统中折射平面法求解光轴Fig.13 Refraction plane method for solving the optical axis in multi-camera-multi-light-source system
根据上述计算得到的光轴,与标定出的光轴与视轴之间的转换关系,根据式(13)计算得到视轴方向向量,结合计算得到的角膜中心,即可估计出三维视线,与屏幕平面相交可得视线落点.
多相机多光源视线跟踪系统可以简化用户标定过程,实现单点用户标定.Guestrin 等[108]指出,在至少两个相机和至少两个光源的视线跟踪系统中,如果光轴与视轴之间的转换关系未知,则标定时只需要盯视某一固定点即可实现三维视线估计[98],但用多个标定点进行标定获得的结果鲁棒性更高[108].多相机视线跟踪系统可以将窄视场角相机和宽视场角相机组合起来,既能跟踪头部姿态,解决自由头动的影响,又能高分辨率拍摄人眼,提升视线估计精度.Beymer等[115]采用一个广角的立体视觉系统检测头部运动,根据检测到的自由头动下的人脸,用一个主动的窄视场立体视觉系统跟踪人眼并拍摄人眼的高分辨率图像,文献对立体视觉系统标定、眼睛特征检测方法等作了详细的阐述,屏幕上视线落点的精度可以达到0.6◦.
多相机多光源系统采用立体视觉,直接获得使用者的三维眼睛特征,进而获取三维视线方向,用户标定过程简单,能够更容易地获得更精确的视线估计结果,并且可以计算自由头动状态下视线在任何物体上的注视点.但硬件系统配置相对复杂,造成系统标定和相机标定相对复杂.
2.2.3 小结
三维视线跟踪方法根据眼球、相机、屏幕之间的几何关系计算眼球的不变特征,如:角膜曲率半径、kappa 角等,以及眼球的可变特征,如:眼球中心、角膜中心、虹膜中心、瞳孔中心等,然后计算眼睛的光轴方向向量和视轴方向向量,最后估计三维视线和计算视线落点.不同的三维视线跟踪方法各具特点,如表2所示.
基于深度相机的三维视线估计方法需要借助深度相机获取深度信息,从而在无光源系统中获取眼球中心、虹膜中心等三维空间点的坐标,用于计算视线落点.该方法系统配置简单,模型简单,且允许头部在一定范围内运动,但用户标定过程复杂,且视线精度非常依赖于人眼特征的检测精度.基于普通相机的三维视线估计方法根据光源反射及瞳孔折射等几何关系建立方程,用于求解角膜中心、瞳孔中心等三维空间点的坐标,进而重建光轴并估计三维视线,与系统标定出的屏幕方程相交得到视线落点.根据采用的硬件系统配置的不同,分为单相机单光源系统、单相机多光源系统和多相机多光源系统.单相机单光源系统的系统配置简单,通过预先设定人眼不变参数的值,求解估计三维视线所需的眼球参数,未考虑个体差异性,故精度较低.单相机多光源系统理论上可以根据几何关系计算空间三维的眼球参数信息,如:角膜中心、瞳孔中心等,但需求解复杂的非线性方程组,运算速度较慢,且得到的是数值解,或者通过预先设定人眼不变参数的值,精度较低.多相机多光源系统基于立体视觉系统可以直接获得空间三维信息,简化用户标定过程,视线精度高,且利用宽视场角相机可以跟踪头部姿态,解决自由头动的问题,但复杂的硬件系统配置造成系统标定过程复杂.
2.3 总结
基于特征的视线跟踪方法利用瞳孔、虹膜、眼角、面部标志等人眼特征或人脸特征建立视线估计模型,从而计算注视方向或注视点.基于特征的视线跟踪方法包括二维视线跟踪方法和三维视线跟踪方法,下面分别从系统标定、用户标定、视线精度、头部运动及应用场景等方面对二维视线跟踪方法和三维视线跟踪方法进行分析,如表3所示.
二维视线跟踪方法是通过人眼特征参数直接与视线落点建立二维模型,其中未涉及到相机的内参数,故不需要标定相机和屏幕位置.在单相机多光源系统中需要标定光源之间的相对位置关系,而在多相机系统中需要标定不同相机之间的转换关系.为了得到人眼特征参数与视线落点之间的关系,都需要通过复杂的用户标定过程求解中间参量.在单相机无光源系统中,由于眼角点检测较难,故视线精度较低;在单相机单光源系统中,头部保持固定的情况下可以保证较高的精度,但是当头部偏离标定位置时,视线落点的精度显著下降;在单相机多光源系统中,借助多个光源可以适当简化模型,提高视线精度;而在多相机系统中,可以实现头部运动状态下的高精度的视线落点估计.二维视线跟踪系统比较简单,目前所能实现的视线落点的精度较高,由于采用的是视线参数和视线落点之间的映射模型,类似于“黑箱”结构,在某些应用场合,如虚拟屏幕的视线落点估计时,二维视线跟踪是不可替代的.
表2 三维视线跟踪方法的特点对比Table 2 Comparison of the characteristics of three-dimensional gaze tracking methods
表3 二维视线跟踪方法与三维视线跟踪方法的比较Table 3 Comparison of two-dimensional gaze tracking methods and three-dimensional gaze tracking methods
三维视线跟踪方法与二维视线跟踪方法相比,需要对系统进行标定,且标定过程相对较复杂,系统标定包括:相机的内参数标定、多相机之间关系标定以及光源、屏幕的位置标定.基于单相机系统的三维视线估计方法的用户标定过程需要标定眼球中心或者人眼的一些不变参数,如:角膜曲率半径、光轴与视轴之间的转换关系等,过程较复杂;而在多相机系统中,基于立体视觉可以直接计算出三维空间点坐标,用于求取人眼不变参数,故用户标定过程简单.单相机无光源系统三维视线估计根据三维空间点与矢量的叠加直接计算视线落点,精度与每一个中间量的精确计算有关;单相机单光源系统需要通过预先设定人眼不变参数才能求得三维视线,未考虑个体差异性,故视线精度较低且普适性差;单相机多光源系统可以利用多个光源的反射计算三维视线,计算过程相对复杂,实时性较差,但与单相机单光源系统相比,精度较高;而基于多相机多光源系统可以有效地提高视线的精度,但系统标定复杂.三维视线跟踪技术表征了视线的本质特征,能够简化用户标定并具备实现全自由头动的可能.
随着移动式设备的发展,以及大数据、云计算、移动互联网等技术的兴起,视线跟踪技术的发展具有其必要性.表4 对比了近五年提出的部分基于特征的视线跟踪方法,可以看出目前视线跟踪技术在实现头部自由运动、提高视线精度及简化标定过程三个方面的研究不断深入,大部分新提出的视线跟踪方法可以在头动状态下实现高精度的视线估计[11,27−28,62−63,69,77,107],并且对于减少光源数量以实现无光源系统的自由头动下的三维视线估计有所突破,借助一个深度相机来获取人脸特征及人眼特征,不仅解决了单相机系统下的头部运动问题,而且简化了进行三维视线估计的硬件系统配置[28,89].
表4 近五年部分基于特征的视线跟踪方法对比Table 4 Comparison of feature-based gaze tracking methods in recent five years
3 基于特征的视线跟踪系统关键技术讨论
3.1 二维视线跟踪系统的头动问题
头动问题是二维视线估计的重要问题,如前所述,二维视线估计通过视线参数到视线落点之间的映射模型估计使用者的屏幕视线落点,一般映射模型为二次多项式.当使用者的头部位于标定位置时可以获得高精度的视线落点,当头部离开标定位置时,视线精度显著下降.研究人员对二维视线估计的头动问题进行了大量研究,提出了各类解决问题的方法,如采用不同头部位置标定和选择不同的映射模型等,目前二维视线估计可以在小范围的头动下实现较精确的视线落点估计,但仍然无法实现大范围全自由头动下的视线估计,这也是制约其推广应用的原因之一.二维视线跟踪系统虽然从原理上与三维视线跟踪系统不同,但本质上仍然是视线方向的估计问题,因此二维视线估计问题的完全解决,还需采用二维和三维相结合的方法,才能实现真正的大范围全自由头动下的视线估计.
3.2 二维视线跟踪系统的简化用户标定问题
用户标定问题是二维视线估计的另一个重要问题,也是制约其广泛应用的主要问题.一般情况下,二维映射模型为包含12个未知数的两个二次多项式,往往需要使用者盯视屏幕上9个及9个以上的标定点,或跟踪盯视移动的覆盖更大屏幕区域的标定点,才能获得高精度的视线映射模型.很多文献也都在尝试提出新的映射模型以减少标定点的个数,但效果不够理想,如将标定点简化为2个时,无论标定点如何分布,视线高精度都有所下降,而且普适性差.目前对于二维视线跟踪系统,视线估计的精度还是需要靠用户盯视多个标定点来保障.根据视线跟踪技术的本质原理来说,简化二维视线跟踪系统用户标定过程还需要采用二维和三维相结合的方法.
3.3 三维视线跟踪系统的kappa 角标定问题
kappa 角的标定问题是目前三维视线跟踪系统还没有完全解决全自由头动问题的根本原因.三维视线估计的一般思路是:首先在用户标定过程中确定眼球的kappa 角;然后在视线估计过程中,根据眼球的可视特征估计眼球光轴的方向;最后根据检测到的光轴方向和标定的kappa 角,将眼球光轴的方向换算成眼球视轴的方向.可见,对于三维视线估计系统,kappa 角的标定是用户标定中重要的且不可回避的内容.
假设头部自由移动和转动,眼球围绕眼球中心自由转动,这样头部和眼球的运动的叠加构成了眼球的三维自由运动.由上述眼球的结构特点可知,如图6(a)所示拍摄眼睛图像提取眼球的可视化特征(瞳孔、虹膜),根据可视化特征推导出的计算特征(空间的角膜中心坐标、空间的瞳孔中心坐标)都位于眼球光轴上,无任何眼球光轴以外的特征可以用来表述眼球的姿态,因此对眼球空间状态的描述缺乏足够的信息,即在头部运动和眼球运动的叠加下,眼球的空间运动如果包含绕眼球光轴的转动的分量,那么这个转动分量是无法通过眼球的特征(可视特征和计算特征)来表征的.即使在配置红外光源的视线跟踪系统中,光源在角膜上形成了反射亮斑,由于角膜近似球形,亮斑的位置仍然无法反映眼球绕其光轴转动的信息.而kappa 角是眼球光轴和视轴之间的空间角,在确定了眼球光轴的空间位置后,如果无法确定眼球的空间状态,特别是眼球绕其光轴的转动量,则无法确定在眼球任何空间位置时的空间kappa 角.
因此,在三维视线跟踪系统中,既使在每个时刻都能检测出眼球光轴的方位,也不一定能准确推算出眼球视轴的方位.这也是目前的三维视线跟踪系统无法做到在全自由头动下进行视线估计的原因.具体证明如下:
根据眼球的结构可知,眼球除了其光轴和光轴上的点以外,没有其他可以由可视特征计算出来的特征点或线用于建立眼球坐标系.因此,以眼球的角膜中心为坐标系原点,眼球的光轴为z轴,以与z轴垂直的平面内的任意两条相互垂直的直线作为x轴和y轴,建立眼球坐标系.如图14所示,假设在用户标定过程中,已经标定出了眼球在标定位置处的眼球光轴和视轴之间的kappa 角.在视线估计过程中,眼球从用户标定位置C0变化到另一个空间位置C1,其位置和姿态的改变,可以用坐标系C0-xyz的旋转和平移来表征.眼球从标定位置C0变化到任意空间位置C1的过程,就是眼球坐标系C0−xyz平移和旋转到坐标系C1−x′y′z′的过程.
假设在系统相机坐标系下,眼球在标定位置C0处光轴方向向量为Vo0=[xo0,yo0,zo0]T,角膜中心为C0=[xc0,yc0,zc0]T.在任意视线估计位置C1时的光轴方向向量为Vo1=[xo1,yo1,zo1]T,角膜中心为C1=[xc1,yc1,zc1]T.当眼球坐标系从标定位置C0旋转和平移到任意位置C1时,其平移量为:
图14 Kappa 角示意图Fig.14 Diagram of kappa angle
其旋转矩阵RRR可以设为具有3个自由度的正交旋转矩阵,则:
其中,a,b,c为三个独立的未知数.则标定位置的眼球光轴与任意位置的眼球光轴的之间的变换矩阵即为两个位置处眼球坐标系之间的变换矩阵:
由式(23)可得:
由于式(24)中参数矩阵的秩为2,所以无法求出a,b,c三个独立变量.此时旋转矩阵RR无解.
总之,kappa 角是一个空间角,由于眼球的特殊结构,无法建立描述眼球姿态的坐标系,那么在头部运动时,特别是头部做滚转运动时,将无法确定相对于光轴的kappa 角方位,也就无法从光轴转换到视轴.
3.4 三维视线跟踪的系统配置和标定问题
三维视线跟踪系统通过眼球的成像模型和空间几何模型重构眼球的光轴和视轴,就目前的技术现状而言,三维视线跟踪系统存在系统配置和系统标定两个问题.
1)系统配置.Shih 等[99]证明,三维视线跟踪系统在无预先设定人眼参数的情况下需要单相机配两个及两个以上的光源或双相机配两个及两个以上的光源,即构成单相机多光源系统或多相机多光源系统,才能由眼球的可视特征确定角膜中心.而目前三维视线估计的一般思路都是通过检测角膜中心,然后重建光轴和视轴.这样的视线估计思路,不可避免地造成系统的配置比较复杂,阻碍了三维视线估计的应用,特别是在移动式和便携式设备高速发展的今天.
2)系统标定.三维视线跟踪系统不止系统复杂,还涉及系统标定,即需要标定出光源在系统相机坐标系下的坐标和屏幕(或关注对象)在系统相机坐标系下的方程,无论是遥测式系统,还是穿戴式系统.这也是一个比较有挑战性的问题,因为一般情况下系统的光源并不在系统相机的视野范围内,无法通过系统相机直接测量系统光源的坐标.目前对于有些特定的系统可能通过加工过程的尺寸控制来实现系统标定,但对于自由布设的系统,或进行三维视线估计研究的实验系统,系统标定仍然是一个具有挑战性和无法回避的问题.
4 视线跟踪技术的应用
视线跟踪技术在人机交互、医学诊断、国防军事、交通安全、人因分析、虚拟现实等多个领域有着广泛的应用.
在人机交互中,视线跟踪技术可以使用户通过视线与机器进行交流,用视线代替手动操作[118−124],形成眼控鼠标,如图15(a)所示.视线跟踪技术是一种自然人机交互手段,是多模自然人机交互的重要通道之一.视线跟踪技术也是残障人士的人机交互方式[123−124],如图15(b)所示的眼控智能轮椅系统,老年人以及行动存在障碍的残疾人可以用眼睛操控面前的计算机界面,控制轮椅出行和辅助患者的日常生活.
在医学应用中,视线跟踪技术是精神和认知障碍型疾病筛查和诊断的重要途径,为多动症、自闭症、精神分裂、抑郁症、阿尔茨海默症等疾病的早期识别与治疗提供了有力的技术支持[125−131].图16(a)所示为NovaSight公司推出的儿童视力筛查诊断设备,结合最新的眼球跟踪技术和智能眼镜技术,只需要儿童观看一段几分钟的视频,就能够直接诊断出其斜视、弱视、融像以及阅读障碍等问题,并给出定量的分析结果.如图16(b)所示的便携式眼球交互眼镜EyeControl可以使闭锁综合征患者、重症病房患者等通过眼动控制,与医生和家人交流沟通,使其得到更好的治疗.通过人的眼动特征,如眼动轨迹、眼跳次数等特征,还可以分析人的心理活动,视线跟踪最早、最广泛的应用领域就是心理学分析.
图15 视线跟踪技术在人机交互中的应用Fig.15 Applications of gaze tracking technology in human-computer interaction
图16 视线跟踪技术在医学诊断中的应用Fig.16 Applications of gaze tracking technology in medical diagnosis
近年来,随着视线跟踪及微型头显、姿态捕获等相关技术的发展,视线跟踪技术在军事领域的应用越来越受到关注[132],可应用于多智能体集群协同指挥、机载武器系统观瞄和人机融合武器控制等方面,提高武器的智能化水平,图17(a)为加拿大空军提出的集成眼动探测单元的新型飞行员头盔,用于机载武器的控制.如图17(b)所示,澳大利亚已研制出内置眼动跟踪瞄准的HMD系统的样机,NLR HMD为澳大利亚研制的一款内置眼动跟踪瞄准功能的HMD工程样机.
在智能交通领域,视线跟踪技术可用于驾驶分心和驾驶疲劳监测,如图18(a)所示,通过在线检测驾驶员视线的扫视频率、视线范围等指标,可以判别驾驶员是否处于驾驶疲劳和驾驶分心状态[133−134].图18(b)所示为通用汽车Super Cruise驾驶辅助系统,其中通过车内方向盘附近的微型摄像头与红外传感器实时监测驾驶员视线是否保持在路面上,在车辆自动巡航过程中,当监测到驾驶员有分心状态时,系统会提示驾驶员马上接管车辆.视线跟踪技术还可用于驾驶意图的判别,尤其在特殊路况行驶过程中,通过对驾驶员的视线进行统计分析,可以获得驾驶员在弯道驾驶、换道驾驶时的行为特征.
图17 视线跟踪技术在军事领域的应用Fig.17 Applications of gaze tracking technology in military
图18 视线跟踪技术在智能交通领域的应用Fig.18 Applications of gaze tracking technology in intelligent transportation
人因分析也是视线跟踪技术应用的一个领域[135−145],随着视线跟踪技术的进步,基于眼动跟踪的人因分析必将获得更广泛的应用,例如:在网上购物中,可以通过统计人的视线落点,判别人们对哪种商品更感兴趣,如图19(a)所示;在理财产品销售终端,通过对视线落点的统计,可以很精确地分析人们更倾向于哪种交易.在人机功效学设计中,视线及其关注点检测是页面设计和布局、大型设备仪表盘布局等的重要依据[141,143,145],如图19(b)所示,可以使产品更符合人的注视和操作习惯.
视线跟踪设备是虚拟现实系统的重要的组成部分[146−148].视线跟踪技术可以通过分析眼球运动对场景更精确地瞄准和定位,并且可以根据注视点的位置对注视点周边进行渲染,使得画面与自然环境下看到的体验一样,防止虚拟与现实进行切换时造成的晕眩感.如图20(a)所示的FOVE虚拟现实头盔,其拥有全球首创的眼球追踪技术,是世界上第一款支持红外眼球追踪技术的VR 头盔,用户可以用眼睛来控制显示器,也可以用眼球追踪打字.如图20(b)所示的HTC ViveVR 虚拟现实设备安装了专用的视线追踪装置aGlass,通过瞳孔与眼睑的移动来进行动作追踪,增强了体验感和便捷度,并且眼睛直视的地方将呈现较高的分辨率,而非直视的画面将呈现低分辨率,保证体验的流畅度.还有一些虚拟现实设备也将加入眼球追踪功能,如:Oculus Rift、StarVR 等.
图19 视线跟踪技术在人因分析中的应用Fig.19 Applications of gaze tracking technology in human factors analysis
图20 视线跟踪技术在虚拟现实中的应用Fig.20 Applications of gaze tracking technology in virtual reality
5 总结与展望
视线跟踪技术通过检测人眼的视觉注意方向,实现人机交互和对人的神经和行为特征进行分析.从狭义分类来说,视线跟踪技术主要是通过近眼设备来精确地检测眼动信息.从广义范围来说,从远距离进行人的注意力判断、群体交流分析等技术都属于视线跟踪范畴.视线跟踪技术有着广泛的应用背景和较长时间的研究历史,其中,基于特征的视线跟踪技术更具有实用价值.
但由于许多瓶颈技术的制约,其发展和应用远未达到普适的水平,仍然作为一种专用的技术应用于人机交互、虚拟现实、人因分析等领域.在未来的研究中,如何突破目前的各种技术瓶颈,研制理想的视线跟踪设备,使其真正成为“即拿即用”的人机交互通道,“无约束和意识”的人因分析手段、“人机融合”的控制技术等,将是未来视线跟踪技术的发展方向.基于上述目标,如下研究方向将成为研究的热点:
1)简化直至免除用户标定.作为人机交互、人因分析技术,用户标定一直是阻碍视线跟踪系统应用的重要因素,特别是广泛应用的二维视线跟踪系统,需要多个标定点才能计算出视线落点和视线参数之间映射模型的系数,即使其视线落点精度很高,也严重地制约了其使用的便捷性.三维视线跟踪系统可以将标定点减少为单点标定,但kappa 角的初始标定似乎是无法回避的.目前有文献探讨自动标定问题[149],即在使用视线跟踪设备时,使视线精度逐渐收敛到较高精度,但如果使用初期的视线估计精度较低,可能无法提供准确的视线信息,这种无意识标定方式比主动标定优越.因此,如何采用新技术,免除用户标定或减少自动标定的时间,使视线估计在较高的精度要求下快速收敛,将是未来重要的研究方向.
2)大范围全自由头动下的高精度视线估计.目前视线跟踪的技术状态需要将用户的头部限制在一定的范围内,才能采集高质量的眼睛图像,进而实现高精度视线估计.毫无疑问,这将极大地限制视线跟踪技术的应用领域,使其局限于专用设备的范畴.二维视线跟踪系统从技术原理上不支持头部偏离标定位置,虽经各种改进,仍然不适合大范围全自由度头部运动下的视线估计.虽然三维视线跟踪系统从技术原理上支持头部运动,但由于无法实现全自由头动状态下空间kappa 角的实时计算,仍然无法实现在头部各种姿态下精确的视线估计.受限于眼球独特的结构特点,全自由头动问题将是视线跟踪技术亟待解决并富于挑战性的瓶颈技术.
3)简化硬件系统配置下的视线估计.视线跟踪技术一直在追求允许头部全自由运动和免除用户标定下的视线精确估计.对这一问题的解决,目前都是通过采用单相机多光源系统或多相机多光源系统实现三维视线估计来解决.但硬件系统的复杂化仍然给系统的实现和应用带来障碍.如何以最简化的硬件配置实现视线估计和简化用户标定,使视线跟踪技术成为真正的自然人机交互或人因分析手段,在移动式和便携式设备快速发展的今天有着重要的意义.
4)适合不同领域和不同环境的视线跟踪技术.目前,随着光学探测、机器视觉、人工智能等相关技术的发展,移动通信、大数据、物联网等新技术应用的驱动,很多视线跟踪技术潜在的应用领域亟待开展,例如:在军事领域,可以用于飞行员的眼控机载火控系统,用视线指挥武器观瞄.在医学领域,可以用于认知和精神类疾病的筛查和诊断,对阿尔兹海默症进行早期识别.不同领域的应用对视线跟踪系统的各项关键技术提出了不同的要求.因此,针对领域需求进行研究,可以推动视线跟踪技术在不同领域的应用.