本论文将深度学习应用于人体姿态分析,同时用卷积图层表达纹理信息和空间信息。目前在2016年的MPII竞赛中名列前茅。作者在github提供了训练和测试源码。
convolutional pose machines, CVPR 2016.
论文:http://arxiv.org/abs/1602.00134
project:https://github.com/shihenw/convolutional-pose-machines-release
网络结构
framework
整个framework还是比较清晰的,从构建多个FCN网络来预测part/joint的heat maps,多个FCN就构成了convolutional pose machines(CPM)。
自然而然地满足了CPM得multi-loss的joint training,而且stage越往前的objective还起到解决梯度弥漫的作用,以及自然而然地提高CPM的感受野。
网络输入彩色图像。每个阶段都能输出各个部件的响应图,使用时以最后一个阶段的响应图输出为准。
center map是一个提前生成的高斯函数模板,用来把响应归拢到图像中心。
第一阶段(对应论文3.2.1)
第一阶段是一个基本的卷积网络
,从彩色图像直接预测每个部件的响应。
第二阶段(对应论文3.2.1)
第二阶段也是从彩色图像预测各部件响应,但是在卷积层中段多了一个串联层。共三个数据:
-纹理特征 ---- 阶段性的卷积结果 ;
- 空间约束----前一阶段各部件响应;
- 中心约束;
串联后的结果尺寸不变;
第三阶段
第三阶段不再使用原始图像为输入,而是从第二阶段的中途取出一个
深度为X的特征图
(feature image)作为输入。同样使用串联层综合三种因素:纹理特征+空间特征+中心约束。
第四阶段以后
第四阶段结构和第三阶段完全相同。在设计更复杂的网络时(例如全身模型),只需调整部件数量,并重复第三阶段结构即可。
训练
数据扩展
为了丰富训练样本,对原始图片进行随机旋转缩放镜像。
标定
姿态数据集中标定的是各个部件的位置,可以通过在每个关键点的真实位置上放置一个高斯响应,来构造响应图的真值。
中继监督优化
如果直接对整个网络进行梯度下降,输出层的误差经过多层反向传播会大幅减小,即发生vanishing gradients现象。
为解决此问题,本文
在每个阶段的输出上都计算损失
。这种方法称为
intermediate supervision
,可以保证底层参数正常更新。
训练时,初始化参数随机设定。
中继监督的效果
上图示出有中继监督(黑色)和无中继监督(红色)情况下,各层梯度的分布情况。 在无中继监督时,顶层梯度分布较均匀,而底层梯度都集中0附近,几乎无法更新网络。 有中继监督时,各层梯度分布情况良好,网络能够随着训练正常更新。
实验效果
结果可视化
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)