Head Pose Estimation in Computer Vision: A Survey
Erik Murphy-Chutorian, Student Member, IEEE and Mohan Manubhai Trivedi, Senior Member, IEEE
摘要
估计另一个人头部姿势的能力是一种常见的人类能力,对计算机视觉系统提出了独特的挑战。 与作为面部相关视觉研究的主要焦点的面部检测和识别相比,身份不变的头部姿势估计具有较少的严格评估的系统或通用解决方案。 在本文中,我们讨论头部姿势估计的固有困难,并提出描述该领域演变的有组织的调查。 我们的讨论侧重于每种方法的优缺点,并涵盖了90篇关于该主题的最具创新性和特色性的论文。 我们通过关注它们估计粗糙和精细头部姿势的能力来比较这些系统,突出显示非常适合无约束环境的方法。
关键词
头部姿势估计,人机界面,手势分析,面部标记,面部分析
I.引言
从很小的时候开始,人们就能够快速,轻松地解释人类头部的方向和运动,从而可以推断出附近其他人的意图并理解一种重要的非语言形式的交流。完成此任务的难易程度掩盖了数十年来一直挑战计算系统的问题的难度。在计算机视觉环境中,头部姿势估计是从数字图像推断人头部方向的过程。它需要一系列处理步骤来将头部的基于像素的表示转换为高级方向概念。与其他面部视觉处理步骤一样,理想的头部姿势估计器必须证明对各种图像变化因素的不变性。这些因素包括物理现象,如相机失真,投影几何,多源非朗伯照明,以及生物外观,面部表情,以及眼镜和帽子等配件的存在。
在计算机视觉的背景下,头部姿势估计最常被解释为推断人的头部相对于相机视图的方向的能力。更严格的是,头部姿势估计是推断头部相对于全局坐标系的方向的能力,但是这种细微差别需要知道固有的相机参数以消除来自透视畸变的感知偏差。一般成年男性的头部运动范围包括从-60.4°到69.6°的矢状屈曲和伸展(即从颈部向后运动),正面侧向弯曲(即颈部从右向左弯曲) - 40.9°至36.3°,水平轴向旋转(从头部向左旋转)从-79.8°到75.3°[26]。肌肉旋转和相对取向的组合是经常被忽略的模糊性(例如,当相机从正面观看时与相机从正面和头部观看时相比,头部的轮廓视图看起来不完全相同转向侧面)。尽管存在这个问题,但通常假设人头部可以被建模为无实体的刚性物体。在这种假设下,人体头部的姿势受限于3个自由度(DOF),其特征可以是俯仰角,滚动角和偏航角,如图1所示。
头部姿势估计与视觉注视估计有内在联系,即表征人眼的方向和焦点的能力。 头部姿势本身提供了凝视的粗略指示,其可以在人的眼睛不可见的情况下(例如低分辨率图像,或存在诸如太阳镜的遮挡眼睛的物体)的情况下估计。 当眼睛可见时,头部姿势成为准确预测凝视方向的要求。 生理学研究表明,一个人对凝视的预测来自头部姿势和眼睛方向的组合[59]。 通过在不同的头部方向上数字地组合特定眼睛方向的图像,作者确定观察者对凝视的解释在目标头部的方向上倾斜。
在图2 [134]所示的19世纪图纸中证明了这种效果的图解例子。 在该草图中,头部的两个视图以不同的方向呈现,但是两者中的眼睛以相同的配置绘制。 瞥了一眼这个图像,很清楚,所感知的凝视方向受到头部姿势的高度影响。 如果完全移除头部并且仅保留眼睛,则感知的方向类似于头部处于正面构造的方向。
基于这种观察以及我们相信人类凝视估计能力正在适当地处理视觉信息,我们假设没有先前光照条件知识的被动相机传感器没有足够的信息来准确地估计眼睛的方向而不知道 头部方向也是如此。 为了支持这一说法,请考虑眼睛周围的可见巩膜(即白色区域)的比例。 巩膜和虹膜之间的高对比度可以从远处辨别出来,并且可能已经进化以促进凝视感知[54]。 使用该巩膜虹膜提示的眼睛方向模型将需要头部姿势估计来解释凝视方向,因为任何头部运动引入不会影响可见巩膜的凝视移位。 因此,为了在任何配置中计算地估计人类凝视,眼睛跟踪器应补充有头部姿势估计系统。
本文介绍了过去来发表的头部姿势估计方法和系统的调查。 这项工作由共同的主题和趋势组织,并与每种方法固有的优点和缺点的讨论相结合。 以前的文献调查考虑了一般的人体运动[76,77],人脸检测[41,143],人脸识别[149]和影响识别[25]。 在本文中,我们提出了一种类似的头部姿势估计处理方法。
本文的其余部分结构如下:第二部分描述了头部姿势估计方法的动机; 第三节包含对头部姿势估计方法的有组织的调查; 第四部分讨论了可用于评估的地面实况工具和数据集,并根据公布的结果和一般适用性对我们调查中描述的系统进行了比较; 第五节提出了总结和总结发言。
II.动机
人们使用他们的头部方向来传达丰富的人际信息。 例如,一个人将指出他的头部方向以指示谁是对话的预期目标。 类似地,在对话中,头部方向是一种非语言公报,它提示听众何时转换角色并开始说话。 作为在谈话中打手势的形式,头部的运动具有重要意义。 人们点头表示他们理解所说的内容,他们使用额外的手势来表示不同意见,混淆,考虑和协议。 夸张的头部动作是指向手指的同义词,它们是指导某人观察特定位置的传统方式。
除了有意识的头部姿势暗示的信息之外,还可以通过观察一个人的头部来推断出很多信息。例如,快速的头部运动可能是惊讶或警报的标志。在人们中,这些通常会引发观察者的反射性反应,即使在存在矛盾的听觉刺激时也很难忽视[58]。通过从头部姿势估计建立关注的视觉焦点,可以进行其他重要的观察。如果两个人将他们的视觉注意力集中在一起,有时被称为相互凝视,这通常表明两个人正在进行讨论。相互凝视也可以用作意识的标志,例如,行人将等待停止的汽车司机在踏入人行横道之前看着他。观察一个人的头部方向也可以提供有关环境的信息。如果一个人将头转向特定方向,则很可能它朝向感兴趣对象的方向。年仅六个月的儿童利用这种称为凝视的属性,通过观察照顾者的视线作为环境的显着性过滤器[79]。
就像语音识别已经与许多广泛可用的技术交织在一起一样,头部姿态估计很可能成为弥合人与计算机之间差距的现成工具。
III.头部估计方法
将头部姿势估计的各种方法组织成一个普遍存在的分类法既是挑战也是我们的愿望。 我们考虑过的一种方法是功能分类,它按操作域组织每种方法。 这种方法将需要分离的方法,这些方法需要来自仅需要单目视频的系统的立体深度信息。 类似地,它将具有隔离的方法,其需要从能够适应远场视图的低分辨率的那些人的头部的近场视图。 另一个重要的考虑因素是每个系统提供的自动化程度。 一些系统自动估计头部姿势,而其他系统则假设具有挑战性的先决条件,例如必须事先知道的面部特征的位置。 使用当今可用的视觉算法是否能够精确满足这些要求并不总是很清楚。
我们通过其实施基础的基本方法来安排每个系统,而不是功能分类。该组织允许我们讨论不同技术的演变,并且它允许我们避免当方法超出其原始功能边界时出现的模糊性。 我们的进化分类法由以下八个类别组成,这八个类别描述了用于估计头部姿势的概念方法:
外观模板方法将头部的新图像与一组样本(每个样本标记为离散姿势)进行比较,以便找到最相似的视图。探测器阵列方法训练一系列头部探测器,每个探测器都适应特定姿势,并以最大支撑为探测器分配离散姿态。非线性回归方法使用非线性回归工具来开发从图像或特征数据到头部姿势测量的功能映射。流形嵌入方法寻求低维流形,模拟头部姿势的连续变化。新图像可以嵌入到这些流形中,然后用于嵌入式模板匹配或回归。柔性模型将非刚性模型拟合到图像平面中每个人的面部结构。头部姿势通过特征级比较或模型参数的实例化来估计。几何方法使用眼睛,嘴巴和鼻尖等特征的位置来确定其相对配置的姿势。 跟踪方法从观察到的视频帧之间的移动中恢复头部的全局姿势变化。混合方法结合了上述方法中的一种或多种,以克服任何单一方法中固有的局限性。
表I列出了每个类别的代表性系统。 在本节中,将详细介绍每个类别。 提供了关于每种方法的功能要求以及每种设计选择的优缺点的评论。
1.外观模板方法
外观模板方法使用基于图像的比较度量来将人的头部视图与具有相应姿势标签的一组样本匹配。 在最简单的实现中,查询的图像被赋予相同的姿势,分配给最相似的这些模板。 图3中给出了一个例子。一些特征示例包括在多个图像分辨率下使用归一化互相关[7]和在滑动窗口上使用均方误差(MSE)[91]。
外观模板比更复杂的方法有一些优点。 模板可以随时扩展到更大的集合,允许系统适应不断变化的条件。 此外,外观模板不需要负面训练示例或面部特征点。 创建训练数据语料库仅需要裁剪头部图像并提供头部姿势注释。 外观模板也非常适合高分辨率图像和低分辨率图像。
外观模板有许多缺点。 在不使用某种插值方法的情况下,它们仅能够估计离散姿势位置。 它们通常假设头部区域已经被检测和定位,并且定位误差会降低头部姿势估计的准确性。 它们也可能受到效率问题的困扰,因为随着更多模板被添加到示例集中,需要计算更加计算成本更高的图像比较。 针对这最后两个问题提出的一个解决方案是训练一组支持向量机(SVM)来检测和定位面部,然后使用支持向量作为外观模板来估计头部姿势[88,89]。
尽管存在这些限制,但外观模板的最重要问题是它们在错误的假设下操作,即图像空间中的成对相似性可等同于姿势的相似性。 考虑两个略有不同姿势的同一个人的图像和两个同一姿势的不同人的图像。 在这种情况下,身份的影响可能会导致图像与姿势的变化产生更大的不同,模板匹配会不正确地将图像与不正确的姿势相关联。 尽管对于广泛变化的姿势这种效果可能会减少,但仍然不能保证成对相似性对应于姿势域中的相似性(例如,脸部的右轮廓图像可能更类似于左轮廓图像而不是 正面视图)。 因此,即使对于每个个体具有均匀的离散姿势集,模板比较中的误差也可能导致高度错误的姿势估计。
为了降低成对相似性问题的影响,许多方法已经尝试了各种距离度量和图像变换,这减少了头部姿势估计误差。 例如,可以使用拉普拉斯高斯滤波器[32]对图像进行卷积,以强调一些更常见的面部轮廓,同时去除不同个体之间的一些特定于身份的纹理变化。 类似地,图像可以与复杂的Gabor小波卷积以强调定向特征,例如鼻子的垂直线和嘴的水平方向[110,111]。 这种复杂卷积的大小也为移位提供了一些不变性,这可以想象地减少由人与人之间的面部特征位置的变化引起的外观误差。
2.探测器阵列
在过去十年中已经引入了许多用于正面检测的方法[97,104,126]。 鉴于这些方法的成功,通过训练多个面部检测器来估计头部姿势似乎是自然的延伸,每个面部检测器具体地针对不同的离散姿势。 图4说明了这种方法。 对于二元分类器的数组,当没有两个分类器存在分歧时,则成功检测到面部并指定头部的姿势。 对于具有连续输出的探测器,可以通过具有最大支撑的探测器估计姿势。 检测器阵列与外观模板类似,因为它们直接在图像补丁上运行。 不是将图像与大量单个模板进行比较,而是通过使用监督学习算法在许多图像上训练的检测器来评估图像。
探测器阵列的早期示例使用三个SVM进行三次离散偏航[47]。 最近的一个系统训练了五个FloatBoost分类器,这些分类器在远场,多摄像机设置中运行[146]。
探测器阵列方法的一个优点是不需要单独的头部探测和定位步骤,因为每个探测器也能够区分头部和非头部。 可以通过将检测器应用于图像中的许多子区域来执行同时检测和姿势估计。 另一个改进是,与外观模板不同,探测器阵列采用训练算法,学习忽略与姿势变化不对应的外观变化。 探测器阵列也非常适合高分辨率和低分辨率图像。
探测器阵列方法还存在一些缺点。为每个离散姿势训练许多探测器是很麻烦的。对于用作头部检测器和姿势估计器的探测器阵列,还必须在许多负面非面部示例上训练,这需要显着更多的训练数据。另外,随着检测器数量的增加,可能会出现系统性问题。如果两个探测器适应非常相似的姿势,那么作为一个探测器的正面训练示例的图像必须是另一个的负面训练示例。当正面和负面的例子在外观上非常相似时,尚不清楚突出的检测方法是否可以学习成功的模型。实际上,在实践中,这些系统仅限于一个自由度和少于12个检测器。此外,由于大多数检测器具有二进制输出,因此无法从结果导出可靠的连续估计,仅允许粗头部姿势估计并在多个检测器同时对正图像进行分类时产生模糊。最后,计算要求随着探测器的数量线性增加,使得难以实现具有大阵列的实时系统。作为对这最后一个问题的解决方案,已经建议路由器分类器可以用于挑选单个后续检测器以用于姿势估计[103]。在这种情况下,路由器有效地确定姿势(即,假设这是一个面部,它的姿势是什么?),并且随后的检测器确认该选择(即,这是由路由器指定的姿势的面部?)。虽然这种技术在理论上听起来很有前途,但应该注意的是,它没有被证明是俯仰或偏航变化,而是仅仅用于相机平面的旋转,首先使用基于神经网络的人脸检测器[103],后来与级联AdaBoost探测器[53]。
3.非线性回归方法
非线性回归方法通过学习从图像空间到一个或多个姿势方向的非线性函数映射来估计姿势。 图5中提供了图示。这些方法的吸引力在于,利用一组标记的训练数据,可以构建模型,该模型将为任何新的数据样本提供离散或连续的姿势估计。 使用这些方法的警告是,不清楚特定回归工具能够如何很好地学习正确的映射。
图像的高维性对某些回归工具提出了挑战。 如果可以减少数据的维数,例如使用主成分分析(PCA)[64,65],或使用局部梯度方向直方图[86],后者给出了使用支持向量回归器(SVR)的成功头部姿势估计的准确度更高。 或者,如果预先知道面部特征的位置,则可以对在这些点处提取的相对低维的特征数据使用回归工具[70,78]。
还可以训练MLP以在连续姿势范围内进行精细头部姿势估计。 在该配置中,网络对于每个DOF具有一个输出,并且输出的激活与其对应的方向成比例[108,115,117,129,130]。 或者,可以针对每个DOF单独训练具有单个输出节点的一组MLP网络。 这种方法已被用于从室内环境中的多个远场摄像机观察的头部,使用背景减法或滤色器来检测面部区域和贝叶斯过滤以融合和平滑每个单独摄像机的估计[120,128-130]。
局部线性映射(LLM)是另一种流行的神经网络,由许多线性映射组成[100]。 为了构建网络,将输入数据与每个地图的质心样本进行比较,并用于学习权重矩阵。 头部姿势估计需要最近邻居搜索最近的质心,然后使用相应的地图进行线性回归。 这种方法可以通过差分向量和降维[11]以及用Gabor小波分解[56]来扩展。
如前面提到的SVR,可以使用来自面部特征位置的数据训练神经网络。 这种方法已经用关联神经网络进行了评估[33,34]。
神经网络方法的优点很多。 这些系统非常快,只需要裁剪标记的面部进行训练,在近场和远场图像中工作良好,并在实践中给出一些最准确的头部姿势估计(参见第IV节)。
这些方法的主要缺点是它们容易因头部定位不良而出错。 作为一种建议的解决方案,卷积网络[62]通过明确地建模一些移位,比例和失真不变性来扩展MLP,可用于减少这种误差源[95,96]。
4.流形嵌入方法
尽管头部的图像可以被认为是高维空间中的数据样本,但是本质上存在许多较少的姿势可以变化的维度。 对于头部的刚性模型,这可以是三个方向的定向和三个的位置。 因此,可以认为每个高维图像样本位于由可允许的姿势变化约束的低维连续流形上。 对于头部姿势估计,必须对流形进行建模,并且需要嵌入技术将新样本投影到流形中。 然后,可以使用诸如嵌入空间中的回归或嵌入模板匹配之类的技术将该低维嵌入用于头部姿势估计。 任何降维算法都可以被认为是对多种嵌入的尝试,但挑战在于创建一种能够在忽略其他图像变化源的同时成功恢复头部姿势的算法。
两种最流行的降维技术,主成分分析(PCA)及其非线性核化版本KPCA,从一组数据样本中发现了主要的变化模式[23]。可以用PCA估计头部姿势,例如,通过将图像投影到PCA子空间中并将结果与一组嵌入模板进行比较[75]。已经表明,与使用Gabor小波预处理的外观模板匹配相比,这种低维空间中的相似性更可能与姿势相似性相关[110,111]。然而,PCA和KPCA是用于头部姿势估计的较差技术[136]。除了标准PCA的线性限制不能充分表示由姿势变化引起的非线性图像变化之外,这些方法是无监督技术,其不包含训练期间通常可用的姿势标签。因此,无法保证主要成分与姿势变化有关,而与外观变化无关。可能它们与两者都有关。
为了缓解这些问题,可以通过将训练数据分成每个共享相同离散头部姿势的组来将外观信息与姿势分离。然后,可以应用PCA和KPCA为每个组生成单独的投影矩阵。这些姿势特定的本征空间或姿势空间每个代表外观变化的主要模式,并提供独立于姿势变化的分解。可以通过对图像进行归一化并将其投影到每个姿势本征空间中来估计头部姿势,从而找到具有最高投影能量的姿势[114]。或者,嵌入的样本可以用作一组分类器的输入,例如多类SVM [63]。然而,作为对KPCA局限性的证明,已经表明通过完全跳过KPCA投影并使用局部Gabor二进制模式,可以通过一组多类SVM大大改善姿态估计[69]。姿势本征空间具有不幸的副作用。估计精细头部姿势的能力丢失,因为与探测器阵列一样,估计值来自一组离散的测量值。如果只需要粗头姿态估计,最好使用多类线性判别分析(LDA)或核心版本KLDA [23],因为这些技术可用于找到最佳数据的变化模式。考虑离散姿势类之间的差异[15,136]。
其他流形嵌入方法已经显示出对头部姿势估计的更多前景。 这些包括等距特征映射(Isomap)[101,119],局部线性嵌入(LLE)[102]和拉普拉斯特征映射(LE)[6]。 要使用这些技术中的任何一种来估计头部姿势,必须有一个程序将新数据样本嵌入到现有的流形中。 Raytchev等人[101]描述了Isomap流形的这种过程,但是对于LLE和LE流形中的样本外嵌入,没有明确的解决方案。 对于这些方法,必须使用近似技术嵌入新样本,例如广义回归神经网络[4]。 或者,LLE和LE可以用它们的线性近似,局部嵌入分析(LEA)[27]和局部保持投影(LPP)[39]代替。
到目前为止提到的流形嵌入方法仍然存在一些缺点。除了LDA和KLDA之外,这些技术中的每一种都以无人监督的方式运行,忽略了训练期间可能提供的姿势标签。因此,他们倾向于建立身份和姿势的流形[4]。作为该问题的一种解决方案,通过为可以对齐在一起的每个主体创建单独的流形,可以将身份与姿势分开。例如,高维椭圆可以适合一组Isomap流形中的数据,然后用于归一化流形[45]。要从特征空间映射到嵌入空间,可以使用径向基函数执行非线性插值。然而,即使这种方法也有其缺点,因为外观变化可能是由身份和姿势以外的因素引起的,例如照明。对于更一般的解决方案,不是为每个变化制作单独的流形,而是可以创建单个流形,其使用偏向于具有较小姿势差异的样本的距离度量[4]。这种变化被证明可以改善Isomap,LLE和LE的头部姿势估计性能。
另一个需要考虑的难点是训练数据的异质性,这在许多现实世界的训练场景中很常见。 为了塑造身份,需要多个人来训练流形,但通常不可能从每个人那里获得姿势的定期抽样。 相反,训练图像包括从一些连续测量装置采样的每个人的不相交的姿势组。 针对该问题的建议补救措施是为每个受试者创建个性化子流形,并使用它们来呈现受试者之间缺失的离散姿势的虚拟重建[142]。 这项工作引入了同步子流形嵌入(SSE),这是一种线性嵌入,可创建一个投影矩阵,最大限度地减少每个样本与其最近的重建邻居之间的距离(基于姿势标签),同时最大化来自同一主体的样本之间的距离。
本节中描述的所有流形嵌入技术都是线性或非线性方法。 线性技术的优点是嵌入可以通过矩阵乘法来执行,但它们缺乏非线性技术的表示能力。 作为这些方法之间的中间点,全局头部姿势流形可以通过一组局部线性流形来近似。 已经证明了使用PCA,LDA和LPP进行头部姿势估计[66]。
5.柔性模型
先前的方法已经将头部姿势估计视为信号检测问题,将图像像素的矩形区域映射到特定的姿势方向。 柔性模型采用不同的方法。 利用这些技术,非刚性模型适合于图像,使得其符合每个人的面部结构。 除了姿势标签之外,这些方法还需要具有带注释的面部特征的训练数据,但它使他们能够在特征级别而不是在全局外观级别进行比较。 概念图示见图7。
回忆第1节中的外观模板方法。为了估计姿势,新头部的视图覆盖在每个模板上,并且基于像素的度量用于比较图像。然而,即使有完美的配准,两个不同的人的图像也不会准确对齐,因为人脸之间的面部特征的位置不同。现在,考虑一个基于局部特征点(眼角,鼻子,嘴角等)的可变形图的模板。为了训练该系统,在每个训练图像中手动标记面部特征位置,并且可以在每个位置提取诸如Gabor小波的局部特征描述符。可以从多人的视图中提取这些特征,并且可以通过在每个节点处存储一堆描述符来实现额外的不变性。这种表示被称为弹性束图[57],并具有表示非刚性或可变形对象的能力。为了将束图与新的脸部图像进行比较,将图形放置在图像上,并且穷尽地或迭代地变形以找到每个图形节点位置处的特征之间的最小距离。该过程称为弹性图匹配(EGM)。对于头部姿势估计,为每个离散姿势创建不同的束图,并且将这些束图中的每一个与头部的新视图进行比较。具有最大相似度的束图为头部分配离散姿势[55,136]。因为EGM使用位于特定面部点的特征,所以与未对齐点相比,主体间变异性明显更小。这使得模型之间的相似性更可能等同于姿势的相似性。该方法的缺点在于姿势估计是离散的,需要许多束图来获得精细的头部姿势估计。不幸的是,与大多数其他头部姿势估计技术相比,比较许多具有许多变形的束图是计算上昂贵的。
另一个为头部姿势估计而演变的柔性模型是主动外观模型(AAM)[19],它从2D角度学习面部形状和纹理的主要变化模式。考虑一组M个特定的面部穴位(可能是眼角,耳尖,鼻孔,下巴和嘴巴)。每个点在图像中具有2D坐标,并且这些点可以通过面部特征排序并且连接成长度为2M的矢量。如果针对许多面部计算这些特征向量,跨越可以找到所有特征的不同个体和姿势,则可以使用它们来找到面部形状的变化。在该数据上使用诸如PCA的降维技术得到活动形状模型(ASM)[17],能够表示形状变化的主要模式。只需查看最大的主成分,就可以找到数据中与俯仰和偏航变化相对应的方向[60,61]。如果在新图像中已知面部特征的位置,则可以通过将特征位置投影到形状子空间中并评估负责姿势的组件来估计姿势。这可以通过用纹理信息增加ASM并执行迭代搜索以使形状适合于面部的新图像来实现。早期工作在每个特征点提取局部灰度轮廓,并使用贪婪搜索来匹配特征点[60,61]。后来,介绍了AAM的关节形状和纹理[19]。
要构建AAM,首先必须从一组训练数据生成ASM。 接下来,必须扭曲面部图像,使得特征点与平均形状的特征点匹配。 扭曲的图像应该被标准化,然后用于构建无形状的纹理模型(最初是基于纹理的PCA子空间)。 最后,学习形状和纹理之间的相关性并用于生成组合外观(形状和纹理)模型[24]。 给定面部形状的粗略初始化,通过迭代地将渲染的外观模型与观察的图像进行比较并调整模型参数以最小化这两个图像之间的距离度量,可以使AAM适合新的面部图像。 一旦模型收敛到特征位置,就可以通过将外观参数映射到姿势估计来获得头部姿势的估计,一个简单的例子是使用线性回归的偏航估计[18]。
自成立以来,AAM已经走过了漫长的道路。 基于逆成分图像对齐算法的拟合方法克服了外观误差如何与梯度下降搜索相关的线性假设,并允许更准确,实时的收敛[72]。 跟踪视频序列上的AAM也可以用于估计3D形状模式,其随后可以被重新引入以约束2D AAM拟合过程[140]。 一旦学习了3D约束,AAM就可以用于直接估计头部的3D方向。 或者,由于AAM形状点具有一对一的对应关系,因此可以使用运动结构(SFM)算法来估计面部的3D形状,以及两个视频帧之间的相对姿势差异[35]。 与AAM的进一步合作已经引入了修改,将其实用性扩展到驾驶员头部姿态估计[3]和多个相机[44]。
AAM对头部定位误差具有良好的不变性,因为它们适应图像并找到面部特征的确切位置。 这允许精确和准确的头部姿势估计。 AAM的主要限制是所有面部特征都需要位于每个图像帧中。 在实践中,这些方法限于头部姿势取向,双眼的外角是可见的。 对于具有低分辨率面部图像的远场头部姿势估计,AAM拟合算法也可以成功地操作也是不明显的。
6.几何方法
大多数计算机视觉姿势估计方法与心理物理实验结果之间存在很大差异。 虽然前者主要关注基于外观的解决方案,但后者认为人类对头部姿势的感知依赖于提示,例如鼻角的偏差和头部与双侧对称的偏差[133]。 这些效果和其他因素,例如面部相对于头部轮廓的位置,强烈地影响人类对头部姿势的感知,表明这些是关于头部方向的非常突出的线索。 头部姿势估计的几何方法使用头部形状和局部特征的精确配置来估计姿势,如图8所示。这些方法特别有趣,因为它们可以直接利用已知影响人体头部姿势估计的特性。
早期的方法集中在从一组面部特征位置估计头部。 假设这些特征是已知的,并且可以直接从这些点的配置估计该姿势。
可以通过多种方式利用面部特征的配置来估计姿势。使用五个面部点(每只眼睛的外角,嘴的外角和鼻尖),通过连接眼睛中点和嘴中点之间的线来找到面部对称轴[30] 。假设这些面部点与鼻子的固定长度之间具有固定的比率,则可以从鼻子的3D角度在弱透视几何形状下确定面部方向。或者,可以使用相同的五个点来确定从法线到平面的头部姿势,这可以从平面偏斜对称和鼻子位置的粗略估计中找到[30]。可以使用不同的5个点(每只眼睛的内角和外角以及鼻尖)来获得姿势的另一个估计[42]。在假设所有四个眼点都被假设为共面的假设下,可以根据来自已知摄像机参数的投影失真,从左眼和右眼之间的可观察的大小差异来确定偏航。可以从地平线的这条线的角度简单地找到滚动。通过比较鼻尖和眼线之间的距离与人体测量模型来确定俯仰。然而,与前两种方法不同,该技术没有提出改进近前视图的姿态估计的解决方案。这些配置称为退化角,因为它们需要非常高的精度才能使用该模型精确估计头部姿势。最近提出了另一种使用每只眼睛的内角和外角以及嘴角的方法,这些方法在图像中自动检测[132]。观察结果是外眼角,内眼角和嘴之间的三条线是平行的。在图像平面中任何观察到的与平行的偏差都是透视畸变的结果。消失点(即,这些线在图像平面中相交的位置)可以使用最小二乘法来计算,以最小化三线的超定解。如果已知长度比率,则该点可用于估计平行线的3D取向,并且如果实际线长度已知,则可用于估计每个特征点的绝对3D位置。由于该信息在身份上不同,因此具有高斯混合模型的EM算法可以调整每个人的面部参数以最小化反投影误差。这种方法的缺点是只有在姿势足够接近正面视图才能看到所有面部线条时,才能估计姿势。
这些几何方法快速而简单。 只需几个面部特征,就可以获得合适的头部姿势估计。 显而易见的困难在于以高精度和准确度检测特征,但更微妙的挑战源于处理异常或缺失特征检测。 在这种情况下,远场图像是有问题的,因为分辨率可能使得难以或不可能精确地确定特征位置。 此外,经常出现的情况可能会永久性地掩盖面部标志,例如当一个人戴着眼镜并遮挡他的眼角时。 考虑到几何方法取决于面部点的准确检测,它们通常比使用来自整个面部区域的信息的基于外观的方法对遮挡更敏感。
值得注意的是,甚至非常简单的几何线索也可用于估计头部姿势。 将椭圆拟合到渐变轮廓和面部颜色可以为一个自由度提供粗略的姿态估计[20]。 对于近前面,通过在眼睛和嘴之间创建一个三角形并找到它与纯等腰三角形的偏差,可以可靠地估计面部的偏航[90]。 通过围绕头部的多个摄像头,可以将偏航估计为具有最多肤色的方向[12]或使用肤色模板[13]。 同样地,可以通过有效地登记面部相对于分割的面部区域的位置来估计面部的位置[141]。
7.跟踪方法
跟踪方法通过跟随视频序列的连续帧之间的头部的相对移动来操作,如图9所示。利用时间连续性和平滑运动约束来提供姿势随时间的视觉上吸引人的估计。 这些系统通常表现出高精度(参见第IV节),但必须从已知的头部位置进行初始化。 通常,受试者必须在系统开始之前保持正面姿势,并且必须在轨道丢失时重新初始化。 结果,方法通常依赖于手动初始化或摄像机视图,使得对象的中性头部姿势是前视的并且使用正面检测器容易地重新初始化。
跟踪方法可以以自下而上的方式操作,遵循帧与帧之间的低级面部标记。早期工作考虑了六个特征点(使用相关窗口跟踪)并确定了弱视角几何体的头部运动[31]。更复杂的方法是假设人脸是正交空间中的平面表面。在这种情况下,通过使用加权最小二乘法来确定任意两个帧之间的最佳仿射变换,可以恢复两个自由度。问题被简化为旋转模糊,其能够提供头部方向[145]。早期的方法使用传统的最小二乘法来拟合仿射几何[73]和弱透视几何[121]下自动选择的面部点。全局SSD跟踪器粗略地跟随整个面部,因为在该区域内跟踪了本地特征。最近,这些方法已演变成更复杂的技术,使特征点与稳健的SIFT [68]描述符匹配,并使用3D面部形状[93,144]的先验知识或立体声和基于RANSAC的匹配[147]来恢复姿势变化全视角投影。
跟踪可以替代地采用基于模型的方法,通过找到最能解释观察到的头部运动的模型的变换。对于头部姿势估计,通常使用头部的刚性3D模型。为了估计头部姿势,人们只需要找到最适合每个新的基于图像的观察的模型的旋转和平移。这可以通过将头部图像纹理映射到3D模型上来实现。在最简单的实现中,这可以手动完成,然后可以通过搜索离散的变换集来估计头部姿势,以找到最小化新帧和模型之间的外观差异的变换[98]。这可以使用梯度下降搜索[107]改进为连续姿态测量,并进一步细化光流以指导优化[71]。此外,由于全局外观模型在动态照明引入部分阴影等效果时会受到影响,因此可以使用在一组局部区域上平均的相似性度量[138]。
通常,通过仿射变换可以获得合理的精度(例如,使用立体摄像机装置,可以找到相对姿势变化作为平移和旋转,最小化灰度强度和深度的最小二乘意义上的误差[37,80])。 已经提出了一种类似的方法,其使用时间偏光传感器,其使用2D运动场的恒定性和来自光流的深度[150]。
跟踪方法的主要优点是它们能够通过发现视频帧之间的小姿势偏移来高精度地跟踪头部。 在这种跟踪配置中,这些方法始终优于其他头部姿态估计方法(参见第IV节)。 基于模型的跟踪的另一个优点是能够动态构建个人头部的个性化原型。 这允许这些方法避免外观变化的不利影响。
跟踪方法的难点在于准确初始化位置和姿势以生成新模型或调整现有模型。 没有单独的定位和头部姿势估计步骤,这些方法只能用于发现帧之间的相对变换。 在这种操作模式中,这些方法不是在绝对意义上估计头部姿势,而是跟踪头部的运动。 然而,对于某些应用,仅需要相对运动。 一些示例包括使用手动初始化的圆柱模型跟踪头部和递归最小二乘优化[14],或通过使用可变形的拟人3D模型进行跟踪[21]。 跟踪方法可以自动初始化,使用动态模板在头部姿势估计值接近原始视图时重新创建模型[139]。
这些模型跟踪方法可以通过基于外观的粒子滤波[38,51]来改进,以结合关于头部动态的先验信息。在经典的粒子滤波器中,在每个时间步长观察物体的状态,并假设它是有噪声的;通过使用模拟的样本集最大化给定观察的运动的后验概率,可以找到最佳轨迹。对于基于外观的粒子滤波,不是观察头部绝对位置和方向的噪声样本,而是在每个时间步长获得头部的图像。观察噪声可以忽略不计,而难度则取决于从图像像素推断对象的状态。这种基于外观的过滤问题可以用类似的结构解决。使用先前动态模型生成一组姿势样本,并用于呈现具有不同变换的模型的视图。可以将每个虚拟图像直接与观察到的图像进行比较,并且这些比较可以用于更新粒子滤波权重。该技术允许在各种环境中进行准确的实时头部姿态跟踪,包括近场视频[22],具有自适应PCA子空间的低分辨率视频[124],具有仿射近似的近场立体声[94],以及白天和使用双线性状态模型的夜间驾驶视频[85]。
8.混合方法
混合方法将一种或多种上述方法组合以估计姿势,如图10中的示例所示。可以设计这些系统以克服任何一个特定头部姿势类别的限制。通常的实施例是用跟踪系统补充静态头部姿势估计方法。静态系统负责初始化,跟踪系统负责随时间维持姿势估计。如果跟踪器开始漂移,静态系统可以重新初始化轨道。该方法产生高精度的纯跟踪方法,无需初始化和漂移限制。通过将自动几何方法与点跟踪[40,43,46,52,87],PCA嵌入模板与光流匹配[151],PCA嵌入模板与连续密度隐马尔可夫模型匹配,提出了许多成功的组合[ 49],PCA嵌入模板关键帧与灰度和深度恒定[81]的立体跟踪匹配,以及基于图像的粒子滤波的颜色和纹理外观模板[1]。
还介绍了这些作品的一些值得注意的扩展。 Morency等人的工作。 [81]扩展了基于姿势的本征空间,从单一初始化中综合生成新模板[82]。 Ba和Obodez [1]后来扩展和改进了他们的技术,用于多个摄像机和远场图像[2]。
混合系统还可以使用两种或更多种独立技术,并将来自每个系统的估计融合成单个结果。 在这种情况下,系统从多个线索获得信息,这些信息一起提高了估计精度。 具体示例包括外观模板与几何线索匹配(也使用粒子滤波器)[109]和由弹性图匹配[136,137]细化的流形嵌入估计。
IV. 头部位置估计比较
1.地面真实数据集
为了评估和比较头部姿态估计系统,需要一种准确的方法来测量一组评估数据的基本事实。 通常,基础事实对于训练任何头部姿势估计方法是必不可少的。 以下列表描述了捕获此基础事实数据的最常用方法,从最不准确(粗略)到最准确(精细)的近似顺序
定向建议
将一组标记放置在房间周围的离散位置,并要求每个人类对象将头部指向每个位置,同时摄像机捕获每个位置的离散图像[33]。 这种方法是基础事实的不良来源。 首先,它假设每个受试者的头部在3D空间中处于完全相同的物理位置,使得相同的头部方向对应于相同的姿势取向。 其次,最重要的是,它假设一个人有能力准确地将他们的头部指向一个物体。 不幸的是,这是一项主观任务,人们往往表现得相当糟糕。 例如,在广泛使用的Pointing '04数据集[125]中可以看到主观错误。
使用激光指示器的方向建议
这种方法与方向性建议相同,但激光指示器固定在受试者的头部[100]。这允许受试者通过视觉反馈以更高的精度精确定位房间中的离散位置,但是仍假设受试者的头部位于空间中的相同点处,使得方向等同于头部姿势。在实践中,这很难确保,因为人们在数据捕获期间倾向于改变其头部位置。
手动注释
人脸图像由人根据自己对姿势的感知分配姿势标签来查看。对于1自由度中的粗略姿势组合,这可能就足够了,但是对于精细的头部姿势估计是不合适的。
相机阵列
在这种方法中,处于已知位置的多个相机同时从不同角度捕获人脸的图像。如果在捕获期间注意确保每个受试者的头部位于相同位置,则该方法提供高度准确的基础事实。缺点是这仅适用于近场图像,不能应用于精细姿势或真实世界视频。
磁性传感器
磁性传感器,例如Polhemus FastTrak或Ascension Flock of Birds,通过发射和测量磁场来工作。传感器可以固定在受试者的头部,用于确定头部的位置和方向角[89]。由于这些客观的姿势估计是相对可承受的,因此它们是最广泛使用的客观基础事实来源。这些产品的理论精度小于1°,但根据我们的个人经验,我们发现它们非常容易受到噪音的影响,并且环境中即使是最小量的金属也是如此。可以收集数据的环境受到严格限制,因此使用这些传感器不可能进行某些应用,例如汽车头部姿态估计。
惯性传感器
惯性传感器利用加速度计,陀螺仪或其他通常与卡尔曼滤波器耦合的运动传感设备来降低噪声。最便宜的惯性传感器,例如Mindflux InertiaCube2,不测量位置,而只测量3自由度的方向。与磁传感器相比的优势在于,在获得类似的理论精度的同时,没有金属干扰。对于头部姿势估计,传感器可以在数据捕获期间固定到受试者的头部[81]。
光学运动捕捉系统
光学运动捕捉系统是强大,昂贵的部署,最常用于专业电影捕捉关节的身体运动。通常,校准的近红外相机阵列使用多视图立体声和软件算法来跟踪附着于人的反射或主动标记。对于头部姿势估计,这些标记可以固定在受试者头部[86]的背面,用于跟踪绝对位置和方向。光学运动捕捉系统的一些示例包括Vicon MX和Phoenix Technologies Visualeyez。
使用这些技术,已经收集了各种范围,准确性,可用性和流行度的数据集。第20页的表V包含对重要集合的描述。
2.公布结果的比较
俯仰,旋转和偏航的平均绝对角度误差是用于评估头部姿势估计系统的常见信息度量。此度量标准可用于评估具有粗略或精细姿势标签的数据集上的系统,并提供单个统计信息,可深入了解竞争方法的准确性。此处讨论的许多论文都使用此指标进行评估。关于粗略和精细数据集的报告结果分别在表II和表III中描述。对于粗头姿势估计,通常通过分类误差来评估方法(即,用正确的姿势标签正确地标记特定离散姿势角的图像的频率)。虽然证明了系统的有效性,但结果取决于离散姿态的数量(更多离散姿势使更具挑战性的数据集)。此外,这种表示几乎没有提供关于每个错误分类的特征的信息(选择了附近的姿势,还是错误分类是一个广泛不正确的估计?)。无论这些限制如何,分类误差经常被用于评估头部姿势估计方法。表II中描述了这些错误的报告结果以及每个数据集中离散姿势的数量。
从这些表格中,可以进行一系列观察。 在Pointing '04数据集中,MLP神经网络[117]的非线性回归具有最低的报告平均角度误差(MAE),证明了这种非线性回归方法的强大表征能力,不仅可以估计头部姿势,还可以学习映射。 可以容忍训练数据中的系统误差,如第20页的表V所述。相比之下,当被要求执行偏航估计的类似任务时,人们不会学习这种误差的不变性并且表现出明显更差的性能[34]。 在多相机CHIL-CLEAR07评估数据集上,使用SSE的流形嵌入提供了最准确的结果。 这表明流形嵌入方法可以提供更好的表征能力,尽管在本文提出的所有技术中,只有线性SSE嵌入已经用非均匀训练数据进行了评估。
已经针对不同的流形嵌入方法进行了一系列比较。在Pointing '04数据集中,Local-LDA比PCA,LDA,LPP,LocalPCA和Local-LPP产生更好的偏航估计[66],但是对于俯仰估计,标准LDA提供了比这些其他技术更好的结果。这些嵌入的局部版本不能均匀地改善姿势估计的事实可能受到为每个新样本选择正确的局部投影的能力的限制。在CVRR-86数据集上,KLDA显示出优于PCA,LDA和KPCA,清楚地证明了核化版本为姿势估计提供了更好的嵌入[136]。在Softopia HOIP数据集上,已经证明使用Isomap投影到8维足以获得优于100维的PCA和LPP子空间的结果[101]。这应该激发对非线性嵌入方法的持续研究,因为表征能力的提高可以导致姿势估计的大幅改进。
使用柔性模型和跟踪方法[14,81,82,94,124,140,147]跟踪视频序列中的头部的方法报告的误差明显低于估计单个图像中的姿势的系统。 虽然这些系统使用不能直接比较的不同数据集,但根据我们的经验,视觉跟踪方法提供的误差远远少于从单个视频帧估计头部姿势误差并暂时过滤结果的系统。
3.实际适用性的比较
对于通常使用的头部姿势估计系统,它应该是不变的,具有足够的允许运动范围,不需要人工干预,并且应该容易地部署在传统硬件上。尽管一些系统解决了所有这些问题,但它们通常假设一个或多个条件来简化姿势估计问题,但是以一般适用性为代价。我们已经确定了文献中常用的以下假设:
A.连续视频假设。
存在连续视频流,帧之间仅具有小的姿势变化,因此可以通过每帧之间的增量相对移位来估计头部姿势。
B.初始化假设。
当姿势估计过程开始时,对象的头部姿势是已知的。在实践中,通常告知受试者在系统开始之前采取正面姿势,或者系统等待直到正面面部检测器发现正面姿势。
C.反漂移假设。
头部姿势仅在短时间内计算,在此期间视觉信息不会出现明显的异常。如果违反了该假设,则姿势估计系统将受到漂移,并且姿势的持续估计将具有大的误差。
D.立体视觉假设。
两个或多个摄像机在足够小的距离处可以看到对象,以区分整个面部的深度信息。或者,深度信息可以通过其他专门手段获得,例如飞行时间传感器[150]。
E.正面观点假设。
姿势变化仅限于包含从正面视图看到的所有面部特征的范围。
F.单自由度假设。
头部仅允许围绕一个轴旋转。
G.特征位置假设。
面部特征的位置被提供给系统。这通常意味着在测试数据中手动标记面部特征。
H.熟悉的身份假设。
系统只需要为受过训练的人或一组人估计姿势。
I.合成数据假设。
系统仅对合成图像进行操作,这些合成图像不包含实际图像中的外观变化。
这些假设限制了任何系统的适用性,即使在受限环境中显示非常成功。无论估计精度如何,重要的是识别适用于现实世界环境(例如汽车和智能空间)中的头部姿态估计的系统。这样的系统应该在至少两个自由度下提供头部姿势的身份不变估计,而无需任何人工干预。对于具有离散姿态估计的系统,固定姿势的数量必须足够大以足以对连续姿势空间进行采样。这些系统在表IV中以粗体表示,其中包含本调查所涵盖的所有论文的综合列表。
V.总结
头部姿势估计是弥合人与计算机之间信息差距的自然步骤。 这种基本的人类能力提供了有关人们的意图,动机和注意力的丰富信息。 通过模拟这种技能,可以创建可以更好地与人交互的系统。 大多数头部姿势估计方法假设刚性模型的视角,其具有固有的局限性。 创建头部姿势估计系统的困难源于个体外观的巨大变化以及照明,背景和相机几何形状的差异。
按时间顺序查看头部姿势估计的进展情况,我们注意到该领域取得了一些令人鼓舞的进展。近年来,人们越来越意识到需要强调姿势变化而不是图像变化的比较指标。这种趋势表现为外观模板的消亡和非线性流形嵌入方法的爆炸。粗头姿势估计也在消失,因为最近的工作集中在精细估计和多个自由度上。因此,在过去几年中引入了新的数据集,可以在具有挑战性的环境中进行更准确的评估。我们觉得仍有很大的空间可以继续改进。基于模型的跟踪算法已显示出巨大的希望,但它们需要对标准数据集进行更全面的评估才能了解其潜力。几何方法尚未充分发挥其潜力,但现代方法可以自动且可靠地检测面部特征位置,并且这些方法应该继续发展。观察到的另一个重要趋势是过去几年中头部姿势出版物数量的增加。这可能表明更多人对这一领域产生了兴趣,这表明新方法的发展周期更为迅速。
虽然头部姿势估计将继续是一个令人兴奋的领域,有很大的改进空间,但是人们需要可以在任何新应用中使用的现成的通用头部姿势估计程序。 为了满足大多数应用,我们提出以下设计标准作为未来发展的指南。
准确:系统应提供合理的姿势估计,平均绝对误差为5°或更小。
单眼:系统应该能够从单个摄像头估计头部姿势。虽然立体声或多视图图像可以提高准确度,但这不应该是系统运行的要求。
自主:不应期望手动初始化,检测或定位,从而排除使用纯跟踪方法来测量相对于某些初始配置和假设面部特征位置已知的形状/几何方法的相对头部姿势。
多人:系统应该能够估计一个图像中多个人的姿势。
身份和照明不变:系统必须使用许多环境中的动态照明来处理所有身份。
分辨率独立:系统应适用于具有高分辨率和低分辨率的近场和远场图像。
全方位的头部运动:即使面部远离摄像机,该方法也应能够提供平稳,连续的俯仰,偏航和侧倾估计。
实时:系统应该能够通过快速(30fps或更快)的操作来估计连续的头部方向。
虽然没有一个系统符合所有这些标准,但似乎解决方案即将到来。 我们认为,通过在合适的混合方法中使用今天的方法(可能是多种嵌入,回归或几何方法与基于模型的跟踪系统相结合的组合),人们可以满足这些标准。
对于未来的工作,我们期望看到非线性流形嵌入技术对具有挑战性的远场图像的评估,证明这些方法在存在杂波或不完美的定位的情况下提供持续改进。 我们希望看到几何和跟踪方法的扩展,使模型适应每个主题的个人面部几何,以获得更准确的模型拟合。 对于灵活的模型,一个重要的改进是选择性地忽略模型的某些部分是自我遮挡的能力,克服了其他非常有希望的类别的基本限制。 最后,我们描述了一些应用领域,其中头部姿势估计已经并将继续产生深远的影响。
头部姿态估计系统将在创建智能环境中发挥关键作用。 人们已经对智能房间产生了浓厚的兴趣,这些房间可以监控乘客并使用头部姿势来测量他们的活动和视觉焦点[5,50,74,92,99,116,122-124,128,131]。 头部姿势赋予这些系统以确定谁与谁交谈的能力,并提供分析会议参与者的非语言姿势所需的信息。 这些类型的高级语义提示可以与会议参与者的对话,意图和人际交互一起转录,以提供易于搜索的索引以供将来参考。
头部姿态估计可以实现突破性的计算接口。 一些现有的例子包括允许用户使用他的头部姿势运动来控制计算机鼠标的系统[28],用头部点头和摇动来响应弹出对话框[84],或者使用头部姿势与具体代理进行交互[83]]。 将类似的估计算法集成到具有大量吸引力的娱乐设备中似乎只是时间问题。
头部姿态估计将对汽车安全的未来产生深远的影响。汽车驾驶员从根本上受到人们在任何时候都能观察到的视野的限制。当一个人没有注意到他的环境发生变化时,如果驾驶员被警告出现看不见的危险,则可能会减轻危及生命的碰撞的可能性。作为这方面的证据,最近一项关于汽车碰撞的综合调查显示,当有一名或多名乘客时,驾驶员造成与伤害相关的碰撞的可能性降低了31%[105]。因此,人们对充当虚拟乘客的驾驶员辅助系统非常感兴趣,使用驾驶员的头部姿势作为注意力和精神状态的视觉焦点的提示[3,16,36,48,85,86,98,135,151] ]。尽管车辆中快速变化的照明条件成为最困难的视觉环境之一,但最近的这些系统展示了一种全自动的实时混合方法,可以估计姿势并在白天或夜间跟踪驾驶员的头部驾驶[85]。
我们相信无处不在的头部姿势估计超出了我们当前系统的掌握范围,我们呼吁研究人员改进和扩展本文所述的技术,以便在人类交互和安全系统中实现改变生活的进步。