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和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...
随机推荐
- IDEA新建一个Spring Boot项目
Maven构建项目模板 maven构建的是maven风格的纯净模板,要转变成spring boot项目需要自己添加依赖等配置. mvn archetype:generate: Maven插件原型是一个 ...
- kubernetes V1.16 Ingress-nginx部署
Ingress 在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的.为了使外部的应用能够访问集群内的服务,在Kubernetes中可以通过NodePo ...
- Java 面向对象—非静态代码块
一.非静态代码块 1.声明格式 [修饰符] class 类名 { { 非静态代码块 } } 2.非静态代码块中的代码执行时机 (1)在"每次"创建对象的时候执行 (2)比构造方法早 ...
- Springboot jpa多数据源
1.SpringBootApplication package com.xx.xxx; import org.springframework.beans.factory.annotation.Auto ...
- JavaScript数值和字符串、特殊字符
一.JavaScript数值 1.整数和浮点数 根据国际标准 IEEE 754,64 位浮点数格式的 64 个二进制位中,第0 位到第 51 位储存有效数字部分,第 52 到第 62 位储存指数部分, ...
- Django 之restfromwork 序列化组件实现数据增删查改
rest-framework序列化之Serializer models.py from django.db import models # Create your models here. class ...
- Prometheus(五):Prometheus+Alertmanager 配置企业微信报警
此处默认已安装Prometheus服务,服务地址:192.168.56.200 一.设置企业微信 1.1.企业微信注册(已有企业微信账号请跳过) 企业微信注册地址:https://work.weix ...
- web服务器-nginx
一.nginx之前 同步与异步: 同步与异步的重点在消息通知的方式上,也就是调用结果的通知方式不同. 同步:当一个同步调用发出去后,调用者要一直等待调用的结果通知后,才能进行后续的操作. 异步:当一个 ...
- Python 字符集
什么是字符? 1.在Python中,字符串中的内容都是字符. 2.什么是字符编码(encode)和字符集(charset)? 计算机只能识别数值,而字符不能识别,为了让计算机能处理字符,必须将字符和数 ...
- 如何测试Web服务.3
-->全文字数:2254,需要占用你几分钟的阅读时间 ,您也可以收藏后,时间充足时再阅读- ->第一节讲了<Web服务基础介绍>,第二节讲了<Web服务测试工具> ...