本论文将深度学习应用于人体姿态分析,同时用卷积图层表达纹理信息和空间信息。目前在2016年的MPII竞赛中名列前茅。作者在github提供了训练和测试源码。 

convolutional pose machines, CVPR 2016.

论文:http://arxiv.org/abs/1602.00134

project:https://github.com/shihenw/convolutional-pose-machines-release

网络结构

framework

Convolutional Pose Machines

整个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,可以保证底层参数正常更新。
训练时,初始化参数随机设定。

中继监督的效果

Convolutional Pose Machines

上图示出有中继监督(黑色)和无中继监督(红色)情况下,各层梯度的分布情况。 在无中继监督时,顶层梯度分布较均匀,而底层梯度都集中0附近,几乎无法更新网络。 有中继监督时,各层梯度分布情况良好,网络能够随着训练正常更新。

实验效果

Convolutional Pose Machines


Convolutional Pose Machines

结果可视化

Convolutional Pose Machines


相关文章:

  • 2022-01-08
  • 2022-02-15
  • 2022-02-07
  • 2021-08-30
  • 2021-10-01
  • 2021-09-23
  • 2021-09-04
  • 2021-06-03
猜你喜欢
  • 2021-08-11
  • 2021-06-29
  • 2021-04-20
  • 2021-12-15
  • 2021-06-07
相关资源
相似解决方案