RMPE:基于区域的多人姿态估计.
本文提出了一种Top-Down的多人姿态估计方法,即先检测人,再识别人体姿态。对于自顶向下的方法,主要问题在于人体检测位置不准确和检测冗余,即使在检测任务中是正确的,提取的proposal也不一定适用于单人的姿态估计方法;同时冗余的检测框也使得单人的姿态被重复估计。本文致力于解决imperfect proposal问题,通过调整,使得裁剪的目标区域能够被单人姿态估计方法很好的识别,从而克服检测带来的定位误差。
本文提出了区域多人姿态估计(Region Multi-Person Pose Estimation,RMPE)框架,包含三部分:
- Symmetric Spatial Transformer Network(SSTN):对称空间变换网络,用于在不准确的人体检测框中提取准确的单人区域;
- Parametric Pose Non-Maximum-Suppression(p-Pose NMS):参数化姿态的非最大值抑制,用于解决人体检测框冗余问题;
- Pose-Guided Proposals Generator(PGPG):姿态引导区域框生成器,用于数据增强。
本文使用SSD进行人体检测,使用Stacked Hourglass进行单人姿态估计。整个过程分为三步:
- 用SSD检测人,获得human proposal;将human proposal在长宽方向上延长$20\%$,以确保可以把人完整的框起来。经过验证,这样确实可以把大部分的人整个框起来。
- 将proposal输入到两个并行的分支里面,上面的分支是STN+SPPE+SDTN的结构,即Spatial Transformer Networks + Single Person Pose Estimation + Spatial de- Transformer Networks。STN接收的是human proposal,将延伸过的图像进行仿射变换,可以生成一个比较精确的、适合作为SPPE输入;SPPE是一个单人人体姿态估计器;SDTN把SPPE的输出经过与前边相反的STN变换,将坐标变换回原来的坐标系,产生pose proposal。下面并行的分支充当额外的正则化矫正器。
- 对pose proposal做Pose NMS(非最大值抑制),用来消除冗余的pose proposal。
⚪ Symmetric STN
STN相当于在传统的一层卷积中间引入矩阵的仿射变换,可以使得传统的卷积带有了裁剪、平移、缩放、旋转等特性;目标是可以减少CNN的训练数据量,以及减少对data argument的依赖,让CNN自己学会数据的形状变换,将输入图像做任意空间变换。
⚪ Parallel SPPE
并行的SPPE作为正则化作用,用来进一步加强STN提取优质的human proposal。这一支的label设置为single person pose。训练时使用2条支路输出的总误差来训练网络,parallel SPPE所有层参数在训练阶段是固定的,Parallel SPPE分支和真实姿态的标注进行比较,反向传播中心位置的姿态误差给STN模块。如果STN的姿态不是中心定位,parallel SPPE反向传播较大的误差。通过反向传播的方式帮助STN聚焦正确的区域,实现提取高质量人体区域。测试阶将下面的Parallel SPPE丢掉,只使用Symmetric STN进行前向传播。
⚪ Parametric Pose NMS
首先选择置信度最高的pose作为参考,靠近它的pose通过淘汰标准来消除。对于剩下的pose重复上述过程,直到消除冗余姿势,并且仅返回唯一的pose。
⚪ Pose-guided Proposals Generator
在训练过程中通过数据增强增加proposal的数量,每一张图片的$K$个人会产生$K$个bbox,根据ground truth的proposals,生成和其分布相同的多个proposals一起训练。