zoukankan      html  css  js  c++  java
  • Gaze Estimation学习笔记(1)-Appearance-Based Gaze Estimation in the Wild

    前言

    简介

    在使用神经网络解决Gaze Estimation的问题上,Appearance-Based Gaze Estimation in the Wild是非常基础的一篇论文。本篇博客主要尝试简单介绍论文使用的主要方法,并大致总结论文作者所得出的结论。

    论文概述

    本篇论文主要分为三个方面:

    1. 介绍了论文作者收集制作的MPIIGaze数据集。
    2. 介绍了一种使用了CNN作为主要方法的Gaze Estimation方法。
    3. 在多个数据集上使用多种方法进行分析比较,以得到更多对于Gaze Estimation的新理解。

    论文主要内容

    MPIIGaze数据集

    论文作者在文中提到,大部分(截至论文撰写时的)主流Gaze Estimating方法往往基于实验室中受控的环境下采集的数据集,而这类数据集的眼部外表往往变化较少,光照情况、大部分有用像素的集中位置等特征也较为单一。因此,论文作者采集制作了MPIIGaze数据集,历时数月通过笔记本电脑对15个受试者进行采集,数据集主要具有以下特点:

    • 全部在笔记本电脑的真实使用环境下采集,光照,眼部外表等特征相比其他数据集有显著的多样性。
    • 由于不同受试者采集的摄像机位置不同,数据集中头部姿态,视线方向的覆盖范围较广且重复率较低。

    论文作者认为,MPIIGaze数据集具有更高的复杂度,更加接近与日常生活中的各类场景。后文的研究也证明MPIIGaze数据集训练的模型确实在鲁棒性上有所提升。

    引入CNN的新Gaze Estimation方法

    在介绍完MPIIGaze数据集后,论文作者介绍了一种新的使用神经网络解决Gaze Estimation问题的方法。

    文中提到,当时的各类方法往往将精确的人物头部姿态作为已知条件,是一种很强的假设。因此,论文作者提出了一套完整的方法,根据输入图像完整判断人物头部姿态、视线方向。

    算法的流程图如下:(图片来源自论文)

    算法将单目相机拍摄的照片作为输入,直接输出最终的视线方向。该算法主要分为以下三个部分:

    • 人脸对齐与3D头部姿态判断
    • 归一化
    • 使用CNN进行视线检测

    人脸对齐与3D头部姿态判断

    第一部分中,输入为单目相机拍摄的人物图像。论文作者采用SURF cascade方法检测人脸,检测到人脸后采用constrained local mode framework定位人脸标记点,即双眼的左右边界点与人物嘴巴的左边边界点共6个点。

    论文作者根据收集到的所有人脸数据,建立人脸的基础3D模型,并将人脸基础3D模型与识别出的6个人脸标记点对比,通过EPNP算法估计出人脸的3D旋转(r),并将双眼标记点的中点,作为双眼的位置(t)

    至此,得到了人脸的3D旋转估计与双眼位置,进入下一步处理。

    归一化

    接下来,论文作者进行一系列操作将人脸图像归一化,以提高CNN的最终准确率。

    首先,论文作者分别建立人脸坐标系与摄像机坐标系,具体规则可参考Gaze Estimation笔记——data normalization。归一化主要通过透视变换,达到以下目标:

    • 将摄像机视角从固定距离(d)正对双眼位置(t)
    • 将人脸坐标与摄像机坐标的(x)轴平行。

    归一化后的到分辨率固定的眼部图像(e)与2维的头部转动角度向量(h)。这样的归一化将跨数据集测试变为可行。

    使用CNN进行视线检测

    CNN的任务为处理输入的2D头部角度(h)、归一化后的眼部图像(e),以得到最终的2维视线角度向量(g)

    论文作者采用的CNN构架是LeNet,在全连接层后训练了线性回归层以输出视线角度向量(g)。CNN将固定分辨率60x36的图片作为输入,两个卷积核分别为5x5x20、5x5x50。全连接层的隐藏单元共500个,并将头部角度(h)拼接至全连接层的输出,以得到最终的2维视线角度向量(g)

    论文作者进行的实验及结果

    跨数据集测试

    在跨数据集测试中,论文作者将头部、眼部角度覆盖最广的UT Multiview数据集作为训练集,分别测试了模型在MPIIGaze数据集与eyediap数据集上的结果,并与其余5种当时的表现顶尖的算法进行比较。

    在两个测试数据集中,论文作者提出的基于CNN的方法表现均优于其他算法。并且各算法在MPIIGaze数据集上的准确率均低于eyediap数据集,证明了室外复杂环境下Gaze Estimation的难度提升

    此外,论文作者认为这一结果暴露了UT Multiview数据集在眼部外观上较为单一的缺陷,并推断出数据集多样性的缺乏是限制Gaze Estimation效果的因素之一

    数据集内测试

    在单个数据集的测试中,论文作者提出的算法同样有最高的准确率。

    此外,论文作者还将同样模型分别在UT Multiview数据集、MPIIGaze数据集下进行训练后,测试其在光照环境变化时的准确率,发现在MPIIGaze数据集下训练的模型明显对于光照变化有更强的适应能力,证明了数据集多样性对于室外Gaze Estimation的重要性

    算法的效果验证

    论文作者还测试了不同CNN架构在UT Multiview数据集以及MPIIGaze数据集下的结果,证明提出的CNN架构优于当时的其他种类CNN。

    同时,论文作者还进行了对不同识别对象进行单独训练的“person-specific”方法,发现在能针对不同对象进行单独训练的情况下,各类算法均有算法上的提升

    笔者的遗留问题

    • 对于归一化使用EPNP算法得到3D头部旋转角度时的具体操作,即选定哪些点作为参考点、控制点还不清楚,论文中没有详细阐述,需要后期学习代码时留意。
    • 归一化后头部坐标系与相机坐标系X轴对齐的情况下,按笔者理解应该只有头部上下转动一个角度,而(h)是二维向量,具体是哪两个角度也需要进一步学习。
  • 相关阅读:
    How does “void *” differ in C and C++?
    Can we use function on left side of an expression in C and C++?
    apache配置局域网访问
    apache以天为单位生成日志
    尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
    IIS 处理程序“PageHandlerFactory-Integrated”
    IIS无法识别的属性targetFramework
    php开启短标签支持
    Notepad++配色方案
    vim常用操作整理
  • 原文地址:https://www.cnblogs.com/kirito12138/p/11624710.html
Copyright © 2011-2022 走看看