附原文地址:https://arxiv.org/pdf/1312.4659.pdf
我们提出了一种基于深度神经网络(DNN)的人体姿势估计方法。 姿势估计被公式化为基于DNN的身体关节回归问题。 我们提出了这样的DNN回归器的级联,可导致高精度的姿态估计。 该方法具有以整体方式对姿势进行推理的优势,并具有简单但功能强大的表达方式,可利用深度学习的最新进展。 我们在各种现实世界图像的四个学术基准上,以最先进的或更好的性能来提供详细的经验分析。
人体姿势估计问题(定义为人体关节的定位问题)已在计算机视觉界引起了广泛关注。 在图1中,可以看到此问题的一些挑战-清晰的关节,小的和几乎看不见的关节,闭塞以及捕获上下文的需求。
该领域工作的主流主要是受到第一个挑战的推动,即需要在广阔空间中搜索所有可能的铰接式姿势。 基于零件的模型(Part-Based)很自然地适合于模型表达,近年来,已经提出了各种具有有效推理的模型。
然而,上述效率是以有限的表现性为代价实现的——使用局部检测器,这在许多情况下是针对单个部分的,最重要的是只对身体各部分之间的所有相互作用的一小部分进行建模。如图1所示,这些限制已经被认识到,并且已经提出了以整体方式对姿势进行推理的方法,但是在现实问题中的成功有限。
在这项工作中,我们将这种整体观点归因于人体姿势估计。 我们利用了深度学习的最新发展,并提出了一种基于深度神经网络(DNN)的新颖算法。 DNN在视觉分类任务和最近的物体定位上表现出出色的性能。 但是,将DNN用于关节对象的精确定位的问题仍然悬而未决。 在本文中,我们试图阐明这个问题,并提出一种简单而强大的整体人体姿势估计作为DNN的表述。
我们将姿势估计公式化为联合回归问题,并展示了如何在DNN设置中成功进行姿势估计。 将每个人体关节的位置回归为使用完整图像和7层通用卷积DNN作为输入。这个公式有两个优点。首先,DNN能够捕捉每个身体关节的全部背景——每个关节回归者都使用完整的图像作为信号。其次,这种方法比基于图形模型的方法要简单得多——不需要为零件明确设计特征表示和检测器;不需要显式设计模型拓扑和关节之间的交互。相反,我们证明了对于这个问题可以学习一个通用的卷积DNN。
此外,我们提出了一系列基于DNN的姿态预测器。 这种级联可以提高关节定位的精度。 从基于完整图像的初始姿势估计开始,我们学习基于DNN的回归器,这些回归器通过使用更高分辨率的子图像来完善联合预测。
对于所有报告的结果,我们在四个广泛使用的基准上显示了最新的结果或优于最新的结果。 我们表明,我们的方法在人的图像上表现良好,这些人的图像在外观和清晰度方面都表现出很大差异。 最后,我们通过跨数据集评估显示泛化性能。
从计算机视觉的早期开始就提倡将关节物体(尤其是人体姿态)表示为零件图的想法。 Fishenzzwalb和Huttenlocher使用距离变换技巧,将由Fishler和Elschlager引入的所谓的绘画图案(PSs)变得易于处理和实用。 结果,随后开发了具有实际意义的各种基于PS的模型。
然而,上述可处理性受到具有基于树的姿势模型的局限,该姿势模型具有不依赖于图像数据的简单二进制电位。 结果,研究集中于在保持易处理性的同时丰富模型的表示能力。 较早的尝试是基于较丰富的零件检测器。 最近,提出了多种表达复杂关节关系的模型。 Yang和Ramanan 使用零件的混合模型。 Johnson和Everingham已研究了通过混合PS来实现全模型比例的混合模型。 Tian等人在层次模型中捕获了更丰富的高阶空间关系。捕获高阶关系的另一种方法是通过图像相关的PS模型,可以通过全局分类器进行估计。
归因于我们以整体方式对姿势进行推理的哲学的方法已经显示出有限的实用性。Mori和Malik尝试从一组标记图像中为每个测试图像找到最接近的样本,并转移关节位置。 Shakhnarovich等人采用了类似的最近邻居设置,但是他们使用位置敏感的哈希。 最近,Gkioxari等人提出了一种半全局分类器,用于零件配置。 该公式在现实世界的数据上显示出非常好的结果,但是,它基于线性分类器,其表现力低于我们的分类器,并且仅在手臂上进行了测试。 最后,姿势回归的想法已被Ionescu等人采用。但是,他们推理3D姿势。
与我们最接近的工作是使用卷积神经网络和邻域分量分析(Neighborhood Component Analysis)来向表示姿势的嵌入点回归。 但是,这项工作没有采用级联网络。 DNN回归级联已用于定位,但是用于面部点。 关于面部姿势估计的相关问题,Osadchy等人采用了基于神经网络的姿势嵌入训练与对比损失(contrastive loss)。
我们使用以下符号: 为了表示一个姿势,我们在姿势向量中将所有 k k k 个身体关节的位置编码为 $y =(…,y_iT,…)T,i∈{1,…,k} $,其中 y i y_i yi 包含第 i i i 个关节的 x x x 和 y y y 坐标。标记的图像由 ( x , y ) (x,y) (x,y) 表示,其中 x x x 代表图像数据, y y y 代表真实姿势矢量。
此外,由于关节坐标在绝对图像坐标中,因此证明用框 b b b 界定人体或其部分对它们进行标准化是有益的。在一个简单的例子中,方框可以表示完整的图像。这样的盒子由其中心 b c ∈ R 2 b_c∈R^2 bc∈R2 以及宽度 b w b_w bw 和高度 b h b_h bh 定义: b = ( b c , b w , b h ) b =(b_c, b_w, b_h) b=(bc,bw,bh)。然后,可以通过框中心平移联合 y i y_i yi 并通过框大小对其进行缩放,我们称其为 b b b 的归一化:
N ( y i ; b ) = ( 1 / b w 0 0 1 / b h ) ( y i − b c ) ( 1 ) N\left(\mathbf{y}_{i} ; b\right)=\left(\begin{array}{cc} 1 / b_{w} & 0 \\ 0 & 1 / b_{h} \end{array}\right)\left(\mathbf{y}_{i}-b_{c}\right) \quad\quad\quad(1) N(yi;b)=(1/bw001/bh)(yi−bc)(1)
(理解:将绝对图像坐标中的位置变为框内归一化坐标)
此外,我们可以对姿势向量 N ( y ; b ) = ( . . . , N ( y i ; b ) T , . . . ) T N(y; b)=(...,N(y_i; b)^T,...)^T N(y;b)=(...,N(yi;b)T,...)T 的元素进行相同的归一化,从而得到归一化的姿势向量。 最后,稍微滥用一下符号,我们使用 N ( x ; b ) N(x; b) N(x;b) 通过边界框 b b b 表示图像 x x x 的裁剪,这实际上是通过框对图像进行归一化的。 为简洁起见,我们用 N ( ⋅ ) N(·) N(⋅) 归一化表示,其中 b b b 是完整图像框。
在这项工作中,我们将姿势估计问题视为回归,在此我们训练并使用函数 ψ ( x ; θ ) ∈ R 2 k ψ(x;θ)∈R^{2k} ψ(x;θ)∈R2k,对于图像 x x x,该函数回归到归一化的姿势矢量,其中 θ θ θ 表示模型的参数。因此,使用来自等式的归一化变换(1),读取绝对图像坐标中的姿态预测 y ∗ y^∗ y∗:
y ∗ = N − 1 ( ψ ( N ( x ) ; θ ) ) ( 2 ) y^{*}=N^{-1}(\psi(N(x) ; \theta)) \quad\quad\quad(2) y∗=N−1(ψ(N(x);θ))(2)
尽管其公式简单,但该方法的强大功能和复杂度仍以 ψ ψ ψ 为单位,它基于卷积深度神经网络(DNN)。这种卷积网络由几层组成——每一层都是线性变换,然后是非线性变换。第一层以预定尺寸的图像作为输入,并且具有等于像素数量乘以三个颜色通道的尺寸。最后一层输出回归的目标值,在我们的例子中是2k关节坐标。
我们基于Krizhevsky等人的工作建立 ψ ψ ψ 的体系结构用于图像分类,因为它在物体定位方面也显示了出色的结果。简而言之,网络由7层组成(请参见图2)。用C表示卷积层,用LRN表示本地响应规范化层(local response normalization layer),用P表示池化层,用F表示完全连接的层。仅C层和F层包含可学习的参数,而其余层则没有参数。C层和F层都由一个线性变换和一个非线性变换组成,在我们的情况下是ReLU。对于C层,大小定义为宽度×高度×深度,其中前两个维度具有空间含义,而深度则定义filters的数量。如果我们在括号中写下每个层的大小,则网络可以简明地描述为
C ( 55 × 55 × 96 ) − L R N − P − C ( 27 × 27 × 256 ) − L R N − P − C ( 13 × 13 × 384 ) − C ( 13 × 13 × 384 ) − C ( 13 × 13 × 256 ) − P − F ( 4096 ) − F ( 4096 ) . 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(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层的filters大小为11×11和5×5,其余三个filters的滤镜大小为3×3。在三层之后应用池化,尽管分辨率降低,但有助于提高性能。到网络的输入是220×220的图像,该图像通过跨度为4馈入网络。上述模型中的参数总数约为40M。
通用DNN架构的使用受到其在分类和本地化问题上的杰出成果的推动。在实验部分中,我们展示了这样一个通用的体系结构可以用来学习一个模型,从而在姿态估计方面获得最先进的或者更好的性能。此外,这种模型是真正的整体模型——最终的关节位置估计是基于完整图像的复杂非线性变换。
另外,使用DNN消除了设计特定领域姿势模型的需要,而是从数据中学习这样的模型和特征。 尽管回归损失并未对关节之间的显式交互进行建模,但所有7个隐藏层都隐式捕获了这种相互作用–所有内部特征均由所有关节回归器共享。
与[14]的区别是损失。 代替分类损失,我们在最后一个网络层的顶部训练线性回归,以通过最小化预测和真实姿态向量之间的L2距离来预测姿态向量。由于真实姿态向量是在绝对图像坐标中定义的,并且姿态在图像之间的大小各不相同,因此我们使用来自公式(1)的归一化对训练集D进行归一化:
D N = { ( N ( x ) , N ( y ) ) ∣ ( x , y ) ∈ D } ( 3 ) D_N = \{(N(x), N(y))|(x,y) \in D\} \quad\quad\quad(3) DN={(N(x),N(y))∣(x,y)∈D}(3)
然后,获得最佳网络参数的L2损失为:
arg min θ ∑ ( x , y ) ∈ D N ∑ i = 1 k ∥ y i − ψ i ( x ; θ ) ∥ 2 2 ( 4 ) \arg \min _{\theta} \sum_{(x, y) \in D_{N}} \sum_{i=1}^{k}\left\|\mathbf{y}_{i}-\psi_{i}(x ; \theta)\right\|_{2}^{2} \quad\quad\quad(4) argθmin(x,y)∈DN∑i=1∑k∥yi−ψi(x;θ)∥22(4)
为了清楚起见,我们写出了各个关节的优化。 应该注意的是,即使对于某些图像,并非所有关节都被标记,也可以使用上述目的。 在这种情况下,总和中的相应项将被省略。
以上参数 θ θ θ 经过优化,可在分布式在线实施中使用反向传播。 对于大小为128的每个小批量,计算自适应梯度更新。作为最重要的参数,学习率设置为0.0005。由于该模型具有大量参数,并且使用的数据集相对较小,因此我们使用大量随机图像裁剪(请参见第3.2节),向左/向右翻转以及在F层设置DropOut正则化对数据进行扩充 ,参数为0.6。
前一部分的姿态公式的优点是联合估计基于完整图像,因此依赖于上下文。但是,由于其固定的输入尺寸为220×220,因此该网络查看细节的能力有限-它学习的filter可以粗略捕获姿势属性。这些是估计粗略姿势所必需的,但不足以始终精确地定位人体关节。注意,我们不能轻易增加输入大小,因为这会增加已经大量的参数。为了获得更好的精度,我们建议训练级联的姿态回归器。在第一个阶段,如上一节所述,通过估算初始姿势开始级联。在随后的阶段,对其他DNN回归器进行训练,以预测关节位置从上一阶段到真实位置的位移。因此,每个后续阶段都可以看作是当前预测姿势的改进,如图2所示。
此外,每个后续阶段使用预测的关节位置来聚焦在图像的相关部分上——子图像在前一阶段的预测关节位置周围被裁剪,并且该关节的姿势位移回归器被应用于该子图像。通过这种方式,后续的姿态回归器可以看到更高分辨率的图像,从而学习更精细尺度的特征,最终提高精度。(注意:一开始220x220的图像是通过跨度为4输入网络的)
我们对级联的所有阶段使用相同的网络体系结构,但学习不同的网络参数。对于总共 S S S 个联级的级 s ∈ { 1 , . . . , S } s∈\{1,...,S\} s∈{1,...,S},我们用 θ s θ_s θs 表示学习到的网络参数。因此,姿态位移回归器读取 ψ ( x ; θ s ) ψ(x;θ_s) ψ(x;θs)。为了细化给定的关节位置 y i y_i yi ,我们将考虑一个关节包围盒 b i b_i bi ,该关节包围盒 b i b_i bi 捕获 y i y_i yi 周围的子图像, b i ( y ; σ ) = ( y i , σ d i a m ( y ) , σ d i a m ( y ) ) b_i(y;σ)=(y_i, σdiam(y), σdiam(y)) bi(y;σ)=(yi,σdiam(y),σdiam(y)), y i y_i yi 为第 i i i 个中心, d i a m ( y ) diam(y) diam(y) 为关节的直径,并以 σ σ σ 作为比例尺。 姿势的直径 d i a m ( y ) diam(y) diam(y) 定义为人体躯干相对关节(例如左肩和右臀部)之间的距离,并取决于具体的姿势定义和数据集。
使用上述符号,在阶段 s = 1 s = 1 s=1,我们从包围整个图像或由人检测器获得的边界框 b 0 b^0 b0 开始。 我们获得一个初始姿势:
Stage 1 : y 1 ← N − 1 ( ψ ( N ( x ; b 0 ) ; θ 1 ) ; b 0 ) ( 5 ) \text { Stage } 1: \quad \mathbf{y}^{1} \leftarrow N^{-1}\left(\psi\left(N\left(x ; b^{0}\right) ; \theta_{1}\right) ; b^{0}\right) \quad\quad\quad(5) Stage 1:y1←N−1(ψ(N(x;b0);θ1);b0)(5)
在≥2的每个后续阶段,对于所有联合 s i ∈ { 1 , . . . , k } s_i∈\{1,...,k\} si∈{1,...,k},我们首先通过对由 b i s − 1 b_i^{s-1} bis−1( s − 1 s-1 s−1 定义的子图像)应用回归器,向着精细位移 y i s − y i ( s − 1 ) y^s_i - y^{(s-1)}_i yis−yi(s−1) 回归。 然后,我们估计新的关节框 b i b_i bi:
Stage s : y i s ← y i ( s − 1 ) + N − 1 ( ψ i ( N ( x ; b ) ; θ s ) ; b ) ( 6 ) for b = b i ( s − 1 ) b i s ← ( y i s , σ diam ( y s ) , σ diam ( y s ) ) ( 7 ) \begin{array}{c}\text { Stage } s: \mathbf{y}_{i}^{s} \leftarrow \mathbf{y}_{i}^{(s-1)}+N^{-1}\left(\psi_{i}\left(N(x ; b) ; \theta_{s}\right) ; b\right) \quad\quad\quad(6) \\\quad \text { for } b=b_{i}^{(s-1)} \\b_{i}^{s} \leftarrow\left(\mathbf{y}_{i}^{s}, \sigma \operatorname{diam}\left(\mathbf{y}^{s}\right), \sigma \operatorname{diam}\left(\mathbf{y}^{s}\right)\right) \quad\quad\quad(7)\end{array} Stage s:yis←yi(s−1)+N−1(ψi(N(x;b);θs);b)(6) for b=bi(s−1)bis←(yis,σdiam(ys),σdiam(ys))(7)
我们将级联应用于固定数量的阶段S,该阶段的确定如Sec 4.1中所述。
网络参数 θ 1 θ_1 θ1 按照第3.1节式(4)所述进行训练。在随后的阶段s ≥ 2,训练以相同的方式进行,有一个重要的区别。训练示例 ( x , y ) (x, y) (x,y) 中的每个关节 i i i 使用不同的边界框 ( y i ( S − 1 ) , σ d i a m ( y ( S − 1 ) ) , σ d i a m ( y ( S − 1 ) ) (y_i^{(S-1)}, σdiam(y^{(S-1)}), σdiam(y^{(S-1)}) (yi(S−1),σdiam(y(S−1)),σdiam(y(S−1)) 进行归一化,该边界框以从前一阶段获得的相同关节的预测为中心,因此我们根据前一阶段的模型来调节该阶段的训练。
由于深度学习方法的容量很大,因此我们通过对每个图像和关节使用多个规范化来扩充训练数据。代替仅使用前一阶段的预测,我们生成模拟预测。这是通过从二维正态分布 N i ( s − 1 ) N_i^{(s-1)} Ni(s−1) 中随机采样的向量随机移动关节 i i i 的真相位置来完成的,其均值和方差等于观测到的位移的均值和方差 ( y i ( s − 1 ) – y i ) (y_i^{(s-1)}– y_i) (yi(s−1)–yi) 在训练数据中的所有示例中。可以通过以下方式定义完整的增强训练数据:首先从原始数据中均匀采样一个示例和一个关节,然后基于来自 N i ( s − 1 ) N_i^{(s-1)} Ni(s−1) 的采样位移 δ δ δ 生成模拟预测:
D A s = { ( N ( x ; b ) , N ( y i ; b ) ) ∣ ( x , y i ) ∼ D , δ ∼ N i ( s − 1 ) b = ( y i + δ , σ diam ( y ) ) } \begin{aligned} D_{A}^{s}=&\left\{\left(N(x ; b), N\left(\mathbf{y}_{i} ; b\right)\right) |\right.\\ &\left(x, \mathbf{y}_{i}\right) \sim D, \delta \sim \mathcal{N}_{i}^{(s-1)} \\ &\left.b=\left(\mathbf{y}_{i}+\delta, \sigma \operatorname{diam}(\mathbf{y})\right)\right\} \end{aligned} DAs={(N(x;b),N(yi;b))∣(x,yi)∼D,δ∼Ni(s−1)b=(yi+δ,σdiam(y))}
级联阶段 s 的训练目标如等式(4)所示。特别注意对每个关节使用正确的标准化:
θ s = arg min θ ∑ ( x , y i ) ∈ D A s ∥ y i − ψ i ( x ; θ ) ∥ 2 2 ( 8 ) \theta_{s}=\arg \min _{\theta} \sum_{\left(x, \mathbf{y}_{i}\right) \in D_{A}^{s}}\left\|\mathbf{y}_{i}-\psi_{i}(x ; \theta)\right\|_{2}^{2} \quad\quad\quad(8) θs=argθmin(x,yi)∈DAs∑∥yi−ψi(x;θ)∥22(8)
人体姿态估计有各种各样的基准。 在这项工作中,我们使用数据集,该数据集具有大量的训练示例,足以训练诸如建议的DNN之类的大型模型,并且既现实又具有挑战性。
我们使用的第一个数据集是[20](FLIC,Frames Labeled In Cinema),其中包括从好莱坞流行电影中获得的4000张训练图像和1000张测试图像。 图像中包含着各种姿势的人,尤其是各种衣服。对于每个被标记的人,将标记10个上身关节。
我们使用的第二个数据集是Leeds Sports Dataset[12]及其扩展[13],我们将共同用LSP表示。 它们合在一起包含11000个培训和1000个测试图像。 这些是体育活动的图像,因此在外观尤其是清晰度方面具有很大的挑战性。 另外,大多数人的身高为150像素,这使姿势估计更具挑战性。 在此数据集中,每个人的全身被标记为总共14个关节。
对于上述所有数据集,我们将姿势 y y y 的直径定义为肩膀和臀部相对两侧之间的距离,并用 d i a m ( y ) diam(y) diam(y) 表示。 应该注意的是,所有数据集中的关节都排列在运动学上模仿人体的树上。 这允许将肢体定义为姿势树中的一对相邻关节。
为了能够与已发布的结果进行比较,我们将使用两个广泛接受的评估指标。 正确部位百分比(PCP,Percentage of Correct Parts)衡量肢体的检出率,如果两个预测的关节位置和真实肢体关节位置之间的距离最多为肢体长度的一半,则认为肢体被检出[5]。 PCP是最初用于评估的首选度量,然而,它的缺点是不利于较短的肢体,如较低的手臂,通常较难发现。
为了解决这个缺点,最近关节检测率的报告使用了不同的检测标准——如果预测关节和真实关节之间的距离在躯干直径的某一fraction内,则认为检测到了关节。通过改变这个fraction,可以获得不同定位精度的检测率。由于所有关节的检测标准都基于相同的距离阈值,因此该度量标准减轻了PCP的缺点。我们将这一指标称为检测到的关节百分比(PDJ,Percent of Detected Joints)。
对于所有实验,我们使用相同的网络体系结构。 受[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,这对于训练像我们这样的大网络是必要的。
提出的算法允许有效的实现。 运行时间约为 在12核CPU上测得的每张图像0.1s。 与其他方法相比,这是有利的,因为一些当前最先进的方法具有更高的复杂性:[20]的运行速度大约为 4s,而[27]以1.5s运行。 然而,训练复杂度更高。 初始阶段大约在3天内接受了训练。 尽管有100名workers,但是12小时后大部分的最终绩效还是达到了。 由于Sec3.2中的数据扩充,每个精炼阶段需要进行7天的训练,因为数据量比初始阶段大40倍。 请注意,使用更多数据可提高性能。
我们提出了与其他方法的比较结果。 我们在表1中使用PCP度量对LSP进行了比较。我们显示了四个最具挑战性的肢体(上下臂和腿)的结果,以及所有这些比较算法中这些肢体的平均值。 我们显然胜过所有其他方法,尤其是对腿的估计更好。 例如,对于大腿,次佳的方法是从0.74提高到0.78。 值得注意的是,尽管其他方法在特定肢体上表现出优势,但其他所有数据集都没有在所有肢体上始终占据主导地位。 相反,DeepPose对所有具有挑战性的四肢都显示出出色的效果。
使用PDJ度量允许我们改变预测和真实之间距离的阈值,这定义了检测。该阈值可以被认为是绘制检测率时的定位精度。因此,人们可以比较不同精度的方法。我们将图3中FLIC的结果与图4中LSP的其他四种方法进行比较。对于每个数据集,我们根据每个数据集的协议进行训练和测试。与先前的实验类似,我们的性能优于所有五种算法。在我们发现粗略姿势而没有精确定位关节的情况下,我们在低精度领域的收益更大。在FLIC上,在归一化距离为0.2时,相对于第二好的方法,我们获得肘部和手腕的检测率分别增加了0.15和0.2。在LSP上,在归一化距离0.5处,绝对增加0.1。在LSP归一化距离为0.2的低精度范围内,我们显示了腿部和稍差的手臂的可比性能。这可以归因于以下事实:基于DNN的方法使用7层转换来计算关节坐标,其中一些转换包含最大池化。
另一个观察结果是,我们的方法对于大量的电影数据和string articulation(如LSP中的运动图像)都很有效。
单个基于DNN的联合回归器给出了大致的联合位置。 但是,为了获得更高的精度,级联的后续阶段(用于完善初始预测)至关重要。 为了看到这一点,在图5中,我们提出了针对初始预测以及两个后续级联阶段的不同精度的联合检测。 如预期的那样,我们可以看到,精化过程的主要收益在于归一化距离为[0.15,0.2]的高精度状态。 此外,经过一个阶段的改进,可以实现主要收益。 原因是后续阶段最终会在每个关节周围使用较小的子图像。 而且,尽管随后的阶段着眼于更高分辨率的输入,但它们的上下文更为有限。
图6中显示了可以帮助改进的情况示例。初始阶段通常可以成功地估计大致正确的姿势,但是,该姿势不会“捕捉”到正确的姿势。 例如,在第三行中,姿势具有正确的形状但比例不正确。 在第二行中,将预测姿势从理想姿势向北平移。 在大多数情况下,级联的第二阶段可以解决此咬合问题,并更好地对齐关节。 在较罕见的情况下,例如在第一行中,个别接缝的进一步立面阶段得以改善。
为了评估算法的泛化特性,我们在两个相关的数据集上使用了经过训练的LSP和FLIC模型。 在LSP上训练的全身模型在Image Parse数据集的测试部分上进行测试[19],结果如表2所示。ImageParse数据集与LSP相似,因为它包含运动的人,但是它包含很多来自其他个人照片集的人。 此外,在FLIC上训练的上身模型被应用于整个Buffy数据集[7]。 我们可以看到,与其他方法相比,我们的方法可以保留最先进的性能。 这显示出良好的泛化能力。
为了更好地了解我们算法的性能,我们在图8中可视化了LSP图像上估计姿态的样本。我们可以看到,我们的算法能够在各种条件下为大多数关节获得正确的姿态 :颠倒的人(第1行,第1列),严重的缩短动作(第1行,第3列),不正常的姿势(第3行,第5列),在第3行第2列和第6列中被遮挡的四肢为手臂,照明条件异常 (第3行,第3列)。 在大多数情况下,当估计的姿势不精确时,它仍然具有正确的形状。 例如,在最后一行中,某些预测的肢体未与真实位置对齐,但是,姿势的总体形状是正确的。 一种常见的故障模式是当从背面拍照时(第6行,第6列)使左侧和右侧混淆。 FLIC的结果(参见图9)通常更好,下臂偶尔可见错误。
据我们所知,我们将深度神经网络(DNN)首次应用于人体姿势估计。 我们将问题表示为基于DNN的关节坐标回归以及所提出的此类回归器的级联,具有以整体方式捕获上下文和姿势推理的优势。 结果,我们能够在一些具有挑战性的学术数据集上达到最新或更好的结果。
此外,我们证明了使用最初为分类任务设计的通用卷积神经网络可以应用于不同的定位任务。 未来,我们计划研究新颖的体系结构,这些体系结构通常可能会针对定位问题(尤其是姿态估计)更好地进行定制。