HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation (CVPR2020)

official pytorch code
paper link
恭喜文章被CVPR 2020接收。本来19年的时候在arxiv上找到了这篇文章,当时还是叫做"Bottom-up Higher-Resolution Networks for Multi-Person Pose Estimation",今天一看arxiv上已经更新到v3了,名字也改了。

HigherHRNet是在HRNet和Simple baseline工作的基础上形成了。HRNet因其可以一直保持一个high resolution way来提取feature,提取的feature效果很好,从而可以用在pose estimation,object detection,semantic segmentation等工作上,具体可以查看here. HigherHRNet则更进一步,因为之前simple baseline的工作证明了,通过反卷积得到更高分辨率的featuremap有助于pose estimation效果的提高,因此,HigherHRNet就是在HRNet原本输出的featuremap基础上,额外加入了一个反卷积,使得模型的输出size进一步提高,pose estimation效果更好。HigherHRNet的具体网络结构如下图所示:HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation (CVPR2020)
虚线后面就是HigherHRNet在HRNet基础上新加的内容。除了需要在原本的1/4 branch上得到heatmap输出外,又在此基础上额外加入个反卷积得到1/2的featuremap,并在后面加上4个residual block用来refine,最终得到1/2branch上的heatmap输出。HigherHRNet是bottom-up的方法,使用之前论文提出的associate embedding对每个heatmap point赋上一个tag,用来做后面的后处理工作。论文只着重强调在前半部分关键点的提取上,后处理部分没有详细介绍,具体可以参考associate embedding这篇文章。

文章关键部分

  • Higher resolution。HRNet本身尺度已经不小了,有一个一直保持1/4尺度的branch,为啥还要继续增大?一是直接在HRNet上进行这个bottom-up方法的训练,发现一些small和medium的person joints很难预测出来,二是受到之前工作simple baseline的启发,更大的featuremap能够促进更精确的heatmap生成。所以,HigherHRNet在HRNet的基础上,额外再提高一倍的size用来生成更大的heatmap。那么问题又来了,HigherHRNet已经是1/2尺度了,那再提高一倍变成scale和输入一致呢?文章中通过对比实验说明,再引入一个反卷积,模型效果反而会下降,这是因为,更大的resolution会伤害模型在large person尺度上的预测,如下表所示,实验证明,1/2scale的featuremap最优。HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation (CVPR2020)
  • Grouping。Bottom-Up的方法虽然相对于Top-Down方式的处理速度更快,但后处理相对来说却更麻烦。论文之所以没有对后处理中的grouping做更多研究,是因为在论文associate embedding中已经指出,如果提供的是ground truth的joint location,模型预测的tag+gt joints可以在coco train 500张图片上达到AP 94.0。
  • Multi-Resolution Supervision。1/4 heatmap和1/2 heatmap都使用同样大小的高斯分布,之所以没有在1/2 heatmap上使用更大的高斯核,是因为作者人为这两个尺度输出的heatmap已经包含了多尺度的信息,并且在一个更大的featuremap上使用一个相对较小的高斯核有助于提高定位精度。关键点的训练在1/4branch和1/2branch上都有参与,但tag训练只在1/4branch上进行,作者认为tag需要更多的全局信息来确定关键点归属,而低分辨率的全局信息更丰富。
  • Heatmap Aggregation for Inference。在inference的时候,1/4尺度的heatmap会通过 bilinear interpolation to upsample和1/2尺度的heatmap融合平均得到最终的输出。The reason that we use heatmap aggregation is to enable scale-aware pose estimation,多个尺度的输出融合在一起,就相当于多尺度融合,这样无论small medium或large尺度的person都能在最终的结果找到自己的合适位置,这也是论文说HigherHRNet是scale aware的原因。

实验结果
在COCO test-dev上的比较:
HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation (CVPR2020)HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation (CVPR2020)
在Crowd pose上的结果,同样是SOTAHigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation (CVPR2020)

总结

  1. 多尺度训练,inference时进行heatmap aggregation可以一定程度上解决bottom-up方法,关于人尺度多样性难训练的老大难问题。Top-Down方法之所以精度高,就是因为将不同尺度的person rescale到同一个尺度下。
  2. output feature map需要再大一点,但不是越大越好,这个一般来说是和数据集有关系的,更大一些的feature map对提高检测small person的效果更明显。