创新点总结
- 提出一个新的3D姿态估计算法,使用关系网络结构表示人体部件之间的关系。
- 使用每个人体部件产生的平均特征用于3D姿态估计。
- 新的dropout方法——relational dropout,提升鲁棒性,模拟关节丢失的情况。
主要内容
【图像 -> (2D -> 3D),由Martinez等人的SimpleBaseline启发】
网络结构
【基于《A simple neural network module for
relational reasoning》进行改进,用于3D人体姿态估计】
Relational Networks 关系网络
原始关系网络定义
f和g是神经网络;O={o1,…on}是对象的集合。不同的对象对oi,oj输入网络g种,所有对象对的关系相加得到关系信息特征。
所有对象共享权重。
文中的关系网络
文中将RN应用到3D人体姿态估计中。2n2D维向量作为输入,3(n3D-1)维向量作为输出。n2D和n3D分别表示2D和3D关节。不同关系模型之间不共享权重。
将2D关节输入分为非重叠的五组。每组有3-4个关节。关系网络学习不同人体部件之间的关系。
【将每个部分输入到关系网络中产生相同维度的特征矩阵 --> 将关系特征的平均值传送到下一个网络模块中(在训练时,平均值 比 和值 更加稳定)】
网络结构由两个部分组成:
① 《Identity mappings in deep residual networks》论文中的网络结构作为关系网络
② 下面图中的网络,输入是前一个网络输出特征的平均值
总体网络结构图:
为了能够获得两个关节之间的关系信息,设计了一个分层关系网络,用于学习相同组中两个关节之间的关系。这个分层的表示方式并不比一个单独层的关系网络效果好,但是当使用relational dropout时,这个分层结构更有优势。
公式定义:
关系网络定义:
np对的数量(pairs的数量),S3D, S2D代表3D和2D人体关节shape,Gi表示2D关节输入的子集属于组i。
组的特征Gk定义:
npk是组k中成对的关节数量,Pi, Pj是组k中的2D关节。产生的特征作为下一个关系网络(上一个公式)的输入。
Relational dropout
当特征对被平均时,随机丢弃一对特征,模拟在训练过程中某些组关节缺失的情况。
- 限制丢弃的关节组合最多只有一个
- nG是组数,在nG(nG-1)/2对中,nG-1的特征将被丢弃,并用零向量代替。
- 计算特征的平均值,并除以non-dropping的向量,以维持特征向量的规模。
- 在测试时,只在包含缺失关节点的时候使用relational dropout
- 当组k被选择为dropped时,定义公式如下:
- 实验中模拟了3中丢失关节的情况:2个随机关节、左臂、右腿;
完整网路结构及参数
- 姿态估计器 f(.) :2048维度的全连接层,dropout probability为0.5。
- gi,j(.):产生Gi,与Gj之间的关系特征向量,1024维度的全连接层,dropout probability为0.25。
- 分层关系网络:产生2D关节对之间的关系,256维度的全连接层,dropout probability为0.1。(在训练时,pdrop为0.2,用于丢弃一个组的关节;pdrop为0.1时是分层关系单元中使用relational dropout的情况,用于丢弃一个单独的关节。
其他细节:
- 使用hourglass network获取2D关节
- 使用Human3.6M优化之前在MPII上的预训练模型。在优化过程中,使用batch normalization,dropout probability为0.5
- 对2D和3D关节进行中心化(Mean subtraction,零均值化)预处理
- 关系网络使用ADAM优化器;初始学习率为0.001;batch size为128;学习率每20000次迭代就减一半;网络训练经过100000迭代。
实验对比
- 全连接层网络丢弃关节训练没有关系网络丢弃关节训练的效果好
- 分层的关系网络丢弃关节训练的效果在所有情况下都比关系网络丢弃关节训练好
- 在不丢弃关节训练的情况下,分层关系网络的表现没有关系网络好。尽管其参数更多,但是训练的关节数量更少
- 关系网络丢弃关节训练只能丢弃一个关节,而分层关系网络可丢弃组中两个或更多关节
更改思考
- 不使用关系网络,利用其中丢失关节点训练的方法,对比是不是更好。(实验中对比了baseline这种全连接层丢弃关节进行训练的方法)