https://arxiv.org/pdf/1602.00134.pdf
CPM基本上可以算是第一个end-to-end的单人姿态全卷积神经网络(同时期还有个Hourglass,两者时间差不多)。CPM是在之前PM(Pose Machines)基础上,加入卷积神经网络得到,CPM整体流程如下所示:
(a)和(b)就是PM中的结构,(c)(d)则是CPM对应(a)(b)做的改进。CPM分为多个stage串联进行关键点预测,大致如下:
- Stage 1接受原图作为输入,通过7个convolution和3个pooling得到大小的featuremap,P是关键点的个数,+1是加入了background
- Stage t(t>=2)除了接受上一个stage得到的featuremap,还共享了一个从原图重新提取的featuremap,即上图中的。每个stage最后仍得到一个大小的featuremap作为输出
- 网络会对每一个stage的输出都做一个的计算,但stage 1 和 stage t(t>=2)对应的label不一样,stage 1的label是图像中所有的关键点位置打的高斯核,stage t的label对应了某个确切的人的信息,其余人的信息都被抑制掉,直观看就如下图,左图为stage 1 的label形式,右图为stage t 的label形式。
CPM多stage串联的形式,是一种coarse to fine的过程,网络可能在前面的stage学习的信息有误,但会在后续的stage中被修正,这个得益于随着stage的增加,网络的感受野也逐渐增大,能够看到的全局信息更多,自然可以纠正在前期发生的错误,如下图所示:
同时文章也论证了更大的感受野对提高模型精度的作用,更大的感受野可以感知人体潜在的连接关系和几何约束而不需要显示的人工定义各个关节之间的连接信息:
论文Section 3.2.2中有这么一句话:“We found that our stride-8 network performs as well as a stride-4 one even at high precision region, while it makes us easier to achieve larger receptive fields”。然而从后期的网络模型来看,特别是最近的HRNet和Higher-HRNet来看,保持网络输出相对于输入较小的scale会学习到更精确的关键点位置信息。同时文章也探讨了中继监督对保持网络正常训练的作用。因为随着网络层数的增加,浅层的layer会有很大可能发生梯度消失现象,加入中继监督后,即使最后一层的loss传到浅层网络时梯度可能消失,但中继loss会指导浅层网络继续学习,加入中继loss也是后续多级网络的一个标配,如下图所示:
- 多级的串联学习起到coarse to fine的作用
- 中继监督能够加速模型收敛及保证模型正常训练
- 更大的感受野能更有效利用全局信息,特别对于人体姿态这种几何约束强的任务
Reference:
- https://blog.csdn.net/shenxiaolu1984/article/details/51094959/
- https://blog.csdn.net/zimenglan_sysu/article/details/52077138