北方工业大学信息学院 童立靖 徐光亚
在计算机图形学与计算机视觉的众多研究方向中,人体运动生成技术在电影特效与游戏制作、物理仿真与医疗运动、虚拟现实与增强现实等领域都得到了广泛应用。在人体运动生成技术中,所研究的对象分为二维模型和三维模型。二维模型在数据层面表现为通过“单视角-正视图”所观察到的数据,而三维模型则需要通过多视角去获取观察到的数据,通过推理计算出不同视角下的图像,最后将多个视角的图像结合为三维立体模型[1]。本文针对人体运动生成技术,选取三维人体模型作为研究对象,结合深度学习的方法展开综述,从技术路线出发,整理了近些年应用于人体运动生成技术的深度学习网络,将人体运动生成技术分为以下五类:基于卷积神经网络(CNN)生成、基于循环网络(RNN)生成、基于生成型网络生成、基于深度强化学习(DRL)生成以及基于多技术混合方法生成[2]。
本综述的主要贡献总结为以下三点:(1)详细介绍了五类人体运动生成技术的原理以及目前所面临的挑战;(2)从五类方法中选取有代表性的算法,对其利弊进行分析;(3)针对现有的技术,总结并展望该技术未来的发展方向。
人工神经网络(Artificial Neural Network,ANN)由大量的人工神经元以网络的形式相互连接组成,通常包含输入层、隐藏层和输出层。ANN 通过对大量样本进行学习和训练来调整权重和模型参数,从而实现对输入数据的分类、预测、识别等任务。深度神经网络(Deep Neural Network,DNN)是人工神经网络模型中的一种,具有多个隐藏层,与浅层神经网络相比,深度神经网络能够处理更加复杂的任务和数据,并具有更高的准确度。深度神经网络包括以下几种主流网络:卷积神经网络(CNN)、循环神经网络(RNN)、生成型网络、深度强化学习网络(DRL)。
(1)卷积神经网络(CNN)。当使用DNN 模型处理输入较大的数据时,经过几轮迭代会导致参数量激增,产生的特征维度会远超输入的样本维度,此时会出现“维度灾难”的问题。卷积神经网络的出现,引入了卷积、池化等操作,实现了局部连接、权值共享,很好地解决了参数膨胀的情况。CNN 相比DNN 减少了参数量,大大降低了训练难度,因此更适合于复杂数据的计算。在人体运动生成研究领域,基于卷积神经网络的运动生成方法可以更有效地提取骨骼数据的特征,实现对三维运动模型的重构。CNN 也有自身的不足之处,虽然它在运算能力以及特征检测能力上相比DNN 有所增加,但在特征理解上却缺乏连贯性的认知,缺少对运动特征的“记忆”功能。为了突出神经网络“记忆”的特点,RNN 由此诞生。
(2)循环神经网络(RNN)。该网络中隐藏层的输入不仅包括来自输入层的数据,还包括来自上一个隐藏层的数据,通过隐藏层的自回归连接实现历史信息在网络中的传递和学习,使网络具有“记忆”功能,这使得RNN 在处理时序相关的问题时具有很好的效果。因此,使用RNN 网络进行人体运动生成任务时,该网络可以很好地挖掘数据与时间以及数据之间的关联,减少了网络中的参数量,提高模型的训练效率。但相应的,RNN在处理一些较长序列时,会因为难以捕捉序列间长期的依赖关系,导致出现梯度消失或者梯度爆炸问题。
(3)生成型网络。生成型网络是一种可用于生成新数据的网络,这些数据与训练集中的数据相似。本文选取生成型网络中较常见的变分自编码器(VAE)和生成对抗网络(GAN)进行介绍。其中VAE 是神经网络与概率模型相结合的一种生成模型,GAN 一般是由两个神经网络模型训练而成的一种生成模型。该模型用于人体运动生成,其优点在于可以提高模型的泛化能力,缺点在于模型有时可能无法学习到运动数据的分布,并且生成的运动质量不会很高。
(4)深度强化学习网络(DRL)。深度强化学习是深度学习与强化学习的结合。强化学习是一种机器学习技术,旨在通过让智能体与环境进行交互,学习如何在复杂的动态环境中采取最优行动来达到某个目标。在基于DRL 的人体运动生成技术中,生成的虚拟人模型通过观察环境的状态并采取行动来与环境进行交互,从而接收到相应的奖励或惩罚,这些奖励或惩罚将反馈给深度学习网络,通过深度学习网络帮助虚拟人模型学习如何在环境中进行操作。虽然该技术可以很好地使模型实现与环境的交互,但是训练过程需要耗费大量的时间,且训练易出现不稳定情况。
运动生成包括特征提取、运动重构、运动合成、运动修复以及运动交互控制等任务。本章将对上述深度学习模型在不同人体运动生成任务中解决的相关问题进行展开描述和介绍。
CNN 是众多深度学习网络中应用范围最广,适用性最强的一种网络,可应用的场景有:虚拟人模型与环境交互、障碍规避和运动约束等。近些年,有关基于CNN人体运动生成技术的成果有:Holden 等人[3]较早地提出了使用卷积神经网络学习运动流形,以便更好地从动作捕捉数据中获取运动特征。本文中论述了使用三层卷积神经网络结构可以较好完成修复填补运动数据、运动插值等操作,但该方法在处理虚拟人模型关节约束以及交互控制方面还需进一步完善;之后,Holden 团队[4]在原有的基础上,优化提出了基于CNN 的运动合成与编辑方法,通过卷积层和反卷积层构造的自编码器获取运动流形,在通过运动流形生成运动时,引入运动参数约束运动风格,实现了对虚拟人模型的交互控制功能。此外,该方法还实现了通过编辑运动流形转换虚拟人模型运动风格的功能。近几年有关运动预测研究也较为热门,其中Tang 等人[5]提出一种分层静态-动态编码器-解码器结构,该结构结合了残差CNN 技术,其中动态模型用于预测人体的动态变化,静态模型记录最新运动帧信息,两分支共同作用于虚拟人模型运动的生成和预测。
RNN 的优势在于对序列数据的自然理解以及记忆。有关基于RNN 的运动生成技术,较为经典的研究有:
Holden 等人[6]提出的一种PFNN 方法,用于对虚拟人模型进行建模生成以及运动的实时控制。该方法使用相位函数记录运动状态,使用RNN 网络处理运动信息、更新运动数据,最终将运动数据处理后生成自然可控制的虚拟人运动。Emre 等人[7]提出一种时空转换网络用于进行运动预测,引入双重自注意力机制,将数据处理模块RNN 模块分为时间注意力模块以及空间注意力模块,前者通过查看同一关节的过去实例来更新关节信息,后者关注当前时间步长中的所有关节,如此可允许模型直接访问当前和过去信息,捕获空间结构与时间的依赖关系,最终通过输入到输出的残差连接来估计下一个运动姿态。Zhou等人[8]研究出一种用于三维运动合成的层次学习循环神经网络(HL-RNN)模型。该模型旨在通过对运动序列的建模来生成自然流畅的三维运动。模型包括两个层次:高层次和低层次。高层次模型用于学习动作的整体结构,低层次模型用于学习动作的微调细节。通过组合这两个模型,HL-RNN 可以生成更加逼真的三维运动序列。
常见的生成模型包括:VAE(变分自动编码器)以及GAN(生成对抗网络)。结合VAE 的运动生成技术,近些年的相关成果如下:Ling 等人[9]提出的一种使用 Motion VAEs 的角色控制方法,采用了变分自编码器的思想,网络的输入为相邻的两帧运动数据Pt和Pt+1,用Pt生成的潜在空间重构Pt+1,该过程用来训练网络。从训练好的网络隐空间层采样,再通过解码器进行连续自回归预测,即可生成逼真的人类奔跑动作。Bie 等人[10]提出一种HiT-DVAE 方法,将人体骨架数据表示为一个多层次的结构,通过层级Transformer 对其进行建模,以捕捉不同层次的语义信息。同时,作者还提出了一种动态变分自编码器(DVAE)来对运动序列进行建模,使得模型能够对噪声和随机性更加具有鲁棒性。
GAN 网络近些年凭借着迅速的发展趋势,在运动生成技术方面也得到了学者们的广泛关注。有关GAN 的相关研究成果如下:Ruben 等人[11]提出了一种基于GAN 的层次式预测方法,可以生成逼真的长期运动轨迹。该方法通过学习输入序列中不同的运动阶段,并将它们作为生成器网络的输入,生成具有时序一致性的未来运动。Chopin等人[12]提出了一种Manifold-Aware GAN 的双流生成器模型,用于三维骨架的预测。其中一个流模型用于生成动作序列,另一个流模型用于生成对应的姿势序列。这种双流生成器网络的设计有助于学习到更加丰富和准确的人体骨骼动作表示,从而生成更加自然和连贯的动作序列。
自从深度强化学习这个概念被提出之后,研究学者们便开始研究,并试图将该技术应用到实际工作中。DeepMind 公司于2013 年开创性地提出了深度Q 网络算法(Deep Q-network,DQN),将卷积网络同Q-Learning 算法相结合,通过CNN 强大的计算能力,将视频帧作为输入,计算出每帧的动作值函数,智能体通过值选择相应动作,最终掌握从图像中学习信息,自主玩游戏的能力。之后的三年内,DeepMind 公司在视频游戏以及机器博弈领域再次获取了成果。再之后,深度强化学习进入了迅速发展的阶段,众多学者在前人的基础上创新迭代,获取了众多成果。目前,深度强化学习在算法上可分为三类:基于值函数、基于策略梯度、基于搜索与监督。如表1 所示整合了有关深度强化学习的经典算法。
表1 深度强化学习相关方法Tab.1 Deep reinforcement learning related methods
在当今的学术研究中,学者们在选择研究对象时,往往会使用多模型融合的方式。将深度学习模型与其他模型进行融合,可以发挥各自的优势,从而更好地实现对虚拟人模型的运动生成。将基于RNN 和基于GAN 网络的方法相结合,可以使用GAN 在学习关键帧的动作同时捕捉关键帧之间的关联,提高运动模型的学习能力。引用[13]提出了一种使RNN 和对抗训练相结合的方法来模拟、生成和控制人类运动的新技术。该模型的基本思路是将运动轨迹分解成基于关节的轨迹和全局运动轨迹,再分别使用RNN 进行建模,最终生成连续的模型运动。将基于动力学和基于深度强化学习的方法相结合,既可以借助物理仿真提高运动生成的真实性,又可以实现对模型的实时控制。学者TAE 等人[14]提出一种基于强化学习的质心动力学控制方法,能够快速、灵活地控制多足机器人的运动。该方法通过使用强化学习算法,学习机器人在不同的运动状态下的质心动力学模型,然后利用学习到的质心动力学模型,结合控制策略,实现虚拟人模型的运动控制。
本章列举了五类基于深度学习模型的运动生成技术应用于不同任务的具体方案,本节总结整理出上述运动生成方法针对不同场景的启发式分析,如表2 所示。不同方法在网络结构上存在差异,所适用场景也不相同。从场景功能上看,DNN 分化出的网络在运动过渡上大部分可以实现可控,这表明一般的深度学习模型在进行运动生成时可以保证运动间的平滑性。从深度学习种类来看,卷积神经网络凭借着优秀的计算和数据处理能力,可以灵活适用于各个场景,因此卷积网络常作为数据处理模块,应用于复杂神经网络结构中;深度强化学习相比其他种类网络所适用场景相对较少,但在交互控制方面,深度强化学习具备很好的优势;基于多技术混合的运动生成方法可以很好地综合其他模型的优点,因此可以适应更多的场景和任务。如图1 所示以时间轴的形式对基于深度学习的运动生成技术的发展历程进行展示。
图1 基于深度学习的运动生成技术的发展历程Fig. 1 Development of deep learning-based motion generation techniques
表2 不同运动生成方法适用场景分析Tab.2 Analysis of applicable scenarios of different motion generation methods
本文针对五类常见的结合深度学习的运动生成技术,分别进行了论述。其中前四类选取了深度学习中较为经典的模型进行展开,分析了各模型的特点及优势,最后一类选取了深度学习的多技术混合模型,通过模型组合实现了各技术间的优势互补。同时,针对五类方法分别列举了研究成果进行佐证。综合近年来的相关文献,针对目前的技术而言,对未来的展望可概括为以下几点:
(1)从数据源出发,在保证现有数据质量的情况下,从单位数据蕴含数据量以及数据数量两方面扩充数据规模。增加单体数据蕴含数据量需要将原有的数据特征进行细化,捕捉更加细微的人体变化,使单个数据所包含的数据量更加丰富;增加数据量意味着数据的充裕,因此对模型处理数据的效率有了更高的要求。
(2)从模型出发,提高模型对场景的适应能力以及泛化能力。当前大部分运动生成技术仍是基于图像或者运动信息文件展开的,虽然学者们在基于视频序列的技术上也产出了一些研究成果,但在对视频序列或一些自然场景下的图片进行数据处理时,仍需考虑复杂环境以及光照明暗程度等因素对数据采集以及数据训练的影响。因此,优化模型的泛化能力,提升模型的兼容性,可为未来运动生成技术的发展引入新的可能性。
(3)从适用性出发,在保证模型功能正常和性能稳定的前提下,将模型进行恰当的融合,保留合并各个分模型的优势到总模型上,尝试创新出结构更高级以及性能更优秀的新型深度学习模型。
(4)从发展趋势出发,人们更希望将有关基于深度学习的运动生成技术运用到实际应用中去。技术会带动产业发展,同时产业发展也会使技术得到更好的迭代,对相关产业进行优化更新,提高产业技术水平,相信基于深度学习模型的运动生成技术会有更好的明天。