paper title: RMPE: Regional Multi-person Pose Estimation
paper link: https://arxiv.org/pdf/1612.00137.pdf
project: https://www.mvig.org/research/alphapose.html
oral or demo video:https://www.youtube.com/watch?v=RHNdbEY5xn4
github: https://github.com/MVIG-SJTU/AlphaPose
conf & anthor: ICCV 17, Hao-Shu Fang et al.(SJTU)
arXiv submit v1: 2016.12
姿态估计系列:
- DeepPose - human pose estimation via deep nerual networks
- Efficient Object Localization Using Convolutional Networks
- Convolutional Pose Machines
- Human Pose Estimation with Iterative Error Feedback
- Hourglass Network - stacked hourglass network for human pose estimation
- OpenPose - Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
- RMPE: Regional Multi-person Pose Estimation
- Pose flow: Efficient Online Pose Tracking
- CrowdPose: Efficient Crowded Scenes Pose Estimation and A New Benchmark
主要内容:
这篇文章主要介绍了一种two-stage的多人人体姿态估计方法。与通常的two-stage方法一致,第一阶段使用人体检测器检测出图像中的人,第二阶段使用单个人人体姿态估计(SPPE)模型进行人体关键点检测。
文章在two-stage的算法流程基础上,有三点主要变化:
(1) 在SPPE网络之间增加了一个Spatial Transformer Network(STN,关于STN可参考 Spatial Transformer Network)
对检测出的人体的区域做一个空间变换,并在SPPE之后进行一个反变换;设置了两个SPPE网络分支,一个是(1)中所述,另外一个主要用来对网络进行正则;
(2) 提出了一种参数化的Pose NMS方法去除冗余;
(3) 使用了一种Pose Guided Porposal Generate(PGPG)方法进行训练集扩增。
网络结构:
RMPE的网络结构如下图所示:
首先是一个人体检测网络产生人体proposal;然后是两个单人人体姿态估计网络分支,暂称之为主SPPE和辅SPPE,辅SPPE只在训练的时候用到,训练的时候使用PGPG产生proposal;之后是Pose NMS处理模块,最后得到姿态估计结果。下面就这几个部分作更详细一些的说明。
(1)SPPE
主SPPE是一个单人人体姿态估计网络,可以是Hourglass Network等网络。这里的特殊之处是在网络之前和之后分别添加了了一个STN)和SDTN,STN会对输入的图像进行一个空间变换(如仿射变换),然后经过SPPE进行人体关键点检测,检测完后再通过SDTN变换回原来的空间状态。STN中的localization network在训练的时候是有参数参与训练的,训练得到变换参数 θ \theta θ,而SDTN中则直接使用STN中的 θ \theta θ的反向变换即可。
(2)Parallel SPPE
parallel SPPE的模型结构与主SPPE一致,但是在训练过程中,模型中的参数都是冻结的,并不参与训练,推理的时候是不需要该分支的。另外这条分支使用的label是center-located,目的是让STN变换后的pose是处在图像中心的,以降低关键点检测的难度并提高准确性。这条分支对STN起到一个正则化的作用。
既然parallel SPPE的目的是反向传播center-located的误差,那么是不是可以直接在主SPPE的SDTN模块之前加一个center-located的回归损失?文章对这个问题作出了解释,如果在主SPPE分支上直接加一个损失,输入的坐标空间可label的坐标空间表示的不同,会降低原本的SPPE的姿态估计效果。
(3)PGPG(Pose Guided Proposal Generator)
在得到人体检测的bounding box之后,可以通过对bounding box平移缩放等操作扩增数据集,提高模型的性能。文章提出的PGPG是基于已知的pose label 和检测的bounding box,通过发现不同pose的bounding box和label box之间的一些位置关系的统计情况,为不同的pose设置“pose-guided”的不同的数据增强方式。
具体来说,不同的pose P P P的lable和检测的bbox的偏移 δ B \delta B δB的分布情况是不同的,如下图,可以找到这个分布 P ( δ B ∣ P ) P(\delta B|P) P(δB∣P)。
但是直接求分布 P ( δ B ∣ P ) P(\delta B|P) P(δB∣P)是比较困难的,文章中首先都所有ground truth pose进行归一化并使用k-means进行聚类,聚类中心使用atom pose。最后将atom pose的偏移 δ B \delta B δB建模成混合高斯分布。
(4)Parametric Pose NMS
人体检测会出现冗余的bbox,导致估计的人体姿态也有冗余,需要使用NMS消除冗余,文章提出了一种参数化的Pose NMS方法,通过检测的关键点的置信度和距离来衡量不同pose之间的距离,依此进行冗余消除,方法中使用的参数都是从数据中学习到的。
具体来说,对于第i和Pose P i P_i Pi, k i j k_i^j kij</