APP下载

一种基于DenseNet与WGAN-GP的运动迁移方法

2023-09-16童立靖曹健莉

关键词:人体模型关节点编码器

童立靖,曹健莉

(北方工业大学 信息学院,北京 100144)

运动迁移技术是将已获得的源模型的运动数据转移到设备无法捕捉的目标模型上,从而生成目标模型运动序列的一种模型生成技术[1]。在游戏或者影视领域的动画生成时,运动迁移技术对于将演员的动作内容迁移到软件中虚拟的动画模型上具有重要的应用价值[2]。

随着深度学习的发展,人体运动迁移技术也出现了很多新的方法。如Ni等提出一种对于给定的主体模型和驱动模型利用TS-Net(Transformation-Synthesis network)网络生成一个新的迁移模型,该模型能够含有主体模型的外观和驱动模型的运动模式[3]。Wei 等提出了通用外观可控GAC-GAN(General Appearance-Controllable motion transfer- Generative Adversarial Network)的方法,用于实现外观可控模型动作转移[4],网络训练完成后,模型就可以通过改变输入的外观信息来生成新的外观。Jiang等提出了利用人体模型分段处理的方法进行运动迁移,其生成模型具有较好的时间连续性[5]。Zhang等提出了一种基于神经潜变量优化的人体动作转移方法,潜变量优化利用解码器建立潜变量空间和目标模型运动空间之间的映射,通过搜索最优潜变量向量得到满足约束条件的动作迁移结果[6]。Aberman等提出了一种Skeleton-Aware网络,利用CNN骨骼卷积网络将输入的人体模型化简为简单的原始骨骼,并利用Vanilla GAN网络进行运动迁移[7]。Yang等提出了一种TransMoMo方法,利用模型运动中动作、结构、视角的不变性设计的自编码器来训练一个运动迁移的网络,将提取到的原始运动模型和目标运动模型送入其中进行学习[8]。

人体运动迁移是一个高度复杂的过程,需要考虑速度、方向、姿势和力量等多个因素,从而实现自然动作。为了实现高质量的运动迁移,训练的模型需要具备高精度和高准确性,以确保模型具有泛化能力和适应性。本文提出了一种基于DenseNet[9](Dense convolutional Network)与WGAN-GP[10](Wasserstein GAN with Gradient Penalty)的运动迁移方法。首先,使用基于DenseNet 网络的方法来提取人体静态特征,通过增加编码器深度提高了静态参数的提取能力;其次,采用基于WGAN-GP 深度学习网络的方法以提高运动迁移网络的精度和稳定性。

1 本文方法

1.1 总体框架

对于给定的源动作序列A和目标模型B,首先由动态编码器EQ计算出深度动态特征AQ,然后由静态编码器ES计算出深度静态特征BS,最后由目标模型解码器Dm结合这两个深度特征形成目标模型B的运动序列,从而完成人体模型的运动迁移GA→B。总体框架如图1所示。

图1 运动迁移生成过程Figure 1 Motion migration generation process

对于时间长度为T帧的人体运动动画序列A,人体的J个关节点{n0,n1,n2,…,ni,…,nJ}的运动数据由静态部分S∈RJ×f和动态部分D∈RT×J×q组成。S为模型静态位移数据,由J个三维向量f组成,f为人体模型每一关节相对中心点的偏移量。D为模型动态关节点旋转数据,由T×J个四维向量q组成,q为每个关节点旋转角度四元数[11]。

1.2 基于DenseNet的骨骼特征提取

为了完成从源模型至目标模型的运动迁移,首先通过静态编码器和动态编码器提取源模型和目标模型的深度动态特征和深度静态特征,然后将它们送入骨骼池化层中以简化为具有相同骨骼结构的同胚骨骼,最后在同胚骨骼构成的共享隐变量空间中完成运动迁移计算。

对于人体模型静态数据S,其深度静态位移特征由静态编码器提取,其结构如图2所示。静态编码器由两个层级组成,每个层级由DenseNet网络层、全连接层和池化合并层组成。DenseNet是由多个Dense模块和Transition模块堆叠而成的深度神经网络。每个Dense由多个通过稠密连接的Bottleneck模块组成,在Bottleneck中,输入的静态数据S先后经过两次激活层和卷积层的处理,然后该层输出与上一层的输入数据按通道拼接在一起,作为该层Bottleneck 的输出。Transition 模块为相邻Dense 之间连接模块,由1×1卷积层和激活层组成,目的是降低每个Dense计算结果的通道数,以减少模型参数量和计算复杂度。

图2 静态编码器结构Figure 2 Static encoder structure

DenseNet 网络结构的主要优势在于它可以通过将每个层的输出与所有后续层的输入连接起来增强特征重用和梯度流动,从而有效地学习到复杂、非线性的特征表示。通过这些层级组成的DenseNet网络,系统可以根据预处理数据中的人体拓扑结构获取相邻关节点信息和关节之间的连接方式,提高静态特征的提取精度,从而可以生成更为准确的运动迁移模型。

人体静态数据在DenseNet 层处理后由全连接网络提取静态特征。所提取的静态特征由骨骼池化层(Skeleton Pooling)保留必要的关节点从而简化人体模型,如图3所示。首先,骨骼池化层利用树形结构处理骨骼段长度,骨骼段的长度定义为从父节点到子节点所经过的边的数量,并将长度大于d的关节点放入需要保留的关节点序列中。然后,利用合并池化方式移除多余的关节点,合并骨骼段。最后将骨骼池化层的计算结果送入到激活层中计算出深度静态特征,作为共享隐空间中的静态特征。

图3 骨骼池化Figure 3 Skeleton pooling

人体运动时,每个关节连接不同的骨骼和肌肉,有独特运动范围和约束,导致每个关节的运动状态不同[12]。在使用卷积神经网络提取骨骼模型的动态特征时,不同的关节点需要用不同权重的卷积核处理,以适应不同身体部位的特征,提高模型准确性。其动态编码器结构如图4所示。动态编码器由2层组成,每一层分别由一维骨骼卷积、骨骼池化和激活层组成,结合原始静态数据与利用DenseNet 计算出的深度静态特征完成骨骼动态特征提取。

图4 动态编码器结构Figure 4 Dynamic encoder structure

原始静态数据与利用DenseNet计算出的深度静态特征需结合动态数据进行一维骨骼卷积提取特征,如图5所示。一维卷积在每个时间帧上的关节点序列的动态数据上进行动态特征提取,并附加上静态特征从而构成完成的运动特征。其一维骨骼卷积如式(1)所示。

图5 一维骨骼卷积Figure 5 1D skeletal convolution

1.3 基于WGAN-GP的人体运动迁移网络

本文采用WGAN-GP 网络完成人体运动迁移训练,包括编码器、解码器和判别器,如图6所示,其中,编码器和解码器组成生成器,负责生成人体运动迁移后的运动模型。对源模型A和目标模型B分别训练了静态编码器和动态编码器以及用于还原源模型和目标模型的两个解码器DA和DB。鉴别器CA和CB负责鉴别生成运动模型的真实性。编码器生成深度动、静态特征,该特征与原始骨骼独立,并构成了由原始同胚骨骼组成的潜变量空间,利用该空间实现源模型的动态编码器产生的动态特征与产生的静态特征的结合,再通过解码器DB完成两个模型间的运动迁移G(A→B)。为了尽可能生成逼真的运动迁移模型,提高生成器的生成能力和鉴别器的鉴别能力,系统损失函数设计为鉴别器损失函数和生成器损失函数两个部分。

图6 基于WGAN-GP运动迁移网络Figure 6 Motion retargeting network based on WGAN-GP

1.3.1 生成器损失函数

生成器的损失函数包括重构损失、同胚骨骼动态特征损失以及末端效应损失3个部分。

(3)末端效应损失:在人体模型的运动迁移中,不同模型具有不同数量的关节节点和不同比例长度的关节段,但它们应具有相同的末端关节单位速度。该损失函数式计算运动过程中末端关节的单位速度损失,如式(4)所示。其中,为源模型A的末端关节速度,为生成模型B的末端关节速度,利用身高hAe和hBe完成归一化计算。

1.3.2 鉴别器损失函数

鉴别器损失函数包括3部分:判断由生成动态参数合成模型的损失、判断由原始动态参数合成模型的损失和梯度惩罚项,如式(5)所示:

使用WGAN-GP 网络模型可以避免模式崩溃的问题,能够提高生成对抗网络的性能和泛化能力,从而使得生成器可以产生更高质量的运动模型。通过该框架可以实现无监督的运动迁移[14],并且保证生成的运动与原始运动的相似度。

2 实验结果与分析

实验在一台CPU 为AMD EPYC 7402 24-Core Processor,GPU 为NVIDIA Tesla P100-16GB 的PC 设备上进行,算法的编程语言为Python 3.8,开发环境为Jupyter lab,开发框架为Pytorch1.7.1。数据集为Mixamo人体模型库。Mixamo是一个在线3D动画平台,其数据集包含大量的人体模型和动作数据,模型库包含了大量的人物角色模型,包括男性、女性、儿童等不同类型的人物模型。实验中骨骼池化长度d值为2,WGAN-GP网络训练的梯度惩罚项系数λ值为0.1。

本文方法生成的动作模型与源模型的动作对比如图7所示。图7a与图7b分别是两组不同动作的3帧运动迁移结果图像,左侧为源动作模型,右侧为迁移后模型,可见本文方法所生成的运动模型与源模型相比具有较高的相似度。

2.1 静态特征评估

为了评估DenseNet静态编码器的有效性,对生成运动模型与真实模型的静态位移特征进行了对比,如图8所示。图8中黑色柱状条为生成模型的关节点位移,灰色柱状条为真实模型的关节点位移数据,图中显示每个关节点对应的两个位移均能高度重合。实验表明本文的DenseNet编码器具有良好的静态特征提取能力,能够有效地提取人体模型的静态特征。

2.2 动态特征评估

为了评估基于WGAN-GP运动迁移网络生成的迁移模型的准确性,对生成模型与真实模型部分关节点的旋转角进行了对比,4个随机时间帧的比较数据如图9所示。图中红色折线为真实模型关节点旋转角,蓝色折线为生成模型关节点旋转角。由图9可见,利用WGAN-GP训练网络生成的模型与真实模型相比,动态旋转角有较高准确性。

2.3 对比实验

为了验证本文方法的有效性,分别与CycleGAN[15]和Skeleton-Aware 方法进行了对比性实验。精度对比数据如表1所示,评价指标为基于模型身高归一化处理后生成模型与真实模型的关节点位置误差,如式(7)所示:

表1 对比实验数据表Table 1 Comparison experiment data table

式(7)中N为动作帧总数,J为关节点总数,M为测试模型集合,hk为模型身高。为将骨骼C上的动作迁移到骨骼模型k上之后生成模型第i帧第j个关节点的位置,为真实骨骼模型k在第i帧第j个关节点的位置。

与Skeleton-Aware方法和CycleGAN方法相比,本文方法在静态编码器中使用了DensNet网络,提高了关节点特征提取的准确度。此外,在迁移网络中添加了WGAN-GP网络的梯度惩罚项,防止出现梯度爆炸或者梯度消失的现象,保证了鉴别器能够更加有效地鉴别生成器产生的运动序列,提高了运动迁移网络的迁移精度。

3 结论

本文提出一种基于DenseNet与WGAN-GP的运动迁移方法,针对目前人体骨骼模型运动迁移算法计算精确度不高的问题,利用DenseNet网络增加静态编码器深度提高人体模型静态特征提取能力,并利用GANGP深度学习网络提高了运动迁移模型的精度和稳定性。实验结果表明所生成的运动模型与目标动作模型有较高的相似度,并且与Skeleton-Aware 和CycleGAN 方法相比本文方法生成误差较小,能够产生良好的视觉效果。下一步将针对动态编码器进行改进,提高编码器动态特征提取能力,并实现个性化运动模型迁移。

猜你喜欢

人体模型关节点编码器
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
关节点连接历史图与卷积神经网络结合的双人交互动作识别
基于FPGA的同步机轴角编码器
搞好新形势下军营美术活动需把握的关节点
RGBD人体行为识别中的自适应特征选择方法
基于PRBS检测的8B/IOB编码器设计
JESD204B接口协议中的8B10B编码器设计
基于乘员体型的车辆安全性研究
Family makes 45—foot icicle in front yard
体验创新:3D人体扫描仪测三围