Learning Delicate Local Representations for Multi-Person Pose Estimation

arxiv
official pytorch implemention
旷视研究院最新关于人体姿态估计的力作,最优模型在COCO test-dev刷到了79.2,rank no.1,关键还是几位实习生做的,还是个98年的大佬~~

前言
人体姿态估计是一个对位置精度要求很高的任务,它不像图像分类对location信息要求不那么严格,而是和语义分割一样,准确的location信息对它帮助很大。之前的很多姿态估计模型为了更好的利用多尺度的feature,常常会在不同level(我们将featuremap size相同大小的为同一level)之间融合信息(inter-level),最后再接几层卷积得到最后的输出,但是,有关相同level之间的信息融合研究确很少(intra-level),文章的主要关注点就是在这个intra-level,如下图所示:
Learning Delicate Local Representations for Multi-Person Pose Estimation
Fig.1(a)是一个提取feature的backbone,(c)(c)展示就是inter-level feature fusion,在之前的网络中,如hourglass, CPN,MSPN等都经常用到。(b)(b)就是本文着重提出的intra-level feature fusion。从(d)(d)中可以看到,low-level的feature map可以有效的帮助网络去更准确的定位关键点的位置,这个也就是所谓的Local Represention。所以,为了更有效的去表达这个Local Represention,文章提出了网络结构Residual Steps Network(RSN),每一个RSN里面都是由基本单元Residual Steps Block,RSB组成。作者说是受到了DenseNet的启发,但由于DenseNet是concate的,随着模型的depth增加,模型会变得越来越大并且越来越冗余(这个在后面会做比较),所以改进了DenseNet的连接方式,由concate改为element-wise sum,并且会在最后一个RSN后面再接入提出的Pose Refine Machine,PRN结构对featuremap做最后一次优化,具体模型结构如下图所示:Learning Delicate Local Representations for Multi-Person Pose Estimation
方法
RSB:
首先看RSN网络,RSN网络中是由N个RSB串联组成,在RSB中,所有的featuremap level都是相同的,所以在RSB中执行的都是intra-level feature fusion。RSB具体来说,对于属于的一个feature,会分成5个branch(类似NIN结构),记为fi,i=1,2,3,4f_{i}, i = 1,2,3,4和一个Identity connection branch(和reset中的一样),每个fif_{i}对应的产生一个yiy_{i}。为啥这个网络叫RSN呢,因为从f1f_{1}f4f_{4},里面的3x3卷积的数量是递增的,就像一步步在增加一样,所以称之为Residual Steps Network
这个RSB结构为啥有用,首先看下RSB中每个branch的输出yiy_{i}对应的receptive fields(假设输入时RF=1):Learning Delicate Local Representations for Multi-Person Pose Estimation
具体分析下,f1f_{1}时,只有一个3x3的卷积就得到了y1y_{1},所以y(1,1)=3y_{(1,1)} = 3f2f_{2}时有2个3x3卷积,从Fig2.(c)Fig 2.(c)中可以看到,y(2,1)y_{(2,1)}是由y(1,1)y_{(1,1)}先和1x1卷积后的结果element-wise sum之后再通过一个3x3卷积得到,只考虑branch f2f_{2}的RF,RF y(2,1)=3y_{(2,1)} = 3,但加入了y(1,1)y_{(1,1)}之后,相当于2个3x3了,所以其RF=5,所以y(2,1)=(3,5)y_{(2,1)} = (3,5),余下的同理。从Table 1中可以看到,虽然RSB中所有的feature都是在同一个level上,但不同branch表达的感受野大小不一样,如Table 2和其它模型相比,RSB可以表达的感受野更宽,更深,这也是RSB为啥效果会这么好的原因,因为它十分有效的利用了intra-level之间的信息,从而让模型的location更准确。Learning Delicate Local Representations for Multi-Person Pose Estimation
Pose Refine Machine
PRM网络是接在模型的最后一个RSB之后,输出之前,利用了利用了channel attention和spatial attention。PRN的具体结构如下图3所示,PRM首先对输入的featuremap进行3x3卷积得到featuremap ff,然后分成3个path,top path就是Identity,middle path是根据SENet修改的channel attention结构,先经过一个global pooling,接着2个1x1,最后一个sigmoid得到Weight Vector α\alphaα\alpha会和ff相乘得到一个新的featuremap fmidf_{mid}。bottom path就是spatial attention结构,先经过一个1x1,然后kernel 9x9的depth wise卷积,最后接一个sigmoid得到β\betaβfmid+f\beta * f_{mid} + f就是PRM结构的输出foutf_{out}。用公式来表示就是:Learning Delicate Local Representations for Multi-Person Pose Estimation
PRM利用attention机制,有效的利用了由前面RSB得到的inter-level和intra-level的混合信息,channel wise attention有利于语义信息,而spatial attention有利于精确定位,所以模型的效果会比较好。

实验结果
Learning Delicate Local Representations for Multi-Person Pose Estimation
Table 3让人印象深刻的就是,RSN-18网络在和Res2Net-101差不多精度的表现下,其flops却减少了接近2/3,确实效果很赞,精度又高速度又快,说明RSN结构确实很有用。Learning Delicate Local Representations for Multi-Person Pose Estimation
文章同样通过对比实验说明的RSN网络的高效性,图4中可以看出,随着GFLOPs的增大,ResNet DenseNet Res2Net都趋向于饱和,但RSN结构仍然可以提高精度,索命RSN结构中对于feature的冗余信息很少,而和DenseNet的比较中也可以发现,element wise sum的方式要比concate的方式更有效。

为了进一步说明RSN结构的高效性,文章取不同网络不同level的最后一层1x1之后的输出来观察这些结构的不同。图5可以发现,RSN在各个level上有效信息的含量都比 Res2Net和DenseNet来的多。图6是各个网络的响应在原图上,很明显的可以看到,RSN得到的响应更准确,不仅范围更小,位置也更准确。
Learning Delicate Local Representations for Multi-Person Pose EstimationLearning Delicate Local Representations for Multi-Person Pose Estimation
Ablation study of RSN Architecture
既然RSB中结构如此有效,那么究竟里面的branch划分为多少比较合适,文章通过实验证明,当branch为4的时候,最有效。Learning Delicate Local Representations for Multi-Person Pose Estimation
Ablation study of Pose Refine Machine
PRM结构究竟对模型的精度有多大的帮助,文章通过比较做对比实验发现,即便是很复杂的模型(4xRSN-50,4xResNet-50),加入PRM后,同样可以提高0.4个点,并且对于网络结构越简单的模型越有效。
Learning Delicate Local Representations for Multi-Person Pose Estimation

总结
最后的result:
Learning Delicate Local Representations for Multi-Person Pose Estimation
2个contribution:

  1. 提出的RSB结构是一个高效的intra-level feature fusion结构,提高了模型的定位精度
  2. 提出的PRM结构可以进一步对pose的结果进行refine(这个结构可以用在现有的任一模型上,应该都能提高精度)

旷视在人体姿态估计上已经连续刷榜2年了,分数也一直越来越高,这篇文章更是几乎达到了80。作者也已开源,在我自己的数据集上测试,RSN-18的mAP要比同样输入大小的HrNetw32_256x192高4个点左右,而且速度快了接近6ms(20.9 vs 26.5),确实高效。