本发明涉及计算机视觉领域中的动作预测技术,具体涉及一种基于时空协同关注循环神经网络的人体骨架动作预测方法。
背景技术:
随着kinect、psmove、vicon等mocap设备的发展,捕捉人体骨架动作变得简单方便。目前,越来越多的基于mocap的产品出现在各种应用领域,如体感游戏、虚拟现实(vr)、人机交互等。这些产品背后的关键技术之一是人体骨架动作分析。人体骨架动作分析是计算机视觉领域的一个有趣的课题,一般包括动作合成、动作预测、姿态估计等。此外,许多研究者也试图通过将人体骨架动作作为关键的动作信息来理解人类的动作、交互作用甚至活动。
早期,由于人体动作的顺序性和非线性,研究者们利用各种概率模型,如潜在变量模型、马尔科夫模型、生成模型、自动编码器等,来预测基于大量观察到的人体动作。近年来,与传统的方法相比,递归神经网络,尤其是门控递归单元网络(gru)和长短时记忆网络(lstm)在获取序列信息方面表现出了显著的性能。因此,近年来基于rnn的方法利用rnn对随时间的序列动作进行建模,解决了人体动作预测的问题。但在上述基于rnn的人体动作预测方法中,运动信息的直接传播仅存在于相邻帧之间,虽然其预测短期动作的效果较好,但它只通过前一帧来更新运动状态,使得预测长期动作的效果较差。因此,为了提升长期动作的预测准确性,tang等人提出了一种时间关注机制(即骨架关注),根据观察到的每个动作对预测一个未来动作的贡献,动态学习每个动作的关注因子。将所有观测到的动作视为动作环境,利用带骨架关注机制的rnn来预测未来的动作。
基于rnn的运动预测方法大多只在时间域上对人体骨骼运动进行建模,忽略了人体关节在空间域上的空间相干性。例如,在“行走”动作中,左(右)臂和右(左)腿的摆动方向在空间上通常是一致的。
技术实现要素:
本发明的目的在于提供一种基于时空协同关注循环神经网络的人体骨架动作预测方法,解决了人体骨架动作预测的问题。
实现本发明目的的技术解决方案为:一种基于时空协同关注循环神经网络的人体骨架动作预测方法,包括以下步骤:
步骤a.从mocap捕获的骨架动作序列中选取每一时刻下人体骨架中17个关节在3dangleaxis下的数据作为输入的骨架动作序列;
步骤b.对输入的骨架动作序列提取骨架-关节协同关注特征图;
步骤c.建立骨架-关节协同关注网络,并将其训练,将骨架-关节协同关注特征图输入训练好的骨架-关节协同关注网络,得到预测人体骨架动作序列。
本发明与现有技术相比,其显著优点在于:
(1)提出了一种骨架-关节共同关注机制和骨架-关节共同关注循环神经网络,不仅关注骨骼在时间域上的演化,同时关注空间域上关节的相关性。
(2)较人体动作预测的其他方法具有更好地效果。
附图说明
图1是本发明基于时空协同关注循环神经网络的人体骨架动作预测方法流程图。
图2是sc-rnn的人体动作的预测效果图,动作包括指向、讨论、进食、打招呼、打电话、摆姿势、购买、坐下,由上至下每行依次对应观测到的动作、实际的人体动作、erd预测动作、lstm-3lr预测动作、res-gru预测动作、mhu预测动作、sc-rnn预测动作。
具体实施方式
结合图1,一种基于时空协同关注循环神经网络的人体骨架动作预测方法,包括以下步骤:
步骤a.从mocap捕获的骨架动作序列中选取每一时刻下人体骨架中17个关节在三维角轴坐标系(3dangleaxis)下的数据作为输入的骨架动作序列
步骤b.对输入的骨架动作序列提取骨架-关节协同关注特征,具体如下:
b-1.由骨架动作序列构成骨架-关节特征图f;
其中,j表示时间步序号。
b-2.由骨架-关节特征图计算骨架关注因子
其中,τ1是softmax函数的温度参数,
b-3.根据骨架关注因子
b-4.由骨架-关节特征图f计算关节关注因子
其中,
b-5.由
其中,l=1,…,k,且l≠k。
b-6.计算第k个关节在时间步序列{1,…,t,t'}上的协同关注动作上下文okt'
其中,
步骤c.建立骨架-关节协同关注网络,其架构由gru结构的循环神经网络构成,包括骨架关注网络和关节关注网络,并将其训练:
c-1.建立骨架-关节协同关注网络,具体如下:
c-1-1.建立骨架关注网络
骨架关注网络的结构如下:
ht'=(1-zt')⊙ht'-1 zt'⊙ct',t'=1,…,t'
其中zt'、rt'、ct'和ht'分别表示d维度的更新门、重置门、记忆单元和t'时间步的骨架预测状态,σ(·)是sigmoid函数,⊙是逐元素相乘的操作符,
c-1-2.建立关节关注网络
通过整合协同关注动作上下文来学习s关节的动作状态
其中,
c-1-3.由骨架关注网络和关节关注网络整合为骨架-关节关注网络,得到最终预测的t′ 1时间步的人体动作:
其中,
其中,函数
c-2.训练上述骨架-关节协同关注网络,具体方法如下:
c-2-1.损失函数l采用加权格拉姆矩阵损失:
其中,||·||f是·的f范数,
其中,
c-2-2.对骨架-关节协同关注网络进行训练
步骤c-2-2-1.从mocap捕获的骨架动作序列中选取人体骨架中17个关节的三维角轴参数数据,作为训练使用的动作序列,序列分割为2秒的观测到的动作和400毫秒或1000毫秒的未来动作;
步骤c-2-2-2.对观测到的序列计算每一时间步的观测到的动作的骨架-关节协同关注特征图;
步骤c-2-2-3.将骨架-关节协同关注特征图输入到相应时间步的骨架-关节协同关注循环神经网络中,得到预测的动作序列。
步骤c-2-2-4.使用加权的格拉姆矩阵损失作为损失函数,计算预测得到的动作序列与实际动作序列的误差,通过后向误差传播算法来优化损失值,更新步骤c-2-2-3中的网络参数。
如图2所示,本发明所述的基于时空协同关注循环神经网络的人体骨架动作预测方法较人体动作预测的其他方法具有更好地效果。
1.一种基于时空协同关注循环神经网络的人体骨架动作预测方法,其特征在于,包括以下步骤:
步骤a.从mocap捕获的骨架动作序列中选取每一时刻下人体骨架中17个关节在3dangleaxis下的数据作为输入的骨架动作序列;
步骤b.对输入的骨架动作序列提取骨架-关节协同关注特征图;
步骤c.建立骨架-关节协同关注网络,并将其训练,将骨架-关节协同关注特征图输入训练好的骨架-关节协同关注网络,得到预测人体骨架动作序列。
2.根据权利要求1所述的基于时空协同关注循环神经网络的人体骨架动作预测方法,其特征在于:
步骤a中,17个关节指:两个肩关节、两个肘关节、两个腕关节、两个膝关节、两个踝关节、两个髋关节、一个下颌关节、两个椎关节、一个颈关节、一个骶髂关节。
3.根据权利要求1所述的基于时空协同关注循环神经网络的人体骨架动作预测方法,其特征在于:
步骤b中,由骨架动作序列构成骨架-关节特征图;由骨架-关节特征图计算骨架关注因子,从而得到骨架关注特征图;由骨架-关节特征图计算关节关注因子,由骨架关注特征图和关节关注因子计算得到骨架-关节协同关注特征图。
4.根据权利要求1所述的基于时空协同关注循环神经网络的人体骨架动作预测方法,其特征在于:
步骤c中,建立骨架-关节协同关注网络,其架构由gru结构的循环神经网络构成,包括骨架关注网络和关节关注网络,其中,骨架关注网络中记忆节点和输出节点均设置为51个,关节关注网络中记忆节点和输出节点均设置为t 1个,t为观测到的骨架动作序列长度,骨架关注网络和关节关注网络整合为骨架-关节协同关注网络。
5.根据权利要求1所述的基于时空协同关注循环神经网络的人体骨架动作预测方法,其特征在于:
步骤c中,训练骨架-关节协同关注网络的方法是:选取骨架动作序列中的2秒作为已观测到的动作,进行短期预测和长期预测,分别预测未来400毫秒和1000毫秒中的动作序列,使用加权的格拉姆矩阵损失作为损失函数,通过后向误差传播算法来优化损失值。
技术总结