前言

本篇博客是笔者在读完论文“It’s Written All Over Your Face:Full-Face Appearance-Based Gaze Estimation”后的一个小小总结。

该篇论文主要提出了一种基于完整脸部图像,通过加入了空间权重的CNN得到2D、3D视线方向的方法,并对完整脸部图片对于视线检测的作用进行了相关实验与分析。

论文主要分为两大部分。第一部分主要介绍论文作者提出的新视线检测方法:引入空间权重的CNN。这部分中,论文作者阐述了将完整脸部图片作为输入、在CNN中引入空间权重的原因,并根据后续实验分析这种新方法的性能,阐述了完整脸部图像对视线预测的作用

将完整脸部图像作为输入的空间权重CNN方法

论文作者提出了一种CNN结构,直接根据输入的完整面部图像,得到2D或3D的视线方向,在MPIIGaze数据集上获得了较大的准确度提升(14.3%)。这种CNN结构包含一种空间权重机制,将脸部不同区域的信息编码,与经典CNN网络的特征图结合,提取了面部不同区域包含的有助于判断视线方向的信息。

将full-face image作为输入的原因

论文作者提到,先前的Gaze Estimation算法大部分将目标的眼部图像作为输入,而近期的部分论文已经提出,面部除眼睛外的其他部分,同样包含有助于判断视线方向的信息。而神经网络方法拥有很强的信息提取的能力,因此,基于面部除眼睛的其他部分同样包含有助于判断视线方向的重要信息的假设,论文作者认为将完整的面部图像作为神经网络的输入,有助于提高视线检测算法的准确度。

加入空间权重的CNN方法

论文中阐述,加入空间权重主要有以下两个理由:

  • 对于输入的完整面部图片,部分区域,如背景,对于解决Gaze问题没有帮助,应尽量减少其影响。
  • 如前文所述,面部除眼睛外的其他区域隐藏着对于Gaze问题有辅助作用的重要信息。

因此,作者将通过激活图来学习空间权重的机制加入经典CNN架构,并取得了较好的结果。

基础CNN结构

对于经典CNN部分,作者采用了拥有5个卷积层、2个全连接层的AlexNet,并在全连接层后添加一个线性回归层以得到所需的2D或3D视线焦点坐标。这部分中作者使用了在LSVRC-2010 ImageNet上预训练好的参数,并通过MPIIGaze数据集对整个网络进行微调。

空间权重机制

在上述CNN的5个卷积层得到最终的特征图后,论文作者将特征图作为输入,添加三个卷积核为1x1的卷积层,使用ReLu作为激活函数,并最终得到一个13x13的热度图。之后,论文作者将热度图直接与之前卷积层的特征图逐元素相乘,作为全连接层的输入。

实验及分析

为检验这种方法的准确率,作者分别在MPIIGazeEYEDIAP数据集上进行了2D、3D视线检测的与其他方法的对比。对比的方法有:只考虑单眼图片的方法(Visualizing and understanding
convolutional networks),上篇博客总结的方法(Appearancebased gaze estimation in the wild),iTracker,只考虑双眼部分的iTracker,修改为AlexNet的ITracker。

在与两个数据集,2D与3D两种问题的对比上,论文作者提出的空间权重CNN方法均取得了最好的表现。其中,2D问题上各方法在EYEDIAP数据集上的准确率均低于MPIIGaze数据集,论文作者认为可能是EYEDIAP数据集的低分辨率所致。

头部姿态、面部表现视线方向的关系

这一部分中,论文作者为探索不同因素对于视线方向判断的影响程度,将以下三种特殊情况进行对比:

1.直接将头部姿态作为视线检测结果

2.一个根据输入的头部姿态直接得到视线检测结果的线性回归模型

3.在遮住所有眼部的MPIIGaze数据及上训练所得的模型

而进行对比后,得到的准确率为:1<2<3。这一结果令人意外的表明,将完整面部图片作为输入甚至比头部姿态信息更有助于视线检测问题的解决

(笔者的个人理解:理论上说完整的面部图片是包含头部姿态信息的,那么在模型提取信息的能力足够强的前提下,完整面部图片理应能提供更多头部姿态无法提供的信息,以帮助判断视线方向。)

不同脸部区域的重要性分析

既然面部其他区域有助于视线方向的判断,接下来论文作者尝试探索不同情况下面部的哪些区域有助于视线方向的检测。这一部分,作者通过研究使用64x64的遮罩遮住图片不同部分后分析准确率下降程度的方法得到热力图,来近似脸部不同区域的对于视线检测问题的重要程度。

光照

通过MPIIGaze数据集中,灰度平均值在水平方向上的不同密度为依据分类不同光照情况,论文作者发现,光照更强的一边,热力图中眼部与其他区域的连通性更强。同时在各种光照下,空间权重CNN方法的准确率均高于只考虑双眼图片的方法。

视线方向

通过实验发现,当目标的视线方线越平直时,眼部的热度越高。而视线方向越偏时,热度则明显的朝面部其他部分分散

头部姿态

这部分使用了头部姿态分布更广的EYEDIAP数据集。实验发现,当头部姿态极端偏时,面部其他区域对视线检测的帮助尤为明显。此外,EYEDIAP数据集上的热度相比MPIIGaze,明显的朝面部周围分散,可能证明在低分辨率的情况下,使用完整面部图像有更大优势

结论

采用完整面部图像作为输入,加入了空间权重的CNN方法对于极端头部姿势、视线方向、光照造成的极端头部姿态变化有更高的鲁棒性。

同时,实验的结果表明,采取完整面部图像作为输入的 appearance-based视线检测问题与其他相关CV问题(如面部特征识别、面部表情识别等)非常接近,在未来的基于学习的方法中,将这类问题综合考虑可能会取得更好的结果。

Gaze Estimation学习笔记(2)-It's Written All Over Your Face Full-Face Appearance-Based Gaze Estimation的更多相关文章

  1. Gaze Estimation学习笔记(1)-Appearance-Based Gaze Estimation in the Wild

    目录 前言 简介 论文概述 论文主要内容 MPIIGaze数据集 引入CNN的新Gaze Estimation方法 人脸对齐与3D头部姿态判断 归一化 使用CNN进行视线检测 论文作者进行的实验及结果 ...

  2. A.Kaw矩阵代数初步学习笔记 4. Unary Matrix Operations

    “矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...

  3. A.Kaw矩阵代数初步学习笔记 2. Vectors

    “矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...

  4. IOS学习笔记25—HTTP操作之ASIHTTPRequest

    IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...

  5. CUBRID学习笔记 47 show

    cubrid的中sql查询语法show c#,net,cubrid,教程,学习,笔记欢迎转载 ,转载时请保留作者信息.本文版权归本人所有,如有任何问题,请与我联系wang2650@sohu.com . ...

  6. <老友记>学习笔记

    这是六个人的故事,从不服输而又有强烈控制欲的monica,未经世事的千金大小姐rachel,正直又专情的ross,幽默风趣的chandle,古怪迷人的phoebe,花心天真的joey——六个好友之间的 ...

  7. DBus学习笔记

    摘要:DBus作为一个轻量级的IPC被越来越多的平台接受,在MeeGo中DBus也是主要的进程间通信方式,这个笔记将从基本概念开始记录笔者学习DBus的过程 [1] DBus学习笔记一:DBus学习的 ...

  8. Hadoop学习笔记(两)设置单节点集群

    本文描写叙述怎样设置一个单一节点的 Hadoop 安装.以便您能够高速运行简单的操作,使用 Hadoop MapReduce 和 Hadoop 分布式文件系统 (HDFS). 參考官方文档:Hadoo ...

  9. Lua学习笔记4. coroutine协同程序和文件I/O、错误处理

    Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...

随机推荐

  1. IDEA控制台中文乱码问题

    Tomcat启动时乱码 在tomcat启动时,控制台中的中文为乱码 在idea安装路径的bin文件夹下,找到idea64.exe.vmoptions这个配置文件,添加如下代码 -Dfile.encod ...

  2. React Children 使用

    React 有一个特殊的属性children, 主要用于组件需要渲染内容,但它并不知道具体要渲染什么内容,怎么会有这种使用场景?确实比较少,但并不是没有,比如弹出框.当你写一个弹出框组件的时候,你知道 ...

  3. JS 中类型和类型转换

    类型 首先明确一点,Js中的类型是针对值来说,而不是针对变量,值就是所谓的42, 'abc', false 等能用js 操作的数据.在js 中说某某某是什么数据类型,其实是说的这些值是什么类型.值呢? ...

  4. python 读写excel(xls格式)

    import xlrd #导入模块 from xlutils.copy import copy #导入copy模块 rb = xlrd.open_workbook(r"e:\额度导入表.xl ...

  5. HDFS 配额教程

    本文原始地址:https://sitoi.cn/posts/12544.html 名称配额(Name Quota) 名称配额是在对应的目录下所有文件和目录名称的数量上的限制. 当超过这个配额的时候,文 ...

  6. Httpd服务入门知识-Httpd服务常见配置案例之ServerSignature指令选项

    Httpd服务入门知识-Httpd服务常见配置案例之ServerSignature指令选项 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ServerSignature指令概述 ...

  7. Pat 1003 甲级

    #include <cstdlib> #include <cstring> #include <iostream> #include <cstdio> ...

  8. Python决策树可视化:GraphViz's executables not found的解决方法

    参考文献: [1]Python决策树可视化:GraphViz's executables not found的解决方法

  9. adb命令 判断锁屏

    通过adb命令获取手机是否锁屏状态,可以通过下面指令:1.adb shell dumpsys window policy |find "isStatusBarKeyguard"2. ...

  10. Python基础知识笔记-作用域

    Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的. 变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称.Python的作用域一共有4种,分别是: ...