【视线估计】Appearance-Based Gaze Estimation via Evaluation-Guided Asymmetric Regression

0. 前言

这是一篇2018年北航博士Yihua Cheng发表的关于视线估计的论文,被ECCV收录。该论文通过多分支卷积神经网络提取双眼图像特征并结合头部姿态实现视线估计,通过设计非对称损失函数来估计双眼图像对于视线估计不同的重要性,最终实现比较好地视线预测。原文链接
我用Pytorch写了个ARE-Net网络结构的代码,有需要的小伙伴可以在这里下载

1. Introduction

本文的目的是要进一步提高CNN在实现基于外观的视线估计上的性能,核心在于左右眼的非对称回归。非对称回归的提出基于以下两点:
(1)双眼视线在物理上应该是一致的。
(2)即使采用相同的回归方法,双眼视线的估计结果也是不同的。

双眼的非对称性暗示着一种新的回归策略,它给予双眼图像不同的权值,从而使得训练过程中,整个回归朝着更高质量的一方眼睛图像的方向,增加视线估计的鲁棒性。

总结来说,本文有以下三方面贡献:
(1)提出多分支AR-Net用于双眼非对称视线回归估计,提出E-Net来对回归估计进行评价和校准。
(2)发现双眼视线不对称性,并基于此提出评估指导非对称回归的机制。
(3)基于提出的机制和网络最终设计ARE-Net模型,在双眼视线估计上实现了很高的精度。

2.Related work

(1)基于模型的方法

使用确定的眼几何模型来进行视线追踪。相关文章:
[1] Nakazawa, A., Nitschke, C.: Point of gaze estimation through corneal surface reflection in an active illumination environment. In: ECCV. (2012) 159–172
[2] Jeni, L.A., Cohn, J.F.: Person-independent 3d gaze estimation using face frontalization. In: Computer Vision and Pattern Recognition Workshops. (2016) 792–800
[3] Funes Mora, K.A., Odobez, J.M.: Geometric generative gaze estimation (g3e) for remote rgb-d cameras. In: IEEE Computer Vision and Pattern Recognition Conference. (2014) 1773–1780
[4] Wang, K., Ji, Q.: Real time eye gaze tracking with 3d deformable eye-face model. In: The IEEE International Conference on Computer Vision (ICCV). (2017)

(2)基于外观的方法

相比基于模型的方法要求更低,只需要相机拍摄眼部图像,通过学习眼部图像与视线之间的映射来实现视线估计。相关文章:
[1] Lu, F., Sugano, Y., Okabe, T., Sato, Y.: Adaptive linear regression for appearance-based gaze estimation. Pattern Analysis and Machine Intelligence, IEEE Transactions on 36(10) (2014) 2033–2046
[2] Williams, O., Blake, A., Cipolla, R.: Sparse and semi-supervised visual mapping with the S3GP. In: CVPR. (2006) 230–237
[3] Schneider, T., Schauerte, B., Stiefelhagen, R.: Manifold alignment for person independent appearance-based gaze estimation. In: International Conference on Pattern Recognition (ICPR).(2014) 1167–1172
[4] Lu, F., Chen, X., Sato, Y.: Appearance-based gaze estimation via uncalibrated gaze pattern recovery. IEEE Transactions on Image Processing 26(4) (2017) 1543–1553
[5] Sugano, Y., Matsushita, Y., Sato, Y., Koike, H.: Appearance-based gaze estimation with online calibration from mouse operations. IEEE Transactions on HumanMachine Systems 45(6) (2015) 750–760

(3)基于CNN的方法

使用CNN学习眼部图像与视线之间的映射,从而实现实现估计。相关文章:
[1] Mora, K.A.F., Monay, F., Odobez, J.M.: Eyediap:a database for the development and evaluation of gaze estimation algorithms from rgb and rgb-d cameras. In:Symposium on Eye Tracking Research and Applications. (2014) 255–258
[2] Wood, E., Morency, L.P., Robinson, P., Bulling, A.: Learning an appearance-based gaze estimator from one million synthesised images. In: Biennial ACM Symposium on Eye Tracking Research & Applications. (2016) 131–138
[3] Krafka, K., Khosla, A., Kellnhofer, P., Kannan, H., Bhandarkar, S., Matusik, W., Torralba, A.: Eye tracking for everyone. In: Computer Vision and Pattern Recognition. (2016) 2176–2184
[4] Zhang, X., Sugano, Y., Fritz, M., Bulling, A.: Its written all over your face: Full-face appearance-based gaze estimation. In: Proc. of the IEEE Conference on Computer Vision and Pattern Recognition Workshops (CVPRW). (2017)

3.视线估计与双眼不对称性

3.1 通过回归算法进行三维视线估计

任何人的视线都可以由一个单位三维向量来表示,记这个三维向量为 g \boldsymbol{g} g,这个向量是与输入的眼部图像有关的。记眼部图像为 I \boldsymbol{I} I,它与 g \boldsymbol{g} g的关系可以记为 g = f ( I ) \boldsymbol{g}=f(\boldsymbol{I}) g=f(I),其中的 f ( ∗ ) f(*) f()就是回归算法得到的映射函数。

这个映射多少有些过于简单,如果再加上头部姿态就会更完备一些。记头部姿态向量为 h \boldsymbol{h} h,它也是一个三维向量。关于这个头部姿态向量的获取有许多方法,本文是在默认已经通过了其它方法获取到了它,在此基础上进行研究。
加上了 h \boldsymbol{h} h,这个映射就变为 g = f ( I , h ) \boldsymbol{g}=f(\boldsymbol{I},\boldsymbol{h}) g=f(I,h)

f ( ∗ ) f(*) f()是一种非常复杂的非线性映射,但是深度学习使得获得这种复杂映射变为可能,而本文正式通过深度网络来学习这个映射。

3.2 双眼不对称性

在任何时候,我们都不能指望对双眼的视线估计拥有相同的准确率,每个眼睛都有可能使得估计的准确率更高,这就可以理解为在视线估计中,双眼是具有不对称性的。

造成双眼不对称性的因素可能有很多,比如头部姿态、图像质量、个体差异等。双眼不对称性还可以理解为两只眼睛的图像对于视线估计来说,图像质量是不同的,利用质量更高的一方可以更好地提高估计精度。

4.非对称回归评价网络(ARE-Net)

受双眼不对称性的启发,本文提出ARE-Net。

4.1 整体网络结构

整体网络将两幅眼睛图像与头部姿态向量作为输入,左眼图像记为 I l ( i ) \boldsymbol{I}_l^{(i)} Il(i),右眼图像记为 I r ( i ) \boldsymbol{I}_r^{(i)} Ir(i),头部姿态向量记为 h ( i ) \boldsymbol{h}^{(i)} h(i),其中的上标 i i i代表第 i i i个样本。输入网络去学习标签 g l ( i ) \boldsymbol{g}_l^{(i)} gl(i) g r ( i ) \boldsymbol{g}_r^{(i)} gr(i),也就是三维视线向量,此处完全对应3.1小节中所讲的复杂映射。

为了实现上述目的,本文提出了非对称回归网络(AR-Net)和评价网络(E-Net),整体结构如图1所示。

图1:ARE-Net整体结构
在这里插入图片描述

(1) AR-Net

AR-Net是一个具有4分支的卷积神经网络,它的作用是分别估计左眼和右眼的视线向量,并且使用非对称的方式来优化双眼特征。

(2) E-Net

E-Net是一个具有2分支的卷积神经网络,它的作用是对AR-Net进行评价,并对其优化过程进行指导。

(3) 网络训练与测试

整个训练过程中AR-Net和E-Net的参数是同步更新的。在测试时,AR-Net的输出也是双眼的视线向量。

4.2 AR-Net

AR-Net的整体结构如图2 ( a ) (a) (a)所示。在AR-Net中,头部姿态向量也是一个重要的特征,最终使用1506维向量进行回归,输出3维视线向量。

这4个分支可以简单地理解为:前两个分支分别提取左右眼图像的特征,而后两个分支提取双眼的组合特征,最终得到1500维特征向量,再与头部姿态特征进行级联。

图2:各部分网络结构
在这里插入图片描述

(1) The base-CNN

Base-CNN如图2 ( c ) (c) (c)所示,它表示的是整个网络结构中所用到的所有的基础CNN结构,它的参数设置类似于AlexNet,也就是图2中的红色和黄色的方块部分就是Base-CNN的结构。

(2) 角度损失

通过AR-Net预测的3维视线与真实的视线之间会有角度的偏差,通过公式(1)(2)可以分别计算左眼和右眼的角度偏差,公式(3)表示两眼的总角度损失,其中 λ l 和 λ r \lambda_l和\lambda_r λlλr是两个权值,它就表示除了双眼损失的不对称性,即双眼图像对损失的贡献程度是不同的。

公式(1): e l = a r c c o s ( g l ∗ f ( I l ) ∥ g l ∥ ∗ ∥ f ( I l ) ∥ ) \begin{aligned} e_l=arccos(\frac{\boldsymbol{g}_l*f(\boldsymbol{I}_l)}{\Vert{\boldsymbol{g}_l}\Vert*\Vert{f(\boldsymbol{I}_l)}\Vert}) \end{aligned} el=arccos(glf(Il)glf(Il))

公式(2): e r = a r c c o s ( g r ∗ f ( I r ) ∥ g r ∥ ∗ ∥ f ( I r ) ∥ ) \begin{aligned}e_r=arccos(\frac{\boldsymbol{g}_r*f(\boldsymbol{I}_r)}{\Vert{\boldsymbol{g}_r}\Vert*\Vert{f(\boldsymbol{I}_r)}\Vert})\end{aligned} er=arccos(grf(Ir)grf(Ir))

公式(3): e = λ l ∗ e l + λ r ∗ e r \begin{aligned}e_ =\lambda_l*e_l+\lambda_r*e_r\end{aligned} e=λlel+λrer

λ l 和 λ r \lambda_l和\lambda_r λlλr是根据公式(4)所示的约束关系所设置的,

公式(4): { λ l λ r = e r e l λ l + λ r = 1 \left\{ \begin{aligned} &\frac{\lambda_l}{\lambda_r}=\frac{e_r}{e_l}\\ &\lambda_l+\lambda_r=1\\ \end{aligned} \right. λrλl=elerλl+λr=1

(2) 非对称损失

将公式(4)中的 λ l 和 λ r \lambda_l和\lambda_r λlλr解出并带入到公式(3)中,就可以得到非对称损失,如公式(5)所示, e l e_l el e r e_r er相差越大, L A R L_{AR} LAR就越大,也就表示双眼样本非对称性越强。这个非对称损失也就是AR-Net需要优化的损失函数,它越小时,不仅代表视线估计的准确率越高,而且还代表样本的非对称性越低,不过这个函数并不能调整优化样本的非对称性,在后面的小节中会对其进行修正。

公式(5): L A R = 2 ∗ e l ∗ e r e l + e r \begin{aligned}L_{AR}=2*\frac{e_l*e_r}{e_l+e_r}\end{aligned} LAR=2el+ereler

4.3 E-Net

E-Net的整体结构如图2(b)所示,输入双眼图像最终获得1000维特征向量,然后进行Softmax回归,最终输出一个2维向量 [ p l , p r ] T [p_l,p_r]^T [pl,pr]T p l , p r p_l,p_r pl,pr分别代表AR-Net选择依靠左眼或右眼进行视线估计的概率。

在训练过程中,如果 e l < e r e_l<e_r el<er,则 p \boldsymbol{p} p的标签设置为 [ 1 , 0 ] T [1,0]^T [1,0]T,反之设置为 [ 0 , 1 ] T [0,1]^T [0,1]T

(1) 损失函数

E-Net的损失函数如公式(6)所示,在 e l < e r e_l<e_r el<er时, η = 1 \eta=1 η=1,反之为0.
理解这个公式要注意前面的负号,在 e l < e r e_l<e_r el<er时,说明左眼估计的视线更加准确, η = 1 \eta=1 η=1所以整个公式就只剩下
L E = − { η ∗ a r c c o s ( f ( I r ) ∗ f ( I l ) ) ∗ l o g ( p l ) } L_E=-\{ \eta*arccos(f(\boldsymbol{I_r})*f(\boldsymbol{I_l}))*log(p_l)\} LE={ ηarccos(f(Ir)f(Il))log(pl)}
优化这部分也就是使得大括号里的值变大,也就是使 p l p_l pl变大,让这类样本更加依靠左眼图像进行视线估计。
综上,E-Net的损失函数就是为了让网络学习到对双眼样本评价的能力,从而使得更好地优化AR-Net。

公式(6): L E = − { η ∗ a r c c o s ( f ( I r ) ∗ f ( I l ) ) ∗ l o g ( p l ) + ( 1 − η ) ∗ a r c c o s ( f ( I r ) ∗ f ( I l ) ) ∗ l o g ( p r ) } L_E=-\{ \eta*arccos(f(\boldsymbol{I_r})*f(\boldsymbol{I_l}))*log(p_l)+(1-\eta)*arccos(f(\boldsymbol{I_r})*f(\boldsymbol{I_l}))*log(p_r)\} LE={ ηarccos(f(Ir)f(Il))log(pl)+(1η)arccos(f(Ir)f(Il))log(pr)}

(2) 修正的AR-Net损失函数

之前的公式(5)已经给出了AR-Net的损失函数,在4.2小节中已经说过这个函数并不能调整优化样本的非对称性,所以我们需要对其进行修正,修正之后的损失函数如公式(7)所示,在这个公式中 β \beta β直接取值为0.1, ω \omega ω取值与 p l , p r p_l,p_r pl,pr有关,如公式(8)所示。对于公式(7)最直观的理解就是E-Net通过 ω \omega ω实现对AR-Net的修正。

ω \omega ω是一个介于0~1之间的值,在AR-Net和E-Net预测的结果一致时,它更趋向1,否则更趋向0.

公式(7): L A R ∗ = ω ∗ L A R + ( 1 − ω ) ∗ β ( e l + e r 2 ) \begin{aligned}L_{AR}^*=\omega*L_{AR}+(1-\omega)*\beta(\frac{e_l+e_r}{2})\end{aligned} LAR=ωLAR+(1ω)β(2el+er)

公式(8): ω = 1 + ( 2 η − 1 ) ∗ p l + ( 1 − 2 η ) ∗ p r 2 \begin{aligned}\omega=\frac{1+(2\eta-1)*p_l+(1-2\eta)*p_r}{2}\end{aligned} ω=21+(2η1)pl+(12η)pr

为了能够更好地说明 ω \omega ω是如何变化的,我们来看两种具体地情况。

情况1:

AR-Net最后得到的视线估计左眼要比右眼更准确,即 e l < e r e_l<e_r el<er,那么 η = 1 \eta=1 η=1
E-Net得出了相同的结论,这里为了更加直观,我们可以给 p l p_l pl p r p_r pr赋一个合理的值来进行下一步计算,例如: p l = 0.9 , p r = 0.1 p_l=0.9,p_r=0.1 pl=0.9,pr=0.1,也就是E-Net也觉得应该更加依靠左眼来完成视线估计。
将上述数值带入公式(8)可得 ω = 0.9 \omega=0.9 ω=0.9,显然此时的 ω \omega ω是更趋向1的。

情况2:

AR-Net最后得到的视线估计左眼要比右眼更准确,即 e l < e r e_l<e_r el<er,那么 η = 1 \eta=1 η=1
E-Net得出了相反的结论,同样地,我们给 p l p_l pl p r p_r pr赋一个合理的值来进行下一步计算,例如: p l = 0.1 , p r = 0.9 p_l=0.1,p_r=0.9 pl=0.1,pr=0.9,也就是E-Net也觉得应该更加依靠右眼来完成视线估计,与AR-Net矛盾。
将上述数值带入公式(8)可得 ω = 0.1 \omega=0.1 ω=0.1,显然此时的 ω \omega ω是更趋向0的。

在情况1下, L A R ∗ L_{AR}^* LAR中起作用的主要是第1项,优化时主要是减小 L A R L_{AR} LAR,同时也可能会减小 ω \omega ω,此时网络学习的主要就是降低视线误差,基本不改变 ω \omega ω
在情况2下, L A R ∗ L_{AR}^* LAR中起作用的主要是第2项,优化时主要是增大 ω \omega ω,同时减小 e l e_l el e r e_r er,使得降低视线估计误差的同时能够使E-Net和AR-Net趋于一致的判断。

猜你喜欢

转载自blog.csdn.net/weixin_43728604/article/details/115933162
今日推荐