DeepPose:Human Pose Estimation via Deep Neutral NetWorks

                                                DeepPose

论文原文:https://arxiv.org/pdf/1312.4659.pdf

 

 图1.除了关节的极度变异性外,许多关节几乎看不见。我们可以在左边的图像中猜测右臂的位置,这仅仅是因为我们看到了其余的姿势,并预测了这个人的动作或活动。同样的,右边的图片中左边的身体一半根本看不见。这些是需要进行整体推理的例子。我们相信,DNNs能够自然地提供这种类型的推理。

摘要

我们提出了一种基于深度神经网络(DNN)的人体姿态估计方法。姿势估计被公式化为针对身体关节的基于DNN的回归问题。我们提出了一系列这样的DNN回归量,这导致了高精度的姿态估计。该方法具有以整体方式推理姿势的优点,并且具有简单但强有力的表述,其利用了深度学习的最新进展。我们提出了一个详细的实证分析,在四个学术基准不同的现实世界图像有更好的状态或表现。

1 介绍

人体姿态估计问题,定义为人体关节的定位问题,在计算机视觉界引起了广泛的关注。在图1中,我们可以看到这个问题的一些挑战:强韧的关节,几乎看不见的小关节,遮蔽问题,以及捕捉上下文的需要。这一领域的主要工作主要是受到第一个挑战的推动,即需要在大空间中寻找所有可能的关节姿态。基于部分的模型很自然地适用于建模关节([16,8]),近年来已经提出了各种具有高效推理的模型([6,19])。

然而,上述效率的实现是以有限的表达能力为代价的,用局部检测器在许多情况会导致单个部分的问题,最重要的是,只对身体各部分之间所有交互的一小部分建模。这些局限性,如Fig. 1所示,已经得到了公认,并提出了以整体的方式进行姿态推理的方法[15,21],但在现实世界问题上取得了有限的成功。

在这项工作中,我们归因于对人类姿态估计的整体看法。我们利用深度学习的最新发展,提出了一种基于深度神经网络的新算法。DNNs在视觉分类任务[14]和最近的对象定位上都有突出的表现[23,9]。然而,将DNNs应用于精确定位关节对象的问题在很大程度上仍未得到解答。在本文中,我们试图阐明这个问题,并提出一个简单而有力的整体人体姿态估计的公式作为DNN。

我们将位姿估计描述为一个联合回归问题,并演示如何在DNN设置中成功地进行位姿估计。每个个体的关节位置利用输入的完整图像和7层的一般卷积神经网络回归得到。这种提法有两个优点。首先,DNN能够捕获每个关节的完整上下文,每个关节回归器使用完整的图像作为信号。其次,与基于图形模型的方法相比,这种方法更容易表达,不需要显式地为每一部分设计特征表示和检测器;不需要显式地设计模型拓扑和节点之间的交互。相反,我们展示了一个通用的卷积神经网络可以用于这个问题。此外,我们提出了基于DNN的级联姿态估计方法。这种级联让关节定位的准确率升高。以初始化姿态估计开始,基于完整的图像,我们学习了基于dnn的回归,它通过使用更高分辨率的子图像来改进联合预测。

在四个广泛应用的基准上我们证明了比其他结果更好的结果。我们表明,我们的方法在人物的图像上表现良好,这些人在外观和关节方面表现出很强的变化。最后,我们通过跨数据集评估显示泛化性能。

2.相关工作

从计算机视觉的早期阶段就提出了将表达关节物体一般化,特别是人体姿势,就提出了用部件图(graph of parts)表示的想法[16]。由Fishler和Elschlager [8]引入的所谓的Pictorial Strictures(PSs),由Felzenszwalb和Huttenlocher [6]使用距离变换技巧使其变得易于操作和实用。因此,随后开发了各种具有实用意义的基于PS的模型。

然而,上述易处理性受限于具有基于树的姿势模型,其具有不依赖于图像数据的简单二进制位。因此,研究的重点是在保持易处理性的同时丰富模型的代表能力。早期实现这一目标的尝试是基于更丰富的部分探测器[19,1,4]。最近,提出了表达复杂关节关系的各种模型。 Yang和Ramanan [27]使用部分的混合模型。 Johnson和Everingham [13]研究了具有PS混合的完整模型尺度的混合模型。 Tian等人在层次模型中捕获了更丰富的高阶空间关系 [25]。捕获高阶关系的另一种方法是通过图像相关的PS模型,可以通过全局分类器[26,20,18]进行估计。

归因于我们以整体方式推理姿势的理论已经显示出有限的实用性。 Mori和Malik [15]尝试为每个测试图像找到最接近一组标记图像的样本并转移关节位置。 Shakhnarovich等人采用了类似的最近邻设置[21],不过使用的是局部敏感哈希。最近,Gkioxari等人 [10]提出了一种用于部分配置的半全局分类器。这个公式在现实世界的数据上已经显示出非常好的结果,但是,它基于线性分类,表达的比我们的表达更少,并且仅在手臂上进行测试。最后,Ionescu等人采用了姿势回归的思想[11]然而他们推理3D姿势。

与我们最接近的工作是使用CNN和邻域分量分析来回归代表姿势的嵌入点[24]。但是,这项工作不采用级联网络。级联DNN回归量已被用于定位面部点[22]。关于面部姿态估计的相关问题,Osadchy等 [17]采用基于NN的姿势嵌入,用对比损失训练。

3.姿态估计的深度学习模型

我们使用以下符号。为了表达姿势,我们在姿势向量定义中编码所有k个身体关节的位置

0

其中yi包含第i个关节的x和y坐标。

标记图像由(x,y)表示,其中x代表图像数据,y是姿势向量的ground truth。

此外,由于关节坐标是绝对图像坐标,因此证明将它们标准化是有益的,box b限制人体或其部分。在一个简单的情况下,框可以表示完整的图像。这样的box由其中心

0

以及宽度bw和高度bh组成,定义:b =(bc,bw,bh)。然后,关节yi可以通过框中心进行平移,并按框大小进行缩放,我们称之为用b进行归一化:

0

此外,我们可以对姿势向量

0

的元素应用相同的归一化,得到归一化姿势向量。最后,稍微滥用符号,我们使用N(x; b)来表示边界框b对图像x的裁剪,这实际上是通过框来规范化图像。为简洁起见,我们用N(·)归一化表示,b是完整的图像框。

3.1 基于DNN回归的姿势估计

在这项工作中,我们将姿态估计的问题视为回归,其中我们训练并使用函数 ψ(x;θ)∈R2k,其中图像x回归到归一化姿态向量,θ表示模型的参数。因此,使用式1的归一化变换,绝对图像坐标中的姿态预测y *为

0

尽管其公式简单,但该方法的功效和复杂度均为ψ,这基于卷积深度神经网络(DNN)。这种卷积网络由几个层组成 - 每个层都先是线性变换,后面是非线性变换。第一层将预定尺寸的图像作为输入,并且其尺寸等于三个颜色通道的像素数。最后一层输出回归的目标值,在我们的例子中是2k联合坐标。

我们将ψ的结构建立在Krizhevsky等人用于图像分类的工作基础之上,因为它已经在对象定位上显示出优异的结果。

0

图2.左图:基于DNN的姿势回归的示意图。我们用相应的尺寸可视化网络层,其中卷积层为蓝色,而完全连接的层为绿色。我们不显示参数自由图层。右:在阶段s,将修正回归量应用于子图像以重新确定前一阶段的预测。

简而言之,网络由7层组成(见图2左)。 C表示卷积层,LRN表示局部响应归一化层,P表示池化层,F表示完全连接层。只有C和F层包含可学习的参数,而其余的参数是不受约束的。 C和F层都包含线性变换,然后是非线性变换,在我们的例子中是一个调整的线性单位。对于C层,尺寸定义为宽度×高度×深度,其中前两个维度具有空间意义,而深度定义过滤器的数量。如果我们在括号中写出每一层的大小,那么网络可以简洁地描述为C(55×55×96) - LRN - P - C(27×27×256) - LRN - P - C(13×13 ×384) - C(13×13×384)-C(13×13×256)-P-F(4096)-F(4096)。前两个C层的滤波器尺寸为11×11和5×5,其余三个为3×3。在三层之后应用池,并且尽管分辨率降低,但仍有助于提高性能。网络的输入是220×220的图像,其通过4的步幅被送到网络中。上述模型中的参数总数约为40M。有关详细信息,请参阅[14]。

通用DNN架构的使用受到其在分类和定位问题上的出色结果的推动。在实验部分中,我们展示了这种通用架构可用于学习模型,从而在姿势估计方面产生最优或更好的性能。此外,这样的模型是真正的整体模型 - 最终的关节位置估计基于完整图像的复杂非线性变换。

另外,DNN的使用消除了设计领域特定姿势模型的需要。而是从数据中学习这样的模型和特征。虽然回归损失不能模拟关节之间的显式交互,但是所有7个隐藏层都隐含地捕获了这些关系 - 所有内部特征都由所有关节回归器分享。

训练

与[14]的区别在于损失。我们在最后一个网络层之上训练线性回归而不是分类损失,以通过最小化预测和真实姿势向量之间的L2距离来预测姿势向量。由于ground truth姿势向量是在绝对图像坐标中定义的,并且姿势在图像之间的大小不同,我们使用方程式1的归一化来标准化我们的训练集

0

然后,用于获得最优网络参数的L2损失为:

0

为清楚起见,我们写出了对各个关节的优化。应该注意,即使对于某些图像并非所有关节都被标记,也可以使用上述目标公式。在这种情况下,将省略总和中的相应项。

上述参数θ针对在分布式在线实现中使用反向传播进行了优化。对于大小为128的小批量,计算自适应梯度更新[3]。学习率作为最重要的参数,设置为0.0005。因为该模型具有大量参数,使用的数据集尺寸相对较小,我们使用大量随机翻译的图像crop(见3.2节)、左/右翻转以及设置为0.6的F层的dropout正则化来增加数据。。

3.2 姿势回归的级联

来自前一部分的姿势公式具有以下优点:关节估计基于完整图像并因此依赖于上下文。然而,由于其固定的输入尺寸为220×220,因此网络查看细节的能力有限 - 它以粗略的比例学习过滤器捕获姿势属性。这些足以去估计粗糙姿势,但精确定位身体关节是不足的。请注意,我们不能轻易增加输入大小,因为这会增加已经很多的参数。为了获得更好的精度,我们建议训练级联姿势回归器。在第一阶段,级联通过估计初始姿势开始,如上一节所述。在后续阶段,训练额外的DNN回归器以预测从前一阶段到真实位置的关节位置的位移。因此,每个后续阶段可以被认为是当前预测姿势的改进,如图2所示。

此外,每个后续阶段使用预测的关节位置去聚焦于图像的相关部分 - 子图像在前一阶段预测的关节位置周围被裁剪,并且该关节的姿势位移回归量应用于该子图像。通过这种方式,随后的姿态回归器可以看到更高分辨率的图像,从而学习细长尺度的特征,最终实现更高的精度。

我们对级联的所有阶段使用相同的网络架构,但学习不同的网络参数。对于共S个级联阶段的每个阶段s∈{1,……,S},我们用θs表示学习的网络参数。因此,姿势位移回归量为ψ(x;θs)。为了重新定义一个给定的关节位置,我们将考虑一个关节边界框bi捕获围绕yi的子图像:bi(y;σ)=(yi,σdiam(y),σdiam(y))以第i个关节为中心,姿势直径由σ缩放作为尺寸。姿势的直径diam(y)定义为人体躯干上相对关节之间的距离,例如左肩和右髋,并取决于具体的姿势定义和数据集。

使用上述表示法,在阶段s = 1,我们从边界框b0(0是上标)开始,该边界框包围整个图像或由人检测器获得。我们得到一个初始姿势:

0

在每个后续阶段s≥2,对于所有关节i∈{1 ,.… ,k},我们通过应用在前一阶段(s-1)由

0

定义的子图像上的回归器,首先向一个改变位移

0

回归。然后,我们估计新的联合框

0

0

我们将级联应用于固定数量的阶段S,如4.1所述。

训练

网络参数θ1按照 3.1式4所示进行训练。在后续阶段s≥2时,训练的完成有一个很重要的区别。来自训练示例(x,y)的每个关节i使用不同的边界框

0

来标准化 —— 一个集中于从前一阶段获得的同一关节的预测 —— 这样我们就可以根据前一阶段的模型来调整现阶段的训练。

由于深度学习方法具有大容量,我们通过对每个图像和关节使用多个标准化来增加训练数据。我们不是仅使用前一阶段的预测,还生成模拟预测。这是通过随机替换关节i的ground truth位置完成,所谓随机是通过从2维正态分布

0

随机取样的矢量来完成的,其均值和方差等于在训练数据中的所有样本的观察到的位移的平均值和方差

0

完整的增广训练数据可以通过首先从均匀的原始数据中抽取一个例子和一个关节来定义,然后基于来自

0

的采样位移δ生成模拟预测:

0

级联阶段s的训练目标如公式4所示,特别注意对每个关节使用正确的归一化:

0

4 实证评估

4.1 设置

数据集

人体姿势估计有各种各样的基准。在这项工作中,我们使用数据集,这些数据集具有大量的训练样本,足以训练大型模型,例如提出的DNN,并且是现实的和具有挑战性的。

我们使用的第一个数据集是由[20]引入的Frames Labeled In Cinema(FLIC),其中包括从好莱坞流行电影中获得的4000训练数据和1000张测试图像。图像包含各种姿势的人,尤其是各种各样的服装。对于每个标记的人,标记10个上身关节。

我们使用的第二个数据集是Leeds Sports Dataset [12]及其扩展[13],我们将通过LSP共同表示。它们结合起来包含11000张训练和1000张测试图像。这些是来自体育活动的图像,因此在外观和特别是关节方面非常具有挑战性。此外,大多数人具有150像素高度,这使得姿势估计更具挑战性。在该数据集中,对于每个人,全身标记总共有14个关节。

对于所有上述数据集,我们将姿势y的直径定义为肩部和臀部之间的相对距离,并用diam(y)表示。应该注意的是,需要注意的是,所有数据集中的关节都被安排在一棵树上,模仿人体的动作。这就可以定义一个肢体是姿势树的一对相邻关节。

度量标准

为了能够与已发布的结果进行比较,我们将使用两个广泛接受的评估度量标准。正确部位百分比(PCP)测量肢体的检测率,如果两个预测的关节位置与真实肢体关节位置之间的距离最多为肢体长度的一半,则认为肢体被检测到[5]。 PCP是最初优选的评估指标,但它具有惩罚较短肢体的缺点,例如下手臂,通常较难检测。

为了解决这个缺点,最近使用不同的检测标准报告关节的检测率 -——如果预测关节和真实关节之间的距离在躯干直径的特定部分内,则认为检测到关节。通过改变该特定部分,获得不同程度的定位精度的检测率。该度量减轻了PCP的缺点,因为所有关节的检测标准都基于相同的距离阈值。我们将此度量标准称为检测到的关节百分比(PDJ)。

实验细节

对于所有实验,我们使用相同的网络架构。受[7]的启发,我们在FLIC上使用身体探测器来初步获得人体边界框的粗略估计。它基于面部检测器 ——检测到的面部矩形由固定的伸缩器放大。该伸缩器根据训练数据确定,使得它包含所有标记的关节。这种基于面部的身体检测器可以进行粗略估计,但这为我们的方法提供了一个很好的起点。对于LSP,我们使用完整图像作为初始边界框,因为人类在设计上相对紧密地裁剪。

对两个数据集使用一组50个小图像来确定算法超参数。为了测量参数的最优性,我们在所有关节上使用PDJ的平均值为0.2。伸缩器σ,其定义了调整关节边界框的大小作为姿势大小的一部分,确定如下:对于FLIC,我们在探索值{0.8,1.0,1.2}之后选择σ= 1.0,对于LSP我们使用σ尝试{1.5,1.7,2.0,2.3}后设为2.0。级联阶段S的数目由训练阶段确定,直到算法停止在小数据集上的改进为止。对于FLIC和LSP,我们得到S = 3.

为了改进泛化,对于从s = 2开始的每个级联阶段,我们通过对每个关节采样40个随机平移的裁剪框来增加训练数据,如第3.2节中所述。因此,对于具有14个关节的LSP并对图像进行镜像和采样之后,训练示例为11000×40×2×14 = 12M,这对于训练大型网络是必要的。

所提出的算法需要高效的实现。运行时间约为每个图像0.1秒,在12核CPU上测量。这与其他方法相比是有利的,因为一些当前的现有技术方法具有更高的复杂性:[20]大约运行4s,而[27]运行1.5s。然而,训练的复杂性更高。初始阶段在大约3天内训练,大部分最终表现是在12小时后完成的。每个改进阶段都训练了7天,因为数据量比初始阶段大40倍,这是由于Sec3.2中的数据增加。请注意,使用更多数据可以提高性能。

4.2 结果与讨论

比较

0

表1. DeepPose上LSP的正确部分(PCP)的百分比为0.5,以及五种最先进的方法。 *作者使用稍微宽松的PCP版本,其中对于每个肢体,使用属于相应真实关节的预测肢体关节的平均距离来确定是否正确检测到肢体。 ◦作者使用以人为中心的关节标注。

我们将展示和其他方法的比较结果。图1中用PCP度量在LSP数据集比较。我们显示了四个最具挑战性的肢体 - 下臂、上臂、大腿和小腿的结果 - 以及所有比较算法的这些肢体的平均值。我们明显优于所有其他方法,特别是实现更好的腿部估计。例如,对于大腿,用于下一个最佳表现方法,我们从0.74升高到0.78。值得注意的是,虽然其他方法对特定肢体表现出优势,其他数据集中没有一个始终支配所有肢体。相反,DeepPose对所有具有挑战性的肢体都表现出强烈的效果。

0

图3.两个关节:肘部和腕部FLIC上检测到的关节(PDJ)的百分比。我们将两个级联阶段后的DeepPose与其他四种方法进行比较。

0

图4. DeepPose和Dantone等人在LSP数据集上的PDJ,在距离真实关节的扩展距离范围:[0,0.5]内。 DeepPose的结果用实线绘制,而[2]的所有结果用虚线绘制。来自两种算法的相同关节的结果用相同颜色着色。

使用PDJ度量允许我们改变预测和ground truth之间距离的阈值,这确定了检测。该阈值可以被认为是绘制检测率的定位精度。因此,可以比较跨越不同期望精度的方法。我们在图3中显示了在FLIC上与其他四种方法相比较的结果,以及图4中的LSP。对于每个数据集,我们根据每个数据集的协议进行训练和测试。与之前的实验类似,我们优于所有五种算法。在我们检测粗糙姿势而不精确定位关节的情况下,我们在低精度域中的增益更大。在FLIC上,在归一化距离0.2处,对于下一个最佳表现方法,肘部和腕部的检测率增加0.15和0.2。在LSP上,在归一化距离0.5处,我们得到绝对增加值0.1。在LSP的标准化距离为0.2的低精度状态下,我们表现出腿部和稍差的臂的可比性能。这可以归因于这样一个事实,即基于DNN的方法使用7层变换计算关节坐标,其中一些变换包含最大池。

另一个观察是我们的方法适用于大量电影数据以及字符清晰度图像,例如LSP中的体育图像。

基于级联的改进的效果

0

图5.在FLIC或DNN级联的前三个阶段检测到的关节(PDJ)的百分比。我们在预测和ground truth之间的更大范围的归一化距离上呈现结果。

单个基于DNN的关节回归器给出了粗糙的关节位置。但是为了获得更高的精度,级联的后续阶段(作为初始预测的改进)是至关重要的。为了看到这一点,在图5中,我们呈现了用于初始预测的不同精度以及两个随后的级联阶段的关节检测。正如预期的那样,我们可以看到改进的主要收益是在标准化距离为[0.15,0.2]的高精度方案。此外,经过一个阶段的改进后,取得了重大进展。原因是后续阶段最终在每个关节周围使用较小的子图像。虽然后续阶段会考虑更高分辨率的输入,但它们的上下文更为有限。

0

在图6中可以看到改进有帮助的情况的例子。初始阶段通常在估计大致正确的姿势时是成功的,但是,这个姿势没有“捕捉”到正确的姿势。例如,在第三行中,姿势具有正确的形状但是不正确的比例。在第二行中,预测的姿势从理想的姿势向北平移。在大多数情况下,级联的第二阶段可以解决这种对齐问题并更好地对齐关节。在更罕见的情况下,例如在第一排,进一步的正面阶段改善了各个关节。

跨数据集泛化

0

0

为了评估算法的泛化属性,我们在两个相关数据集上使用在LSP和FLIC上训练的模型。在LSP上训练的全人模型在Image Parse数据集[19]的测试部分进行了测试,结果如表2所示。ImageParse数据集类似于LSP,因为它包含了做运动的人,但它包含了很多来自个人的照片集涉及其他活动。此外,在FLIC上训练的上身模型应用于整个Buffy数据集[7]。我们可以看到我们方法和其他方法相比仍然可以保持最优表现。这显示了模型的泛化能力。

示例姿势

为了更好地了解算法的性能,我们将来自LSP的图像上的估计姿态示例可视化,见图8。我们可以看到,我们的算法可以得到大部分关节的正确姿势在各种条件下:乱七八糟的人(1行1列),严重缩短(第一行、列3),不同寻常的姿势(3行5列),阻挡四肢,如阻挡臂行3列2和6,不寻常的照明条件(3行3列)。在大多数情况下,当估计姿势不精确,它仍然具有正确的形状。例如,在最后一行预测的肢体与真实位置不对齐,但姿势的整体形状是正确的。当从后面拍摄人物时,常见的故障模式会使左右混淆(第6行,第6列)。 FLIC的结果(见图9)通常更好,下臂偶尔会出现明显的错误。

0

0

5.结论

据我们所知,我们提出了深度神经网络(DNN)在人体姿态估计中的首次应用。我们将问题的表述作为对关节坐标基于DNN的回归以及所呈现的这种回归的级联具有以整体方式捕获关于姿势的背景和推理的优点。因此,我们能够在几个具有挑战性的学术数据集上实现最先进或更好的结果。此外,我们表明使用最初设计用于分类任务的通用卷积神经网络可以应用于不同的定位任务。将来,我们计划研究新颖的架构,这些架构可能更适合一般的定位问题,特别是姿势估计。

猜你喜欢

转载自blog.csdn.net/qq_41251963/article/details/109053351