李书杰,朱海生,王磊,刘晓平
合肥工业大学计算机与信息学院,合肥 230601
人体骨骼运动数据目前已在影视动画、游戏、体育和医疗康复等诸多领域得到广泛应用。人体骨骼运动数据一般由动作捕捉设备捕捉人体运动的姿态获得,但由于传感器精度、采集环境和自身遮挡等影响,即使是昂贵的高精度动作捕捉仪捕捉到的数据也往往包含噪声(Cui等,2019),所以由设备直接获得的原始数据需先进行去噪处理才能够应用(Fieraru等,2018;Moon等,2019;Liu等,2016)。如今一些非接触式低成本动作捕捉设备,如Kinect、摄像头因方便操作及携带而广泛应用。但这些设备获取的人体骨骼运动数据精度较低、含有混合噪声,而且骨骼节点较少即细节层次较低,更需要经过优化处理才能够确保相关应用效果。考虑到目前非接触式低成本动作捕捉设备获取的运动数据多为3维坐标格式,本文主要探讨3维坐标格式表示的运动数据的优化处理方法,包括去除数据噪声、补全数据中缺少的骨骼节点信息使数据获得更高的细节层次。目前,深度学习方法已经应用于运动数据处理。Holden等人(2015,2016)提出一种卷积自编码器(convolutional auto-encoder,CAE)网络用于抽取运动数据流形(motion manifold),通过将噪声运动数据投射到中间隐变量,再逆向映射至运动数据空间去除运动数据中的噪声,但是去噪结果存在一定的抖动,并且对于不同噪声类型和噪声水平的运动数据去噪结果差别较大,不适用于包含混合噪声的设备原始采集数据。Li等人(2020)指出双向循环网络结构对于不同噪声类型和噪声水平的运动数据去噪结果更为稳定,适用于设备原始采集数据,为此提出了一种基于双向循环自编码器(bidirectional recurrent auto-encoder,BRA)的网络结构(BRA with perceptual constraint,BRA-P)。该网络由两个双向循环自编码器串联而成,其中第2个BRA由高精度动捕数据预训练得到,用于返回输出数据的感知损失,可以提高优化后数据与高精度数据的感知相似性,使得该方法可以实现Kinect到高精度动捕数据的映射,即在去噪的同时能够增加原数据中的骨骼节点,提高了运动数据的细节层次。该方法还使用感知自编码器作为后处理网络,使第1个BRA的输出再输入预训练的BRA,得到后处理输出作为最终优化结果。后处理过程可以提高输出数据的平滑性,而这一过程却会增加优化后数据的关节点平均位置误差。
为进一步探究卷积自编码器和双向循环自编码器结构对运动数据优化的效果,将BRA-P结构中的双向循环自编码器替换为Holden等人(2016)方法中的卷积自编码器形成CAE-P网络,并对比了两种网络结构对Kinect骨骼运动数据的优化效果,如图1所示,发现CAE-P网络的输出具有更好的平滑性,而BRA-P的平均关节点位置误差更低。
图1 CAE-P与BRA-P箱型图对比Fig.1 Comparison of performances between CAE-P and BRA-P using box plots ((a)joint position loss;(b)smooth loss)
因此,本文综合两种网络的优势,提出一种由双向循环自编码器与卷积自编码器串联而成的优化网络,其中双向循环自编码器用于使网络输出的优化数据具有更高的位置精度,卷积自编码器用于使优化数据具有更好的平滑性。BRA-P网络、CAE-P网络及本文采用的网络结构如图2所示,其中虚线框标注的网络表示该网络在当前训练过程中不会再改变其参数。另一方面,在BRA-P方法中,第2个BRA是预训练得到的,其作用在于返回感知约束和作为后处理器,反向传播过程只能校正第1个BRA的网络参数,第2个BRA的网络参数并不能用于进一步提高关节位置精度。而在本文方法中,网络结构中的两个自编码器同时训练,通过对第2个自编码器施加隐变量约束替代BRA-P方法中的感知约束,反向传播过程可以校正两个自编码器的参数,所以网络输出既能够保证合理的骨骼结构,又能够进一步降低关节位置误差。
图2 BRA-P网络、CAE-P网络及本文方法网络结构Fig.2 Architecture of BRA-P network,CAE-P network and our network((a)BRA-P network;(b)CAE-P network;(c)ours)
本文方法与Li等人(2020)的BRA-P方法关注的问题一致,探索包含混合噪声的3维坐标格式运动数据的优化方法,通过融合双向循环自编码器和卷积自编码器的优势,进一步降低优化后数据的位置误差并提升平滑性。本文主要工作如下:1)提出一种综合了双向循环网络和卷积神经网络优势的运动数据优化方法,既能够对混合噪声数据实现鲁棒的优化、使关节点位置误差较低,又能够使优化后数据具有较好的平滑性。2)在训练过程中对卷积神经网络部分的隐变量施加隐变量约束,使网络输出既能保持更合理的骨骼结构,又能够降低关节位置误差。3)通过合成噪声实验,验证了本文能够对混合噪声数据实现鲁棒的优化、使关节位置误差更低,也能够使优化后数据具有较好的平滑性;通过真实噪声实验,验证了本文方法对真实噪声数据的有效性,能使网络输出保持较高的精度并具有合理骨骼结构,能够在优化数据的同时提高数据的细节层次。
运动数据优化(motion refinement)也称运动数据去噪(motion denoising)或运动数据重建(motion recovery),无论精度较低的非接触式动捕设备获得的人体运动数据还是高精度穿戴式动作捕捉仪获取的数据,都需要优化处理后才能够应用。本文将运动数据优化方法分为传统优化方法和基于深度学习的优化方法,两类方法都可以对混合噪声数据进行处理,在优化数据的同时提升数据细节层次。
传统优化方法包括滤波类方法、基于低秩矩阵补全的方法、基于稀疏表达的方法和基于数据降维的方法。较典型的滤波类方法包括:Hsieh和Kuo(2008)提出的一种B样条小波平滑运动数据。Lou和Chai(2010)首次借助于数据集训练出能保持运动数据时空特征的滤波器,由于采用奇异值分解(singular value decomposition,SVD)方法选择部分主方向的滤波基,会损失一部分运动细节。Aristidou等人(2018)提出一种基于卡尔曼滤波的恢复缺损关节点数据的方法。以上滤波类方法主要思路都是借用位置相邻或时间相邻的关节点信息修正当前节点的信息,对噪声水平随时可能发生波动的混合噪声数据的去噪效果不稳定。同时,滤波类方法不能恢复一个完全没有信息的关节点,也就不能进一步提升运动数据的细节层次。基于低秩矩阵补全的方法将运动数据序列看做一个低秩矩阵。Feng等人(2014)综合低秩矩阵补全方法和平滑性约束对运动数据进行优化。Yang等人(2020)在低秩矩阵补全方法的基础上,添加关节点平行约束和稀疏平滑约束实现运动数据的重建,取得了较好的效果。低秩矩阵补全是一个迭代求解的算法,难以达到实时,这也使其应用场合受限。有代表性的稀疏表达类方法包括:Xiao等人(2011)提出的一种用于修补缺损关节点的稀疏表达方法。Feng等人(2014)与Xiao等人(2015)提出将人体运动分为5个部分,分别使用细粒度的稀疏表达,但是这种方法忽略了各个部分的关联性。Xia等人(2016)指出稀疏表达和低秩矩阵分解仅考虑了数据的统计特征,而没有考虑运动学约束,从而引入了骨骼约束和平滑性约束提高去噪后运动的运动学特征。可是,稀疏表达需要从数据中学习一个字典,数据类型越少,相关性越高,字典越准确,这就导致了稀疏表达类方法对于混合噪声和包含混合运动类型的数据效果不佳。数据降维方法的典型代表是主成分分析法(principal component analysis,PCA)。Liu和McMillan(2006)首次基于PCA方法对训练集中的数据进行建模,并基于该模型对噪声数据进行修复。Tangkuampien和Suter(2006)提出一种基于核主成分分析(Kernel PCA,KPCA)的建模方法,可以在较小的训练集上实现运动数据的去噪。Günter等人(2007)提出一种快速迭代KPCA方法进一步提升了去噪方法的速度。数据降维类方法是将运动数据看做一个矩阵,利用矩阵分解的方法获取运动片段的主成分,再利用这些主成分恢复出完整数据。当数据噪声较高或缺损较多时就难以分析出主成分,从而对混合噪声数据的处理就不稳定。
深度学习方法在很多领域已表现出比传统方法更为强大的数据处理能力,运动数据处理领域也不例外。Bütepage等人(2017)提出了一个全连接网络,可以利用前序帧预测后序帧中的缺失数据。Mall等人(2017)构建了一个双向循环网络输出滤波器对运动数据去噪。但是以上两种方法都仅适用于对特定噪声去噪,无法处理混合噪声。针对动捕设备捕获的含混合噪声的原始数据优化问题,Holden(2018)利用卷积结构的残差网络对光学动捕采集数据进行去噪,Huang等人(2018)提出双向循环网络框架利用6个IMU(inertial measurement unit)传感器进行全身运动的实时重建,但这两个方法重建出的运动结果还是存在抖动,需要进一步对结果进行数据平滑处理。Li等人(2019)在考虑了人体运动学约束后,提出双向循环自编码器(BRA)加上人体骨骼长度约束与平滑约束重建噪声运动数据,使其重建效果更加符合运动学特性。但是当噪声数据和目标数据具有不同的骨骼结构时,该网络的输出数据仍有骨骼扭曲现象。随后Li等人(2020)又提出了基于感知约束的双向循环自编码器(BRA-P),提高了优化后数据与高精度动捕数据的感知相似性,并将高精度动捕数据预训练的感知自编码器作为后处理网络,进一步提高了重建数据的骨骼长度的一致性与平滑性,但未能进一步降低关节位置误差。本文方法将在BRA-P方法的基础上进一步降低关节位置误差,并进一步提升数据的平滑性。
为从原理上说明卷积自编码器和双向循环自编码器处理运动数据的区别,本文从网络参数上对这两种自编码器进行分析。
卷积神经网络(convolutional neural network,CNN)是包含卷积计算的前馈神经网络,与前馈神经网络不同之处在于利用了数据的局部特征,网络参数较少。卷积计算可表示为h=Conv(X,W),其中h为卷积计算的结果,X表示输入数据,W为卷积核,卷积核维度为fh×fw×in×out,fh和fw分别为卷积核的高度和宽度,in表示输入数据的特征数,out表示卷积核的数量。
长短期记忆网络(long short-term memory,LSTM)作为RNN(recurrent neural network)网络的进阶版网络结构,解决了RNN网络的梯度消散以及梯度爆炸问题,广泛应用于对时序数据的处理。双向长短期记忆网络(bi-directional long short-term memory,Bi-LSTM)内部由2个LSTM构成,分别组成前向层(forward layer)与后向层(backward layer),故双向长短期记忆网络的底层结构还是LSTM的结构,如图3所示。
图3中LSTM主要由输入门(input gate)、遗忘门(forget gate)、输出门(output gate)以及细胞状态(cell state)构成。细胞状态与3个门的激活计算为
图3 LSTM的内部结构图Fig.3 Internal architecture of LSTM
(1)
it=σ(Wi·[ht-1,xt]+bi)
(2)
(3)
(4)
ot=σ(Wo·[ht-1,xt]+bo)
(5)
ht=ot×tanh(ct)
(6)
在Holden等人(2016)采用的卷积自编码器网络中,fh=1,fw=25,in=63,out=256,卷积自编码器中的编码器与解码器各包括一个卷积神经网络,因此总权重参数为80.64万个。为合理地评估卷积自编码器与双向循环自编码器的性能区别,本文在同一大小的隐变量维度下对比两种自编码器网络的参数,在Li等人(2019)采用的双向循环自编码器网络中,令d=256,h=256,以确保两种自编码器网络中的隐变量空间维度均为256。双向循环自编码器中的编码器与解码器亦均包含一个双向循环网络,经计算得出双向循环自编码器中的总权重参数个数为2 097 152个,参数相对较多,且LSTM结构相比于CNN更适合于对时序数据的处理。因此双向循环网络结构适合于混合噪声运动数据的优化,且优化后的结果误差相对较低。而卷积神经网络结构由于其卷积计算类似于滤波器,因此优化结果平滑性较好。
本文使用两种运动数据库进行实验,分别是CMU(Carnegie Mellon University)人体运动数据库(CMU,2020)与Kinect、NOITOM动捕设备同步采集的运动数据库(Li等,2020)。
对CMU人体运动数据库的预处理类似于Holden等人(2016)的方法。先将所有的运动数据下采样到60帧/s,再将原始数据从关节角度表示转换成关节坐标表示,最后将所有关节坐标映射到某一指定位置的相对坐标系统上。每帧运动数据的维度为63(21×3=63),21代表关节点个数,3代表关节点的通道数(即X,Y,Z坐标)。在训练之前,先使用滑动窗口的方法将整个数据集切分成f帧的固定帧长运动序列(窗口的步长即重叠帧数为f/2),再对切分后的运动序列用减平均位姿的方式做归一化处理。实验设置f=120,为表示方便,令X=[p1,p2,…,p120]表示运动序列,其中pt代表第t帧时的位姿坐标。
Kinect数据中人体关节点个数为25,每帧运动数据的维度为75(25×3=75);NOITOM动捕数据中人体关节点个数为59,每帧运动数据的维度为177(59×3=177),两种运动数据有着不同的拓扑结构(Li等,2020),骨骼节点数不同即运动数据的细节层次不同。对Kinect和NOITOM设备同步采集的运动数据库的预处理类似于Li等人(2020)的方法,将数据库中所有关节坐标映射到某一指定位置的相对坐标系统上,对数据进行切片,再分别对Kinect与NOITOM动捕数据用减平均位姿除方差的方式做归一化处理。
本文方法的流程如图4所示。其中,XN表示输入的噪声数据,XC表示高精度动捕数据。输入数据XN先后通过双向循环自编码器与卷积自编码器得到优化后数据Y。其中,双向循环自编码器的作用是使输出数据具有更高的位置精度;卷积自编码器的作用是使输出数据具有更好的平滑性。
图4 本文方法的流程图Fig.4 Pipeline of our approach
双向循环自编码器的网络结构类似于Li等人(2019)的结构,其中编码器Er由2层全连接层FC(full connected)与1个双向长短时记忆网络Bi-LSTM组成,解码器Dr的结构与编码器Er对称。编码器的作用是将输入数据映射到隐变量空间,解码器的作用是将隐变量空间数据映射回运动序列。编码器与解码器可表示为
Hr=Er(XN)=BiLSTMe(FCe2(FCe1(XN)))
(7)
Xr=Dr(Hr)=BiLSTMd(FCd2(FCd1(Hr)))
(8)
式中,Hr和Xr分别为双向循环自编码器的隐变量与输出结果;BiLSTM和FC分别表示双向循环层与全连接层,权重参数维度大小见图4。
卷积自编码器网络结构类似于Holden等人(2016)的结构,编码器Ec由卷积层、池化层和激活层组成。池化层的操作是在相邻帧间取最大值,目的是一定程度上保证时域的不变性、加快计算速度并防止训练的过拟合,激活层是为了确保网络得到一个非线性流形以更好地拟合运动。解码器Dc由反池化层和卷积层组成,反池化层的操作类似于平均池化操作,可以将隐变量的值均匀分布在两个可见单元上,使合并后的可见单元在时间维度上与池化前保持一致。卷积自编码器的编码器与解码器可表示为
Hc=Ec(Xr)=ReLU(ψ(Xr*We+be))
(9)
Y=Dc(Hc)=(ψ′(Hc)-bd)*Wd
(10)
3.3.1 关节点位置损失函数
(11)
3.3.2 隐变量损失函数
虽然上述的关节点位置损失保证了优化后的运动数据与标签运动序列有最小的欧氏距离,但是MSE优化缺少人体运动学约束,导致优化后的数据运动学信息不完整、骨骼扭曲,而隐变量损失函数可以用来保证优化后数据的运动学信息完整。如图4所示,隐变量损失函数定义为
(12)
3.3.3 骨骼长度损失函数
由于本文的运动数据都是基于3维关节坐标表示,在运动中关节的骨骼长度应该保持一致。令{lb|1≤b≤J-1}为人体的精确骨骼长度,其中b为骨骼的标记序号,J为人体的关节数量。给定运动序列,骨骼长度损失函数为
(13)
3.3.4 平滑性损失函数
笔者问过若干工业互联网企业:工业互联网平台这么多,这些“平台”之间能不能相互连接?得到的回答一概是“无法连接”。如此,问题就来了。数百个工业互联网平台各自集成了一堆客户,但是彼此之间却“老死不相往来”,一个曾经熟识的景象浮现眼前:
使用帧间平滑性约束来保证优化后的运动数据不抖动。平滑矩阵为
(14)
给定输入的运动序列Y,平滑性损失函数的计算式为
(15)
式中,O为平滑矩阵,Y′为优化后的运动数据Y在首尾帧分别再重复第1帧与最后1帧得到的运动数据。
如图4所示,整个网络的训练分为训练感知自编码器和训练双自编码器两个阶段。
训练感知自编码器的主要任务是对高精度运动数据集XC训练一个感知卷积编码器Ep与解码器Dp,训练的输入数据与标签数据均为高精度运动数据,总损失函数为
(16)
式中,λp1、λp2与λp3分别表示关节位置约束、骨骼长度约束和平滑性约束的权重。在最后一项中,θ表示卷积层的参数θ={W,b},α为其权重,作用在于使卷积核的参数尽量稀疏化。为保证4种损失函数在同一数量级上,本文设置λp1=1,λp2=0.002,λp3=0.000 1,α=0.01。
训练双自编码器,即用噪声运动数据XN与对应的高精度运动数据XC组成的配对数据集训练双向循环自编码器Er,Dr与卷积自编码器Ec,Dc,训练的输入数据为噪声运动数据,标签数据为高精度运动数据,总损失函数为
(17)
在本文的网络训练过程中,权重设置为λd1=1,λd2=0.002,λd3=0.000 1,λd4=10,α=0.01,使用Adam随机梯度下降算法最小化损失函数,batch size设置为16,学习率设为0.000 01。为了防止过拟合,训练数据在输入双向循环层与卷积层时都使用dropout操作,并将其参数设为0.2。感知自编码器网络训练200 epoch,双自编码器网络训练300 epoch。实验硬件设置:处理器为Intel(R)Core(TM)i7 7700K,内存32 GB,显卡为NVIDIA GeForce GTX Titan X,运行平台为Tensorflow。
与Li等人(2020)的方法类似,分别在合成噪声数据集和真实噪声数据集上对本文方法进行验证。合成噪声数据集通过对CMU数据集添加高斯噪声与随机缺损噪声混合得到,作用是验证本文方法能够对混合噪声数据实现鲁棒的优化、使关节位置误差较低,也能够使优化后数据具有较好的平滑性。真实噪声数据集是Li等人(2020)采集的“Kinect—高精度动捕”配对数据集,作用是验证本文方法适用于提升运动数据的细节层次,能使网络输出保持较高的精度并具有合理骨骼结构。
将本文方法记为BCH(bidirectional-convolutional auto-encoder with hidden units constraint),指网络结构中包括BRA和CAE结构,并使用了隐变量约束Hidden-unit constraint。BCH的特点为:1)使用由双向循环自编码器和卷积自编码器串联而成的双自编码器结构;2)使用了隐变量约束。为验证采用的混合双自编码器结构的性能,BCH与CAE、BRA、DCH(dual convolutional auto-encoder)和DBH(dual bidirectional recurrent auto-encoder)方法进行对比。其中,CAE方法(Holden等,2016)仅包含单个卷积自编码结构;BRA方法(Li等,2019)仅包含单个双向循环自编码器结构;DCH方法采用双CAE结构加隐变量约束;DBH方法采用双BRA结构加隐变量约束。为验证隐变量约束的性能,BCH与BC、BCP方法、BRA-P与DBH方法、CAE-P与DCH方法进行对比。其中,BC(bidirectional-convolutional auto-encoder without hidden units constraint)方法表示BCH未加隐变量约束;BCP方法是将BCH中的隐变量约束替换为感知约束;CAE-P表示卷积自编码器CAE加感知约束;BRA-P(Li等,2020)表示双向循环自编码器BRA加感知约束。为排除其他约束对实验结果的影响,所有实验均对输出数据施加了重建约束、骨骼长度约束和平滑性约束。各方法的网络结构如图5所示。
图5 各类实验方法的网络结构简略图Fig.5 Schematic diagrams of network structure for different experimental approaches((a)BCH(ours);(b)DBH;(c)DCH;(d)BCP;(e)BRA-P;(f)CAE-P;(g)BRA;(h)CAE)
为验证不同方法对不同噪声水平数据处理的鲁棒性,本文合成了4种噪声水平的数据,分别为高水平高斯噪声数据、低水平高斯噪声数据、随机缺损30%关节点数据加高斯噪声数据、随机缺损40%关节点数据加高斯噪声数据。前两种是将全部关节位置数据用高、低噪声水平的高斯噪声打乱(signal-noise ratio,SNR=1 dB,20 dB),后两种是将每帧的关节数据按缺损率随机置零并加上高斯噪声(SNR=15 dB)。
参考Li等人(2019)的方法,本文通过位置误差(position error,P)、骨骼长度误差(bone length error,B)和平滑性误差(smoothness error,S)等3种量化误差评价各方法的优劣,3种误差分别由第3.3节的3种损失函数计算得到。
本文从CMU数据库中随机选择了70%作为训练数据,剩余的30%为测试数据。将测试数据分别加上2种高斯噪声(SNR =1 dB、20 dB)和2种缺损加高斯噪声(缺损10%、40%,SNR =15 dB)进行测试,结果如图6及表1所示。
图6 在CMU测试数据集上,本文方法与其他方法的箱型图对比Fig.6 Comparison of performances among BCH and other methods on the CMU testing dataset using box plots((a)position error;(b)bone length error;(c)smoothness error)
表1 CMU合成测试数据集中各类方法的3种误差量化指标的平均值Table 1 Average values of three quantitative measurements for different approaches on the CMU synthesis testing dataset
从图6可以看出:1)BCH的3种误差值均低于CAE和BRA,表明本文提出的混合双自编码器的结构相比于单一CAE结构或单一BRA结构更加有效。2)BCH的3种误差值比DBH、DCH方法的低,表明本文提出的混合双自编码器的结构相比于单一BRA或单一CAE的双自编码器结构更有效。3)BCH的骨骼长度误差低于BC方法,验证了施加隐变量约束能保持更合理的骨骼结构。4)BCH的关节位置误差低于BCP,DBH的关节位置误差低于BRA-P,DCH的关节位置误差低于CAE-P,表明相同的网络结构施加隐变量约束的位置精度优于施加感知约束的位置精度。
由表1同样可得,本文提出的BCH方法在关节位置误差以及骨骼长度误差指标上均获得了最低的误差,平滑性误差维持在较低水平。综合来看,本文提出的BCH与对比方法相比,对运动数据的优化效果最优,能够对混合噪声数据实现鲁棒的优化、使优化后数据的关节位置误差较低,也能够使优化后数据具有较好的平滑性。
真实噪声数据集由“Kinect—高精度动捕”数据对构成。与合成噪声数据集不同,Kinect数据和高精度动捕数据具有不同的骨骼拓扑结构,拥有不同的骨骼节点数,Kinect数据骨骼节点数较少即细节层次较低,高精度动捕数据骨骼节点数较多即细节层次较高;此外,在真实噪声数据集上噪声是不可知的,即无法预先了解噪声类型以及噪声水平,因此更能反映方法优化效果的能力。
Kinect运动数据优化的关键帧序列如图7所示。图7(a)为采集数据时的RGB图像,在人体侧转时发生了自遮挡现象(手臂被遮挡);图7(b)表示含混合噪声的Kinect原始运动序列,且自遮挡导致了Kinect数据失真;图7(c)表示高精度运动数据,其手部的节点数明显比图7(a)多、细节层次高、数据精确;图7(d)表示BC方法对图7(b)进行优化的结果,图中红色虚线部分为放大的优化效果不佳的地方;图7(e)表示BCH方法对图7(b)进行优化的结果。由图7可知,本文BCH方法对Kinect产生的运动遮挡现象有较好的优化效果。
图7 Kinect运动数据优化的关键帧序列Fig.7 Key frame sequence of the refinement results for Kinect motion data((a)original captured color images;(b)raw motion sequence captured by kinect with mixed noise;(c)motion capture data with high resolution;(d)refined results of BC for Fig.7(b);(e)refined results of BCH for Fig.7(b))
在指标评价上,与合成噪声数据集实验一样,采用位置误差、骨骼长度误差和平滑性误差量化优化效果,实验结果如表2所示。
表2 Kinect测试集中各类方法的3种误差量化指标的平均值Table 2 Average values of three quantitative measurements for different approaches on the Kinect testing dataset
从图7可以看出:1)与CAE、BRA、DBH、DCH方法相比,除DCH的平滑性误差低于BCH,其他测试误差,BCH均低于以上方法,验证了混合双自编码器网络结构的有效性;2)BCH的骨骼长度误差低于BC方法,验证了施加隐变量约束在提升运动数据的细节层次时的有效性,能保持更合理的骨骼结构,可以比较直观地看出BC方法的优化后数据手部与脊椎部分的骨骼有些扭曲,而BCH方法则较好地对噪声运动数据进行了优化,进一步说明本文方法适用于提升运动数据的细节层次;3)对比BCH与BCP方法、DBH与BRA-P方法、DCH与CAE-P方法的测试结果,同样BCH、DBH、DCH的关节位置误差分别低于BCP、BRA-P、CAE-P,得出与前述合成噪声实验一致的结论,同样的网络结构施加隐变量约束的关节位置误差低于施加感知约束的关节位置误差,亦证明了隐变量约束在保持合理骨骼结构的同时有更低的关节位置误差。
为了进一步验证本文提出的隐变量约束的效果,在测试集中选取了篮球、跑步、步行与打扫4种运动类型进行测试。以上运动类型均是日常比较常见的运动,篮球属于激烈的运动类型,跑步、步行和打扫属于周期性运动类型,其中跑步较为激烈。从上述4种运动类型中随机选取噪声运动数据,分别输入BC网络(仅用关节位置约束训练)和BCH网络(使用隐变量约束和关节位置约束训练)的卷积编码器得到隐变量,再与对应的标签数据输入预训练的感知编码器得到的隐变量进行对比,测试结果如图8所示。可以看出,使用隐变量约束的卷积编码器输出的隐变量(图8(b))大体都与标签数据输出的隐变量(图8(a))相似,而未使用隐变量约束得到的隐变量(图8(c))则与标签数据输出的隐变量差别较大。测试结果表明,施加隐变量约束会使优化结果与标签数据更为相似,因此输出的运动更具合理性。
图8 4种运动类型的Kinect噪声运动数据输入不同卷积编码器的隐变量对比Fig.8 Comparisons of hidden units that were calculated by different convolutional autoencoders for Kinect motion data with four types of motion(basketball,run,walk and clean)((a)hidden units of clean MoCap data calculated by perception auto-encoder;(b)hidden units of noisy data calculated by BCH;(c)hidden units of noisy data calculated by BC)
为论证不同算法的时间性能,对比不同方法处理运动数据的时间消耗。实验的硬件环境为处理器Intel(R)Core(TM)i7 7700K、显卡NVIDIA GeForce GTX Titan X。由于本文BCH方法网络结构为双向循环自编码器和卷积自编码器组合成的双自编码器结构,其内部的网络参数为上述两种自编码器的网络参数之和,因此算法的运行时间亦是上述两种自编码器的运行时间之和。对比实验结果如表3所示,可以看出,本文BCH方法的时间消耗约等于BRA与CAE方法的时间消耗之和,接近于BRA方法。由于BRA-P方法采用的是两个双向循环自编码器串联,而双向循环自编码器的参数较多,因此耗时较长。综上所述,本文BCH方法可以获得优于BRA-P的效果,并且时间性能上也优于BRA-P方法。
表3 不同方法处理120帧运动数据的消耗时间Table 3 Time costs of processing 120-frame motion data using different approaches /(s/120帧)
本文针对含混合噪声的3维坐标表示的运动数据优化问题,提出一种双自编码器的网络优化方法。双自编码器由双向循环自编码器和卷积自编码器串联构成,结合了两种自编码器的优点,从而该自编码器既能使网络输出的优化数据具有更高的位置精度,又能使优化数据具有更好的平滑性。此外,本文方法BCH在网络训练时加入了隐变量约束,相比于感知约束,BCH能够在提升运动数据的细节层次下保证更高的数据精度。
本文算法在理论上可以适用于各种类型的3维坐标表示的运动数据,但仍存在改进方向。一方面,本文算法仅采集了Kinect运动数据集并只验证了对其进行数据优化的有效性;另一方面,使用的运动数据集均是单人在同一人体骨骼比例下采集获得的,导致本文算法的使用范围受限。因此在后期的工作中会加大运动数据集的采集范围,尽可能地覆盖不同的人体骨骼比例,并构建多人运动数据集,探索多种骨骼比例下的运动数据优化算法以及在多人运动下的数据优化算法。