【论文阅读笔记】Integral Human Pose Regression

论文地址:https://arxiv.org/abs/1711.08229
代码地址:https://github.com/JimmySuen/integral-human-pose

论文总结

  本文并没有提出什么新的东西,但做了大量的实验,主要是关于通过网络生成关节坐标,而不是heatmap,证明了产生关节坐标的重要性。其做法与DSNT没啥区别,都是对heatmap使用softmax归一化,然后进行概率积分的回归。
  比较特别的一点,是将3D和2D进行联合训练。本文的集成回归方法,也改善了3D姿态估计,使其可以混合训练3D和2D数据。
  与DSNT一样,本文也给出了不需要很大的heatmap分辨率的结论。

论文介绍

  首先,作者提出了直接回归的方法,对2D人体姿态估计不是很有效。本文提出了个方法,结合heatmap和关节点回归,就是把取最大值的操作变成取期望值。这种回归方法,集成了heatmap的所有位置,所以叫做集成回归(integral regression)。
  相比较而言,DSNT没有做大量的消融实验来验证集成回归的有效性。下图就是本文做实验的一个网络设计架构:

  在heatmap上的操作,从原来的取最大值,变成了取期望值。在求期望值之前,和DSNT一样,使用softmax处理heatmap,进行了归一化。2D坐标的获得,如下面公式所示: J k = ∫ p ∈ Ω p ∗ H ~ k ( p ) J_k=\int_{p\in\Omega}p*\tilde{H}_k(p) Jk=pΩpH~k(p)其中, Ω \Omega Ω是定义域, p p p是领域内的所有坐标, H ~ k ( p ) \tilde{H}_k(p) H~k(p)是概率权重,是heatmap经过softmax归一化得到的。

  如果是分开来训练3D数据,则3D坐标由下面公式产生: J k = ∑ p z = 1 D ∑ p y = 1 H ∑ p x = 1 W p ∗ H k ~ ( p ) J_k=\sum_{p_z=1}^D\sum_{p_y=1}^H\sum_{p_x=1}^Wp*\tilde{H_k}(p) Jk=pz=1Dpy=1Hpx=1WpHk~(p)

  如果是要联合训练3D和2D,则需要分开来得到x,y,z轴的坐标(向量),处理如下: V ~ k x = ∑ p z = 1 D ∑ p y H H ~ k ( p ) \tilde{V}_k^x=\sum_{p_z=1}^D\sum_{p_y}^H\tilde{H}_k(p) V~kx=pz=1DpyHH~k(p)再将1D的x heatmap vector转成x的关节坐标: J k x = ∑ p x = 1 W p ∗ V ~ k ( p ) J_k^x=\sum_{p_x=1}^Wp*\tilde{V}_k(p) Jkx=px=1WpV~k(p)对于目标y和目标z,也是同理。

论文实验

实验设置

  用高斯核标准差为1的2D高斯核产生heatmap作为ground truth,用MSE作为损失的实验,标记为H1。如同Mask RCNN一样,ground truth只有一个位置有标记,其余都为0的one-hot编码,使用交叉熵损失的实验,标记为H2。逐个元素的2分类问题,二元交叉熵损失函数。这种方法,ground truth heatmap在每个关节点的15个像素以内都标记为1,其余为0,这个实验标记为H3。这些heatmap的集成回归实验版本,标记为I1,I2,I3,这三个实验都得到了提升。没有heatmap中间监督的实验,标记为 I ∗ I^* I

  在关节点损失函数的选择上,实验证明, L 1 L_1 L1损失的效果比 L 2 L_2 L2要好。集成回归实验中,有带heatmap中间监督损失的,也有没带的。没有中间heatmap监督的表现也很好。比如2D任务,I1的表现最好

  除了backbone外,检测头的设置,采用deconv上采样到 64 ∗ 64 64*64 6464,输出channel为 256 256 256,再用 1 ∗ 1 1*1 11产生 K K K个heatmap。然后采用平均池化层减小空间维度,再用全连接层产生 3 K / 2 K 3K/2K 3K/2K个坐标。这个方案标记为R1。如果将heatmap再和future map结合起来的实验,再产生heatmap损失,这个实验标记为MS-H1

  实验的输入分辨率为 256 ∗ 256 256*256 256256,数据增强方法有:随机平移( ± 2 % \pm2\% ±2%),尺寸变化( ± 25 % \pm25\% ±25%),旋转( ± 30 ° \pm30° ±30°)和水平翻转。基础学习率为 1 e − 3 1e^{-3} 1e3,当收敛饱和了就衰减分辨率,最后到 1 e − 5 1e^{-5} 1e5。mini-batch为 128 128 128

实验结果

MPII验证集

  在MPII验证集上,使用heatmap,直接回归和积分回归方法的比较,backbone为ResNet-50。可以从下图注意到,所有的积分回归方法(I1,I2,I3)明显优于基于heatmap的对应方法(H1,H2,H3),这个指标的变化在[email protected]上最明显。三种基于heatmap的方法,H3的性能最差,进行了集成回归的学习(I3),也产生了巨大的提升。如此能得出一个结论:heatmap和joints的联合训练是有效的。同时, I ∗ I^* I的表现也很好,只比I1,I2,I3稍微差一点,比H1,H2,H3在[email protected]和AUC的指标上要好。这是由于其是坐标回归的原因。因此,可以得到两个结论:(1)集成回归使用heatmap表示的方式是有效的( I ∗ > H , I ∗ > R I^*>H,I^*>R I>HI>R),其甚至可以在没有heatmap监督的情况下工作;(2)关键点heatmap和关键点坐标回归的方法结合,可以合并两者的有点,效果最好。

扫描二维码关注公众号,回复: 12314226 查看本文章

  PCKH的曲线如下图所示, I 1 I1 I1的表现最好。

  下图展现了一些样例结果,进行了对比。直接回归的实验R1不能和图像特征比如边缘和角落进行对其,基于heatmap的检测可以与图片特征进行对其,但难以区分局部相似的patch,容易陷入局部最大值。

  下表展示了两个输入图片大小和两个输出heatmap大小的实验:可以看出,在小分辨率时,本文的方法得到了更好的结果,对比起来的提升也更明显。

  在不同骨干网络(ResNet和hourglass)上的实验,如下表所示:可看出,使用坐标回归的方法都是要好一些的。ResNet18使用坐标回归的方法,能达到ResNet101使用heatmap回归的高度。在需要使用小型网络时,坐标回归是更好的选择

  下表展示了在多阶段网络中,使用坐标回归方法和不使用坐标回归方法的实验对比。可以得出两个结论:(1)坐标回归可以与多阶段架构相结合,并且随着阶段的增加,性能也会提高;(2)坐标回归的方法,在所有阶段的表现都优于基于heatmap的回归。

  与当时的方法的对比:

COCO数据集

  检测器使用带deformable conv的Faster-RCNN,backbone为Xception。在COCO的test-dev验证集上有0.49的AP。和google的in the wile那篇论文一样,本文也使用基于关键点的OKS度量的NMS来去重复的框。同时,也使用那篇论文的rescore分数方法来重置实例的置信度。

  实验采用对照组:基于heatmap方法的H1和集成回归方法I1。所有实验参数和MPII一样,除了使用ResNet-101作为backbone,使用3个deconv层( 4 ∗ 4 4*4 44的卷积核,步幅为2)来上采样feature maps。下面展示了实验结果,以及和其他当时最先进方法的对比:

Human3.6M数据集

  暂不关注。效果也一般。

猜你喜欢

转载自blog.csdn.net/qq_19784349/article/details/111184326