四足动物模型控制中的模型自适应神经网络

简介: 翻译:《Mode-Adaptive Neural Networks for Quadruped Motion Control》

四足动物模型控制中的模型自适应神经网络

(Mode-Adaptive Neural Networks for Quadruped Motion Control)

四足动物模型拥有不同的步态,比如行走,一步,快跑,慢跑和类似于跳,坐,转弯,懒散等姿态。对这些数据应用现存的角色控制框架需要大量的数据预处理工作,比如标记动作和分类。在这篇论文中,我们提出了一个崭新的网络结构,这个结构被称为基础四足角色控制的模型自适应神经网络。这个系统由动作预测网络和门网络。在每一帧画面中,动作预测网络负责计算角色在给定上一帧状态和用户提供的控制信号情况下的当前帧的状态。而门网络动态地更新动作预测网络的权重,通过选择和混合所谓的针对每一个特定动作的专家权重。由于灵活性的不断增长,这个系统可以在端对端风格中,通过无结构的动作捕获的数据,持续学习一系列周期性和非周期性的动作的专家权重。除此以外,用户无需对不同的步态进行标记。这种结构适合对多重四足动物运动进行编码以及实时生成较为激烈的动作模型。

关键词:计算方法-》动作捕获;神经网络;运动;人类动作;动画;角色控制;深度学习。

1 介绍

四足动物动画是一个还未能解决的计算机动画关键问题。它不仅同计算机游戏和电影的实现有关,也是机器人学中一个具有挑战性的主题。当动画化四足动物时,动画制作者必须通过针对性的训练来设计出不同的复杂动作。这种复杂性是与生俱来的。比如说,躯干和四肢在不同的负责动作中都会展现出不同的样式。

目前还没有在数据引导方式下的系统性构建四足动物动作控制器的工作。在控制数据获取中,四足动物不能像人类一样被引导,这也是一大难题。因此,被捕获的数据经常是无序的,连续动作也通常是随机的。在使用这些数据设计角色控制器时,操作者需要手动或者半自动的提出步态循环和过渡,把它们联系在一起,并且调整动作树和有限状态机的参数。

在生成具有清晰循环的高质量的二足动物动作的工作中,基于神经网络的动作控制最近取得了成功。然而,单纯地将同样的框架应用于四足动物模型并没有取得较好效果,因为对于具有明显不同的脚步模式的步态,同时为四只腿在步态过渡时定义单一的阶段是几乎不可能的。这也使得手动标记具有复杂的步态转换的无组织的四足动物动作数据变得不具有实践性。

在这篇论文中,我们提出了一个新的网络结构,名为MANN模型适应性神经网络,它可以从大量的无组织四足动物动作捕获数据中学习动作控制。这个系统由动作预测网络和门网络组成。在每一帧画面中,动作预测网络负责计算角色在给定上一帧状态和用户提供的控制信号情况下的当前帧的状态。而门网络动态地更新动作预测网络的权重,通过选择和混合所谓的针对每一个特定动作的专家权重。这个结构提供灵活性,因此系统可以在非阶段性动作和阶段性的无标记步态类型中学习连续特征。这个框架可以使用户从单调乏味且苦难的标记阶段(无序的四足动物动作捕获数据需要按照时间线排列)中释放出来。特别的是,我们的模型不需要对不同的对人类来说难以区分的步态进行单一标记分类,因此可以避免数据处理过程中的错误标记。

这篇文章的贡献被概括为以下几个方面:

  • 第一个系统性的构造数据引导的能生成高质量的拥有复杂动作模式和转换的动画的四足角色控制器的方法。
  • 一个新的端对端的能从无序四足动物动作捕获数据中学习而无序提高对阶段和动作的标记的神经网络结构。
  • 一个对提出的方法的全面评估和对现存的方法的比较。

2 相关工作

四足动物动作生成经常通过程序化建模和基于物理的控制来完成。程序化动画在动画化有腿的虚拟生物时相当有用。Kry实用模型分析方法来动画化四足动物。虽然这些方法能够生成有趣的稳定的步态循环,在对用户输入进行回应并生成细微和真实的动作时仍有一些困难,因为一些物理规则比如动量守恒和地面反作用力会对动作有较大影响。模拟这些动作需要使用基于物理的动作或者数据引导的技术。

在接下来的部分,我们会先回顾基于物理的四足控制,然后是数据引导的技术,后者也能被应用到四足动作生成中。最后,我们会简单回顾多专家模型,也正是该概念激发了我们的方法。

1.基于物理的四足控制器

基于物理的控制器在生成动态的行为(动物遵循能量最小化和动量守恒时)效果很好。这种策略能被分为基于轨迹的方法(在满足物理特性时达到最优化)和基于扭转力的方法。

基于轨迹的方法:大量轨迹优化技术被用在人类动作生成中,其中一些方法也被用在四足动物动作生成中。W和P通过最优化扭转力和步态循环中约束条件的组合的方式计算不同类型的的动物的动作。W扩展了这一方法,并用来预测外表已知而动作未知的动物的行动。这些方法不能应用到在线实现上。L和P使得狗的动作适应动态地畸的类似物理的地形。这种方法对于使小数量的典型动作适应不同环境很有用,但需要一系列动作作为先导,这个方法发展出了由数据引导的方法。

基于扭转力的方法:基于扭转力的控制器一直被应用于人类角色和四足动物角色。考虑到角色需要在保持平衡的同时表现出理想的动作状态,设计这样的控制器并不容易。R和H设计出了小跑,反射和飞奔步态的控制策略。V和P使用速度矩阵最优化控制图的参数来控制一个猫的模型。C为四足动物设计出一个细节控制器,通过最优化PD控制器在满足约束的同时来模仿视频中的动作,从而模拟出大量的动作包括走,小跑,慢跑,飞奔。P在控制四足动物模型时应用了强化学习以适应不同的2d地面状态。在高维状态空间设计一个稳定的控制器是一个很难的问题,因此低维空间特征需要被手动调控来保持控制器的稳定。P通过对自动计算出的特征空间应用深度强化学习解决了这一问题。这个方法又被提升于3d环境和应用到二足动物角色上。

基于物理的控制器在设计动力学可行的动作时非常有用,虽然一些使得动作更真实的小细节可能会被忽略,因为从简单的反馈中描述它们太过困难了。对抗训练是一个可能会克服这一难题的方向。

2.数据引导的角色控制

与基于物理的动画相对的是数据引导的动画技术,使用了交互控制的动作捕获数据。数据结构,比如动作图,被用来在无序的动作捕获数据中生成连续角色动作。动作图的连通性影响了被控制的角色的反应,计算机游戏和其他交互应用经常使用更简单的结构,比如有限状态机,它的连通性描述详尽并且动作可以预测。

在本节剩余的部分,我们会对应用了早期机器学习策略进行动作合成的方法,从动态角度模拟动作的时间序列模型和基于深度学习策略的近期方法进行评估。

基于传统机器学习技术的动作合成:为了优化不同动作的过渡和提升输出的一般性,这个系统最好是生成全新的动作而不是简单的模仿已有的数据。基于深度学习的不同技术,比如说K-Nearnest Neighbours(KNN),主成分分析,径向基数函数,强化学习,高斯过程都被用来实现这个目标。

大部分基于传统机器学习技术的方法都存在可测量性问题:它们首先需要大量的数据预处理,比如说动作的分类与排列。KNN要求保留所有的动作数据,基于核的方法比如径向基数函数和高斯处理要求大量的存储空间和计算时间,基于PCA的方法在高维度问题表现很好,但是需要局部结构来应对时间序列模型,这也意味着需要大量的预处理。

时间序列模型:时间序列模型根据前一帧的动作来预测当前帧,这样的模型对实时应用比如计算机游戏很有用。线性模型很简单,但在处理非线性时存在问题。X通过使用专家门机掘了这个问题,虽然他们的方法需要预定义不同种类的专家,而我们在研究中解决了这个问题。基于核的方法能够在模拟非线性动作,但是训练好的模型只能表达特定的动作。动作域需要预存原始数据,并且在运行时用KNN搜索,这也限制了它的可测量性。

通过神经网络学习角色动作:神经网络由于其可测量性和高运行表现获得了关注。神经网络能够从大量的数据中学习,并压缩数据大小。T表示人类动作捕获数据可以在cRBM中学习,虽然由于帧取样它存在一些噪声。对学习人类动作等时间序列来说,能预测未来姿态的递归神经网络RNN很是吸引人,但是也存在汇聚问题。L通过连接网络预测和未来的输入,使得生成的动作回归到原始的数据,从而解决了这个问题。这些工作的重心在于重建时间系列数据,而且它们不接收多余的控制信号。它们如何根据用户指令插入不同的动作间仍然有待检测。

H使用卷积神经网络和学习时间滤波器来表达动作。他们描述CNN的能力来绘制高级用户对角色动作的指令。H提出一个实时框架,相位神经网络PFNN,将手柄的输入表现为角色的动作。相同技术在四足动物的应用遭遇了由四足动物动作复杂度和步态类型,阶段标记引起的难关。最重要的是,他们把阶段作为参数用来按时间线排列动作,这样他们就不会在错误的时间组合动作。对四足动物来说,这种模式会在不同方式间剧烈变化,因此造成失真。

3.混合专家

混合专家模式是一个传统的机器学习方法,大量的专家被用来处理不同地带的输入。一个门网络决定了对于给定的输入,哪些专家会被使用。训练完成后,这些专家会专用于被门网络分配的下降维度。我们让读者参考Y。它和深度学习结构的组合显示出极好的前景。我们的结构和混合专家模式有相似处,因为我们也使用了门功能,虽然我们的组合发生在特征层,而MOE发生的发现在输出层。

3 系统总览

我们的系统是一个时间系列模型,可以在给定x,前一帧的角色状态和控制信号的情况下预测y,当前帧的角色的状态。为了在四足动物这一角色上实现这个目标,我们提出了一个新的神经网络结构,MANN,模型适应性神经网络。当前帧的动作由动作预测网络计算,该网络的权重由门网络进行动态计算。这个门网络接收动作的特征x*,这是x的子集,然后计算混合协作的专家权重,每个专家权重都针对特定动作进行过训练。

为了准备训练集,我们对狗动作捕获的数据集进行预处理,并且增加标签,设置输入和输出矩阵。在训练时,整个网络使用准备好的训练集进行端对端训练。运行时,这个系统实时得使用先前状态和用户提供的动作信号来动画角色。

4 数据预准备

在这一部分我们描述动作捕获和动作分类阶段,并且展示如何分解数据。

狗动作捕获。我们的动作捕获数据包括三十分钟的由不同的动作比如走,跑,躺,跳等组成的无序狗动作捕获数据。数据的大小由镜像加倍。由于捕获场所的限制,所有的动作数据均捕获在一个平坦的地带。符合捕获数据的骨骼模型由27根骨头组成。身体有81自由度。

狗动作分类。这些动作最初被分为坐,站,躺,跳等所以用户可以在运行时根据这些标签来控制角色。这个过程是手动进行的,虽然自动分类也不困难。

运动模式。在我们的文章中,我们主要研究四种不同类型的运动模式:走,踱步,小跑和慢跑。虽然我们的系统不需要在运行时为了控制角色而对运动模式进行标记,我们分析了数据集中模式的分布。由于复杂的过渡和有歧义的动作,数据的分类是一个困难的过程。我们首先基于速度分布对动作进行了粗略的分类,然后将它们进行手动分类。最终速度和模式种类的分解/组合如图。相关性同C提出的模型吻合。

5 输入和输出格式

系统的输入数据与输出数据的格式采用PFNN和MOTION MATCHING中使用的格式。数据由地面扭转力转换和过去状态以及未来状态的速度,在这些模块中的动作的标签,身体关节的转换和目前状态的速度组成。更特别地是,对于每一帧,我们统一地取包含了一秒前和一秒后的另外十一帧为样本。在动作的十二帧画面中,我们提取了包括相对身体的局部变化的角色位置,旋转,速度等特征。我们称之为系统的根形态,也代表了当前帧的轨迹变化。我们把十二帧的动作标签作为状态矢量的一部分。最终,所有的轨迹和身体关节变化被计算为根轨迹变化,每一帧的速度由当前特定状态的未来轨迹长度计算出。

每一帧的输入矢量中包括了:用户预测的轨道位置,面朝方向,轨迹速度,理想的轨迹速度,角色动作类型,前一状态关节的位置角度和速度。除了PFNN中使用的变量,这篇文章也使用了关节旋转作为网络的输入,而不是仅用来输出层,故可以快速生成更敏锐的动作。

相似的,输出包括了对下一个状态预测的轨迹位置,方向,速度,当前状态的关节的位置角度和速度,根转换和前一帧的速度。这和PFNN的数据预准备相似,虽然我们的系统不输出根联系和相位变化,但是包括了轨迹速度来获得更好的控制性。

6 四足控制的模型自适应神经网络

在这一部分,我们将介绍我们的网络结构。我们先描述动作预测网络后描述门网络。

1.动作预测网络

动作预测网络是一个三层的神经网络,它可以接收角色的上一状态然后输出。

神经网络的权重通过组合K个专家权重得出。K是一个能够根据复杂度和训练集的大小调整的参数,w是由门网络计算出的组合系数。我们发现K=4时足够生成高质量的动作。

2.门网络

门网络是一个三层神经网络,用来在给定输入数据的情况下计算组合系数w。

我们测试了不同的输入,并且发现这些特征都单独能产生最好的结果。理想的情况下,这个网络可以学习输入的有用信息特征,由于我们的训练集很小这可能会变得很困难。同时,我们观察得出使用动作变量和理想的速度能帮助提高控制度和角色的反应。

7 训练

整个网络端对端的使用处理过的动作捕获数据进行训练。输入x和y都表示成矩阵的形式。这些值进行过平均和方差的变化所以它们是正则化的。由于小跑和慢跑的循环有限,我们复制了这些动作的数据十一次,使得他们在运行时表现更好。

训练我们的网络的目的是为了对于给定的输入x,我们能输出相应的变量y,这是一个典型的回归任务。损失方程是预测输出和实际情况间的均方误差。

我们使用随机梯度下降算法with warm restart technique,它能自动计算损失函数的导数??(这个算法我不会)。这个模型在tensorflow中实现。在训练过程中,我们在大小为32的池中重复数据,每个池中的训练样本是随机选择的。

低训练损失或者测试损失不意味着高质量的动作。

8 过程和结果

在这个部分,我们首先描述角色控制过程,然后展示我们的控制结果。

控制过程:这个系统在u3d平台实现,运行神经网络每帧需要~2ms。使用8个专家权重时内存占用为~22mb。这个角色能够被离散和连续的控制信号控制。生成平滑的轨迹是极其关键的。

运行结果:不同的步态通过设置不同的速度来完美变现。平滑的转换过程通过逐渐改变速度来实现。每一种动作都能快速的对方向和速度输入做出响应,虽然一些步态不包括变化动作。这意味着神经网络可以很好的生成不同步态间的过渡动作。坐,躺。站和跳等动作也成功实现,虽然有一点延迟。这说明网络能够学会特定动作在哪个状态要执行。

最终,我们设置了一个角色需要在不平稳地带移动的环境。我们对角色简单地应用了CCD逆向动力学。爪子端端位置是后置的所以可以吻合地带高度,脊柱关节也同环境高度一起更新。这是为了避免上下坡时肢体过于舒展,从而形成更自然的动作。

9 评估

我们通过同已有方法在动作质量,滑步真实性,腿的僵硬度和反应等方向的比较,评估了我们的系统。我们也检测了专家权重,通过反激活分析了它们的实用性。

同其余架构的比较:我们比较了我们的系统和其余神经网络的表现,发现其余架构的输入输出和我们的保持一致,而它们都不包括足联系。为了公平的比较,我们使得其与网络的层数,参数数目同我们的系统使用四个专家权重时一样。因此vanilla网络有2048个单元在隐藏层,PFNN有四个控制单元,每个包括512个单位在隐藏层。

vanilla正反总是存在不合理的组合,导致模糊的运动和高频成分的丢失。甚至在连续行走和踱步循环中这种失真都表现的很明显,而数据本身已经很充足。在进行转弯动作或跳跃后降落时,这种滑步和僵硬腿的失真尤为明显。

同PFNN相比较,我们的系统表现得更好,并且我们不需要任何阶段标签。为了测试PFNN,阶段标签被添加到狗运动数据中。这些阶段根据前两条腿的速度表来定义,并通过优化技术计算和排列。PFNN一般情况下表现很好,虽然后腿经常表现的很僵硬和不自然,并且也有滑步现象存在。这可能是由于很难定义一个可以很好的校准不同步态类型的连续相位函数。由于我们根据前腿的速度定义不同阶段,失真在后退表现得更明显。

在双腿运动中,以足关联模式为基础更容易校准动作。然而,这样一个简单的规则是很难应用到四腿动物中,另一方面,为了组合这些特征来最小化损失函数,门网络将有更高度的自由度。

(具体比较不描述)

10 讨论

我们讨论了模型的优化和局限性。

学习时间序列模型:时间序列数据是很难去学习的,因为很容易陷入一个循环,而且输出动作也容易变得过分平滑。虽然简单的前馈网络在样本充足的情况下也能完美插入,而在训练集较少的情况下,输出结果也会表现的过分平滑或者出现滑步失真。PFNN被用来在这种情况下生成较好的结果。MANN也可以描述成PFNN的衍生物。控制点被训练来针对特定时刻的特定动作,并且激活也能被门网络在无监督状态进行调控。训练完成后,不好的插入情况能减少很多,因为这里几乎没有针对不同阶段的专家权重的组合。

稀疏数据集:深度神经网络在训练集少的情况下可能不能达到目的。具有较少样本的维度很容易被具有密集样本的维度影响。狗动作捕获数据能保持这样的分布直到捕获场所不重要。一个小时的动作捕获数据对人类数据来说并不算多,但对于四足数据来说已经很多了。在这种情况下,我们的结构可以很好的满足这种稀疏数据集。

局限性:我们的数据集局限于平坦地形,因此在高位置的跳跃不能生存。逆向动力学方法对简单的动作合成很有用,但不能生成更加动态的动作,比如跳上跳下一个盒子。因此我们不能像前人一样适应多种地形。扩充数据以生成这些结构的一个可能是应用基于物理的动画到生成训练数据中,其中角色符合动量守恒和弹跳效应,并且扩充这些数据。

11 未来工作

除了将我们的方法和基于物理的动画相结合外,这里还有几个有趣的研究方向。

一个方向是对不同大小和形态的四足动物的动作重定向。四足动物的动作捕捉并不直接,因此数据量通常很小,并且对于理想大小的体型的动作通常不容易得到。W提出了一个关于生成不同大小和骨架结构的四足动物的动作的优化策略,但是运动仅限于平面的正向运动,并且每个运动的重定向将是线下的过程。如果基于分解的神经域转换类型的方法能被应用将会很有趣,这样来从一个动物的丰富运动集和另一个动物的小样本运动集可以产生广泛的步态和运动变化。

另一个有趣的方向是计算生成运动的一半损失,并且使用这种损失来避免模糊问题。这已经在基于物理的环境和动作捕获数据的初步结果中研究过(没太看懂这句),但是交互式角色控制的框架还没有完成。

自动控制非玩家角色来和玩家控制角色进行交互或者和一个复杂环境中的动态障碍进行交互也是一个有趣的研究方向。一个可能是应用强化学习来决定框架的控制信号。

MANN被证明是强大的捕捉四足动物运动的多模型性质的工具。我们可能会探究这种结构对于具有高度多模态数据的其他机器学习任务时,是否普遍有效。

相关文章
|
29天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于BP神经网络的苦瓜生长含水量预测模型matlab仿真
本项目展示了基于BP神经网络的苦瓜生长含水量预测模型,通过温度(T)、风速(v)、模型厚度(h)等输入特征,预测苦瓜的含水量。采用Matlab2022a开发,核心代码附带中文注释及操作视频。模型利用BP神经网络的非线性映射能力,对试验数据进行训练,实现对未知样本含水量变化规律的预测,为干燥过程的理论研究提供支持。
|
29天前
|
网络协议 前端开发 Java
网络协议与IO模型
网络协议与IO模型
网络协议与IO模型
|
28天前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
63 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
9天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
14天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
55 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
23天前
|
机器学习/深度学习 算法 数据挖掘
【深度学习】经典的深度学习模型-02 ImageNet夺冠之作: 神经网络AlexNet
【深度学习】经典的深度学习模型-02 ImageNet夺冠之作: 神经网络AlexNet
25 2
|
30天前
|
开发者
什么是面向网络的IO模型?
【10月更文挑战第6天】什么是面向网络的IO模型?
20 3
|
30天前
|
数据挖掘 开发者
网络IO模型
【10月更文挑战第6天】网络IO模型
35 3
|
30天前
|
缓存 Java Linux
硬核图解网络IO模型!
硬核图解网络IO模型!
|
23天前
|
机器学习/深度学习 编解码 算法
【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5
【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5
32 0
下一篇
无影云桌面