赞
踩
我们提出了一个使用全新网络结构的实时角色控制机制,命名为相位神经网络。在这个网络结构中,权重通过一个以相位为输入的循环程序计算机。我们的系统也将用户控制,先前角色状态,场景做为输入,并且自动生成满足用户控制的高质量动作。整个网络由一个适应多种虚拟环境的动作组进行端对端训练。我们的系统因此能生成适应多种环境的动作,比如说在粗糙地形上走和跑,爬过巨大的岩石,跳过障碍,蹲伏等。我们的网络结构能产生比时间序列自动回归模型更高质量的结果,因为它根据相位来处理潜在的可能。训练完成后。我们的系统既快速又稳定,哪怕训练千兆节的动作数据,也只需要几毫秒的运行时间和几兆节的内存。我们的工作最适合用来在交互系统比如电脑游戏中控制角色。
关键字:神经网络,运动,人类动作,角色动画,角色控制,深度学习。
即使拥有大量高质量的动作捕获数据,生成数据引导的虚拟角色实时控制器也一直是一个挑战。一部分原因是角色控制器有很多需要被满足的要求,比如说它们必须从大量数据中学习,它们必须运行够快并且占用较小。由于要处理的过程太多,现存的方法并不能完全满足这些要求,这也降低了这些方法的实用性。
当环境不平整甚至有较大障碍且需要角色根据用户指令表现出不同的跑,跳,躲避等动作时,这个问题变得更难解决。在这种情况下,一个能够从大量高维动作数据学习的框架说必须的,因为会有很多不同的动作轨迹和相应的几何存在。
近期深度学习和神经网络的发展显示出了解决该问题的可行性。神经网络能够从大量高维度数据集中学习,并且每次训练占用小且运行快。现存的问题是如何将神经网络应用到动作数据成从而产生仅需要处理极小数据的高质量的实时输出。
卷积神经网络和自动回归模型等架构已经取得了一些成果。CNN模型对每一层进行转换,逐步转换输入信号直到实现理想的输出。这个架构需要输入一次性给完并且输出也是一次性,即离线。这并不适用于某些类似于网络游戏的环境,因为输入会被用户的操作影响。RNN等模型更适合网络游戏和在线动作生成,因为它们只需要输入的单帧,然而在生成连续动作时它们效果不好,预测的错误会反馈到输入中并且积累。当不同的相位组合在一起时它们更容易出现错误。没有较为完备的结构是很难避免这种输出的,而组合输出的过程又会影响运行时间和内存占用。
我们提出了一个全新的网络结构,命名为相位神经网络。这个网络可以生成针对回归网络的每一帧的权重作为相位函数-一个变化的动作循环时间片。生成后,the network weights are used to perform a regression from the control parameters at that frame to the corresponding pose of the character ,这个网络权重可以被用来做一个从控制参数到相对应的角色状态的回归。PFNN的设计可以避免混合不同相位的数据。不像CNN模型,这个网络结构更适合在线的实时的动作生成,不像RNN,这个网络能够生成用户交互型的复杂环境下的连续高质量动作。我们的系统既快速又稳定,哪怕训练千兆节的动作数据,也只需要几毫秒的运行时间和几兆节的内存。这种紧凑性还可以通过相位函数的预计算来换取运行时速度,从而允许在内存和计算资源之间进行定制的折衷。
动态的改变网络的权重而不是使其保持不变,在保持稳定结构的同时显著得提升了回归的表现力。这允许网络从大量高维度的同时包含环境和人物动作的数据集中学习。训练完成后,这个系统能自动生成不错的在多种环境下的角色动作。在准备训练集时我们也进行了一些处理,使得捕获的动作数据和从游戏环境中提出的场景高度图能相适应。
总的来说,我们的工作主要包括以下部分:
在这个部分,我们先介绍数据引导的动作生成策略,然后我们会介绍同环境交互的角色动作生成方法。最后,我们介绍基于神经网络的方法。
数据引导的动作生成:数据引导的动作生成是一个吸引力很多动画和机器学习工作者的热门课题。基于线性,基于核,基于神经网络的框架都被成功应用。
基于线性基的技术比如PCA被广泛应用于减少动作数据的维度和根据少量输入来预测动作。全局PCA能够在低维度空间表达大量动作时存在问题,局部PCA被用于处理任意类型的动作。C和H将局部PCA用于生成全身动作。T生成相似的局部结构用来通过一个惰性感知器预测全身动作。这样的结构需要大量的数据预处理和计算用于训练和运行。
基于核的方法被用来克服线性方法的局限性和考虑数据的非线性关系。径向基函数和高斯处理经常被用来组合多种动作。GPLVM被用来计算低维度隐空间来解决反向动力学冗余问题或者提高效率。W提出了高斯动力学模型,可以从隐空间学习,并将动作应用于全空间。基于核的策略在存储和转置协方差矩阵时占用过高的内存,分别达到平方和立方级别的占用。局部GP算法限制了插入的样本数量,从而克服了这一问题,但是也需要K最近邻居搜索来处理高维数据,这在运行和预计算时都占用了大量内存。
由于其高度的可测量性和运行效率,数据引导的使用神经网络的动作生成算法引起研究者的注意。T提出受限的玻耳兹曼机用来预测身体在下一步的动作。F提出递归编解码网络来预测动作,角色的动作根据上一步来预测。自动回归模型适合实时应用比如说电子游戏,因为它能更新每一帧的动作。受限的玻耳兹曼机模型和RNN模型比传统的线性或核模型更高效。而由于噪声和欠拟合的存在,它们也会出现滑步的情况。H采用CNN框架,将低维度用户信号和全身动作相匹配,这是一个离线的框架,需要在生成动作前准备好所有的控制信号。
我们的框架是一个能够根据用户输入和角色先前状态来预测角色动作的时间序列方法。
和环境的交互:虚拟环境的自动角色控制器允许角色躲避障碍并适应地形,对于实时应用来说很有用,这些方法可以被分为基于优化的方法和基于形状匹配的方法。
基于优化,基于取样的方式,最大化后验概率检测,和强化学习技术的方法,在给定角色当前状态和其与环境的联系的时能预测角色的行动,他们要借助损失和价值函数来评估不同环境下的每一步。虽然这些方法能生成非常真实的动作,它的计算损耗对动作数量呈现出指数增长。更重要的是,对样本使用K最近邻居搜索算法容易造成歧义。L通过在隐空间使用强化学习方法解决了这一问题,但这需要对动作进行分类并且将搜索限制在每一类中。P将强化学习用于基于物理动作的空间控制上,这能应对高维度状态空间,但这个系统只在2d环境进行过测试。我们的目标是在拥有复杂环境的3d运动空间控制角色。
另一些在给定环境下控制角色的方法是对环境进行几何分析并将运动和动作同新环境相适应。L使用刚性形状匹配来调整同环境接触较多的动作。G提出粗糙力搜索来研究哪些环境角色需要产生一个特定动作。K提出使用物体的不同的几何特征来匹配物体动作与不同环境。K分析了开放空间和身体的物理舒适度来预测角色可以用各种姿势摆放的位置。S捕捉人类和物体的交互,并且生成可以用来合成新场景的静态模型。这些方法都只解决了静态问题而未解决高度动态化的交互问题。从动画的目的来说,必须要考虑动作的连接和平滑度。K估算在动态运动时身体和环境的连接,并且用于匹配运动和虚拟环境。他们的方法都需要提前对几何环境进行深度分析,因此无法满足实时交互的要求。我们的技术基于从几何到运动的回归,所以可以克服这些局限性。
将用户参数表现为潜在变量:在很多环境中人们更倾向于将场景参数,比如视角和光照,表现为潜在变量,这样用户就能在生成时控制它们。K提出了一个技术来用隐藏单元表达视角和光照条件,M提出一个乘法网络用潜在变量参数化网络的权重。这样一个网络在潜在参数对整体输出有全局影响时十分有用。我们发现这种结构对运动和相位作为参数时很实用,因此在我们的系统中采用了相似的概念。
PFNN是一个神经网络结构,其中权重由称为相位函数的相位p的周期函数来计算。网络的输入包括角色的前一动作和用户控制,网络的输出包含相位的变化,角色的当前姿态和一些额外的参数。
我们的系统包括三个阶段:预处理阶段,训练阶段和运行阶段。在预处理阶段,我们首先准备训练数据并且自动提取用户提供的控制参数。这个处理包括了将地形数据和运动数据相匹配。在训练阶段,使用这些数据训练PFNN,这样在给定控制参数可以生成每一帧的角色动作。在运行阶段,输入参数能从用户收入和环境中得到,然后被放入系统来决定角色的动作。
在这个部分,我们先描述我们如何进行动作捕获和提取用来训练系统的控制参数。接下来我们描述我们如何将地带和捕获的动作数据匹配。最终我们总结了整个系统的参数。
动作数据被捕获后,动作参数包括动作的相位,步态的语义标签,身体的轨迹和沿着轨迹的地带的高度信息,都被手动标记。这个过程在下面介绍:
动作捕获:我们首先捕获一些长序列的动作,包括不同的步态和朝向。我们也放置了障碍物,跳板和平台,然后捕获在这些障碍物上以不同方式不同速度走过的步态。我们额外捕获了其他不同的动作,比如蹲伏或者跳过不同的高度以不同的步子大小。结束后我们会有大约一小时的未处理的动作捕获数据。与具有30个旋转关节的CMU运动捕获数据的BVH版本相同的铰接体模型与附加的根变换一起使用,该根变换附加在臀部下面的地面上。(这句没看懂)
相位标记:数据中的相位必须被标记,然后作为PFNN的输入参数。这是一个半自动的过程。首先,脚部接触时间通过计算足跟和关机的速度和观察何时到达下限来标记。这个结果需要人为确认和手动更正。接触时间获取后,相位可以通过观察帧来自动计算,并将右脚接触地面时设定为0相位,左脚接触地面时设置为pi相位。其余帧插入中间。对某些站姿,最小循环设置为0.25s,相位允许连续循环。
步态标记:我们会给步态作语义标记并且以二进制矢量的形式提供给系统。首先,这些标记提供了一个排除歧义的方法(比如说快走和慢跑经常有相似的轨迹),而后有时用户想要观察特定场景的特定动作。这个过程要手动进行,但是能够被简化,只要能保证在捕获时角色动作改变的不会很频繁或者很长的捕获中只包括简单一种步态。
轨迹和地形高度:角色的根变化为将髋关节投影到地面的中心。朝向由髋关节和肩关节矢量的平均来计算,取向上方向的叉积。这个方向是平滑的,除去了小的高频的运动。
根变化的轨迹被提出,地形和运动相匹配,地形的高度由轨迹下的位置以及轨道两侧,垂直于朝向方向和远离中心25cm的位置计算,更多的细节会在之后描述。
处理完成后,我们会生成镜像版本形成两倍的数据。
为了制作一个在运行时角色能够自动适应几何环境的系统,我们需要去准备包括了角色在不同地形运动的数据的训练数据。几何和运动同时捕捉是比较难的,我们用一个离线的方式来处理使得环境高度图的数据和不同的动作捕获数据匹配。拟合结束后,这些地形允许我们使用和几何环境有关的参数作为输入来控制系统。
我们的高度图数据是从不同的几种环境提取的。我们跟随从上方进入场景的光线来捕捉全集合信息。从这些高度图,我们在大约20000patch 3x3米的范围内随机取样角度和位置。这些包被用在适应处理。
适应处理发生在两个阶段。首先,对动作数据中的每个动作循环,我们寻找到十个最佳匹配包。然后,我们使用一个简单的径向基函数网来对技术就行修改,从而改进结果,编辑地形使得角色的脚在接触时间正好站在地面上。
接下来我们详细介绍一下适应处理的细节。对数据集中的每个动作循环,给出左右脚跟与指关节,我们先计算每一帧他们对应的高度,并给出接触标签来判断某一时刻脚趾是否与地面接触。我们发现这些关节在与地板接触的所有时间的平均位置,并且在该位置的数据库中将每个包居中。对于每一个包,我们计算机在每个关节下的地带的高度。
Edown保证地形的高度和脚与地面接触时匹配。Eup保证当不与地面接触时脚总是在地形上(避免相交),Eover只有当角色跳跃时才会被激活,保证地形的高度距离脚不超过l。这保证大跳和大障碍匹配,小跳和小障碍匹配。
当我们为我们选出的误差最小的十个包的每一包计算出适应误差,进入适应处理的第二个阶段。在这个阶段我们编辑高度图,我们简单变化了高度图,应用一个2d的RBF给其余的地形适应。别的方法应该也适用。
总的数据处理和适应时间大概三个小时,在Inteli-6700,3.4GHz的cpu上单线运行。
在这一部分,我们记述了系统的输入输出参数。对每一帧,我们的系统都需要使用相位来计算网络权重。权重计算完后,系统需要神经网络的输入,包括了用户控制参数,角色在上一帧的状态和环境参数。计算输出y,包括角色当前帧的状态,相位的变化,根形态的动作,对下一帧轨迹的预测,足关节的接触标签。
现在让我们来介绍输入参数的细节。我们的参数选择和MotionMatching中的相似,包含两个部分。对于角色的状态,我们选用角色的根形态的关节的位置和速度。对于角色控制,我们用一个帧中心的局部窗口,并且检查每十个帧。在每一帧我们提取一定数量的特征,包括对应根形态的角色轨迹位置和角色轨迹方向,二进制矢量表达的角色步态和轨迹下和25cm外的的地形的高度。
对单帧的输入控制变量的参数包括一个矢量,tp是在2d水平板上的轨迹位置的下降取样窗口,td是轨迹方向,th是左/右中心三个样本点的轨迹高度,tg是轨迹的用来描述角色步态和其他信息的语义标记,jp是前一帧的局部关节位置,jv是前一帧的局部关节速度,j是关节的数量。在这个工作中,在以下情况时,额外语义变量的独立成分是活跃的:1.站立。2.步行。3.慢跑。4.跳跃。5.蹲伏。
输出变量的参数包括一个矢量y,tp是预测的下一帧的轨迹位置,td是预测的下一帧的轨迹方向,jp是针对角色根形态的关节位置,jv是关节速度,ja是关节角度,r ̇ix ∈ R is the root transform translational x velocity relative to the forward facing direction, r ̇iz ∈ R is the root transform translational z velocity relative to the forward facing direction, r ̇ia ∈ R is the root transform angular velocity around the upward direction, p是相位的变换,c是脚步接触标签。
在这个部分我们讨论了PFNN的结构和训练。PFNN是一个权重会根据相位值周期性变化的神经网络。我们称生成网络权重的函数为相位函数,在我们的工作中被定义为一个三次的CR-spline。首先我们会介绍神经网络结构,然后是用来生成网络权重的相位函数,最后,介绍训练过程。
给定输入参数,输出参数,和一个单独的相位参数,我们首先建立一个简单的三层神经网络。每一层的隐藏单元数目设定为512,激活方程使用指数修正线性方程。
在PFNN中,网络权重由以相位和参数为输入的相位函数计算。这个函数有很多潜在的选择,它可以是另一个神经网络或者一个高斯过程,但在这里我们选择了三次CR-spline。
使用它的原因有如下几点:只要让首尾控制点相同,它就可以形成一个循环;参数的数量和控制点数量成比例;相对输入参数p它变化的比较平滑。用CR-spline作为相位函数意味着每个控制点都能代表一种权重结构,这个函数在神经网络权重间进行平滑的插入。另一个方法去构造函数是把它当作一个神经网络权重空间中的一维的循环。
我们找到一个只需四个控制点就能表现系统所需的回归的周期样条。给定四个控制点,方程就能为随机相位p生成网络权重。
对每一帧,变量x,y和相位都被存在矩阵中。数据用平均值和辨准差正则化处理,然后按权重缩小。在我们的实验中,与关节有关的所有的输入变量都按0.1的值缩小,来减少它们的影响,从而获得最好的结果。这增加了轨迹在回归过程的影响,产生了一个更生动的角色。在地形适应完成后,最终的参数由十个不同的包组成。我们的数据集中最终包含大概4million数据点。
为了训练这个网络,我们需要保证对给定的控制参数和相位参数都能产生相应的输出。训练因此变成一个优化相位函数参数和损失函数的问题。
在这个等式中,第一项代表回归结果的平均方差,第二项代表正则化用来保证权重不至于很大。它也引入了一个很小的稀疏值,这一项由常数进行调整,在这个工作中被设定为0.01。
我们使用随机梯度下降算法和一个T实现的模型,它能自主计算损失函数的导数。这个模型在大小为32的包上训练。整个训练过程经过二十个循环,花费了大概三十个小时。NVIDIA GeForce GTX 660 GPU 。
运行过程中,必须提供每一帧的相位和网络输入。相位要被存储和实时增加,在0到2pi间循环。对于神经网络的输入x,和关节位置和速度相关的变量被用在自动回归方法中,使用前一帧的计算结果作为下一帧的输入。我们的系统也使用过去/未来的轨迹做为输入:这个和过去相关的元素只是简单被记录,而关于未来的元素,我们会在接下来讨论。
同未来轨迹相关的输入:在为神经网络准备输入x时,未来轨迹的值通过组合控制手柄和油PFNN前一帧产生的轨迹来计算。
在动作匹配中,C使用了控制杆的位置来表示理想的速度和角色朝向。在我们的方法中,这个速度和朝向由PFNN在前一帧预测到的速度和朝向组合生成。我们使用了一个组合函数。
t的范围是0到1,作为延伸的轨迹。tao代表一个附加的偏差用来控制角色的表现。我们设置这个用来组合速度的偏差为0.5(表现为偏向PFNN的预测速度),组合朝向的为2.0(表现为偏向手柄控制杆朝向)。这产生了一个看起来更自然的角色,因为当角色同朝向的反应快时才显得自然,
被算在未来轨迹中的变量都同运动的语义信息有关。这包括了理想的角色步态(表现为一个二进制矢量),当角色需要跳动时天花板的高度。这都通过用户交互决定或者通过检查轨迹与环境元素的相对位置。
同未来轨迹相关的变量出现时,最终的一步就是将轨迹位置垂直投射到几何屏幕上并且提出高度。这个构成了所有的PFNN的输入,因此输出y才能被计算出来。
给出输出y,最终关节变化也能通过预测的关节位置和角度计算出来,这个关节变化被调整来避免滑步。根形态的位置和旋转通过预测的根平移和旋转速度一直被更新。
相位函数的预计算:训练完后,PFNN需要大概10兆字节的空间来存储变量。相位函数则需要大概一毫秒来计算,在某些情况下会变得很慢。因为相位函数是一个一维的函数,通过线下预计算可以省去运行时计算的过程,并且在运行时直接插入预计算的结果。
一些预计算的选择可以得到在速度和空间占用上的折衷。一个方法是只预计算相位空间的五十个位置,在运行时对最近的预计算相位位置使用神经网络权重。这提升了内存占用,但是有效的减少了函数的计算。n=10时的样本也是可取的,然后采用分段线性插入。
这些策略需要较少的空间并且能更准确,但是分段线性插入也需要大量的计算时间。
在这个部分我们把我们的方法同其余的方法进行比较,包括没有把相位当作输入的方法,把相位当作额外输入的方法,一个循环编解码网络,一个自动回归高斯过程,和一些简单的高斯过程算法。所有的方法都经过训练,每个网络的权重都经过了调整所以内存占用也相同。
我们可以看到,这些方法都没有产生和我们的算法一样高质量的运动,并且还存在一些基础的问题。我们也比较了训练时间,运行时间和内存占用,然后评估了我们的数据引导的地形适应模型,同别的简单的过程化模型的地形适应性进行比较。最终我们评估了我们系统的生动性,通过调整未来轨迹的组合和评测这种变化如何影响我们的结果。
标准神经网络:当使用没有将相位作为输入的神经网络时,这个系统会混合不同相位的输入,从而使得各个相位的动作被均化。在我们的系统中,只有相同相位的动作会被组合,所以不会产生这个问题。
为了避免这种错误的组合,需要给神经网路提供准确的相位作为额外的输入。在训练时,相位的影响会被忽略,别的变量会占据预测的主导,导致生成的动作僵硬不自然。这是由于dropout造成的。同相位相关的输入变量在经过dropout会失效,系统就会稀释它的作用,而去错误的学习别的变量来预测动作。这个错误可以通过减少对相位变量的dropout来避免,或者在输入中加入多重相位变量。同我们的方法相比,这个技术不能保证实际效果。
循环编解码网络:我妈将我们的网络同循环编解码网络比较。ERD网络具有记忆性,即使相位没有直接给出,也能从观察数据中学会相位的概念并且避免输入的歧义。ERD网络对不同的动作执行循环过程,因此会延迟“dying out”的开始。
不幸的是,一些问题仍然存在,比如说如果角色站直而用户想要他移动,这就很难观察到停滞时的相位,网络不知道用户是想让角色的左脚还是右脚先走,最终形成滑步。而且相位有时无法学习。
对这种网络提供一个相位作为额外输入能够明显的提升生成效果,但是并没有完全移除滑步现象。
自动回归告诉过程:高斯过程在自动回归问题上的应用已经取得了一些成功,接下来我们比较我们的方法和两种GP结构。
首先,我们用给定相位作为额外输入的GP来实现从x到y的回归,这和高斯过程动态模型相似。如果你把输入控制参数作为隐变量,在这种情况下它是手动调整的而不是自动学习。由于避免GP的过拟合比较困难,这个系统并不稳定。此外,GP不能适应各种复杂环境,因为内存的损耗是呈平方增长的而计算损耗是指数增长。因此我们只能在平面检测这个系统,并且训练样本限制在三千。然后在数据较大时它仍有糟糕的运行表现和空间占用。
接下来,我们为十个不同的位置建立了几个独立的GP,选取最接近的两个在运行和插入结果时进行回归。实际上它能达到和PFNN相似的结果,但我们发现回归的质量和内存以及运行表现都比我们糟糕得多,因为它不能应付这么多数据。
表现:我们比较了不同方法的一些表现,包括内存占用和运行时间。基于GP的方法被他们的数据能力,内存占用,运行表现所限制。我们有相当不错的运行表现,但也有一个相对较高的内存占用。当使用三次CR样条插入时,他有相似的内存占用但较长的运行时间。我们的方法的一个缺点时它比别的算法要求更长的运行时间。
地形适应。在这个过程中,我们从一个平面开始,并且使用网格编辑技术来重解地面从而和脚步的位置接触。依靠这种方法生成的地形更加平滑。由于过度拟合,这个系统可能会产生奇怪的地形当角色和环境碰撞时。
反应。我们评估了我们方法的反应能力。我们预设了几条路径并且引导角色跟随路径运动。然后比较理想的轨迹和角色运动的实际轨迹的不同,通过增加变量tao,角色的表现能在极小的运动质量损耗下被提高。
在这个部分,我们首先讨论了神经网络的结构,系统的输入输出参数,最终讨论我们系统的局限性。
网络结构:我们的系统能够用时间序列的方法生成真实的动作,而不会有不稳定等经常出现在自动回归模型中的问题。通过将相位设置成神经网络权重的全局参数,我们能避免混合不同相位的动作,导致“dying out”。这也保证了在训练和运行时相位的作用,因此它的作用不容易被稀释掉,就像别的将相位作为额外输入参数的网络结构一样。
我们的网络由一个输入层,一个输出层和两个包含512个隐藏单元的隐藏层组成。这是为了让网络足够简单并且能保证理想的动作能很容易计算出。我们发现目前的网络结构是计算效率和动作丰富度的很好的折衷。
我们只将PFNN用于周期动作时,但它也能被用到非周期的动作,通过使用非周期性的相位函数。在非周期数据中相位能在动作开始时设定成0,在一半时设定为0.5,在最后设定为1。如果用非周期相位函数和控制参数,这个PFNN能被用来其余任务,比如拳击和踢打。
概念上来说,我们的系统在训练每个相位时和单个网络相似。这也是我们在早期研究时所作的尝试,但在这么做时,每个网络由于随机的初始权重和各种因素,每个网络learned a slightly different regression。因此会有连接周期的不自然,动作也会看起来僵硬,会有明显的“缝合”的感觉。PFNN提供了一个简明的方法来实现相似的效果却没有上述问题。
实时角色控制中的控制参数。我们系统被专门设计用来实时角色控制:为了这样的目的,我们使用了和Motion Matching相似的输入参数。未来轨迹由用户输入进行预测,这种输入通过取样轨迹下的地形高度得到。使用过去和未来位置,方向和几何的窗口减少歧义存在的可能,并且产生更高质量的动作。应对别的任务时也可以添加相应的输入参数,比如动作的风格。
其余可能的参数。其他潜在的参数化。深度学习已经发现可以使用不是以这种方式手工制作的输入参数化,而是使用更多的神经网络层来执行抽象。比如,针对我们的目标,我们可以使用一个周围地形的深度或者RGB图像作为输入,使用卷积层来抽象这个输入。这是一个有趣的方法,并且有可能产生一个很好的思路,在动作受限制且地面细节需要平衡的时候。在我们的研究的早期阶段,我们测试了一个相似的方法,但是发现了一些问题。首先使用CNN需要大量的训练数据而角色不能与图片边缘的地形交互,这意味着我们需要大量的不同的图片来防止这些位置的过拟合。我们也发现在使用卷积层或者更复杂的神经网络来抽象化输入时,处理时间会增加,所以它可能不适合实时应用。
局限性和未来工作:为了实现实时的表现,我们只取样了沿着轨迹的几个点。这也导致系统失去高分辨率细节,比如尖锐的小障碍。一个简单的解决方式是增加一个层用来控制当前系统对标记的障碍作出回应。
像大多数方法一样,我们的系统不能处理过于复杂的和环境的交互,尤其在包括明确的手部动作比如爬墙或者和屏幕上其他物体交互的情况。通过标记手部接触和在手部应用IK可以部分解决这个问题。
PFNN训练相对较慢,因为小批量的每个元素产生不同的权重,这意味着训练时的计算要比平时损耗大。PFNN只需要几个小时的训练就能生成不错的结果,但是为每个新数据训练30小时不太可能。由于这个原因,我们希望能够加快PFNN的训练速度。
另一个未来的工作方向是可以把我们的架构用在基于物理的运动上。比如,学习一个非线性版本的相位索引的反馈模型。这样一个系统可以允许角色去稳定的在不同条件的地形上运动。
最后,也可以应用我们的技术在别的模型,比如说视频数据,心跳图像。用一个周期模型可以是的学习过程更高效。
我们提出了一个新的学习框架,命名为相位神经网络,这适用于生成周期动作比如人类运动。我们也设计了输入和输出参数,为了在和用户交互的复杂环境中进行实时的数据引导的角色控制。它不仅结构稳定,还可以学习大型的高维度数据集,因为相位函数在产生不同的网络结构时总是平滑的。我们也提出了一个框架来生成额外数据,用于训练PFNN,即人类动作和环境匹配时。训练完成后我们的系统会很快速,只需要占用一点内存,并且会产生高质量的动作,且没有别的方法中出现的失真。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。