eye gaze调研

Gaze Estimation

本文的内容转载自知乎用户 T骨牛排 - 知乎 (zhihu.com)视线估计(Gaze Estimation)简介 - T骨牛排的文章 - 知乎的系列文章。

简介

广义的Gaze Estimation 泛指与眼球眼动、视线等相关的研究。

不少做saliency和egocentric的论文也以gaze为关键词。

近些年随着数据和技术的发展,对gaze的需求渐渐浮出水面,这方面的研究也开始进入主流的视野。

img

根据不同的场景与应用大致可分为三类

注视目标估计、注视点估计以及三维视线估计。

img

应用

Tobii CEO:AR/VR的未来形态将广泛结合眼球追踪Tobii CEO:AR/VR的未来形态将广泛结合眼球追踪 - 哔哩哔哩 (bilibili.com)

用Tobii眼动仪玩游戏的Demo

VR

VR头盔。现阶段VR的问题是全场景精细渲染对硬件要求较高导致硬件成本居高不下。如果能够通过头盔内置摄像头准确估计人的视线方向,则可以对场景做局部精细渲染,即仅对人注视范围内的场景精细渲染,从而大大降低硬件成本。

医疗

gaze在医疗方面的应用主要是两类。一类是用于检测和诊断精神类或心理类的疾病。一个典型例子是自闭症儿童往往表现出与正常儿童不同的gaze行为与模式。另一类是通过基于gaze的交互系统来为一些病人提供便利。如渐冻症患者可以使用眼动仪来完成一些日常活动。

辅助驾驶(智能座舱)

gaze在辅助驾驶上有两方面应用。一是检测驾驶员是否疲劳驾驶以及注意力是否集中。二是提供一些交互从而解放双手。

线下零售

人的注意力某种程度上反映了其兴趣,可以提供大量的信息。但是目前并没有看到相关的应用,包括Amazon Go。或许现阶段精度难以达到要求。可以通过gaze行为做市场调研。

其他交互类应用

如手机解锁、短视频特效等。

相关团队与公司

ETH的Otmar Hilliges教授和东京大学的Yusuke Sugano教授。

- EPFL与Idiap的感知组:https://www.idiap.ch/~odobez/

  • Improving Few-Shot User-Specific Gaze Adaptation via Gaze Redirection Synthesis, CVPR 2019
  • Unsupervised Representation Learning for Gaze Estimation, CVPR 2020
  • A Differential Approach for Gaze Estimation, PAMI accepted 2019

- ETH交互组:https://ait.ethz.ch/people/hill

- 德国马普所交互组:https://perceptualui.org/people

- MIT Antonio Torralba组:http://web.mit.edu/torralba/www/

- 伦斯勒理工Qiang Ji组:https://www.ecse.rpi.edu/~qji/

- 东京大学Sugano组:https://www.yusuke-sugano.info/

- 北航Feng Lu组:http://phi-ai.org/default.htm

工业界方面,目前主力依旧在欧美。大公司,如Facebook Reality Lab(去年组织举办了第一届gaze相关的challenge), 微软Hololens,谷歌广告,NVIDIA自动驾驶等团队都在致力于gaze方面的研究。而专注于gaze的中小型公司,龙头老大当属瑞典公司Tobii,其眼动仪已臻物美价廉之境。另外也可以关注下瑞士创业公司eyeware。

注视目标估计

注视目标估计英文关键词为gaze following,即检测给定人物所注视的目标。MIT Antonio Torralba组最先提出了这一问题并公开了相关数据集[1]。

我们引入了一个新的数据集,用于在自然图像中跟踪视线。在左边,我们展示了几个示例注释和图像。在右边的图中,我们总结了一些关于数据集测试分区的统计信息。前三张热图显示了头部位置、固定位置和固定位置相对于头部位置归一化的概率密度。下图显示了不同头部位置的平均凝视方向。

image-20211005193952263

Where are they looking?

网络主要由两个支路组成,一个支路(Saliency Pathway)以原始图片为输入,用于显著性检测,输出为反映显著性的heat map。另一个支路(Gaze Pathway)以某一个人的头部图片和头部位置为输入,用于检测这个人可能的注视区域,输出同样是一个heat map。这两个heat map的乘积反映了目标显著性与可能的注视区域的交集,即可能的注视目标。整个网络以端对端的方式训练。以AUC为指标,文章最后得到了0.878的精度。

这种结构设计也适用于多人注视目标的检测。只需要将Gaze Pathway中的头部图片与位置更换为另一个人的即可。然而这种方案的一大局限是,人与其注视的目标必须同时出现在同一张图片中。这大大限制了其应用范围。

作者们在ICCV 2017提出了针对视频的跨帧注视目标检测[2],即人与注视目标可出现在不同视频帧中,如下图所示。

image-20211005203207646

image-20211005203432979

Following Gaze in Video

image-20211005204012006

整个框架由三条支路构成。与之前框架相比,现在的方案增加了一个Transformation Pathway,用于估计source frame(人所在帧)与target frame(目标所在帧)的几何变换。而现在的Gaze Pathway则用于估计一个视锥的参数。这两路网络的输出表示source frame中的人可能注视的target frame区域。下面的图更为直观。

image-20211005204541675image-20211005204913343image-20211005205031681

注视点估计的相关工作(这个方向的论文同样不多),然后再介绍gaze领域的重点研究对象,三维视线估计。

注视点估计

注视点估计即估算人双目视线聚焦的落点。

其一般场景是估计人在一个二维平面上的注视点。

这个二维平面可以是手机屏幕,pad屏幕和电视屏幕等,而模型输入的图像则是这些设备的前置摄像头。

这里放图片显示不出的时候出现的文字

Eye Tracking for Everyone MIT 2016CVPR

这个工作同样来自MIT Antonio Torralba组。

他有四个输入,左眼图像、右眼图像、人脸图像(由iPhone拍照软件检测)以及人脸位置。

四种输入由四条支路(眼睛图像的支路参数共享)分别处理,融合后输出得到一个二维坐标位置。

实验表明,模型在iPhone上的误差是1.71cm,而在平板上的误差是2.53cm(误差为标注点与估计点之间的欧式距离)。该工作收集并公布了一个涵盖1400多人、240多万样本的数据集, GazeCapture

人脸主要提供头部姿态信息(head pose),而人脸位置主要提供眼睛位置信息。这里存在一定的信息冗余。基于这一观察,Google对上述模型做了进一步压缩,即将人脸和人脸位置这两个输入替换为四个眼角的位置坐标,如下图所示。

image-20211006143655188

On-device few-shot personalization for real-time gaze estimation Google 2019ICCVW

眼角位置坐标不仅直接提供了眼睛位置信息,同时又暗含head pose信息(眼角间距越小,head pose越大,反之头部越正)。实验结果表明,这个精简后的模型在iPhone上的误差为1.78cm,与原始模型的精度相差无几。同时,该模型在Google Pixel 2 Phone的处理速度达到10ms/帧。

三星在2019年也公开了相关研究A Generalized and Robust Method
Towards Practical Gaze Estimation on Smart Phone.。他们采取的网络架构与[1]类似,不同点是在网络训练过程中加入了distillation与pruning等技巧,来防止过拟合并获得更鲁棒的结果。

蒸馏了什么?

image-20211006160228094

TabletGaze2015

2015年莱斯大学已公开了一篇针对平板的注视点估计论文TabletGaze[4]。但当时的深度学习还不像今天这样盛行,作者使用了传统特征(LBP、HOG等)+ 统计模型的方式来解决这一问题.

三维视线估计(通用方法)

三维视线估计的目标是从眼睛图片或人脸图片中推导出人的视线方向。通常,这个视线方向是由两个角度,pitch(垂直方向)和 yaw(水平方向)来表示的,见下图a。需要注意的是,在相机坐标系下,视线的方向不仅取决于眼睛的状态(眼珠位置,眼睛开合程度等),还取决于头部姿态(见图b:虽然眼睛相对头部是斜视,但在相机坐标系下,他看的是正前方)。

preview

传统方法:

视线估计方法分为:

基于几何的方法(Geometry Based Methods)。

基于外观的方法(Appearance Based Methods)两大类。

基于几何的方法的基本思想是检测眼睛的一些特征(例如眼角、瞳孔位置等关键点),然后根据这些特征来计算gaze。而基于外观的方法则是直接学习一个将外观映射到gaze的模型

几何方法相对更准确,且对不同的domain表现稳定,然而这类方法对图片的质量和分辨率有很高的要求。

基于几何特征。对于不同的domain稳定,此处的domain指的是?

基于外观的方法对低分辨和高噪声的图像表现更好,但模型的训练需要大量数据,并且容易对domain overfitting

appearance

随着深度学习的崛起以及大量数据集的公开,基于外观的方法越来越受到关注。

通用(person independent)的视线估计方法,即模型的训练数据与测试数据采集自不同的人(与之相对的是个性化视线估计,即训练数据与测试数据采集自相同的人)。按照方法所依赖的信息,将他们分类为单眼/双眼视线估计基于语义信息的视线估计全脸视线估计 三类。

单眼/双眼视线估计:

Appearance-based gaze estimation in the wild

image-20211007135523674

多个模态,有哪些模态?

他们当时使用的是一个类似于LeNet的浅层架构,还称不上“深度”学习。而其中一个有启发性的贡献是,他们将头部姿态(head pose)信息与提取出的眼睛特征拼接,用以学习相机坐标系下的gaze。该工作的另一个重要贡献是提出并公开了gaze领域目前最常用的数据集之一:MPIIGaze。在MPIIGaze数据集上,该工作的误差为6.3度。

Real-World Dataset and Deep Appearance-Based Gaze Estimation

Xucong Zhang在他2017年的工作中[2],用VGG16 代替了这个浅层网络,大幅提升了模型精度,将误差缩小到了5.4度。

image-20211007135414078

MPIIGaze: Real-World Dataset and Deep Appearance-Based Gaze Estimation 2017 TPAMI 单目相机进行凝视估计

pipeline

  • 面部landmark检测,(眼睛和嘴角)(Baltruˇsaitis et al.

  • 通过使用EPnP算法[21]估计初始解来拟合模型,并通过非线性优化进一步精炼姿态三维头部旋转定义为从头部坐标系到摄像机坐标系的旋转camera calibration,眼睛位置定义为每只眼睛的眼角中点。

  • 虽然之前的作品假设了准确的头部姿态,但我们使用一个通用。平均面部形状模型进行三维姿态估计generic face model,以评估实际环境中的整个凝视估计管道。

  • 在收集数据之前,使用外部立体摄像机记录所有参与者的6个地标的3D位置,并建立通用形状作为所有参与者的平均形状。

上面两个工作都以单眼图像为输入,没有充分利用双眼的互补信息。北航博士Yihua Cheng在ECCV 2018上提出了一个基于双眼的非对称回归方法[3]。其方法框图如下:

image-20211007154253501

Appearance-based gaze estimation via evaluation- guided asymmetric regression ECCV2018

AR-Net(非对称回归网络),以双眼为输入,经四个支路处理后得到两只眼睛的不同视线方向;E-Net(评价网络),同样以双眼为输入,输出是两个权重,用于加权AR-Net训练过程中两只眼睛视线的loss。其基本思想是,双眼中某一只眼睛可能因为一些原因(如光照原因等),更容易得到精准的视线估计,因此在AR-Net训练中应该赋予这只眼睛对应的loss更大的权重。该工作在MPIIGaze数据集上取得了5.0度的误差。

基于语义信息的视线估计

基于几何的方法是通过检测眼睛特征,如关键点位置,来估计视线的。

几何检测眼睛的几何信息。

Deep Pictorial Gaze Estimation 2018ECCV

这启发了一部分工作使用额外的语义信息来帮助提升视线估计的精度。ETH博士Park等在ECCV 2018上提出了一种基于眼睛图形表示的视线估计方法。

通过深度网络将眼睛抽象为一个眼球图形表示来提升视线估计(这一表示相对gaze来说更具象也更易学习)。其中,眼球图形表示这一监督信号是由视线的ground truth经几何方法反推生成的。

不是直接回归两个角度的俯仰和偏航的眼球,而是回归到一个中间的图像表示,这反过来简化了三维注视方向估计的任务。

image-20211007160924206

Deep Pictorial Gaze Estimation 2018ECCV

image-20211007161335847

image-20211007162046332

ETH在ETRA 2018上的工作[5],利用眼睛关键点的heat map估计视线。方法框架如下图所示,其中眼睛关键点这一监督信息由合成数据集UnityEyes提供,这里不展开了。

preview

Deep multitask gaze estimation with a constrained landmark-gaze model

下一篇论文image-20211007164953107

Deep multitask gaze estimation with a constrained landmark-gaze model 2018 ECCVW

(a)从UnityEyes地标集(顶部)选择地标(底部)。(b)地标水平或垂直位置与凝视偏航或俯仰角度之间的相关系数。(c)虹膜中心水平或垂直位置和偏航或俯仰凝视角度的联合分布图。

此文提出了一种基于约束模型的视线估计方法[6],其基本出发点是多任务学习的思想,即在估计gaze的同时检测眼睛关键点位置,两个任务同时学习,信息互补,可以在一定程度上得到共同提升。

  • 首先对眼睛关键点与视线的关系进行了统计建模。具体地,对于合成数据集UnityEyes中的一个样本,我们抽取其17个眼睛关键点与两个gaze角度,将他们展开并拼接为一个36维(172 + 2)的向量。然后将n个样本对应的n个向量堆叠生成一个n36大小的矩阵,对该矩阵做PCA分解后可以得到一个mean shape和一系列deformation basis。

    这两个部分共同构成了一个约束模型。其中mean shape代表眼睛的平均形状以及对应的gaze平均值,而deformation basis则包含了眼睛形状与gaze的协同变化信息。约束模型的建立过程如下图所示。

  • img

对于一个输入样本,如果能学习出这个约束模型中的deformation basis系数,并与mean shape组合,就可以重建出这个样本的眼睛形状和gaze。

因此我们使用的网络架构如下,网络的主要输出即约束模型的系数,用以重建眼睛的形状和gaze。另外,由于约束模型表示的眼睛形状是经过归一化操作的,网络同时学习一个缩放系数,和一个平移向量,通过几何变换(decoder)得到正确的眼睛关键点位置。网络通过优化关键点位置loss与视线loss实现end to end training。实验结果表明,取得了比直接回归更精准的结果。

image-20211007170804421

Deep multitask gaze estimation with a constrained landmark-gaze model 2018ECCVW

线性重建的方法类似于人脸重建?

全脸视线估计

It’s Written All Over Y our Face:Full-Face Appearance-Based Gaze Estimation CVPR2017

以上视线估计方法都要求单眼/双眼图像为输入,有两个缺陷:

1)需要额外的模块检测眼睛;

2)需要额外的模块估计头部姿态。

基于此,Xucong Zhang等于2017年提出了基于注意力机制的全脸视线估计方法[7]。image-20211007202852686

这里注意力机制的主要思想是通过一个支路学习人脸区域各位置的权重,其目标是增大眼睛区域的权重,抑制其他与gaze无关的区域的权重。网络的输入为人脸图像并采用end to end的学习策略,直接学习出最终相机坐标系下的gaze。这一工作同时公开了全脸视线数据集MPIIFaceGaze。

然MPIIGaze与MPIIFaceGaze使用的是同一批数据,但并不是同一个数据集(许多论文把这两个数据集混淆)。首先MPIIGaze数据集并不包含全脸图片,其次MPIIFaceGaze的ground truth定义方式与MPIIGaze不同。该工作最终在MPIIFaceGaze数据集上取得了4.8度的精度。

image-20211014172151988

与上面工作不同的是,除人脸输入外,该工作同时要求输入眼睛图片,如图所示。该工作主要认为工作[1]中gaze特征与head pose拼接的方式并不能准确地反映两者的的几何关系。因此,该工作提出了一个gaze的几何变换层,用于将head pose(人脸支路学习得到)与人脸坐标系下的gaze(眼睛支路学习得到)进行几何解析,得到最终相机坐标系下的gaze。该工作在自己收集的数据集上取得了4.3度的误差。

不知各位读者发现没有,在person independent(训练数据与测试数据采集自不同的人)这一设定下,上述方法的精度大都在4-5度之间徘徊,似乎很难得到进一步的提升。这个瓶颈主要是由人的眼球内部构造造成的。如果希望继续提升精度,一般要使用个性化策略。这一部分内容准备在下下一个篇章中讲解。在下一篇章中,我会简要介绍三维视线数据如何收集标注的问题,以及如何在数据集短缺的情况下,训练一个gaze模型。

视线估计(Gaze Estimation)简介(五)-三维视线估计(数据集问题)

1.介绍三维视线数据如何收集和标注的问题。

2.以及如何在数据集短缺的情况下,训练一个gaze模型。

数据收集:

与分类、检测等任务不同,三维视线难以人工标注

一位参与者坐在深度摄像头Kinect前,而一名实验人员则手握一根吊着乒乓球的棍子,操纵乒乓球在参与者面前随机运动。参与者被要求始终盯着乒乓球,而深度摄像头则会记录下整个过程。数据收集完毕后,我们可以通过算法或人工的方式标注RGB视频中的眼睛中心点位置乒乓球位置

我们把这两个位置映射到深度摄像头记录的三维点云中,从而得到对应的三维位置坐标。这两个三维位置坐标相减后即得到视线方向。这种数据收集和标注方式不仅精准而且相对简单。额外的要求就是需要一台深度摄像头。

image-20211014190045184

另一种数据收集方式以MPIIGaze[2]为代表,仅仅需要普通的RGB摄像头即可。其基本做法是利用相机的公开参数,将gaze目标以及眼睛位置坐标(通过一个三维的6关键点模型得到)通过算法变换到相机坐标下,然后再计算gaze作为ground truth。但是这种标注方法不仅操作复杂,而且并不准确。

由以上两个例子可以看到,gaze数据的收集和标注比较耗时耗力。因此在实际应用中,如何在数据短缺的情况下训练一个可靠的gaze模型,就成了一个亟待解决的问题。本篇剩余部分主要介绍三类针对数据短缺的解决方案:基于合成数据的方法基于Domain Adaptation的方法以及基于无监督学习的方法

基于合成数据的方法:

Rendering of Eyes for Eye-Shape Registration and Gaze Estimation

image-20211014201017047

image-20211014195732273

模型准备过程概述:密集3D头部扫描(140万个多边形)(a)首先重新拓扑成动画的最佳形式(9005个多边形)(b)。高分辨率皮肤表面细节通过位移图恢复(c),人工标注虹膜和眼睑的3D地标(d)。如图(e)所示。

image-20211014201322789

基于Domain Adaptation的方法

Shrivastava, A., Pfister, T., Tuzel, O., Susskind, J., Wang, W., and Webb, R. (2017). Learning from simulated and unsupervised images through adversarial training. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), volume 3, page 6.

基于无监督学习的方法,标注数据少

CVPR2020 Unsupervised Representation Learning for Gaze Estimation余

从无标签的数据中学习gaze表征。实验表明,通过我们的方法学习到的gaze表征与真实值呈强线性关系。在实际使用时,仅需要极少量的标注样本(<=100),就可以得到有效可靠的视线估计模型。据我所知,这应该是第一篇通过无监督的方式学习gaze的论文。

CVPR2019 Improving few-shot user-specific gaze adaptation via gaze redirection synthesis

注视作为人类注意的指示物,是一种微妙的行为线索,具有广泛的应用价值。然而,由于缺乏大量的数据(真实的凝视是昂贵的,现有的数据集使用不同的设置),以及由于个体差异而固有的凝视偏差,即使对深度神经网络来说,推断3D凝视方向也是具有挑战性的。在这项工作中,我们只从少数参考训练样本中解决了特定于人的凝视模型的适应问题。

主要和新颖的想法是,通过从已有的参考样本合成凝视重定向的眼睛图像来生成额外的训练样本,以提高凝视适应能力

在此过程中,我们的贡献有三个方面:

(i)我们从合成数据中设计了我们的注视重定向框架,使我们能够从对齐的训练样本对中受益,以预测精确的逆映射域;

(ii)提出领域适应的self-supervised自我监督方法;

domain adaption

(iii)我们利用凝视重定向来提高特定于人的凝视估计的性能。在两个公共数据集上的大量实验证明了我们的视线重定向和视线估计框架的有效性。

用少样本domain adaption生成很多样本。元学习的部分如何让理解?对原本的gaze estimator重定向。

我们当时采取了如下网络结构。训练该网络需要输入样本,目标样本,以及输入样本与目标样本间gaze角度(包括垂直方向角度pitch与水平方向角度yaw)的差值。网络通过解析输入样本与gaze差值输出两个光流场(垂直和水平两个方向),来对输入图像的像素重定向,从而得到接近于目标图像的输出。

image-20211015104645809

image-20211015104707764

我们期望通过缩小最终的输出图像与目标图像之间的loss,来迫使右上角的网络学习到gaze相关的表征(end to end training)。

这样一来我们就可以不依赖任何标注数据而学习出gaze表征。这对于视线估计,这个数据标注十分复杂和困难的领域十分有意义。需要注意的是,由于gaze由两个角度表示,我们的gaze表征也设定为二维。

赋予物理意义:至此,网络或许能够学习出gaze相关的表征,但我们并不清楚这个表征所表示的物理意义。我们观察到,当人的视线上下变化时,眼皮和眼珠等部位主要在垂直方向运动,水平方向的运动几乎为0;当人的视线左右变化时,主要是眼珠在水平方向运动,几乎所有部位在垂直方向的运动为0。

这也就是说,当垂直方向的gaze角度pitch变化(差值)为0时,视线重定向网络生成的垂直方向光流场应该接近于一个identity mapping;

而当水平方向gaze角度yaw变化(差值)为0时,水平方向光流场则接近于一个identity mapping。

由此我们提出一个针对光流场的正则:一方面,我们人为将gaze表征的第一维修改为0,然后输入重定向网络,并优化垂直方向光流场与identity mapping之间的差异;

另一方面,我们人为将gaze表征的第二维修改为0,输入重定向网络,优化水平方向光流场与identity mapping间的差异。

如下图所示。经此操作,gaze表征的第一维即对应pitch,第二维即对应yaw。

扩展1-头部姿态估计:我们将提出的框架应用到了头部姿态估计(head pose estimation)这一任务中。我们使用BIWI数据集。

扩展2-视线迁移:我们可以把person A的眼睛图片输入到表征学习网络中(抽取A的视线变化),而把person B的眼睛图片输入到视线重定向网络中,从而实现无监督视线迁移,即把A的gaze行为转移给B。

视线估计(Gaze Estimation)简介(六)-三维视线估计(个性化问题)

在上上一篇中我们提到,在person independent(训练数据与测试数据采集自不同的人)设定下,大部分主流视线估计方法的精度大都在4-5度之间徘徊,很难得到进一步的提升。其主要原因是人与人之间存在一定的视线偏差。对于不同的两个人,即便眼球的旋转角度完全相同,其视线也会存在2到3度的不同

视线偏差产生原因:

视线偏差产生的原因当然跟每个人的眼睛形状,眼珠大小等因素相关。但这些因素导致的视线偏差事实上很小,并且这些都是视觉元素,他们与gaze的相关性是可以从图像中学习得到的。真正产生视线偏差的原因来自于眼球内部构造

preview

Kenneth在他CVPR 2014年的论文中[1]较详细的介绍了原因。如图是一个眼球的构造图,

其中v表示视线,

o表示optical axis(瞳孔中心与眼球中心的连线,不知道中文该怎么翻),

pc是眼球中心,

而fovea是视网膜上对光敏感度最高的一个点,

N则代表一个与眼球中心距离为d的节点。

直觉上来说,视线v应该就是瞳孔中心与眼球中心的连线。然而事实上,视线p是连接fovea与N的直线,它与我们通常认为的“视线”,即optical axis不同。我们用k来表示视线p与optical axis的夹角,k的大小因人而异,由人眼球内部参数决定,无法从图像中学习获得。了解了这个原因之后,我们就理解了为什么在person independent设定下,模型精度难以进一步提高的原因:训练数据的后验概率分布与测试数据的后验概率分布不同。

偏差消除方法,偏差估计方法与模型微调方法

A Differential Approach for Gaze Estimation

大多数非侵入性凝视估计方法直接从一张脸或眼睛的图像中回归凝视方向。然而,由于个体之间眼睛形状和内部眼睛结构的重要变量,通用模型获得的精度有限,它们的输出通常表现出高方差和受试者依赖偏差。因此,提高准确度通常是通过校准来完成的,允许对一个对象的凝视预测被映射到她的实际凝视。在本文中,我们介绍了一种新的方法,通过直接训练微分卷积神经网络来预测同一被试的两个眼睛输入图像之间的注视差异。然后,给定一组受试者特定的校准图像,我们可以利用推断的差异来预测新眼睛样本的注视方向。假设通过比较同一用户的眼睛图像,通常困扰单一图像预测方法的烦恼因素(对齐、眼睑闭合、光照扰动)可以大大减少,从而更好地进行预测。此外,差分网络本身可以通过微调进行调整,使预测与可用的用户参考对一致。在3个公共数据集上的实验验证了我们的方法,即使只使用一个校准样本或那些依赖于受试者特定的注视适应的方法,我们的方法也不断优于最先进的方法。

视线估计(Gaze Estimation)简介(七)-三维视线估计(头部姿态问题)

视线的方向不仅取决于眼球的旋转,还取决于头部的姿态(head pose)。如图,虽然眼睛相对头部是斜视,但在相机坐标系下,他看的是正前方

image-20211015142501754

在大多数情况下,我们希望得到的是相对于相机坐标系的视线,那么如何在视线估计中有效使用头部姿态信息就成了一个非常值得研究的问题。本篇会介绍五类方法。

其中前三类方法需要一个独立的前处理步骤事先估计出head pose,

而后两类方法则是在同一个框架内估计head pose和gaze。

基于逐姿态视线估计的方法

先对head pose聚类,然后对每一类的样本分别训练一个gaze模型。其代表是东京大学的Sugano教授发表在CVPR 2014上的工作[1],如图所示。需要注意的是,为提高鲁棒性,该方法在训练一个随机森林时,也会用到相邻的head pose类的样本。这类方法的一大缺点是需要训练多个gaze模型,对实际应用参考意义不大。

基于视角变换的方法

这类方法的一个前提条件是需要一个深度摄像头获取点云数据。在计算得到head pose之后,该方法利用head pose信息对点云数据作几何逆变换,从而得到前视视角(frontal view)的人脸或眼睛图像,如下图所示。该方法使用前视视角的样本训练gaze模型,再把估计得到的gaze利用head pose信息变换到相机坐标系。由于眼睛图像被统一变换到前视视角,可以认为这些训练样本处于同一个pose空间,因此该方法训练的模型相对比较准确。但这类方法也有两大缺点,一是需要深度摄像头(普通摄像头无法操作),二是在head pose较大时,视角变换后的样本信息会有所缺失(如图右侧眼睛)。

image-20211015143935895

基于特征拼接的方法

concatenate

基于几何变换的方法

这类方法的代表作是商汤在ICCV 2017上发表的一个全脸视线估计工作[4]。该工作主要认为特征拼接的方式并不能准确地反映gaze与head pose的的几何关系。因此,该工作提出了一个gaze的几何变换层,用于将head pose(人脸支路学习得到)与人脸坐标系下的gaze(眼睛支路学习得到)进行几何解析,得到最终相机坐标系下的gaze。

该方法将head pose的估计和gaze的估计放在一个框架内(所需要的前处理步骤主要是眼睛的定位),因此容错性更大。

image-20211014172151988

基于头部姿态隐式估计的方法

image-20211007202852686

Xucong Zhang等于2017年提出的基于注意力机制的全脸视线估计方法[5]。网络的输入是人脸图像,并采用end to end的学习策略,直接学习出最终相机坐标系下的gaze。因此我们可以认为这类方法隐式估计了head pose。这类方法的优点是简单直接,但内部机制不明,可解释性较差。

本篇主要介绍了五类处理头部姿态问题的方法。从我比较熟悉的单眼/双眼视线估计来说,我更推荐第三种方式:基于特征拼接的方法。商汤的论文[4]认为特征拼接并不是一个好的方式。他们通过在MPIIGaze上做实验发现处理head pose的weight几乎等于0,进而得出特征拼接效果欠佳这一结论。我认同这一现象,但不认同其结论。事实上,在我看来,造成这一现象的真正原因是MPIIGaze提供的head pose非常非常不准确,能提供的有效信息十分有限,用不用head pose差别不大(结果差0.1度左右)。相反,如果换做其他数据集,如ColumbiaGaze和UTMultiview,特征拼接则会显著提高精度(至少提高2度)。

在我们CVPR 2020的论文中[6],我们也比较了特征拼接和几何变换(网络的输入是单眼,输出是头部坐标系下的gaze,然后通过事先获得的head pose对gaze进行几何变换,得到相机坐标系下的gaze)两种方式,结果是特征拼接的效果明显好于几何变换(1-2度)。这个结果可能与我们的直觉相悖。我理解的原因是,一般来说,如果注视目标位于前方,则相机坐标系下的gaze范围更小,而头部坐标系下的gaze范围更大。有兴趣的话可以尝试一下,变换头部姿态,但眼睛始终盯着正前方一个物体。如果这时正前方有一个摄像机,那么相机坐标系下你的gaze范围很小,接近于0度但头部坐标系下的gaze,根据你头部运动幅度的大小,范围可以很大。拿ColumbiaGaze举例,相机坐标系下的gaze yaw的范围是-15~15,而头部坐标系下的gaze yaw是-45~45。因此,网络如果通过特征拼接的方式直接预测相机坐标系下的gaze的话,反而更容易学习。

数据集

ETH-XGaze: A Large Scale Dataset for Gaze Estimation under Extreme Head Pose and Gaze Variation2020

image-20211015152031823

商汤ICCV 2017Monocular free-head 3d gaze tracking with deep learning and geometry constraints数据集

看一下有没有开源

MPIIFaceGaze

UnityEyes

UnityEyes (cam.ac.uk)

Columbia

eth eccv2018 眼睛黑白图片

GazeCapture涵盖1400多人、240多万样本的数据集。

Krafka, K., Khosla, A., Kellnhofer, P ., Kannan, H., Bhandarkar,
S., Matusik, W., Torralba, A.: Eye tracking for everyone. In: Pro-
ceedings of the IEEE Conference on Computer Vision and Pattern
Recognition, pp. 2176–2184 (2016),

RGBD注视跟踪数据集Eyediap,该数据集由16个参与者的视频组成。

UnityEyes 如图1a的第一排所示。考虑到依赖大量的路标无助于提高鲁棒性和准确性,只会增加方法的复杂性,我们只选择可用路标的一个子集作为替代。它包含来自眼睑的16个标志,虹膜中心是由虹膜轮廓标志估计出来的。如图1a第二行所示。

MPIIGaze数据集

MPIIGaze数据集,2015年,这是一个野外RGB凝视数据集,收集了15名参与者在几个月的日常使用笔记本电脑期间的数据。包含了在超过三个月的日常使用笔记本电脑期间收集的15名参与者的213659张图像。数据集在外观和照明方面比现有的数据集有更大的变化。Appearance-Based Gaze Estimation in the Wild提的。

image-20211007142949977

虽然MPIIGaze与MPIIFaceGaze使用的是同一批数据,但并不是同一个数据集(许多论文把这两个数据集混淆)。首先MPIIGaze数据集并不包含全脸图片,其次MPIIFaceGaze的ground truth定义方式与MPIIGaze不同。该工作最终在MPIIFaceGaze数据集上取得了4.8度的精度。

Top 8 Eye Tracking Applications in Research (imotions.com)

UT Multiview

shanghaitech

建立了迄今为止最大的RGB-D凝视跟踪数据集,收集了218名参与者,包含超过165000张图像。该数据集将向所有研究人员公开,以促进对数据驱动的凝视跟踪方法的研究

image-20211006164028365image-20211006164223297

https://ieeexplore.ieee.org/mediastore_new/IEEE/content/media/6287639/8948470/9153754/akiny.t4-3013540-large.gif

image-20211008155155643

image-20211008155246008