声明:转载请注明原文链接,阅读内容仅个人见解,如有理解错误,请联系我,欢迎交流。
《Convolutional Pose Machine》
0 摘要
姿态机提供了一个连续的预测款框架,可以学习丰富的隐式空间模型(参数或者说是特征)。在这项工作中我们展示了如何系统的设计一个卷积神经网络将其加入到姿态机中,来学习图像的特征和姿态检测任务中的图像相关空间模型。本文的贡献是隐式地预测结构预测任务中的变量之间的长程依赖关系,例如关节位姿估计。为了实现这个目标,设计了一种连续结构的卷积神经网络,能够直接操作之前阶段产生的信度图(热力图)并产生越来越精准的部分区域预测(关键点区域预测),该过程不需要显式的图像模型风格推断(也就是说CNN自动处理,而不是需要人为的去指定位置信息等)。我们的方法解决了在训练过程中梯度消失的问题,提供了一个能够自动学习的目标函数,加强中间过程的监督机制,从而补充传播的梯度和调节学习过程。我们展示了当前最先进(state-of-the-art)的技术并通过数据集MPII、LSP、FLIC数据集进行比较。
1 介绍
我们介绍了CPM来完成关节姿态检测的任务。CPM继承了[29]
姿态机结构的优点-一种隐式的学习在图像与多个部件中间的长期依赖线索,学习过程与推理过程机密结合,一种模块化的序列设计-并且将他与卷积神经网络的优点相结合:能够直接从数据中学习到图像和空间中的上下文信息;CNN可以通过反向传播进行全局联合训练(全局化迭代参数)的可微结构(梯度传播),并且有能力处理大规模的数据集。
CPMs由一系列的卷积神经网络组成并且重复产生信度图对于每一部分的定位。在CPM的每一个阶段,由前一个阶段产生的图像特征(原图)和信度图被作为新的输入。信度图为后续阶段提供了一种有变现力且非参数编码的空间不确定性部分定位。使用图模型[28,38,39]
或者是专门的后处理步骤[38,40]
代替对于信度图的显示解析方法,我们得知卷积神经网络可以直接操作中间过程的信度图并且学习区域之间的隐式图像依赖空间模型的关系。提出整个多阶段结构是完全可微的因此可以使用反向传播进行端到端的方式进行训练。
在CPM的特定的一个阶段,部分信度图的空间上下文信息为后续的阶段提供了强力的二义性消除的线索。因此,CPM每一个阶段会产生越来越精确的身体部位信度图(如图1)。为了获取部位之间的大范围的相互关系,在我们有次序的网络预测框架的每一阶段的网络结构都是有动机的,目标是实现同时在图像和信度图上得到大的感受野。我们根据经验发现,在信度图上使用大的感受野是学习大范围的空间关系和提高结果精确度的关键。
在CPM的多个卷积神经网络中,训练过程很有可能出现梯度消失[4,5,10,12]
。出现问题的原因在于反向传播的时候随着网络层次的增加,会逐渐件减弱传播过程中的梯度。有论文表明,增加对深度网络的中间层进行监督会有利于解决该问题,但是一般是针对于分类问题。本论文中,展示了如何解决一个结构识别的问题,像CPM,因此提出了一种系统框架来补充梯度和引导网络层加强中间过程的监督以产生越来越精准的信度图。我们还制定了不同的训练模式对于这个序列化的预测结构。
我们的主要贡献是a.通过CNN学习隐式的空间结构模型b.一个系统化的方法来设计并训练一个结构能够同时学习图片特征和图片的空间关系依赖,而不需要任何图模型的方法。在标准数据集MPII、LSP、FLIC上得到了最好的结果,并测试了多阶段联合训练的结果。
2 相关工作
略。
3 方法
3.1 姿态机(Pose Machine)
定义p-th
是图片的第p个位置,
Yp∈Z
Y
p
∈
Z
,Z是整个二维图像,
Yp
Y
p
表示坐标
(u,v)
(
u
,
v
)
,
xz
x
z
表示在位置z的特征。对于每一个阶段
t∈{1,2,...,T}
t
∈
{
1
,
2
,
.
.
.
,
T
}
,每一个阶段都有一个多分类器
gt()
g
t
(
)
,得到预测结果
Yp=z,∀z∈Z
Y
p
=
z
,
∀
z
∈
Z
。
第一阶段需要初始化:
b b 是一个得分,代表了第一阶段的分类器 g1 g 1 对于第 p p 个位置的预测结果为z的分数。也可以表示为:
对于后面的阶段( t>1 t > 1 ):
ψ() ψ ( ) 可以映射出前一阶段的分数对阶段的影响(上下文信息),对于所有的阶段, x′t=xt x t ′ = x t
3.2 卷积姿态机(Convolutinal Pose Machine)
我们演示了使用CNN代替Pose Machine直接从数据中学习到图像和上下文信息。CNN是完全可微的,从而使CPM在所有的阶段都可以直接进行端到端的联合训练。我们提出了CPM的结构,结合了CNN的优点和Pose machine的隐式姿态空间建模能力。
3.2.1 使用图片的局部信息进行关键点定位
CPM的第一阶段仅仅从局部图片信息获取部位的信度图。图2.c展示了网络结构从局部图像信息出发,利用深度卷积神经网络进行目标区域检测。证据是局部的,因为网络的第一阶段的感知野被限制在输出像素的周围一小部分。我们使用的网络结构由五个卷积层和两个1x1卷积层组成,得到的结果再经过一个全连接层。在测试后,为了提高训练的精度,我们需要对输入图像调整为368x368,神经网络的感知野是160x160像素。该结构可以看做是一个图片和一个160x160的滑动窗口在上面移动,最后得到P+1维度的向量,代表了每一个部位的得分值。
为什么要使用1x1卷积?
1x1卷积的大小是1x1,没有考虑吧前一层的局部信息之间的关系,1X1卷积可以加深网络结构,在InceptionNet中用来降维。
1.降维:在卷积过程中,多个通道的值一般情况下会转换为单通道,如果之前有x个通道,现在使用y个卷积核进行卷积,那么得到的feature map在通道维度上就是y。
2.进行非线性处理:卷积后进行非线性激活。
3.2.2 通过学习空间上下文特征序列预测
3.3 使用卷积姿态机进行学习
上问所述的检测结果中使用了深层次的神经网络,因此很容易导致梯度消失。[4,5,10]
发现反向传播过程中梯度下降的强度受中间层的数量影响。
幸运的是,PM的时序预测序列框架天然可以训练深层模型的过程中,来解决这个问题。PM的每一个阶段都会重复的产生信度图来表示每一个部位的定位。我们引导网络的运行结果到达一个预期的效果,通过定义一个损失函数在每一个阶段的输出位置来最小化预测结果与每一部分理想的信度图的
l2
l
2
距离。每一个部分
p
p
的理想的信度图记做:
产生的方式是通过肢体每一部位 p p 的真实位置的高斯分布峰值作为上述的值。我们定义最小化输出中的代价函数为:
其中 p p 遍历每一个部位,表示对应的区域。然后将每一个阶段的损失函数加起来得到:
我们实用标准随机梯度下降法去全局训练 T T 个时刻的网络参数。为了共享在后续的阶段中,我们在后面的阶段中对应的网络层中共享权重。(应该是说每一个Stage都是相似的)
4 评价
4.1 分析
4.2 数据集和定量分析
5 讨论
略。
Link:https://arxiv.org/abs/1602.00134
Github:https://github.com/CMU-Perceptual-Computing-Lab/convolutional-pose-machines-release