简介
《Cascaded Pyramid Network for Multi-Person Pose Estimation》,这是Face++旷世科技2017年取得COCO Keypoints Challenge冠军的文章,主要目的是解决 in the wild 场景下多人的姿态估计,即关键点回归。
这里对这篇文章做一个简单的总结,如有理解不对的地方,欢迎指正!!
文章的主要贡献是:重点内容
1 提出了一种金字塔型的串接模型,即CPN(cascaded pyramid network),这个模型能够同时兼顾人体关节点的局部信息以及全局信息,结果取得了不错的效果;
2 使用了在线难例挖掘(online hard keypoints mining)的技术,这对于人体姿态估计任务中一些存在遮挡的“hard”的关键点的预测有所帮助;
3 测试阶段考量了soft-NMS和传统的hard-NMS(非极大值抑制)在human detection阶段产生的影响,结论是soft-NMS对于最后的结果是有所帮助的。
方法
pipeline
首先,整体的方法仍然是一个传统的top-down的pipeline,即现在图片中检测到人体,再做一个单人的human pose estimation。
motivation
下面这张图阐述了作者的网络设计思路,即一些比较容易识别出来的人体关键点,直接利用一个CNN模型就可以回归得到;而对于一些遮挡比较严重的关节点,则需要增大局部区域感受野以及结合上下文信息才能够进一步refine得到。
网络结构
Figure1给出的就是作者提出的CPN模型网络结构。
可以看到,整个模型由两部分构成,GlobalNet和RefineNet。
GlobalNet的作用就是简单的前向CNN组成的回归模型,目的是回归得到一些易于识别的人体关键点位置,这里作者是使用的ResNet的网络架构回归heatmap。
RefineNet的目的则是利用GlobalNet产生的金字塔模型的特征图,融合多个感受野信息,最后concatenate所有的同一尺寸特征图进一步回归一些有歧义的关键点位置。注意,这里作者使用的是concatenate的策略,而并不是像Stacked Hourglass Networks那样的简单的upsampling。
实验
针对上面所提到的三个贡献,作者通过下面几个实验进行了证明:
首先针对human detection阶段NMS的策略,结论毫无疑问的是Soft-NMS(关于soft-NMS,这是目标检测领域提出来的一个策略,具体可以参考原文)更好,下面的表是几个不同阈值的NMS和Soft-NMS的结果比较。
对于在线难例挖掘策略的使用,主要体现在RefineNet究竟需要对多少个关键点进行Refine,根据COCO keypoints人体标注的关键点数量(17个)作者做了下面的一个实验:
可以看到,对于“Hard”的关键点的定义,在M=8的时候是比较好的,这可以理解为当M增大时一些之前GlobalNet已经预测得到非常好的关键点反而被RefineNet加上了人工干扰。
接下来,对于两个子网络的训练,是否使用在线难例挖掘,作者也做了实验:
可以看到当RefineNet加上在线难例挖掘之后取得的效果是最好的,这也证明了这个措施的有效性,至于为什么最后两行GlobalNet加上在线难例挖掘之后结果反而下降了,大概是这个阶段的网络效果受限于感受野尺寸,即预测不准的点loss加大惩罚之后还是预测不准,也就没有什么用处了。
最后,当然就是这个方法在COCO关键点挑战赛上面的表现了:
72.1的准确率,比第二名高了0.7个点。