人体运动预测是计算机视觉和图形中的经典问题,该问题从人类运动的过程中获得经典的计算机图像视觉,并通过计算机对数据的分析处理产生对未来的人体运动情况的预测,在人机交互,自动驾驶和人体跟踪等领域都有重要应用。
人体运动预测,即在给定观察到的姿势序列的情况下预测未来的身体姿势[1]。当前已经开发了不同的用于人体运动姿态预测方法,提出了几种分析模型。由于人体运动中的未来姿态取决于人的意识和物理规则等多方面因素,即便是开头极相似的姿势序列也有可能由于人的意图不同而产生完全不同的后续实际姿态,因此,相关文献中经常将人体预测任务分为两类进行实验和评估:短期任务又称预测任务,长期任务又称生成任务。
1.人体运动捕获数据
人体运动预测任务需要相关人体运动捕捉的数据生成姿势序列作为输入。人体运动捕获数据在每一个捕获时间点记录了人体关节的朝向或位置,形成一个运动帧序列,而运动重用技术可以利用已有的运动数据通过分析建模产生新数据,节省数据获得成本。为解决早期运动重用算法针对性不强的问题,夏贵羽从机器学习的角度设计了适用于运动捕获数据的定制型机器学习算法,对姿势序列的生成获得具有相当意义。
2.预测序列生成算法分析
2.1早期方法
在较早期的研究工作中,一些传统的统计学方法已经被应用于该问题的研究,如隐马尔可夫模型,线性动力学系统[4],高斯过程潜变量模型[5]等,这些模型都具有模型容量与推理复杂度之间的关系,在简单的周期性运动和非周期性运动中已经被证明是有效的。然而面对较为复杂的问题时,这类传统的数据驱动方法获得的结果会产生很大的误差,因此最近的研究通常采用深度学习方法如循环神经网络(RNN)和卷积神经网络(CNN)进行处理。
2.2循环神经网络(RNN)
RNN网络的隐藏层节点间是有连接的,隐藏层输入与隐藏层前一时刻输出和输入层输出均有关,这使得RNN网络适用于时间序列模型问题的解决,而MoCap序列是典型的时间序列数据,预测任务通常被描述为序列到序列学习问题,这使得RNN方法在人体运动预测研究上成为经常使用的方法,针对人体运动预测的一系列基于递归神经网络的方法产生。这些基于RNN的模型中,多数具有基于网络的循环编码器-解码器结构,用于模拟动态运动和给出对于下一帧运动的预测。
Jain等人[6]通过堆叠多个RNN,建立了具有人类动力学语义信息结构的结构RNN(SRNN)模型, Fragkiadaki等人[7]扩展了以往文献中的长-短期记忆(LSTM)模型,它首次将姿态映射到隐藏状态,并通过LSTM层传播,开发了三层长-短期存储器(LSTM-3LR)和编码器-循环解码器(ERD)结构,Martinez等人[8]设计了一个基于残差的GRU(Res-GRU)模型,通过预测两个连续帧之间的相对残差缓解不连续性问题,而不是直接预测人体运动的梯度,并使用了一种标准的序列到序列学习模型(GRU)作为编码器和解码器。在[9]中使用课程式学习并将表征学习纳入架构中。Buuml;tepage等人[10]研究了使用时间编码器对MoCap数据进行无监督表示的学习,并将其应用于预测和分类,解决平均姿势问题。Tang等人使用基于注意的RNN(ARNN)通过为隐藏状态分配权重的方法来捕获长期依赖性,得到了显著的结果。Sang等人[12]提出一种At-seq2seq模型,结合序列到序列(seq2seq)结构和注意机制,在seq2seq模型的解码器部分添加了注意机制,进一步将编码器的输出编码成包含多个子集的向量序列。Julieta Martinez等人[13]对通常用于人体运动的标准RNN模型提出了三个修改,采用序列到序列架构、抽样损失和残余结构开发了一个具有残余连接的序列到序列体系结构,这使得RNN体系结构简单且可扩展,可获得最先进的性能。
