前言

本篇博客是笔者在读完论文“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. Kafka Streams开发入门(2)

    背景 上一篇我们介绍了Kafka Streams中的消息转换操作map,今天我们给出另一个经典的转换操作filter的用法.依然是结合一个具体的实例展开介绍. 演示功能说明 本篇演示filter用法, ...

  2. 设计模式 结构型 - 适配器模式 Adapter

    Adapter(适配器模式) ---- 加个“适配器”以便于复用 将一个类的接口转换成客户希望的另一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 应用场景 如果 ...

  3. 解决apscheduler报错:Run time of job …… next run at: ……)” was missed by

    在Django中使用apscheduler django_apscheduler 实现定时任务, 来完成数据拉取. 一段时间后发现数据量对不上,遂查日志 发现报错如下: Run time of job ...

  4. Python之路(第四十二篇)线程相关的其他方法、join()、Thread类的start()和run()方法的区别、守护线程

    一.线程相关的其他方法 Thread实例对象的方法 # isAlive(): 返回线程是否活动的. # getName(): 返回线程名. # setName(): 设置线程名. ​ threadin ...

  5. 第一册:lesson 135.

    原文:The latest report. question:Is Karen Marsh going to retire,do you think? Are you really going to ...

  6. Odoo中的self详解

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826307.html 一:self是什么 目前新版的Odoo中使用到的self,是对  游标cr.用户ID ...

  7. linux命令-jdk及mysql安装操作

    1. VMware虚拟机 VMWare虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Windows.DOS.LINUX系统. 1.1.  vmware15安装配置 Work ...

  8. P1486 [NOI2004]郁闷的出纳员[权值线段树]

    权值线段树. 我们只用维护一个人是否存在,以及他当前排名,而不关心工资的具体值,这个可以直接算. 不难发现,如果不考虑新的员工,所有员工的工资的差值是不变的. 而加进来一个新的员工时,其工资为\(x\ ...

  9. 201671030111 李蓉 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 掌握软件项目评审会流程,反思总结课程学习内容. 任务一:结合本学期课程学习 ...

  10. “SkyReach”对“待就业六人组”和“葫芦娃”的Beta产品测试报告

    对"待就业六人组"的Beta产品测试报告 安装成功截图 第一次上手体验感觉如何?能否正常运行? 第一次上手体验,界面简洁明了,简约的风格比较迎合个人的口味:能够正常运行: 该产品具 ...