文章目录
0、摘要
当前人体检测已经有很好的性能,但是定位和识别的一些小误差仍不可避免。这些误差可能导致单人姿态估计( S P P E SPPE SPPE)的失败,对于那些完全依赖人体检测结果的方法来说更是如此。作者提出新的区域多人姿态估计( R M P E RMPE RMPE)框架,便于在人体边界框不精确的情况下进行姿态估计。 该框架由三个部分组成:
- 对称空间变换网络( S S T N SSTN SSTN)
- 参数姿态非最大抑制( N M S NMS NMS)
- 姿态引导提议生成器( P G P G PGPG PGPG)
该方法能处理非精确边界框及冗余检测。
1、介绍
识别多人姿态比识别单人姿态更加具有挑战性。当前大多数研究可以划分为两类, t w o − s t e p two-step two−step 框架和基于部位的框架。 t w o − s t e p two-step two−step 框架首先检测人体边界框,然后在每个框中分别估计人体姿态。基于部位的框架首先独立检测人体部位,然后对检测到的人体部位进行分配,形成多人姿态。两种框架均有其优缺点: t w o − s t e p two-step two−step 框架姿态估计的精度高度依赖于检测到的边界框质量。当两个或更多的人彼此靠近时,基于部位的框架组合人体姿态时更加困难。
作者的方法遵循
t
w
o
−
s
t
e
p
two-step
two−step 框架。作者希望能够在检测框不精确的情况下检测精确的人体姿态。作者使用
F
a
s
t
e
r
−
R
C
N
N
Faster-RCNN
Faster−RCNN 和
S
P
P
E
SPPE
SPPE 堆叠沙漏来说明以往的方法中存在的问题。图
1
1
1 和 图
2
2
2 表明两个主要问题:定位误差问题和冗余检测问题。实际上
S
P
P
E
SPPE
SPPE 很容易受边界框误差的影响。即使在
I
o
U
>
0.5
IoU>0.5
IoU>0.5 时认定边界框为正确的,检测到的人体姿态仍然是错误的。由于
S
P
P
E
SPPE
SPPE 为每个边界框产生一个姿态估计,冗余的检测会导致冗余的姿态估计。
为了解决以上问题,作者提出区域多人姿态估计(
R
M
P
E
RMPE
RMPE)框架,提升了基于
S
P
P
E
SPPE
SPPE 的人体姿态估计算法性能。作者设计了对称空间变换网络,与
S
P
P
E
SPPE
SPPE 相连,用于从不精确的边界框提取高质量的单人区域(处理检测定位不精确问题)。通过引入一个新的平行的
S
P
P
E
SPPE
SPPE 分支来优化网络。为了处理冗余检测,作者引入了参数姿态非最大抑制。参数姿态非最大抑制使用一种新的姿态距离度量来比较姿态相似性,从而去除冗余姿态。采用数据驱动的方法对姿态距离参数进行优化。 最后,作者提出新的姿态引导提议生成器来增强训练样本。通过学习人体检测器在不同姿态下的输出分布,可以模拟人体边界框的生成,产生大量训练数据样本。(这一步是从姿态反过来推理边界框,从而对原图像进行相应的处理,获取更多样本)
R M P E RMPE RMPE 框架是通用的,适用于不同的人体检测器和单人姿态估计器。
2、相关研究
2.1、单人姿态估计
单人姿态估计传统的方法采用图结构模型,比如树模型,随机森林模型。基于图的模型,比如随机场模型,依赖图模型也已经有很多研究。
基于深度学习的姿态估计代表研究有 D e e p P o s e DeepPose DeepPose, D N N b a s e d DNN~based DNN based 模型以及各种基于 C N N CNN CNN 的模型。除了简单地估计人体姿态,一些研究考虑同时进行人体解析和姿态估计。对于单人姿态估计,这些方法只在人体被正确地定位时表现良好,然而这个前提并不总能被满足。
2.2、多人姿态估计
基于部位的框架
一些研究者使用图模型来解析被严重遮挡的人,这些模型将人体建模为部位的灵活组合。还有研究者使用 k − p o s e l e t s k-poselets k−poselets 来联合检测人并预测人的姿态位置。最终的姿态定位由所有激活的个体的加权平均值来预测。 P i s h c h u l i n Pishchulin Pishchulin 等人提出 D e e p C u t DeepCut DeepCut 首先检测所有的人体部位,然后用整数线性规划对这些部位进行标注和组合。 I n s a f u t d i n o v Insafutdinov Insafutdinov 等人提出了一种基于 R e s N e t ResNet ResNet 的更强的部位检测器和一种更好的增量优化策略。尽管基于部位的方法表现出良好的性能,但是他们的身体部位检测器可能很脆弱,因为只考虑了小的局部区域。
Two-step 框架
作者使用基于 S P P E SPPE SPPE 方法的 C N N CNN CNN 来估计姿态。 I n s a f u t d i n o v Insafutdinov Insafutdinov 等人提出了一种类似的两步管道,它使用 F a s t e r − R C N N Faster-RCNN Faster−RCNN 作为人体检测器,一元 D e e p e r C u t DeeperCut DeeperCut 作为姿态估计器。但是该方法在 M P I I MPII MPII 数据集上只有 51.0 m A P 51.0~mAP 51.0 mAP,但是本文的方法实现了 76.7 76.7 76.7 的 m A P mAP mAP。随着目标检测和单人姿态估计的发展,两步框架可以实现进一步的性能提升。本文旨在解决人体检测的缺陷,从而最大程度地发挥 S P P E SPPE SPPE 的性能。
3、RMPE
R
M
P
E
RMPE
RMPE 管道如图
3
3
3 所示。人体检测器获取的人体边界框被输入到
S
y
m
m
e
t
r
i
c
S
T
N
+
S
P
P
E
Symmetric ~STN + SPPE
Symmetric STN+SPPE 模块,自动生成姿态提议。生成的姿态提议由
p
a
r
a
m
e
t
r
i
c
P
o
s
e
N
M
S
parametric~ Pose~NMS
parametric Pose NMS 进行改进,获取估计的人体姿态。训练时引入
P
a
r
a
l
l
e
l
S
P
P
E
Parallel~SPPE
Parallel SPPE 来避免局部极小值,并且进一步发挥
S
S
T
N
SSTN
SSTN 的能力。为了增强训练样本,作者设计了
p
o
s
e
−
g
u
i
d
e
d
p
r
o
p
o
s
a
l
s
g
e
n
e
r
a
t
o
r
(
P
G
P
G
)
pose-guided~proposals~generator (PGPG)
pose−guided proposals generator(PGPG)。接下来介绍框架的三个主要部分。
3.1、对称 STN 和平行 SPPE
人体检测器提供的人体提议不能很好地适用于
S
P
P
E
SPPE
SPPE,因为
S
P
P
E
SPPE
SPPE 专门在单个人体图像上进行训练而且对定位误差很敏感。研究表明,人体提议小的平移或者裁剪会极大地影响
S
P
P
E
SPPE
SPPE 的性能。当给定人体检测不完美时,引入对称
S
T
N
STN
STN+平行
S
P
P
E
SPPE
SPPE 来增强
S
P
P
E
SPPE
SPPE。
S
S
T
N
SSTN
SSTN 和平行
S
P
P
E
SPPE
SPPE 如图
4
4
4 所示。
STN 和 SDTN
空间变换网络在自动选择感兴趣区域方面表现出优异的性能。本文中使用
S
T
N
STN
STN 提取高质量主要人体提议。从数学上来讲,
S
T
N
STN
STN 执行一个
2
D
2D
2D 仿射变换,可以表示为:
(1)
(
x
i
s
y
i
s
)
=
[
θ
1
θ
2
θ
3
]
(
x
i
t
y
i
t
1
)
\left( \begin{array}{c}{x_{i}^{s}} \\ {y_{i}^{s}}\end{array}\right)=\left[ \begin{array}{lll}{\boldsymbol{\theta}_{1}} & {\boldsymbol{\theta}_{2}} & {\boldsymbol{\theta}_{3}}\end{array}\right] \left( \begin{array}{c}{x_{i}^{t}} \\ {y_{i}^{t}} \\ {1}\end{array}\right)\tag1
(xisyis)=[θ1θ2θ3]⎝⎛xityit1⎠⎞(1)
其中
θ
1
\theta_1
θ1,
θ
2
\theta_2
θ2 和
θ
3
\theta_3
θ3 是
R
2
\mathbb R^2
R2 空间中的向量。
{
x
i
s
,
y
i
s
}
\left\{x_{i}^{s}, y_{i}^{s}\right\}
{xis,yis} 以及
{
x
i
t
,
y
i
t
}
\left\{x_{i}^{t}, y_{i}^{t}\right\}
{xit,yit} 是变换前后的坐标。
S
P
P
E
SPPE
SPPE 后,将结果的姿态映射到原始人体提议图像上。自然的,使用空间反变换网络(
S
D
T
N
SDTN
SDTN)将估计的姿态映射回原始图像坐标。
S
D
T
N
SDTN
SDTN 计算用于反变换的
γ
\gamma
γ,并且基于
γ
\gamma
γ 生成
g
r
i
d
s
grids
grids:
(2)
(
x
i
t
y
i
t
)
=
[
γ
1
γ
2
γ
3
]
(
x
i
s
y
i
s
1
)
\left( \begin{array}{c}{x_{i}^{t}} \\ {y_{i}^{t}}\end{array}\right)=\left[ \begin{array}{lll}{\gamma_{1}} & {\gamma_{2}} & {\gamma_{3}}\end{array}\right] \left( \begin{array}{c}{x_{i}^{s}} \\ {y_{i}^{s}} \\ {1}\end{array}\right)\tag2
(xityit)=[γ1γ2γ3]⎝⎛xisyis1⎠⎞(2)
由于
S
D
T
N
SDTN
SDTN 是
S
T
N
STN
STN 的逆过程,得到:
(3)
[
γ
1
γ
2
]
=
[
θ
1
θ
2
]
−
1
\left[ \begin{array}{ll}{\gamma_{1}} & {\gamma_{2}}\end{array}\right]=\left[ \begin{array}{ll}{\theta_{1}} & {\theta_{2}}\end{array}\right]^{-1}\tag3
[γ1γ2]=[θ1θ2]−1(3)
(4)
γ
3
=
−
1
×
[
γ
1
γ
2
]
θ
3
\gamma_{3}=-1 \times \left[ \begin{array}{ll}{\gamma_{1}} & {\gamma_{2}}\end{array}\right] \theta_{3}\tag4
γ3=−1×[γ1γ2]θ3(4)
通过
S
D
T
N
SDTN
SDTN 进行反向传播,
∂
J
(
W
,
b
)
∂
θ
\frac{\partial J(W, b)}{\partial \theta}
∂θ∂J(W,b) 可以被推导为:
(5)
∂
J
(
W
,
b
)
∂
[
θ
1
θ
2
]
=
∂
J
(
W
,
b
)
∂
[
γ
1
γ
2
]
×
∂
[
γ
1
γ
2
]
∂
[
θ
1
θ
2
]
+
∂
J
(
W
,
b
)
∂
γ
3
×
∂
γ
3
∂
[
γ
1
γ
2
]
×
∂
[
γ
1
γ
2
]
∂
[
θ
1
θ
2
]
\begin{aligned} \frac{\partial J(W, b)}{\partial\left[\theta_{1} \quad \theta_{2}\right]}&=\frac{\partial J(W, b)}{\partial\left[\gamma_{1} \quad \gamma_{2}\right]} \times \frac{\partial\left[\gamma_{1} \quad \gamma_{2}\right]}{\partial\left[\theta_{1} \quad \theta_{2}\right]}\\ +\frac{\partial J(W, b)}{\partial \gamma_{3}}&\times \frac{\partial \gamma_{3}}{\partial\left[\gamma_{1} \quad \gamma_{2}\right]} \times \frac{\partial\left[\gamma_{1} \quad \gamma_{2}\right]}{\partial\left[\theta_{1} \quad \theta_{2}\right]} \end{aligned}\tag5
∂[θ1θ2]∂J(W,b)+∂γ3∂J(W,b)=∂[γ1γ2]∂J(W,b)×∂[θ1θ2]∂[γ1γ2]×∂[γ1γ2]∂γ3×∂[θ1θ2]∂[γ1γ2](5)
关于
θ
1
\theta_1
θ1 和
θ
2
\theta_2
θ2,以及:
(6)
∂
J
(
W
,
b
)
∂
θ
3
=
∂
J
(
W
,
b
)
∂
γ
3
×
∂
γ
3
∂
θ
3
\frac{\partial J(W, b)}{\partial \theta_{3}}=\frac{\partial J(W, b)}{\partial \gamma_{3}} \times \frac{\partial \gamma_{3}}{\partial \theta_{3}}\tag6
∂θ3∂J(W,b)=∂γ3∂J(W,b)×∂θ3∂γ3(6)
关于
θ
3
\theta_3
θ3。
∂
[
γ
1
γ
2
]
∂
[
θ
1
θ
2
]
\frac{\partial\left[\gamma_{1} \quad \gamma_{2}\right]}{\partial\left[\boldsymbol{\theta}_{\mathbf{1}} \quad \boldsymbol{\theta}_{2}\right]}
∂[θ1θ2]∂[γ1γ2] 和
∂
γ
3
∂
θ
3
\frac{\partial \gamma_{3}}{\partial \theta_{3}}
∂θ3∂γ3 可以分别从方程
3
3
3 和
4
4
4 推导而来。
提取高质量主要人体区域后,可以利用现成的 S P P E SPPE SPPE 进行精确的姿态估计。训练过程中, S S T N SSTN SSTN 与 S P P E SPPE SPPE 一起进行微调。
平行 SPPE
为了进一步帮助 S T N STN STN 提取高质量人体主要区域,作者在训练阶段增加了一个对称 S P P E SPPE SPPE 分支。该分支与原始 S P P E SPPE SPPE 共享同一个 S T N STN STN,但是去除了空间反变换。这个分支的人体姿态标签被指定为中心位置。更具体地说,该 S P P E SPPE SPPE 分支的输出直接与中心化的 G r o u n d T r u t h Ground~Truth Ground Truth 姿态标签进行了比较。训练时冻结该平行 S P P E SPPE SPPE 所有的层。该支路的权重是固定的,它的目的是将中心化的姿态误差反向传播到 S T N STN STN 模块。如果 S T N STN STN 提取的姿态不是中心化的,平行分支将反向传播大误差。通过这种方式可以帮助 S T N STN STN 聚焦正确的区域,并且提取高质量的人体主要区域。测试阶段,平行 S P P E SPPE SPPE 被舍弃。
讨论
平行 S P P E SPPE SPPE 可以视为训练阶段的正则化。它有助于避免局部极小值,在该值处 S T N STN STN 没有将姿态变换到提取的人体区域的中心。到达局部极小值的可能性增加,由于 S D T N SDTN SDTN 的补偿作用,网络将产生更少的误差。这些误差对训练 S T N STN STN 是必要的。通过 S P P E SPPE SPPE,训练 S T N STN STN 将人移动到提取区域的中心,以便于 S P P E SPPE SPPE 进行精确的姿态估计。
在 S P P E SPPE SPPE 的输出( S D T N SDTN SDTN 之前)使用中心化的姿态回归损失来替换平行 S P P E SPPE SPPE 似乎是很直观的。然而这种方法会降低系统性能。(这里不是很理解。。。) 尽管 S T N STN STN 可以部分地变换输入,但是完美地取代标签中的位置是不可能的。 S P P E SPPE SPPE 的输入和标签在坐标空间上的差异将大大削弱它学习姿态估计的能力。这将导致主 S P P E SPPE SPPE 性能的下降。因此,为了确保 S T N STN STN 和 S P P E SPPE SPPE 能够完美地发挥性能,框架中的平行 S P P E SPPE SPPE 不可或缺。平行 S P P E SPPE SPPE 对非中心姿态产生很大误差,以推动 S T N STN STN 产生中心化的姿态,而不影响主分支 S P P E SPPE SPPE 的性能。
3.2、参数化姿态非最大抑制
人体检测器不可避免地产生冗余检测,这相应地会导致冗余的姿态估计。姿态非最大抑制用于消除冗余。之前的方法要么不够有效,要么不够精确。作者提出参数化姿态 N M S NMS NMS 方法。姿态 P i P_i Pi,有 m m m 个关节点,表示为 { ⟨ k i 1 , c i 1 ⟩ , … , ⟨ k i m , c i m ⟩ } \left\{\left\langle k_{i}^{1}, c_{i}^{1}\right\rangle, \ldots,\left\langle k_{i}^{m},c_{i}^{m}\right\rangle\right\} {⟨ki1,ci1⟩,…,⟨kim,cim⟩} k i j k_i^j kij 和 c i j c_i^j cij 分别为第 j j j 个关节的位置和置信度分数。
NMS 方案
首先最大置信度的姿态作为参考,一些靠近它的姿态可以根据剔除准则来去除。在剩余的姿态集合中重复该过程直到冗余的姿态被剔除。
剔除准则
为了去除冗余姿态,定义姿态相似度
d
(
P
i
,
P
j
∣
Λ
)
d\left(P_{i}, P_{j} | \Lambda\right)
d(Pi,Pj∣Λ) 以及阈值
η
\eta
η 作为剔除准则。其中
Λ
\Lambda
Λ 是函数
d
(
⋅
)
d(\cdot)
d(⋅) 的参数集合。剔除准则如下所示:
(7)
f
(
P
i
,
P
j
∣
Λ
,
η
)
=
1
[
d
(
P
i
,
P
j
∣
Λ
,
λ
)
≤
η
]
f\left(P_{i}, P_{j} | \Lambda, \eta\right)=1\left[d\left(P_{i}, P_{j} | \Lambda, \lambda\right) \leq \eta\right]\tag7
f(Pi,Pj∣Λ,η)=1[d(Pi,Pj∣Λ,λ)≤η](7)
如果
d
(
⋅
)
d(\cdot)
d(⋅) 比
η
\eta
η 小,
f
(
⋅
)
f(\cdot)
f(⋅) 的输出应该为
1
1
1,表明姿态
P
i
P_i
Pi 是参考姿态
P
j
P_j
Pj 的冗余,应该被剔除。
姿态距离
假设姿态
P
i
P_i
Pi 对应的框是
B
i
B_i
Bi,距离函数
d
pose
(
P
i
,
P
j
)
d_{\text {pose}}\left(P_{i}, P_{j}\right)
dpose(Pi,Pj),定义软匹配函数为:
(8)
K
S
i
m
(
P
i
,
P
j
∣
σ
1
)
=
{
∑
n
tanh
c
i
n
σ
1
⋅
tanh
c
j
n
σ
1
,
if
k
j
n
is within
B
(
k
i
n
)
0
otherwise
K_{S i m}\left(P_{i}, P_{j} | \sigma_{1}\right)= \begin{cases} \sum_n \tanh \frac{c_i^n}{\sigma_1} \cdot \tanh \frac{c_j^n}{\sigma_1}, &\text{if}~k_j^n \text { is within } \mathcal{B}(k_i^n)\\ 0 &\text{otherwise} \end{cases}\tag8
KSim(Pi,Pj∣σ1)={∑ntanhσ1cin⋅tanhσ1cjn,0if kjn is within B(kin)otherwise(8)
其中,
B
(
k
i
n
)
\mathcal{B}(k_i^n)
B(kin) 是一个中心在
k
i
n
k_i^n
kin 的框,
B
(
k
i
n
)
\mathcal{B}(k_i^n)
B(kin) 的每个维度是原始框
B
i
\mathcal{B}_i
Bi 的
1
/
10
1/10
1/10。
t
a
n
h
tanh
tanh 滤除低置信度的姿态。当两个姿态对应关节点都有很高的置信度,输出接近于
1
1
1。该距离大体计算姿态之间关节的匹配数。
部位之间的空间距离考虑如下:
(9)
H
S
i
m
(
P
i
,
P
j
∣
σ
2
)
=
∑
n
exp
[
−
(
k
i
n
−
k
j
n
)
2
σ
2
]
H_{S i m}\left(P_{i}, P_{j} | \sigma_{2}\right)=\sum_{n} \exp \left[-\frac{\left(k_{i}^{n}-k_{j}^{n}\right)^{2}}{\sigma_{2}}\right]\tag9
HSim(Pi,Pj∣σ2)=n∑exp[−σ2(kin−kjn)2](9)
联合方程
8
8
8 和
9
9
9,最终距离函数表示如下:
(10)
d
(
P
i
,
P
j
∣
Λ
)
=
K
sim
(
P
i
,
P
j
∣
σ
1
)
+
λ
H
S
i
m
(
P
i
,
P
j
∣
σ
2
)
d\left(P_{i}, P_{j} | \Lambda\right)=K_{\operatorname{sim}}\left(P_{i}, P_{j} | \sigma_{1}\right)+\lambda H_{S i m}\left(P_{i}, P_{j} | \sigma_{2}\right)\tag{10}
d(Pi,Pj∣Λ)=Ksim(Pi,Pj∣σ1)+λHSim(Pi,Pj∣σ2)(10)
其中,
λ
\lambda
λ 为两个距离的权重平衡,
Λ
=
{
σ
1
,
σ
2
,
λ
}
\Lambda=\{\sigma_1,\sigma_2,\lambda\}
Λ={σ1,σ2,λ}。注意,姿态非最大抑制手动设置姿态距离参数和阈值。这里的参数可以通过数据驱动的方式来确定。
优化
给定检测到的冗余姿态,剔除准则的四个参数 f ( P i , P j ∣ Λ , η ) f\left(P_{i}, P_{j} | \Lambda, \eta\right) f(Pi,Pj∣Λ,η) 被优化从而在验证集上实现最大 m A P mAP mAP。由于在四维空间中穷举搜索是很困难的,所以作者以迭代的方式,每次固定两个参数,优化两个参数。一旦收敛,参数就被固定并用于测试。
3.3、姿态引导的提议生成器
数据增强
对于两级姿态估计,适当的数据增强是必要的,使 S S T N + S P P E SSTN+SPPE SSTN+SPPE 模块适应人体检测器生成的不完美的人体提议。否则,测试阶段模型或许不能很好的发挥作用。一个直观的方法是,训练阶段直接使用人体检测器生成的边界框。然而,人体检测器对每个人只能产生一个边界框。通过使用提议生成器,这个数量可以被极大地增加。由于每个人体已经有 G T GT GT 姿态和一个目标检测边界框,可以生成有着相同分布的训练提议的大样本,作为人体检测器的输出。使用这种技术可以进一步提升系统性能。
洞察
作者发现,检测框和 G T GT GT 框之间的相对偏移的分布因姿态的不同而不同。更具体地说,存在一个分布 P ( δ B ∣ P ) P(\delta B | P) P(δB∣P),其中 δ B \delta B δB 是人体检测器生成的边界框和 G T GT GT 框坐标之间的偏移量, P P P 是人体的 G T GT GT 姿态。如果对该分布建模,能够生成许多与人体检测器生成的人体提议相似的训练样本。
实现
由于人体姿态的变化,直接学习
P
(
δ
B
∣
P
)
P(\delta B | P)
P(δB∣P) 分布是很困难的。因此作者尝试学习分布
P
(
δ
B
∣
P(\delta B |
P(δB∣atom
(
P
)
)
(P))
(P)),其中
atom
(
P
)
\operatorname{atom}(P)
atom(P) 定义为
P
P
P 的原子姿态。为了从人体姿态注释中推导原子姿态,首先将所有姿态对齐,使他们的躯干有相同的长度。然后,使用
k
−
m
e
a
n
s
k-means
k−means 算法对已对齐的姿态聚类,计算得到的聚类中心形成原子姿态。每个人体实例共享相同的原子姿态
a
a
a,计算
G
T
GT
GT 框和检测到的边界框之间的偏移。然后用
G
T
GT
GT 框在相应的方向上的边长来归一化偏移量。经过这些处理,偏移量形成频率分布,作者将数据拟合成高斯混合分布。对于不同的原子姿态,有不同的高斯混合模型。部分分布及其对应的聚类的人体姿态如图
5
5
5 所示。
提议生成
在 S S T N + S P P E SSTN+SPPE SSTN+SPPE 的训练阶段,对于训练样本中每个注释的姿态,首先查找相应的原子姿态 a a a。然后根据 P ( δ B ∣ a ) P(\delta B | a) P(δB∣a) 分布通过密集采样产生额外的偏移,从而产生增强的训练提议。
4、实验
该方法在两个具有严重遮挡的多人数据集( M P I I MPII MPII 和 M S C O C O 2016 K e y p o i n t s C h a l l e n g e MSCOCO~2016~Keypoints~Challenge MSCOCO 2016 Keypoints Challenge)上进行了定性和定量的评估。
4.1、评估数据集
MPII 多人数据集
该数据集有 3844 3844 3844 个训练组和 1758 1758 1758 个测试组,均包括遮挡和重叠的人。而且它包含超过 28000 28000 28000 个单人姿态估计训练样本。作者使用所有单人姿态估计训练集以及 90 % 90\% 90% 的多人姿态训练集,剩下的 10 % 10\% 10% 用于验证。
MSCOCO Keypoints Challenge 训练集
此数据集要求在具有挑战性的,不受控制的条件下对人体关键点进行定位。它包含 105698 105698 105698 个训练人体实例和大约 80000 80000 80000 个测试人体实例。训练集包含超过一百万个标注关键点。测试集粗略等分为四部分: t e s t − c h a l l e n g e test-challenge test−challenge、 t e s t − d e v test-dev test−dev、 t e s t − s t a n d a r d test-standard test−standard、 t e s t − r e s e r v e test-reserve test−reserve。
4.2、测试实现细节
作者使用基于 V G G VGG VGG 的 S S D − 512 SSD-512 SSD−512 作为人体检测器。为了保证提取整个人体区域,检测到的人体提议在高度和宽度方向分别扩展 30 % 30\% 30%。使用堆叠沙漏模型作为单人姿态估计器。对于 S T N STN STN 网络,采用 R e s N e t − 18 ResNet-18 ResNet−18 作为定位网络。考虑到内存效率,使用更小的 4 4 4 个堆叠沙漏网络作为平行 S P P E SPPE SPPE。
为了验证框架的通用性,作者也使用不同的人体检测器和姿态估计器。使用基于 F a s t e r − R C N N Faster-RCNN Faster−RCNN 的 R e s N e t 152 ResNet152 ResNet152 作为人体检测器,使用 P y r a N e t PyraNet PyraNet 作为姿态估计器。这种情况下,对人体检测采用多尺度测试,而 P y r a N e t PyraNet PyraNet 的输入大小为 320 × 256 320\times256 320×256。
4.3、结果
MPII 数据集上的结果
整个测试集上的定量结果如表
1
1
1 所示。图
6
6
6 为一些检测结果
MSCOCO Keypoints 数据集上的结果
表
2
2
2 为在
t
e
s
t
−
d
e
v
test-dev
test−dev 上的测试结果
4.4、切除实验
作者评估了提出的三个模块的效果: S S T N SSTN SSTN、 P G P G PGPG PGPG、 P P N M S PPNMS PPNMS。
SSTN 和平行 SPPE
第一个实验中,去除
S
S
T
N
SSTN
SSTN 和平行
S
P
P
E
SPPE
SPPE。第二个实验中,仅去除平行
S
P
P
E
SPPE
SPPE,保留
S
S
T
N
SSTN
SSTN 结构。结果如表
3
(
a
)
3(a)
3(a) 所示。观察到,当去除平行
S
P
P
E
SPPE
SPPE,性能下降,这表明有着单人图像标签的
S
P
P
E
SPPE
SPPE 能够驱动
S
T
N
STN
STN 提取单人区域来最小化总损失。
姿态引导的提议生成器
表 3 ( b ) 3(b) 3(b) 表明姿态引导的提议生成器在系统中扮演着重要角色 。实验中首先去除训练阶段的数据增强。 m A P mAP mAP 下降到 73.0 % 73.0\% 73.0%。然后将数据增强技术与单基线进行比较。基线是通过抖动由人体检测器产生的边界框的位置和长宽比来形成的,以产生大量附加提议。选择与 G T GT GT 框的 I o U IoU IoU 大于 0.5 0.5 0.5 的提议。从表 3 ( b ) 3(b) 3(b) 的结果可以看出,数据增强技术优于基线方法。根据分布生成训练提议,可以被看作一种数据重采样,可以帮助模型更好地拟合人体提议。
参数姿态非最大抑制
由于它是一个独立的模块,因此可以直接将其从最终模型中去除。实验结果如表 3 ( c ) 3(c) 3(c) 所示。如果将该模块移除, m A P mAP mAP 将显著下降,这是因为冗余姿态数量的增加最终会降低精度。之前的姿态非最大抑制也能在一定程度上去除冗余检测,但是由于缺少参数学习,这些方法不如参数姿态非最大抑制有效,而且本文的方法效率更高。
框架的上限
使用 G T GT GT 框作为人体提议,如表 3 ( e ) 3(e) 3(e) 所示,实现了 84.2 % 84.2\% 84.2% 的 m A P mAP mAP。这验证了本文的框架已经接近于 t w o − s t e p two-step two−step 框架的上限。
4.5、错误示例
图 7 7 7 展示了一些检测失败的例子。可以看出:
- S P P E SPPE SPPE 不能处理极少出现的姿态(即第一张图像中“人旗”)。
- 当两个人严重重叠,系统难以分辨并且难以将他们分离开(即第二张图左边的两个人)。
- 当人体检测器漏检,姿态也会漏检(即第三幅图中躺下的人)。
- 当物体与人体很相似时,人体检测器和 S P P E SPPE SPPE 均难以分辨,可能产生错误的人体姿态(即第四幅图的背景物体)。
5、总结
作者提出新的 R M P E RMPE RMPE 框架,主要有三个创新点:
- S S T N SSTN SSTN 及平行 S P P E SPPE SPPE:处理人体定位误差
- 参数化姿态非最大抑制:减少冗余姿态检测
- 姿态引导的提议生成器( P G P G PGPG PGPG):通过学习给定姿态的边界框提议的条件分布,极大地增强训练数据
未来关注将框架与人体检测器进行端到端训练的研究。