资讯详情

Phase-Functioned Neural Networks for Character Control论文翻译(用于角色控制的相位功能神经网络)

我们提出了一种使用相位功能神经网络的实时角色控制机制。在这个网络结构中,权值是通过一个使用相位作为输入的循环函数来计算的。除了相位,我们的系统还输入用户控制、角色的先前状态和场景的几何形状,并自动生成高质量的运动,以实现所需的用户控制。整个网络以端到端的方式进行大型数据集训练,由行走、跑步、跳跃和攀爬组成,适合虚拟环境。因此,我们的系统可以自动产生运动,使角色能够适应不同的几何环境,如在崎岖的地形上行走和奔跑过大岩石,跳过障碍物,蹲在低天花板下。与时间序列自回归模型相比,我们的网络系统结构lstm由于它清楚地处理了与相位相关运动的潜在变量,因此产生了更高质量的结果。一旦经过训练,我们的系统也非常快速和紧凑,要几毫秒的执行时间和几兆字节的内存,即使在千兆字节的运动数据上。我们的工作最适合控制计算机游戏和虚拟现实系统等交互场景中的角色。

1 INTRODUCTION

即使有大量现成的高质量运动捕获数据,为虚拟角色生产实时数据驱动的控制器也一直是一项具有挑战性的任务。这部分是因为角色控制器有许多困难的要求,必须满足这些要求才能发挥作用——它们必须能够从大量数据中学习,不需要太多的手动数据预处理,并且必须在运行时以极低的内存需求极快地执行。尽管在这一领域取得了许多进展,但几乎所有现有的方法都难以解决一个或多个要求,从而减缓了它们的普遍使用。

当环境由不平坦的地形和更大的障碍组成,角色需要按照用户的指示行走、攀爬、跳跃或避免时,这个问题就更具挑战性了。在这种情况下,由于有大量不同的运动轨迹和相应的几何形状,需要一个可以从大量的高维运动数据中学习的框架。

深度学习和神经网络的最新发展显示了解决这些问题的一些希望。神经网络可以从非常大、高维的数据集中学习,一旦训练,内存占用率低,执行时间快。目前的问题仍然是神经网络如何最好地应用于运动数据,从而以最少的数据处理产生高质量的实时输出。

以前使用过卷积模型,比如cnn[霍尔登等人2016,2015],自回归模型,如rbm[泰勒和辛顿2009]rnn[Fragkiadaki等人2015],取得了一些成功。CNN在输入信号产生所需的输出信号之前,模型在每层都会局部变换。该结构自然适用于离线并行设置,即一次给出整个输入,一次生成整个输出。在某些情况下,如电子游戏,这是不可取的,因为未来的输入可能会受到玩家的行为的影响。RNN还有其他自回归模型[Fragkiadaki et al.2015;Taylor and Hinton 2009]更适合视频游戏和在线运动生成,因为它们只需要一帧未来的输入,但它们在生成长序列运动时往往会失败,因为预测中的错误会反馈给输入并积累。这样,当不同相位的帧错误混合在一起时,自回归模型往往会消失[Fragkidaki等人,2015年]。如果没有强大的标准化形式,例如混合输出和训练数据中最近的已知数据点[Lee et al.2010]-这一过程严重影响了执行时间和内存使用的可伸缩性,因此很难避免这种情况artifacts。

我们提出了一种新的神经网络结构,我们称之为相位功能神经网络(PFNN)。PFNN其工作原理是在每一帧产生一个回归网络的权重,作为一个相位函数——一个表示运动周期时间的变量。从帧的控制参数到字符的相应姿态,一旦生成,网络权值就被用来回归。PFNN该设计避免了数据从几个阶段的显式混合——而是构建了一个回归函数,与这个阶段相比,回归函数随着时间的推移顺利进化。与CNN该网络结构适用于在线和实时运动生成RNN不同的模型,我们发现它非常稳定,可以在复杂的环境中连续生成高质量的运动,并具有表达式的用户互动。PFNN快速在千兆字节的动作捕捉数据上进行训练,也只需要几毫秒的执行时间和几兆字节的内存。这种紧凑性也可以通过预先计算相位函数来换取运行速度,允许在内存和计算资源之间定制权衡。

动态地改变网络值作为相位函数,而不是像标准神经网络中那样保持静态,显著提高了回归的表达能力和紧凑的结构。这使得它能够从环境几何和人体运动数据耦合的大型高维数据中学习。一旦训练完成,系统可以在自然环境和城市环境(见图1和图9)中自动生成适当而有表现力的运动,以便角色在崎岖的地形上移动、跳跃和避开障碍物。在准备训练集时,我们还提供了一个将运动捕捉数据拟合到从视频游戏环境中提取的人工高度图的大型数据库中的过程。

综上所述,本文的贡献如下:

  • 我们称之为相位功能神经网络的新型实时运动合成框架(PFNN),它可以使用大量的运动数据来实现字符控制,包括与环境的交互和

  • 将运动数据拟合到从虚拟环境中提取的几何图形中PFNN准备训练数据的过程。

2 RELATED WORK

在本节中,我们首先回顾了生成运动的数据驱动方法。接下来,我们将回顾一些与环境相互作用的综合角色运动方法。最后,我们回顾了基于神经网络的方法,专注于向用户感兴趣的参数映射潜在变量。

数据驱动运动合成是吸引计算机动画和机器学习研究人员的课题。基于线性基础、核技术和神经网络的框架已成功应用于此目的。

主成分分析等基于线性基的技术(PCA),它被广泛用于降低运动数据的维数,并从较少的输入预测全身运动[Howe等人,1999年;Safonova等人,2004年]。由于全局PCA在表示低维潜在空间的各种动作中可能存在问题,因此使用局部PCA处理任何类型的运动[Chai and Hodgins 2005;Tautges et al.2011]。Chai和Hodgins[2005]将局部PCA用于合成具有稀疏标记集的全身运动。Tautges从稀疏惯性传感器中预测全身运动,等人[2011]提出了类似的局部结构。训练(即运动分割、分类和对齐)和运行(即最近邻搜索)时,需要大量的数据预处理和计算。

考虑到数据的非线性,提出了基于核的方法来克服线性方法的局限性。径向基函数(RBF)和高斯过程(GP)常用的混合不同类型运动的方法[Mukai 2011;Mukai和Kuriyama 2005;Park等人2002;Rose等人1998]。高斯过程潜变量模型(GPLVM)低维潜空间用于计算数据,以帮助解决逆运动学问题的冗余[Grochow et al.2004]或提高规划运动的效率[Levine et al.2012]。Wang等人[2008]提出了高斯过程动力学模型(GPDM),在潜在空间中学习动力学,并使用另一个模型GP将运动投影到整个空间。在存储和反转协方差矩阵时,基于核的方法会产生较高的内存费用,协方差矩阵分别按数据点数量的平方和立方顺序缩放。为了克服这个问题,提出局部限制插值样本数量GP方法[Rasmussen and Ghahramani 2002],但需要k?最近邻搜索(nearest neighbor search),与高维数据(如人体运动)一起使用时,内存使用量大,预计计算和运行成本高。

由于其高度的可扩展性和运行效率,神经网络用于数据驱动的运动合成吸引了计算机动画和机器学习领域的研究人员。Taylor等人[2009]建议使用条件有限Boltzmann机器(cRBM)预测运动期间身体的下一个姿势。Fragkidaki等人[2015]提出了一种编码器-递归-解码器(ERD)网络,网络将LSTM模型应用于 预测身体下一个姿势的潜在空间。这些方法可以归类为自回归模型,其中角色的姿势是基于角色在运动期间的先前姿势预测的。自回归模型适用于实时应用,如电脑游戏,因为它们会在每一帧中更新角色的姿势。cRBM和RNN与经典的线性模型相比,经典的线性模型[Xia等人2015]或基于内核的模型[Wang等人2008]更具可扩展性和运行效率。尽管有这些优点,但由于噪音和不适,运动逐渐脱离运动流形,最终收敛到平均姿势。Holden等人[2016]在时域应用CNN框架将低维用户信号映射到全身运动中。这是一个需要在合成运动前指定时间线的完全控制信号的离线框架。我们的框架是一种时间序列方法,可以在给定用户输入和角色之前状态的情况下预测角色的姿势。

虚拟环境中的自动角色控制器允许角色避开障碍物,适应地形,对计算机游戏等实时应用非常有用:这些方法可以分为基于优化和形状匹配的方法。

基于优化的方法[Lau和Kuffner 2005;Safonova和Hodgins 基于抽样方法的2007][Coros等人2008;Liu等人2010],最大后验概率(MAP)估计[Chai和Hodgins 2007;Min和Chai 2012],加强学习技术[Lee and Lee 2004;Lee et al.2010;Levine et al.2012;Lo and Zwicker 2008;Peng et al.2016年,根据角色的当前状态(包括姿势)及其与环境几何结构的关系,预测角色的动作。它们需要成本/价值函数来评估不同情况下的每一个行动。它们需要成本/价值函数来评估不同情况下的每一个行动。虽然这些方法可以产生真实的运动,但在某些情况下,计算成本与运动量成指数关系,因此不具有很强的可伸缩性。更重要的是,当使用运动数据作为表示时,有必要k?最近的邻居在样本中搜索[Clavet 2016;Lee et al.将运动拉到运动流形上。这可能是可伸缩性的限制因素,尤其是在高维空间。Levine等人[2012]通过GPLVM为了解决这个问题,他们需要对运动进行分类,并限制在每个类别中进行搜索。Peng等人[2016]深度强化学习应用于基于物理动画的控制空间,可以处理高维状态空间。这是一个非常有前途的研究方向,但该系统只有相对简单的2D在环境中进行测试。我们的目标是在具有复杂几何环境的完整三维运动学空间中控制角色,而以前基于学习的方法并不十分成功。

在给定环境中控制角色的另一种方法是分析环境,使姿势或运动适应新的几何。Lee等[2006]进行刚性形状匹配,以适应接触丰富的运动,如坐在椅子上或躺在不同的几何形状上。Grabner等人[2011]进行暴力搜索,以发现场景几何体中角色可以执行特定动作的位置。Gupta等人[2011]制作了一本书,以各种姿势占据人物,并将其融入由照片构建的虚拟曼哈顿世界。Kim等人[2014]提出利用物体的各种几何特征,将角色姿势与不同的几何体相匹配。Kang等人[2014]分析身体的开放体积和身体舒适度,以预测角色在每个姿势下的静态位置。Savva等人[2016]使用Microsoft Kinect捕捉人类与物体的交互,并生成可用于合成新场景的统计模型。这些方法只处理静态姿势,不处理高度动态的交互。为了制作动画,必须考虑运动的平滑度和动作的连接。Kapadia等人[2016]估计了动态运动期间身体与环境之间的接触,并利用它们将人体运动融入虚拟环境。他们的方法需要提前对几何体进行深入分析,这不允许在角色可能首次面对的新环境中进行实时交互。我们的技术基于几何体与运动的回归,因此可以克服以前方法的这些局限性。

在许多情况下,人们更喜欢将场景参数(如图像中的视点或照明条件)映射到潜在变量,以便用户在合成过程中对其进行控制。Kulkarni等人[2015]提出了一种将人脸图像的视点和照明条件映射到可变自动编码器的隐藏单元的技术。Memisavic[2013]提出了一种乘法网络,其中潜变量(视点)直接参数化神经网络的权重。当潜在参数对整个输出具有全局影响时,这种网络尤其有效。我们发现这种架构适用于移动,并将相位用作所有类型移动之间的通用参数,因此我们的系统采用了类似的概念。

3 SYSTEM OVERVIEW

PFNN的可视化图如图2所示:它是一个神经网络结构(用Φ表示),其中权值由相位p的周期函数计算,称为相位函数(用Θ表示)。网络的输入x包括角色的先前姿态和用户控制,而输出y包括阶段中的变化、角色的当前姿态以及稍后描述的一些附加参数。

我们的系统分为三个阶段:预处理阶段、训练阶段和运行时阶段。在预处理阶段,我们首先准备训练数据,并自动提取稍后由用户提供的控制参数(见第4节)。此过程包括使用单独的高度图数据库将地形数据拟合到捕获的运动数据(参见第4.2节)。在训练阶段,PFNN使用这些数据进行训练,从而产生给定控制参数的每一帧中角色的运动(PFNN的设置及其训练见第5节)。在运行时阶段,从用户的输入和环境中收集到PFNN的输入参数,并输入到系统中,以确定字符的运动(见第6节)。

4 DATA ACQUISITION & PROCESSING 数据采集与处理

在本节中,我们首先描述我们如何进行运动捕捉和提取用于训练系统的控制参数(见第4.1节)。然后,我们将描述如何将地形与运动捕捉数据相匹配(见第4.2节)。最后,我们总结了系统的参数化问题(见第4.3节)。

4.1运动捕捉和控制参数

一旦运动数据被捕获,控制参数,包括运动的相位、步态的语义标签、身体的轨迹和地形沿轨迹的高度信息,将被计算或手动标记。下面将描述这些过程。

我们从捕捉各种步态和面对方向的长序列运动开始。我们还将障碍物、坡道和平台放置在capture studio中,并捕捉进一步的运动——以各种速度和不同方式在障碍物上行走、慢跑和跑步。此外,我们还捕捉到了其他种类的运动,比如在不同高度和不同步幅下蹲下和跳跃。完成后,我们将以每秒60帧的速度捕获约1小时的原始运动捕获数据,这构成了约1.5 GB的数据。使用与CMU运动捕捉数据的BVH版本相同的铰接式身体模型,该模型具有30个旋转关节,并在臀部下方的地面上添加了额外的根变换。

接下来,必须在数据中标记相位,因为这将是PFNN的输入参数。这可以通过半自动程序执行。首先,通过计算脚跟和脚趾关节的速度大小,并观察这些速度何时低于某个阈值,可以自动标记足部接触时间[Lee等人,2002]。由于这种启发式方法偶尔会失败,因此会手动检查结果并手动更正。一旦获得这些接触时间,可以通过观察右脚与地面接触的帧并指定0的相位,观察左脚与地面接触的帧并指定π的相位来自动计算相位,观察下一次右脚接触发生的时间,并指定一个2π的相位。然后对中间帧进行插值。对于站立运动,一些最小循环持续时间(∼使用0.25s),允许相位连续循环。

我们还提供了以二进制向量表示的系统运动步态的语义标签。这样做有两个原因。首先,它们提供了一种消除歧义的方法,因为快走和慢跑通常具有相同的轨迹,其次,游戏设计师或用户经常希望在特定场景中观察特定运动(行走、慢跑、跳跃等)。这一过程是手动执行的,但可以通过确保在捕捉过程中演员不会频繁改变步态类型,而是只包含单一步态类型的长时间捕捉来大大简化。

通过将髋关节中心投影到地面上,提取角色的根变换。通过平均髋关节之间的矢量和肩关节之间的矢量,并取向上方向的叉积来计算朝向。随着时间的推移,该方向会变得平滑,以消除任何小的高频运动。

一旦提取了根变换的轨迹,并将地形拟合到运动中(参见第4.2节),将在轨迹下方的位置以及轨迹两侧垂直于面对方向和方向的位置计算地形高度∼距中心点25cm(见图5)。有关该过程的更多细节,请参见第4.3节。

最后,一旦这个过程完成,我们将创建所有捕获的镜像版本,以使数据量增加一倍。

4.2 Terrain Fitting

为了生成一个系统,使角色在运行时自动适应环境的几何结构,我们需要准备训练数据,其中包括角色在不同地形上的移动。由于在运动捕捉工作室中同时捕捉几何体和运动是困难的,因此我们提供了一个离线过程,该过程将从视频游戏或其他虚拟环境中收集的高度图数据库与单独捕捉的运动数据相匹配。一旦安装,这些地形允许我们使用与地形几何有关的参数作为控制系统的输入。

我们的高度地图数据库是从使用源引擎构建的几个场景中提取的。我们从上面追踪光线到这些场景中,以每英寸一个像素的分辨率以高度图的形式捕捉完整的几何信息。从这些高度图中,我们随机抽取了大约20000块3x3米区域的方向和位置。这些补片用于装配过程。

装配过程分两个阶段进行。首先,对于运动数据中的每个运动周期,我们通过蛮力搜索找到数据库中的10个最佳拟合面片——尝试拟合每个面片,并选择使给定误差函数最小化的面片。其次,我们使用一种简单的径向基函数(RBF)网格编辑技术来细化结果,编辑地形,使角色的脚在接触时准确地落在地面上。

现在让我们描述一下装配过程的细节。对于数据库中的每个运动周期,给定左/右脚跟和脚趾关节指数 J ∈ { l h   r h   l t   r t } J\in\{ lh\ rh\ lt\ rt \} J∈{ lh rh lt rt}我们首先计算每一帧i,它们的高度 f i l h , f i r h , f i l t , f i r t f_i^{lh},f_i^{rh},f_i^{lt},f_i^{rt} filh​,firh​,filt​,firt​, 和联系标签(contact labels) c i l h , c i r h , c i l t , c i r t c_i^{lh},c_i^{rh},c_i^{lt},c_i^{rt} cilh​,cirh​,cilt​,cirt​(一个二进制变量,指示是否认为接头与地板接触)。我们找到这些关节与地板接触的所有时间的平均位置,并将数据库中的每个面片置于该位置的中心。对于每个斑块,我们然后计算每个关节下的地形高度 h i l h , h i r h , h i l t , h i r t h_i^{lh},h_i^{rh},h_i^{lt},h_i^{rt} hilh​,hirh​,hilt​,hirt​. 由此得出的拟合误差如下: 在这里插入图片描述 当脚接触地面时, E d o w n Edown Edown确保地形的高度与脚的高度相匹配, E u p Eup Eup确保脚在不接触地面时始终高于地面(防止交叉), E o v e r Eover Eover仅在角色跳跃时激活(由变量 g i j u m p g_i^{jump} gijump​指示),确保地形高度在脚以下的距离不超过l(在我们的例子中,l设置为∼30厘米)。这确保了大跳跃适用于障碍物较大的地形,而小跳跃适用于障碍物较小的地形。 一旦我们计算了数据库中每个面片的拟合误差 E f i t Efit Efit,我们选择拟合误差最小的10个面片,并执行拟合过程的第二阶段。在这一阶段,我们编辑高度图,使脚在接触时接触地面。为此,我们只需使用Botch和Kobbelt[2005]工作的简化版本对高度图进行变形。我们使用线性核将2D RBF应用于地形拟合的残差。虽然我们使用这种方法,但任何其他网格编辑技术也应该是合适的,因为几乎所有情况下所需的编辑都非常小。

在运行单线程的Intel i7-6700 3.4GHz CPU上,整个运动数据库的总数据处理和拟合时间约为三小时。图4显示了该拟合过程的结果。

4.3 System Input/Output Parameters

在本节中,我们将介绍系统的输入/输出参数。对于每一帧i,我们的系统需要相位p来计算网络权重。一旦计算出这些系统,就需要神经网络输入席,包括用户控制参数、前一帧中字符的状态和环境参数。由此计算yi,其中包括当前帧中角色的状态、相位变化、根变换的移动、下一帧中轨迹的预测,以及用于IK后处理的脚关节的接触标签。

现在让我们来描述输入参数xi的细节。我们的参数化类似于运动匹配[Clavet 2016]中使用的参数化,由两部分组成。对于角色的状态,我们采用角色根变换的角色关节局部位置和速度。对于用户控件,我们查看一个以帧i为中心的局部窗口,并每10帧检查一次周围帧,在我们的例子中,每10帧产生t=12个采样的周围帧,覆盖过去1秒的运动和未来0.9秒的运动。从每个周围的采样帧中,我们提取了一些特征,包括第i帧处角色根变换的角色轨迹位置和轨迹方向,角色的步态表示为二进制向量,以及弹道下方以及距弹道左右25厘米的另外两个点的地形高度。有关此参数化的可视化演示,请参见图5。

单个帧 i i i的输入控制变量的全参数化由一个向量 x i = { t i p t i d t i h t i g j i − 1 p j i − 1 v } ∈ R n xi= \{ t_i^p t_i^d t_i^h t_i^g j_{i-1}^p j_{i-1}^v\} \in R^n xi={ tip​tid​tih​tig​ji−1p​ji−1v​}∈Rn组成, t i p ∈ R 2 t t_i^p\in R^{2t} tip​∈R2t是二维水平面上轨迹位置相对于帧 i i i的轨迹位置的下采样窗口, t i d ∈ R 2 t t_i^d\in R^{2t} tid​∈R2t是二维水平平面上相对于帧i的轨迹方向, t i h ∈ R 3 t t_i^h\in R^{3t} tih​∈R3t是三个左右/中心样本点相对于第一帧的轨迹高度, t i g ∈ R 5 t t_i^g\in R^{5t} tig​∈R5t是表示特征和其他信息的步态的轨迹语义变量(表示为一个5D二进制向量), j i p ∈ R 3 j j_i^p\in R^{3j} jip​∈R3j是前一框架的局部关节位置, j i v ∈ R 3 j j_i^v\in R^{3j} jiv​∈R3j是前一帧的局部关节速度,其中,j是关节的数量(在我们的例子中是31)。在这项工作中,当角色处于以下情况下时,附加的语义变量 t i g t_i^g tig​的各个组成部分都是活跃的:1.站,2.行走,3.慢跑,4.跳跃,5.蹲伏(也用于表示天花板高度)。

一帧 i i i的输出变量的完整参数化由一个向量 y i = { t i + 1 p t i + 1 d j i p j i v j i a r i x r i a p i c i } ∈ R m yi=\{ t_{i+1}^p t_{i+1}^d j_i^p j_i^vj_i^ar_i^xr_i^ap_ic_i\} \in R^m yi={ ti+1p​ti+1d​jip​jiv​j

标签: 9830卡特传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台