【姿态估计文章阅读】PifPaf: Composite Fields for Human Pose Estimation

一、CVPR2019,内容上还是比较厉害的,代码:https://github.com/vita-epfl/openpifpaf

二、主要思想

       1、提出了Part Intensity Field (PIF)来提升heatmap在高分辨率下的精度

       2、利用Part Association Field (PAF)来连接joints

       3、本文方法主要比较放在了低分辨率下、遮挡情况以及拥挤等

       4、本文利用更加有效的loss,Laplace loss 以及soomth L1 loss来完成回归偏移量的回归和置信度的回归

三、模型的主要结构

      这个部分放一个图就可以一目了然,//2就是步长=2,也就是下采样了:

四、Part Intensity Field (PIF)

      文章之所以采用这个是因为,我们预测的heatmap都是在比原图小的低分辨率下预测的,一个像素位置可能会造成8像素以上的偏差。以往很多方案中都是采用的双线性插值,将heatmap还原到原图大小再去进行argmax或者nms,但是这样毕竟与直接预测有着差距。

      因此文章中借鉴了“Towards Accurate Multi-person Pose Estimation in the Wild”中Coarse to fine的思想,粗略的heatmap结合offset的思想。当然在本文中采用的方式略有不同。

      从网络结构图上面的介绍可以发现,PIF这部分预测的通道数=17*5,这个5就是这5个量,第一个是置信度;第二、三个是预测的offset向量;第四个使用在loss上的,其实就是动态的去限定了一个loss计算时候的注意力更加集中在groundtruth附近的区域;第五个用于还原到高分辨率时候的高斯的sigma,这样的话对于不同大小的joint就能产生不同的尺度。

      

     可以从上图中发现,原始的预测的“置信度map”比较粗糙了,这种直接nms/argmax必然会引入一些误差--对应到evaluation时候的不同“阈值”选择的时候,效果会有所不同。      

                           

       这个公式的意思就是对于需要还原的图中的某个位置(x,y),他的置信度是通过融合“预测的所有位置的置信度*对应位置估计的高斯分布在这个位置的值”

       这个方式,从效果图上来看,还是比较好的,而且对于图中的不同大小的joint,也有着不同的sigma,也是比较符合人的直观理解,这样的效果也会比统一sigma的heatmap的MSELoss看起来更加合理些。

 

五、Part Association Fields(PAF)

      这是另一个核心部分,从网络结构图的介绍可以发现,这部分需要预测19*7个通道,也就是定义了19个connection,每个connection中包含了7个量:  ,第一个代表了置信度,两个座标offset vector分别指向两个joint,以及两个宽度因子。

      

     如何生成的?

     对于每个位置,会先去找到离这个位置最近的joint是哪个,然后确定下来;再去更具定义的joint 之间的connection去找到这个点对应的另一个joint。应用的时候,对于置信度的阈值设定了0.5,这样就可以产生如下效果:

      

 

六、Adaptive Regression Loss

     对于大尺度的目标而言,joint的一点点座标偏移,这个error带来的影响是比较小的,但是同样的情况对于小目标而言就是另一只情况了。

                                            

七、Greedy Decoding 也就是组装算法

      这里的话,比如选择从头顶开始,那么会选择整个图中置信度最高的那个头开始,然后利用paf把这个joint 连到下一个joint,直到把这个人组装好了,这个人就定下来了。然后选择下一个头,再来一遍。

      那么对于某个joint ,如何去利用paf?

     对于向量X,利用上面这个公式,能给每个paf 的预测向量打分,当然是选择分最高那个。

八、实验

   后续再看看,实验中有没有重要的细节,看看代码,再来补充~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章