Gaze Estimation学习笔记(2)-It's Written All Over Your Face Full-Face Appearance-Based Gaze Estimation
目录
前言
本篇博客是笔者在读完论文“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的热度图。之后,论文作者将热度图直接与之前卷积层的特征图逐元素相乘,作为全连接层的输入。
实验及分析
为检验这种方法的准确率,作者分别在MPIIGaze和EYEDIAP数据集上进行了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的更多相关文章
- Gaze Estimation学习笔记(1)-Appearance-Based Gaze Estimation in the Wild
目录 前言 简介 论文概述 论文主要内容 MPIIGaze数据集 引入CNN的新Gaze Estimation方法 人脸对齐与3D头部姿态判断 归一化 使用CNN进行视线检测 论文作者进行的实验及结果 ...
- A.Kaw矩阵代数初步学习笔记 4. Unary Matrix Operations
“矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...
- A.Kaw矩阵代数初步学习笔记 2. Vectors
“矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...
- IOS学习笔记25—HTTP操作之ASIHTTPRequest
IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...
- CUBRID学习笔记 47 show
cubrid的中sql查询语法show c#,net,cubrid,教程,学习,笔记欢迎转载 ,转载时请保留作者信息.本文版权归本人所有,如有任何问题,请与我联系wang2650@sohu.com . ...
- <老友记>学习笔记
这是六个人的故事,从不服输而又有强烈控制欲的monica,未经世事的千金大小姐rachel,正直又专情的ross,幽默风趣的chandle,古怪迷人的phoebe,花心天真的joey——六个好友之间的 ...
- DBus学习笔记
摘要:DBus作为一个轻量级的IPC被越来越多的平台接受,在MeeGo中DBus也是主要的进程间通信方式,这个笔记将从基本概念开始记录笔者学习DBus的过程 [1] DBus学习笔记一:DBus学习的 ...
- Hadoop学习笔记(两)设置单节点集群
本文描写叙述怎样设置一个单一节点的 Hadoop 安装.以便您能够高速运行简单的操作,使用 Hadoop MapReduce 和 Hadoop 分布式文件系统 (HDFS). 參考官方文档:Hadoo ...
- Lua学习笔记4. coroutine协同程序和文件I/O、错误处理
Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...
随机推荐
- jsonserver的安装及启动
JsonServer 主要的作用就是搭建本地的数据接口,创建json文件,便于调试调用 是一个 Node 模块,运行 Express 服务器,可以指定一个 json 文件作为 api 的数据源 官网: ...
- CSS3 完善盒模型
CSS3 改善了传统盒模型结构,增强了盒子构成要素的功能,扩展了盒模型显示的方式. 改善结构:为盒子新增轮廓区: 增强功能:内容区增强 CSS 自动添加内容功能,增强内容移除.换行处理:允许多重定义背 ...
- sizeof()计算
本节包含sizeof()计算结构体,位域,数组,字符串,指针,c++中的class等类型的大小,sizeof()计算的大小都是以字节为单位. 一 计算基本类型的长度 sizeof(char): 1 s ...
- PHP的垃圾回收机制之引用计数
1,介绍 php的垃圾回收机制(GC)是在PHP5之后出现的,而在PHP5.3版本之前使用的都是“引用计数”的方式.实现引用计数的实质就是在每个内存对象中都有一个计数器,当内存对象被变量引用时,计数器 ...
- 微信小程序 子组件调用父组件方法
原文连接 ---> https://blog.csdn.net/qq_40190624/article/details/87972265 组件 js: var value = 123; ...
- 【Spring Cloud】Spring Cloud之Zipkin server搭建以及RabbitMQ收集,分布式服务跟踪(3)
一.搭建步骤 1)新建Spring Boot项目,引入pom坐标 <parent> <groupId>org.springframework.boot</groupId& ...
- GRUB配置与应用,启动故障分析解决
一.GRUB启动位置 GRUB是现今大多数Linux系统采用的自举程序,这里先来看一下Linux的程序顺序: 执行顺序 动作 固件Firmware(CMOS/BIOS) → POST(Pwer ...
- Linux运维技术之讲解RAID
RAID: 独立冗余磁盘阵列 ,将多块磁盘组合起来,组合成一个阵列,当成一个逻辑设备来使用的机制! RAID级别:仅代表磁盘组织不同,没有上下之分,组合raid时,不仅要考虑速度,还要考虑可用性. 磁 ...
- rn 环境搭建
https://reactnative.cn/docs/next/getting-started.html 搭建开发环境 欢迎使用 React Native!这篇文档会帮助你搭建基本的 React N ...
- Feign 报错:The bean 'service-producer.FeignClientSpecification', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.
报错: 2019-09-17 20:34:47.635 ERROR 59509 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : ******* ...