Advertisement

CVPR 2018 Convolutional Sequence to Sequence Model for Human Dynamics 论文解读

阅读量:

论文: Convolutional Sequence to Sequence Model for Human Dynamics

论文地址: https://arxiv.org/abs/1805.00655

通过对mocap数据的学习,基于作者提出的新模型Convolutional Sequence to Sequence Model,实现对于人体运动的后几帧预测,对比之前基于RNN的residual unit based model在长期预测上做了改进,使得模型针对人体运动短期和长期预测都有较好的表现。


Table of Contents(目录)

Background (论文背景)

Discontinuity

Environment properties

Joints correlations

Methodology(实现方法)

Network Structure(模型结构)

Convolutional encoding module (CEM)

Encoder & Decoder

Experiments(实验)

Experiments detail(实验细节)

Experiments results(实验结论)

Summary(总结)


Background (论文背景)

作者主要对比RNN based method,针对自己选用Convolutional Sequence to Sequence Model的优势做了详尽的分析。

Discontinuity

Prediction

这是之前在residual unit based model中就提到的问题,是预测的第一帧与真实值最后一帧的不连续问题。在该论文中提出通过添加residual unit,预测速度代替预测人体运动姿势本身解决的问题。但是作者发现在添加residual unit之后,模型的长期预测会形成近乎静态的,取平均值的预测 ,如图中RNN第一行的预测值。作者认为造成这样的原因在于RNN model很难记忆长期的信息,以至于在做长期预测时丢失了之前的信息。

Environment properties

人体运动预测很大程度上依赖于环境属性,例如牛顿定理,人体属性等。RNN很难学习到这些,而在不断的训练中累计的错误会造成长期预测的不正确。

Joints correlations

预测的成功关键之一在于捕捉学习关节结点之间的相关性,不只是时间上也需要空间上的。虽然RNN可以很好的学习到时间上的相关性,但是很难学习到空间上的相关性。

总结下来,RNN based models大都由两部分组成,由recurrent middle layers学习时间上的动态变化,最后由全链接层学习人体运动。作者的convolutional model则将重点放在同时学习空间和时间上动态变化的实现上。


Methodology(实现方法)

对于上述RNN所遇到的问题,作者提出分层的Convolutional Sequence to Sequence Model,可以同时学习时间上和空间上的动态变化。

Network Structure(模型结构)

Model

Convolutional encoding module (CEM)

CEM module是模型中最为重要的一点,作为长期和短期encoder,用于生成long & short-term hidden variable,z_{l}^{e} & z_{s}^{e}.
z_{l}^{e}包含了给定人体运动序列的信息,z_{s}^{e}包含了时间点前几帧的信息。二者将联系在一起,通过decoder给出下一帧的预测。

Encoder & Decoder

  • Long-term encoder: 将整个运动序列map to z_{l}^{e}z_{l}{e}=h_{l}{e}。其中,X{_{1:t}}=w_{l}^{e}h_{l}^{e}的参数。
  • Short-term encoder: 将最近的运动序列map to z_{s}^{e}z_{s}{e}=h_{s}{e}。其中C代表t时间点之前选取的帧数。
  • Spatial Decoder:将z_{l}^{e}z_{s}^{e} 一起作为spatial decoder的输入,at{x}{t+1}=h{d}
  • Short-term encoder的window将随着预测时间推移而移动。z_{s}{e}=h_{s}{e}at{x}{t+k}=h{d}|w_d
  • 作者也添加了residual link,所以最后的预测值为at{x}{t+k}=h{d}|w_d+at{x}_{t+k-1}

Experiments(实验)

Experiments detail(实验细节)

  • CEM由3层convolutional和一层全链接层组成,输出的channel个数分别为64,128,128,512,Stride设置为2
  • 作者选用了2X7convolutional kernel,2沿着时间方向,7沿着空间方向
  • decoder中包含两层全链接层,第一层1024->512,用leakyReLU作为激活函数,第二层将hidden variables map to人体运动预测值
  • 在训练过程中,通过均方误差来计算loss,l_{model}:},X_{:}=rac{1}{T}um_{t'=1}{T}||\hat{X}_{t+t'}-X_{t+t'}||2_2
  • 在CEM最后一层convolutional和第一层全链接层之间添加了dropout层,在decoder两层全链接层直接添加了dropout层,设置的dropout概率都为0.5
  • 作者还加入了对抗网络,通过添加discriminator来鉴别真实值与预测值。min_{W_D}-um_{X_{1:t+T}} logD-um_{}log
  • 最后的目标变为
  • min_{w^e_l, w^e_s, W_D}-um_{X_{1:t+T}} l_{model}:},X_{:}+ambda _{2}-ambda _{adv}log,其中ambda _{adv}ambda _{2}设置为0.01和0.001。

Experiments results(实验结论)

Table
  • 模型对各类运动类型的表现都很好
  • RNN在长距离的传播过程中,encoded information可能会消失,而作者提出的模型通过z_{l}^{e}将信息很好的保存了下来
  • 同时,短期的信息可以通过z_{s}^{e}捕捉。

Summary(总结)

  1. 作者针对RNN在人体运动预测的问题上做了详细分析,主要原因在于RNN在循环传播过程中会丢失久远的信息导致做长期预测时有较大的误差。
  2. 作者提出的Convolutional Sequence to Sequence Model,核心思想在于short term encoder以及long term encoder同时保留长期以及短期的运动序列信息,将它们一起作为decoder的输入。同时在encoding过程中,选取了convolutional kernel用于获取关节在时间和空间上的相关性。
  3. 作者加入了对抗网络来提高模型的表现,加入dropout防止overfitting。

全部评论 (0)

还没有任何评论哟~