CN116993866A - 生成运动序列数据的方法及装置、训练方法、电子设备 - Google Patents
生成运动序列数据的方法及装置、训练方法、电子设备 Download PDFInfo
- Publication number
- CN116993866A CN116993866A CN202211170104.8A CN202211170104A CN116993866A CN 116993866 A CN116993866 A CN 116993866A CN 202211170104 A CN202211170104 A CN 202211170104A CN 116993866 A CN116993866 A CN 116993866A
- Authority
- CN
- China
- Prior art keywords
- motion
- pose
- information
- frame
- action
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 416
- 238000000034 method Methods 0.000 title claims abstract description 95
- 238000012549 training Methods 0.000 title claims abstract description 90
- 238000003860 storage Methods 0.000 claims abstract description 17
- 230000009471 action Effects 0.000 claims description 213
- 239000013598 vector Substances 0.000 claims description 118
- 230000015654 memory Effects 0.000 claims description 24
- 210000002569 neuron Anatomy 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 15
- 238000013519 translation Methods 0.000 claims description 3
- 238000013528 artificial neural network Methods 0.000 abstract description 4
- 238000007499 fusion processing Methods 0.000 abstract description 4
- 230000000875 corresponding effect Effects 0.000 description 86
- 238000010586 diagram Methods 0.000 description 27
- 238000013473 artificial intelligence Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 17
- 238000009826 distribution Methods 0.000 description 14
- 230000015572 biosynthetic process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 239000010813 municipal solid waste Substances 0.000 description 10
- 238000003786 synthesis reaction Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000005070 sampling Methods 0.000 description 7
- 230000002441 reversible effect Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000008485 antagonism Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
Abstract
公开了一种生成运动序列数据的方法、生成运动序列数据的装置、训练方法、电子设备和计算机可读存储介质。本公开实施例利用基于转换器的神经网络,将动作标签信息、动作上下文信息、动作时长信息、运动轨迹信息等多种运动信息进行了融合处理,可控制地真实、多样化且符合用户要求的可变长度运动序列数据。
Description
技术领域
本公开涉及人工智能服务领域,更具体地涉及一种生成运动序列数据的方法及装置、训练方法、电子设备和计算机可读存储介质。
背景技术
目前正在研究运动捕捉、运动信息处理、运动建模和运动合成相关的技术。学术界和工业界已经提出了一些先进的运动捕捉设备和运动处理算法,以提高运动捕捉和运动信息处理的效率。然而,当前的运动合成技术和运动建模技术仍不能满足业界的要求。当前的运动合成技术和运动建模技术不仅需要复杂的输入数据,甚至还需要复杂的算法和人工绘制才能合成逼真的运动动画。
因此,仍需要对运动合成技术和运动建模技术进行进一步改进。
发明内容
本公开实施例提供了一种生成运动序列数据的方法及装置、训练方法、电子设备和计算机可读存储介质。
本公开实施例提供了一种生成运动序列数据的方法,包括:基于输入数据,获取动作级别的运动信息和帧级别的运动信息,其中,所述动作级别的运动信息用于描述虚拟实体执行的至少一个动作,所述帧级别的运动信息指示与所述虚拟实体执行所述至少一个动作相关联的至少一个帧的信息;基于虚拟实体的初始位姿信息和所述动作级别的运动信息,生成动作级别的编码特征;基于所述帧级别的运动信息和所述动作级别的编码特征,生成帧级别的编码特征,以及获取所述虚拟实体在前一帧的位姿信息,基于所述前一帧的位姿信息和所述帧级别的编码特征,生成所述运动序列数据,所述运动序列数据包括时序排列的多个帧的数据,每个帧的数据指示所述虚拟实体在该帧对应的位姿信息。
本公开实施例提供了一种生成运动序列数据的装置,包括:条件编码器,被配置为:基于虚拟实体的初始位姿信息和动作级别的运动信息,生成动作级别的编码特征,其中,所述动作级别的运动信息用于描述虚拟实体执行的至少一个动作;时序展开模块,被配置为:基于帧级别的运动信息和所述动作级别的编码特征,生成帧级别的编码特征,其中,所述帧级别的运动信息指示与所述虚拟实体执行所述至少一个动作相关联的至少一个帧的信息;运动解码器,被配置为:获取所述虚拟实体在前一帧的位姿信息,基于所述前一帧的位姿信息和所述帧级别的编码特征,生成所述运动序列数据,所述运动序列数据包括时序排列的多个帧的数据,每个帧的数据指示所述虚拟实体在该帧对应的位姿信息。
本公开实施例提供了一种训练方法,其用于对上述装置进行训练,所述训练方法包括:获取训练样本,基于所述训练样本,利用训练中的所述装置预测所述训练样本中各个帧对应的位姿真值和第一位姿预测值;基于所述位姿真值和所述第一位姿预测值,计算第一位姿重建损失;基于所述第一位姿重建损失对应的值,调整所述的装置中的神经元的参数,以使得第一位姿重建损失收敛。
本公开实施例提供了一种电子设备,包括:处理器;以及存储器,其中,所述存储器中存储有计算机可执行程序,当由所述处理器执行所述计算机可执行程序时,执行上述的方法。
本公开实施例提供了一种将复杂文本处理模型简化为轻量文本处理模型的设备,包括:处理器;存储器,存储器存储有计算机指令,该计算机指令被处理器执行时实现上述方法。
本公开实施例提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现上述方法。
根据本公开的另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个方面或者上述各个方面的各种可选实现方式中提供的方法。
本公开实施例利用基于转换器的神经网络,将动作标签信息、动作上下文信息、动作时长信息、运动轨迹信息等多种运动信息进行了融合处理,可控制地真实、多样化且符合用户要求的可变长度运动序列数据,相比于之前的方法,本公开实施例有以下几项优势。
第一,本公开实施例的输入信息简单可调,对于用户友好。例如,本公开实施例可以以动作级别的运动信息(例如,动作标签信息和动作上下文信息等)作为输入信息,并得到符合这些动作信息要求的动作序列。
第二,本公开实施例还可以将上述的动作信息与帧级别的运动信息(例如,运动时长信息和运动轨迹信息等)一同作为输入信息,以实现用户对待合成的动作序列的逐帧控制。
第三,本公开实施例还可以以自回归形式递归地生成运动序列,减少了输入数据的信息量。
第四,本公开实施例在模型训练时采用调度采样策略逐渐增加预测数据与真实数据之间的比例,缓解了训练集的数据分布与推理时的输入数据的数据分布不一致的问题,从而提高了模型的容错能力。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的描述中所需要使用的附图作简单的介绍。下面描述中的附图仅仅是本公开的示例性实施例。
图1示出了根据本公开实施例的应用场景的示意图。
图2是示出根据本公开实施例的用于生成运动序列数据的模型进行推理和训练的场景的示例示意图。
图3是示出根据本公开实施例的生成运动序列数据的方法的流程图。
图4是示出根据本公开实施例的输入数据和基于所述运动序列数据的动画的示意图。
图5是示出根据本公开实施例的生成运动序列数据的装置500的示意图。
图6是示出根据本公开实施例的生成运动序列数据的装置500的又一示意图。
图7是示出根据本公开实施例的用于生成运动序列数据的模型进行训练的示例示意图。
图8是示出用于训练根据本公开实施例的用于生成运动序列数据的模型的样本的示意图。
图9示出了根据本公开的实施例与传统方案的性能对比图。
图10是示出根据本公开实施例的生成多样化的运动序列数据的示意图。
图11示出了根据本公开实施例的电子设备的示意图。
图12示出了根据本公开实施例的计算设备的架构图。
图13示出了根据本公开实施例的计算机可读存储介质的示意图。
具体实施方式
为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
在本说明书和附图中,具有基本上相同或相似步骤和元素用相同或相似的附图标记来表示,且对这些步骤和元素的重复描述将被省略。同时,在本公开的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性或排序。
为便于描述本公开,以下介绍与本公开有关的概念。
本公开可利用用于生成运动序列数据的模型来实现所述生成运动序列数据的方法。下文中提及的条件编码器、时序展开模块、动作解码器、转换器编码器、转换器解码器、全连接层、位置编码器、位姿编码器、位姿解码器等等均为所述用于生成运动序列数据的模型的组成模块。
本公开的用于生成运动序列数据的模型可以是基于人工智能(Artificialintelligence,AI)的。人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。例如,对于本公开的用于生成运动序列数据的模型而言,其能够以类似于人类阅读并理解多种不同运动指令的方式,基于动作指令生成动画相关的数据。人工智能通过研究各种智能机器的设计原理与实现方法,使本公开的用于生成运动序列数据的模型具有理解多种运动指令并生成合成这些动作指令相关的动画的功能。
人工智能技术涉及领域广泛,既有硬件层面的技术也有软件层面的技术。其中,人工智能软件技术主要包括计算机视觉技术、自然语言处理和机器学习/深度学习等方向。
可选地,下文中的可用于本公开实施例的用于生成运动序列数据的模型都可以是人工智能模型,尤其是基于人工智能的神经网络模型。通常,基于人工智能的神经网络模型被实现为无环图,其中神经元布置在不同的层中。通常,神经网络模型包括输入层和输出层,输入层和输出层通过至少一个隐藏层分开。隐藏层将由输入层接收到的输入变换为对在输出层中生成输出有用的表示。网络节点经由边全连接至相邻层中的节点,并且每个层内的节点之间不存在边。在神经网络的输入层的节点处接收的数据经由隐藏层、激活层、池化层、卷积层等中的任意一项被传播至输出层的节点。神经网络模型的输入输出可以采用各种形式,本公开对此不作限制。
本公开实施例提供的方案涉及人工智能和机器学习等技术,具体通过如下实施例进行说明。
首先参照图1描述根据本公开实施例的方法以及相应的装置等的应用场景。图1示出了根据本公开实施例的应用场景100的示意图,其中示意性地示出了服务器110和多个终端120。
本公开实施例的用于生成运动序列数据的模型具体可以集成在各种电子设备中,例如,图1中的服务器110和多个终端120中的任意电子设备。比如,图对比学习模型可以集成在终端120中。终端120可以是手机、平板电脑、笔记本电脑、台式计算机、个人计算机(PC,Personal Computer)、智能音箱或智能手表等,但并不局限于此。又比如,图对比学习模型还可以集成在服务器110。服务器110可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,ContentDelivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本公开在此不做限制。
可以理解的是,应用本公开实施例的用于生成运动序列数据的模型来进行推理的装置既可以是终端,也可以是服务器,还可以是由终端和服务器组成的系统。本公开实施例的处理图数据的方法可以是在终端上执行的,也可以是在服务器上执行的,还可以是由终端和服务器共同执行的。
可以理解的是,应用本公开实施例的用于生成运动序列数据的模型来进行推理的装置既可以是终端,也可以是服务器,还可以是由终端和服务器组成的系统。应用本公开实施例的生成运动序列数据的方法可以是在终端上执行的,也可以是在服务器上执行的,还可以是由终端和服务器共同执行的。
本公开实施例提供的用于生成运动序列数据的模型还可以涉及云技术领域中的人工智能云服务。其中,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
其中,人工智能云服务,一般也被称作是AIaaS(AI as a Service,中文为“AI即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个AI主题商城:所有的开发者都可以通过应用程序接口(API,Application ProgrammingInterface)的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专属的云人工智能服务。
图2是示出根据本公开实施例的用于生成运动序列数据的模型进行推理和训练的场景200的示例示意图。
在训练阶段,服务器可以基于训练样本集对用于生成运动序列数据的模型进行训练。训练完成后,服务器可以将完成训练的用于生成运动序列数据的模型部署到一个或多个服务器(或云服务上),以提供运动合成人工智能服务。
在推理阶段,假设用户终端上已经安装有动作合成有关的应用(以下称为运动合成应用)。用户终端可以向该运动合成应用指示需要转换为运动序列数据的用户输入数据。接着用户终端可以通过网络向该应用对应的服务器传输运动合成请求,以请求基于用户输入数据生成运动序列数据。服务器接收到运动合成请求后,利用完成训练的用于生成运动序列数据的模型对该用户输入数据进行处理以获得运动序列数据,然后向用户终端反馈运动合成响应。用户终端可以接收运动合成响应,该运动合成响应中包括服务器生成的运动序列数据。之后,用户终端可以播放基于该运动序列数据的动画。
值得注意的是,图2中所示的训练样本集也可以是实时更新的。例如,用户可以对该运动序列数据进行打分。例如,如果用户认为基于该运动序列数据的动画足够逼真并且与用户输入数据的对应性较高,则用户可以对该运动序列数据给出较高的评分,而服务器可以将该用户输入数据-运动序列数据对作为用于实时训练用于生成运动序列数据的模型的正样本。如果用户对该动画给出较低的评分,则服务器可以将该用户输入数据-运动序列数据对作为用于实时训练用于生成运动序列数据的模型的负样本。
图2中所示的训练样本集也可以是提前设置的。例如,服务器可以抓取当前互联网环境中已经存在的运动动画,然后对这些运动动画进行标注,将经标注后的运动动画作为训练样本集来进行训练。例如,参照图2,服务器可以从数据库中获取文本,然后用于生成运动序列数据的模型的训练样本集。作为一个具体实施方式,可以使用AMASS数据集和BABEL数据集来作为训练样本集。作为一个实例,可以选取AMASS数据集中的运动序列和BABEL数据集中的对应动作标签。其中,从BABEL数据集中200多个长尾分布的标签中手工选取了多个个高频动作标签;将AMASS数据集降采样到30fps,每个动作序列持续1~3秒,为了达到较好的训练效果,每个运动标签的频率介于2^6-2^11。当然本公开并不以此为限。
当前的运动合成技术和运动建模技术不仅需要复杂的输入数据,甚至还需要复杂的算法和人工绘制才能合成逼真的运动动画。因此,仍需要对运动合成技术和运动建模技术进行进一步改进。以下简单介绍几种由动作标签生成运动序列的方法。
学术界和工业界已经提出了基于归一化流的方案来实现由动作标签生成运动序列。基于归一化流的方案通过从一个简单的分布开始,经过一系列可逆可微分的非线性变换映射得到高度复杂的分布,以适应数据中下一个动作标签对应的姿势的分布。然而该方案往往需要大量的数据,且参数效率低、模型复杂、训练速度慢。
此外,学术界和工业界还提出了基于生成对抗网络的方案。在该基于生成对抗网络的方案中,输入数据可以是描述动作的短文本、复杂句子、单词序列。然后,该方案利用RNN生成器、CNN鉴别器、RNN文本编码器或RNN动作解码器,通过生成一系列关节位置和角度分层地生成动画。然而该方案不可避免地存在模式崩溃的问题,在训练过程中难以达到纳什均衡,导致生成的动画的多样性较低。
此外,学术界和工业界还提出了基于变分自编码器的方案。在该方案中,通过训练变分自动编码器来学习人类动作的潜在表示,并通过一系列位置编码查询特定的持续时间,解码器以非自回归方式一次性生成特定持续时间的运动序列。然而该方案引入了决定性偏置,导致了生成的运动动画过于模糊。该方案也不能充分利用上下文信息和其他帧级别的运动信息,且输出动作序列的长度固定,模型可控性较差。由此,该方案将导致帧之间的动作抖动、不自然。
本公开基于此,提供了一种生成运动序列数据的方法,包括:基于输入数据,获取动作级别的运动信息和帧级别的运动信息,其中,所述动作级别的运动信息用于描述虚拟实体执行的至少一个动作,所述帧级别的运动信息指示与所述虚拟实体执行所述至少一个动作相关联的至少一个帧的信息;基于虚拟实体的初始位姿信息和所述动作级别的运动信息,生成动作级别的编码特征;基于所述帧级别的运动信息和所述动作级别的编码特征,生成帧级别的编码特征,以及获取所述虚拟实体在前一帧的位姿信息,基于所述前一帧的位姿信息和所述帧级别的编码特征,生成所述运动序列数据,所述运动序列数据包括时序排列的多个帧的数据,每个帧的数据指示所述虚拟实体在该帧对应的位姿信息。
可选地,针对生成动画的过程中的可控性较差的问题,本公开的全部或部分实施例可选地利用条件编码器对动作级别的运动信息(例如,动作标签信息和上下文信息)进行编码以生成动作级别的编码特征,其中,该动作级别的编码特征融合有待生成的动作序列数据的过去信息、现在信息和未来信息。本公开的全部或部分实施例还可选地利用时序展开模块将帧级别的运动信息(例如轨迹控制信息)和上述动作级别的编码特征展开(unrolling),从而将动作级别的运动信息和帧级别的运动信息进行有机融合,增加了生成的动作序列数据的可控性。本公开的全部或部分实施例可选地利用了基于自回归生成算法的解码器,以充分利用前序生成帧的信息,使得帧间动作过渡更自然而不太容易产生姿态的剧烈抖动。
可选地,针对生成动作序列数据的多样性差的问题,本公开的全部或部分实施例可选地利用转换器(transformer)来缓解所生成的运动序列回归到平均姿势和所生成的运动序列的漂移的问题。本公开的全部或部分实施例可选地包括重参数化过程,其进一步利用了KL损失的权重项来平衡所生成的运动序列的多样性与真实性。
可选地,针对训练和生成时输入数据分布不一致带来的域偏差问题,本公开的全部或部分实施例可选地利用了基于自回归算法的解码器来调度采样输入姿态序列,使得输出运动数据与真实运动数据逐渐接近,可以有效缓解过拟合问题。甚至在理想情况下,本公开的全部或部分实施例可以生成任意长的运动序列。
以下结合图3至图13对根据本公开的全部或部分实施例进行更详细介绍。
图3是示出根据本公开实施例的生成运动序列数据的方法30的流程图。图4是示出根据本公开实施例的输入数据和基于所述运动序列数据的动画的示意图。
根据本公开实施例的生成运动序列数据的方法30可以应用于任何的电子设备中。可以理解,电子设备可以是不同种类的硬件设备,例如个人数字助理(PDA)、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机、服务器等等。例如,该电子设备可以是图1中的服务器和用户终端等等。以下,本公开以服务器为例进行说明,本领域技术人员应当理解本公开并不以此为限。
例如,根据本公开实施例的方法30包括以下操作S301至操作S304。首先,在操作S301中,基于输入数据,获取动作级别的运动信息和帧级别的运动信息。
本公开实施例中的输入数据是指由可由用户调整或输入的、与待生成的运动序列有关的任意数据。作为一个示例,本公开实施例的方法30中的输入数据可以如图4所示。输入数据包括但不限于动作级别的运动信息和帧级别的运动信息。其中,所述动作级别的运动信息用于描述虚拟实体执行的至少一个动作,所述帧级别的运动信息指示与所述虚拟实体执行所述至少一个动作相关联的至少一个帧的信息。其中,虚拟实体是指在虚拟环境中的可活动的虚拟对象。虚拟实体可以是虚拟人物、虚拟动物、动漫人物中的至少一种。在一些实施例中,当虚拟环境为三维虚拟环境时,虚拟角色可以是三维虚拟模型,每个虚拟角色在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。在另一些实施例中,虚拟角色是基于三维人体骨骼技术构建的三维角色,该虚拟实体通过穿戴不同的皮肤来实现不同的外在形象。在一些实现方式中,虚拟实体也可以采用2.5维或2维模型来实现,本公开实施例对此不加以限定。除了动作级别的运动信息和帧级别的运动信息以外,输入数据还可以包括虚拟实体相关的各种新型,虚拟实体的形状、体积、初始位姿信息、终末位姿信息等等。本公开并不以此为限。
如图4所示,动作级别的运动信息包括但不限于动作标签信息和/或上下文信息。本领域技术人员应当理解本公开并不以此为限。
例如,所述动作标签信息指示虚拟实体执行的至少一个动作对应的标签,其可以使用任意的短文本、字符串、动作标识符等等来标识。在图4中以中文的字符串标识来标识动作标签信息,本领域技术人员应当理解本公开并不以此为限。在图4的示例中,用户通过输入一连串的中文字符串作为动作标签信息来指示用户期望该虚拟实体执行的核心动作为坐着、起立、走、踢、跑。此外,用户还可以通过输入短文本作为动作标签信息来指示用户期望该虚拟实体执行的核心动作。例如,用户可以直接输入“虚拟对象由从板凳上到站起,走到垃圾桶前,踢了一下垃圾桶,而后快速地跑走”。这样的短文本中可以涵盖更多的信息量,并且包括与其他的虚拟对象的交互信息。本领域技术人员应当理解本公开并不以此为限。
例如,所述上下文信息指示虚拟实体执行的动作之间的顺序,其可以使用任意的短文本、字符串、动作标识符等等来标识。在图4的示例中,上下文信息可以是字符串“坐着、起立、走、踢、跑”所表征的各个动作的前后顺序信息。上下文信息还可以是描述虚拟实体待执行的前序动作对后序动作的影响的信息。例如,如果用户输入“虚拟对象由从板凳上到站起,走到垃圾桶前,踢了一下垃圾桶,而后快速地跑走”,那么前序动作“走到垃圾桶前”就对后序动作“踢了一下垃圾桶”产生了影响。前序动作中的虚拟角色的位姿以及垃圾桶的位姿都可能对后序动作产生一定的限制,以避免穿模。在本公开的一些具体实施例中,示例上下文信息包括当前动作序列的前序的动作序列以及未来的动作标签。当然,本领域技术人员应当理解本公开并不以此为限。
如图4所示,帧级别的运动信息包括但不限于虚拟对象对应的轨迹信息、帧的总量(例如,动画时长)、和/或和所述至少一个动作对应的帧的数量。虚拟对象对应的轨迹信息包括一个或多个帧对应的虚拟实体的位姿信息。本领域技术人员应当理解本公开并不以此为限。
例如,虚拟对象对应的轨迹信息可以包括但不限于虚拟对象在至少一个帧的时间戳对应的关节位置、虚拟对象的网格顶点坐标、或者虚拟对象的各个关节的平移和旋转等等。在图4的示例中,虚拟实体的位姿信息被标识为虚拟实体的质心在第5帧和第7帧的二维坐标。正如图4所示,用户无需限定所有帧对应的虚拟实体的位姿信息,仅需限定部分关键帧的位姿信息即可。而帧的总量为200帧,其指示虚拟实体完成上述的“坐着、起立、走、踢、跑”所表征的各个动作的总时长。此外,用户还可以输入“坐着、起立、走、踢、跑”中的每个动作的时长。当然,本领域技术人员应当理解本公开并不以此为限。
接着,在操作S302中,基于虚拟实体的初始位姿信息和所述动作级别的运动信息,生成动作级别的编码特征。
例如,所述虚拟实体的初始位姿信息指示虚拟实体在二维或三维空间中的初始位置和初始姿态,也即虚拟实体在第一帧的时间戳对应的二维或三维空间中的位置和姿态。
例如,所述动作级别的编码特征是将所述虚拟实体的初始位姿信息和所述动作级别的运动信息进行编码以得到的特征。可选地,所述动作级别的编码特征是可以是数值向量的形式,该数值向量中的多个元素融合有各种动作级别的运动信息。在一个示例中,所述动作级别的编码特征中的特征数量等于所述至少一个动作的动作数量。
又例如,在动作级别的运动信息包括有动作标签信息和上下文信息两种的情况下,动作级别的编码特征对应于虚拟实体待生成的至少一个动作的过去信息、当前信息和未来信息。
在一个示例中,可以以自回归的方式来生成所述动作级别的编码特征。自回归的方式用当前动作之前的各个动作(以参数Action1至Actioni-1来表示)来预测当前动作(例如以参数Actioni表示),并假设它们为线性关系。也即,在所述动作级别的编码特征包括所述至少一个动作中的每个动作对应的动作向量的情况下,生成所述至少一个动作中的第一个动作对应的动作向量的过程包括:基于所述虚拟实体的初始位姿信息、第一个动作对应的标签以及第二个动作对应的标签,生成所述第一个动作对应的动作向量。而对于所述至少一个动作中除第一个动作以外的其他动作,生成所述其他动作中的每个动作对应的动作向量的过程包括:至少基于所述动作的前序动作的动作向量、所述动作的动作标签以及所述动作的后序动作的动作标签,生成所述动作的动作向量。当然本公开并不以此为限。
该过程可以简要描述为,通过所述虚拟实体的初始位姿信息(例如,第一帧的位姿信息,以P1表示)、第一个动作的标签信息(例如,以Tag1表示)和第二个动作的标签信息(例如,以Tag2表示),可以编码得到第一个动作的动作向量(例如,以A1表示)。接着,可以通过第一个动作的动作向量A1、第二个动作至第三个动作的标签信息(例如,以Tag2和Tag3表示)编码得到第二个动作的动作向量(例如,以A2表示)。然后,可以通过第一个动作和第二个动作的动作向量(例如,以A1至A2表示)、第三个动作至第四个动作的标签信息编码(例如,以Tag3和Tag4表示)得到第三个动作的动作向量(例如,以A3表示),并以此类推,直至得到最后一个动作的动作向量。所有动作的动作向量按照时序进行拼接即可得到所述动作级别的编码特征(例如,以Z表示,其包括A1至AN,N为最后一个动作的序号)。
可以以各种方式来生成所述动作级别的编码特征。作为一个示例,可以使用之后参考图5和图6详细描述的条件编码器来生成所述动作级别的编码特征。本公开在此不再赘述。当然,本领域技术人员应当理解本公开并不以此为限。
接着,在操作S303中,基于所述帧级别的运动信息和所述动作级别的编码特征,生成帧级别的编码特征。
例如,所述帧级别的编码特征是将所述帧级别的运动信息和所述动作级别的编码特征进行编码以得到的特征。可选地,所述帧级别的编码特征也可以是数值向量的形式,该数值向量中的多个元素融合有各种动作级别的运动信息以及各种帧级别的运动信息。帧级别的编码特征将动作级别的编码特征与帧级运动信息(如轨迹信息)等信息结合,增加了生成动作的可控性。在一个示例中,所述帧级别的编码特征中的特征数量等于帧的总量。
可选地,所述基于所述帧级别的运动信息和所述动作级别的编码特征,生成帧级别的编码特征包括:将所述动作级别的编码特征展开成帧级别的动作序列向量,以及将展开后的帧级别的动作序列向量与轨迹信息对应的向量进行拼接,以得到帧级别的编码特征。
可以以各种方式来生成所述帧级别的编码特征。作为一个示例,可以使用之后参考图5和图6详细描述的时间展开模块来生成所述帧级别的编码特征。本公开在此不再赘述。当然,本领域技术人员应当理解本公开并不以此为限。
在操作S304中,获取所述虚拟实体在前一帧的位姿信息,基于所述前一帧的位姿信息和所述帧级别的编码特征,生成所述运动序列数据。
例如,所述运动序列数据包括时序排列的多个帧的数据,每个帧的数据指示所述虚拟实体在该帧对应的位姿信息。作为一个示例,每个帧的数据包括虚拟实体的蒙皮多人线性模型(Skinned Multi-Person Linear Model,SMPL)在该帧对应的位姿参数,其包括运动树中的23个关节旋转和1个全局旋转。第t帧的位姿参数Pt表示为连续6D旋转表示和根关节平移表示/>的组合,整个运动序列数据表示为P1,…,PT。给定虚拟实体的形状参数和位姿参数Pt,可以通过SMPL模型获得虚拟实体的网格顶点和关节坐标,该信息可以方便建模与环境的交互。
在一个示例中,可以以自回归的方式来生成所述运动序列数据。该过程可以简要描述为,通过所述虚拟实体在前一帧的位姿信息(例如,第零帧的位姿信息)和所述帧级别的编码特征,可以解码得到第一帧的位姿信息。接着,可以通过第一帧的位姿信息和所述帧级别的编码特征解码得到第二帧的位姿信息,并以此类推。例如,可以使用参考图5和图6详细描述的运动解码器来生成所述运动序列数据。本公开在此不再赘述。当然,本领域技术人员应当理解本公开并不以此为限。
可选地,根据本公开实施例的方法30还可以包括操作S305。可选地,在操作S305中,基于所述运动序列数据,播放所述虚拟实体执行的至少一个动作的动画。
例如,根据所述运动序列数据可以生成所述虚拟实体执行的至少一个动作的动画。由于所述运动序列数据包括时序排列的多个帧的数据且每个帧的数据指示所述虚拟实体在该帧对应的位姿信息,因此可以将每个帧的数据进行解码以得到每个帧对应的帧画面。帧画面是指影像动画中最小单位的单幅影像画面。其中,一帧的动画帧就是一副静止的画面,连续的帧就形成动画,如电视图像等。每一帧都是静止的图像,快速连续地显示多个帧便形成了运动的假象。具体地,在获取到所述虚拟实体的形状参数的情况下,可以基于所述虚拟实体的形状参数以及所述每个帧的数据中的所述虚拟实体的蒙皮多人线性模型在该帧对应的位姿参数,生成所述虚拟实体执行的至少一个动作的动画,然后播放所述虚拟实体执行的至少一个动作的动画
如图4所示,用户终端可以基于所述运动序列数据,播放所述虚拟实体执行的至少一个动作的动画。所述动画的时长与上述定义的时长一致,也即示例性包括200个帧画面。具体地,这200个帧画面展示了虚拟实体从板凳上到站起,走到垃圾桶前,踢了一下垃圾桶,而后快速地跑走的整个过程。虚拟实体这些动作连续自然,且能够很自然地与板凳和垃圾桶的三维模型进行交互。可见,方法30能够很容易的将连续生成的几个动作平滑自然的拼接起来,生成虚拟角色动画的控制和交互。
由此,根据本公开实施例的方法30将动作标签信息、动作上下文信息、动作时长信息、运动轨迹信息等多种运动信息进行了融合处理,可控制地真实、多样化且符合用户要求的可变长度运动序列数据。更具体地,针对生成动画的过程中的可控性较差的问题,本公开的全部或部分实施例可选地利用条件编码器对动作级别的运动信息(例如,动作标签信息和上下文信息)进行编码以生成动作级别的编码特征,其中,该动作级别的编码特征融合有待生成的动作序列数据的过去信息、现在信息和未来信息。本公开的全部或部分实施例还可选地利用时序展开模块将帧级别的运动信息(例如轨迹控制信息)和上述动作级别的编码特征展开(unrolling),从而将动作级别的运动信息和帧级别的运动信息进行有机融合,增加了生成的动作序列数据的可控性。本公开的全部或部分实施例可选地利用了基于自回归生成算法的解码器,以充分利用前序生成帧的信息,使得帧间动作过渡更自然而不太容易产生姿态的剧烈抖动。
图5是示出根据本公开实施例的生成运动序列数据的装置500的示意图。图6是示出根据本公开实施例的生成运动序列数据的装置500的又一示意图。参考图5和图6描述的装置500可以被配置为执行以上详述的方法30。
如图5和图6所示,装置500可选地包括条件编码器、时序展开模块和运动解码器。其中,条件编码器,被配置为:基于虚拟实体的初始位姿信息和动作级别的运动信息,生成动作级别的编码特征,其中,所述动作级别的运动信息用于描述虚拟实体执行的至少一个动作。时序展开模块,被配置为:基于所述帧级别的运动信息和所述动作级别的编码特征,生成帧级别的编码特征,其中,所述帧级别的运动信息指示与所述虚拟实体执行所述至少一个动作相关联的至少一个帧的信息。运动解码器,被配置为:获取所述虚拟实体在前一帧的位姿信息,基于所述前一帧的位姿信息和所述帧级别的编码特征,生成所述运动序列数据,所述运动序列数据包括时序排列的多个帧的数据,每个帧的数据指示所述虚拟实体在该帧对应的位姿信息。装置500在本文中又可以称为用于生成运动序列数据的模型。此外,装置500还可以包括更多或更少的模块,本公开并不以此为限。
例如,条件编码器可以用于执行上述的操作S302。如上所述,条件编码器的输入包括虚拟实体的初始位姿信息和所述动作级别的运动信息。可选地,动作级别的运动信息包括动作标签信息和上下文信息两者。条件编码器的输出包括动作级别的编码特征。
在图5中,示例性地示出了以自回归的方式生成动作编码信息的条件编码器的输入和输出示例。此时,该条件编码器正在生成第i个动作标签(以下又称为当前动作标签)对应的编码特征。其中,可选地,动作标签信息包括当前动作标签Tagcurr,上下文信息包括下一动作标签Tagnext,初始位姿信息为Pini。
之前已经简要介绍了以自回归的形式来生成所述动作级别的编码特征。接下来参考图6来说明一个具体实施的方式。
如图6所示,示例的条件编码器包括一个位姿编码器、两个标签计算器(当前标签计算器和下一标签计算器)、一个转换器编码器、一个均值计算器(可选)、一个方差计算器(可选)。当然本公开并不限于此。在一个具体的示例中,位姿编码器可以被配置为:基于虚拟实体的初始位姿信息,生成初始位姿向量;当前标签计算器可以被配置为:基于所述动作标签信息中的当前动作标签,生成当前动作表示;下一标签计算器可以被配置为:基于所述上下文信息中的下一动作标签,生成下一动作表示;转换器编码器可以被配置为:基于所述初始位姿向量、所述当前动作表示和所述下一动作表示,生成所述动作级别的编码特征。可选地,均值计算器可以被配置为:基于第一个动作标签对应的编码特征,计算运动潜在空间的均值;方差计算器可以被配置为:基于第一个动作标签对应的编码特征,计算运动潜在空间的方差。当然,本公开并不以此为限。
假设当前的动作标签为Tagcurr,下一动作标签为Tagnext,初始位姿信息为Pini。可以首先将当前动作标签和下一动作标签转换为独热(one-hot)形式的向量。例如,假设数据库中一共存在N个动作标签,每个动作标签对应的独热形式的向量可以是[0…0,1,0…0],独热形式的向量的长度为标签数量数,对应动作标签位置处为1,其余位置均为0。例如,第1个动作标签对应的独热形式的向量为[1,0,0,…0]。
接着可以将当前动作标签和下一动作标签对应的独热形式的向量分别通过两个标签计算器嵌入到空间(也即转换为一个一维的、特征通道数为C的实数向量),以得到当前动作表示和下一动作表示。这两个标签计算器可以是一个全连接层,二者的权重可以相同也可以不同。全连接层是指输入层中的各个节点与全连接层的各个节点均连接。全连接层的各个节点也与输出层的各个节点相连接。本公开对此不进行限定。
初始位姿信息为Pini则可以通过位姿编码器(例如具有另一个权重的全连接层)被嵌入空间(也即转换为T个一维的、特征通道数为C的实数向量,T为总帧数)以得到初始位姿向量。接着可以向初始位姿向量加上正弦形式函数形式的位置编码,然后将初始位姿向量、当前动作表示和下一动作表示进行拼接,然后将拼接后的向量输出至转换器编码器。
在一些示例中,转换器编码器对拼接后的向量进行编码,最后输出当前动作标签对应的编码特征Zcurr。这里的转换器编码器可以包括多个级联的编码器,也即每个编码器的输入包括前一个编码器的输出。转换器编码器还可以包括一个或多个转换器,用于调节每个编码器的输入或输出。本公开不对转换器编码器的具体结构进行限定,只要其包括转换器和编码器即可。
上述过程依序反复执行,直到得到最后一个动作标签对应编码特征。将所有动作标签的编码特征进行组合,从而可以得到动作级别的编码特征ZA=[Z1,Z2…ZN],N为动作数量。上标A表示动作级别。
在另一些示例中,如果当前动作标签为第一个动作标签(也即curr=1),那么还可以将第一个动作标签对应的编码特征Z1出入至均值计算器和方差计算器。均值计算器和方差计算器均为全连接层,二者的权重不同。均值计算器用于根据Z1求解得到运动潜在空间的均值μ,而方差计算器用于根据Z1求解得到运动潜在空间的方差σ。均值μ和方差σ又称为运动潜在空间的分布参数。基于运动潜在空间的分布参数,通过重参数化,对动作级别的编码特征ZA对应的潜在空间进行采样,以得到采样后的动作级别的编码特征。这一过程又称为重参数化。当然,本领域技术人员应当理解本公开并不以此为限。
例如,时序展开模块可以用于执行上述的操作S303。如上所述,时序展开模块的输入包括帧级别的运动信息和所述动作级别的编码特征,输出包括帧级别的帧级别的编码特征。可选地,帧级别的运动信息包括轨迹信息。结合图5,时序展开模块可以将动作级别的编码特征ZA=[Z1,Z2…ZN]展开成帧级别的动作序列向量ZF=[z1,z2…zT],T为总帧数,然后再将展开后的帧级别的动作序列向量ZF与轨迹信息对应的向量进行拼接,以得到帧级别的编码特征CF=[c1,c2…cT]。其中,上标F表示帧级别。当然,本领域技术人员应当理解本公开并不以此为限。
接下来参考图6来说明一个具体实施的方式。如图6所示,示例的时序展开模块包括一个逆序的位姿编码器、一个转换器解码器、一个向量拼接器。其中,逆序的位姿编码器可以被配置为:将所述虚拟对象对应的轨迹信息编码成轨迹信息对应的轨迹向量;转换器解码器可以被配置为:基于所述动作级别的编码特征,解码得到帧级别的动作序列向量;向量拼接器可以被配置为:将所述轨迹信息对应的轨迹向量与所述帧级别的动作序列向量进行拼接,以得到所述帧级别的编码向量。当然本公开并不限于此。
在一个具体的实施例中,逆序的位姿编码器用于将轨迹信息编码成轨迹信息对应的轨迹向量TF=[T,T-1…1]。TF在之后又称为轨迹编码。通过采用逆序的轨迹编码,可以很容易地确定结尾帧,所以能够很容易的学到动作应该在何时停止。时序展开模块的转换器解码器以动作级别的编码特征ZA=[Z1,Z2…ZN]为输入,通过解码得到帧级别的动作序列向量ZF=[z1,z2…zT]。这里的转换器解码器可以包括多个级联的解码器,也即每个解码器的输入至少包括前一个解码器的输出。转换器解码器还可以包括一个或多个转换器,用于调节每个解码器的输入或输出。本公开不对转换器解码器的具体结构进行限定,只要其包括转换器和解码器即可。然后向量拼接器再将帧级别的动作序列向量ZF=[z1,z2…zT]与轨迹信息对应的轨迹向量TF=[T,T-1…1]进行拼接,以得到帧级别的编码向量CF=[c1,c2…cT]。当然,本领域技术人员应当理解本公开并不以此为限。
例如,运动解码器可以用于执行上述的操作S304。如上所述,运动解码器的输入包括所述前一帧的位姿信息和所述帧级别的编码特征,输出包括所述运动序列数据。在图5中,示例性地示出了以自回归的方式解码帧级别的编码向量的运动解码器的输入和输出示例。此时,该运动解码器正在生成第j个帧(以下又称为当前帧)对应的数据,其指示所述虚拟实体第j个帧对应的位姿信息。前一帧的位姿信息为Pj-1。如果当前帧为第一帧,则前一帧的位姿信息为P0。运动解码器可以将帧级别的编码向量CF=[c1,c2…cT]与前序帧的位姿信息对应的位姿向量p=[p0,p1…pT-1]进行联合解码,以得到运动序列数据当然,本领域技术人员应当理解本公开并不以此为限。
之前已经简要介绍了以自回归的形式来生成所述运动序列数据。接下来参考图6来说明一个具体实施的方式。如图6所示,示例的运动解码器包括一个位姿编码器、一个转换器解码器、一个位姿解码器。其中,位姿编码器可以被配置为:将所述虚拟实体在前一帧的位姿信息编码成前一帧对应的位姿向量;转换器解码器可以被配置为:基于所述帧级别的编码向量和所述前一帧对应的位姿向量,解码得到当前帧的位姿向量;以及位姿解码器可以被配置为:基于所述当前帧的位姿向量,以得到当前帧的位姿信息。当然本公开并不限于此。当然本公开并不限于此。
其中,运动解码器的位姿编码器用于将前序帧的位姿信息Pprev=[P0,P1…Pj-1]编码成位姿向量pprev=[p0,p1…pj-1]。Pprev又称为前序帧对应的位姿向量。或者,运动解码器的位姿编码器可以仅将一帧位姿信息Pj-1编码成位姿向量pj-1。本公开并不以此为限。
运动解码器的转换器解码器以帧级别的编码向量CF=[c1,c2…cT]和前序帧对应的位姿向量pprev(或前一帧对应的位姿向量Pj-1)为输入,通过解码得到当前帧的位姿向量这里的转换器解码器也可以包括多个级联的解码器,也即每个解码器的输入至少包括前一个解码器的输出。转换器解码器还可以包括一个或多个转换器,用于调节每个解码器的输入或输出。本公开不对转换器解码器的具体结构进行限定,只要其包括转换器和解码器即可。值得注意的是,运动解码器的转换器解码器和时间展开模块的转换器解码器的权重可以不同。
然后位姿解码器再将当前帧的位姿向量进行解码,以得到当前帧的位姿信息位姿解码器也可以是一个全连接层。然后再将当前帧的位姿信息/>添加至前序帧的位姿信息Pprev=[P0,P1…Pj-1]中,以得到用于前序帧的解码的前序帧的位姿信息上述过程依序反复执行,直到得到最后一个帧的位姿信息。将所有帧的位姿信息进行组合,从而可以得到运动序列数据。当然,本领域技术人员应当理解本公开并不以此为限。
由此,除了参考图3至图4描述的本公开实施例的优势以外,针对生成动作序列数据的多样性差的问题,参考图5至图6描述的本公开的实施例还可选地利用转换器(transformer)来缓解所生成的运动序列回归到平均姿势和所生成的运动序列的漂移的问题。本公开的全部或部分实施例可选地包括重参数化过程,其保证了所生成的运动序列的多样性与真实性。
接下来参考图7-图8进一步描述上述的用于生成运动序列数据的模型的训练方法。图7是示出根据本公开实施例的用于生成运动序列数据的模型进行训练的示例示意图。图8是示出用于训练根据本公开实施例的用于生成运动序列数据的模型的样本的示意图。
作为一个示例,可以选取AMASS数据集中的运动序列和BABEL数据集中的对应动作标签来构造训练样本集。参考图8,其示出了8个不同的训练样本,每个训练样本包括动作序列样本以及这些动作序列样本对应的动作标签。具体地,这些动作序列样本对应的动作标签样本分别为跳、双手交叉、起立、踢、向上走、伸展、水平移动物体、坐下。本领域技术人员应当理解训练样本集中还可以包括更多或更少的动作序列样本和这些动作序列样本对应的动作标签,本公开并不以此为限。例如,图8中的训练样本集中的每个训练样本中的动作标签被转换为独热形式的向量。以下进一步参考以图8示出的训练样本集来描述用于训练所述用于生成运动序列数据的模型的方法。
为便于说明,假设动作序列样本仅包括两个动作“跳”和“坐下”,当前动作标签为“跳”、上下文信息为下一动作标签为“坐下”、初始位姿信息为P1。帧级别的运动信息包括:总帧数T和轨迹信息PE。动作“跳”和“坐下”中的每一帧的位姿信息如图8所示。
首先,可以使用训练中的条件编码器预测动作级别的编码特征。在一个具体实施例中,标签“跳”对应的独热形式的向量为[1,0,0,0,0,0,0,0]。标签“坐下”对应的独热形式的向量为[0,0,0,0,0,0,0,1]。当然,本公开并不以此为限。可以使用训练中的标签计算器分别基于向量[1,0,0,0,0,0,0,0]和[0,0,0,0,0,0,0,1]来预测动作标签“跳”对应的动作向量a1和动作标签“坐下”对应的动作向量a8。使用训练中的位姿编码器来预测初始位姿向量p1。可选地,还可以向该初始位姿向量加上正弦形式函数形式的位置编码,以得到调整后的预测初始位姿向量p1。将动作向量a1、动作向量a8和初始位姿向量p1(或调整后的预测初始位姿向量p1)进行拼接以得到向量FTE,然后将向量FTE输入至训练中的转换器编码器。转换器编码器对向量FTE进行编码,以得到动作标签“跳”对应编码特征Z1。训练中的均值计算器和方差计算器将基于编码特征Z1计算均值μ和方差σ。可选地,可以以类似的方法预测得到动作标签“坐下”对应编码特征Z2。具体地,由于动作标签为“坐下”可以不再包括下一动作标签,则可以令下一动作标签对应的独热向量为零向量。当然本公开并不以此为限。将编码特征Z1和编码特征Z2进行组合,以得到动作级别的编码特征ZA=[Z1,Z2]。可选地,还可以利用均值μ和方差σ,通过重参数化,对动作级别的编码特征ZA对应的潜在空间进行采样,以得到采样后的动作级别的编码特征ZA。
接着,可以使用训练中的时序展开模块预测帧级别的编码特征。在一个具体实施例中,训练中的逆序的位姿编码器基于轨迹信息PE预测轨迹向量TF=[T,T-1…1]。训练中的时序展开模块的转换器解码器以动作级别的编码特征ZA=[Z1,Z2]为输入,通过预测得到帧级别的向量ZF=[z1,z2…ZT]。然后向量拼接器再将帧级别的向量ZF=[z1,z2…zT]与轨迹信息对应的向量TF=[T,T-1…1]进行拼接,以得到帧级别的编码向量CF=[c1,c2…cT]。
然后,可以使用训练中的运动解码器预测运动序列数据。参见图7,来进一步描述一个具体实施例。
例如,可以先使用训练中的位姿编码器来预测位姿真值。具体地,基于图8中示出的动作“跳”和“坐下”中的每一帧的位姿信息,使用训练中的位姿编码器来预测第零帧至第T-1帧对应的位姿向量p0至pT-1,这些位姿向量组成了位姿真值p=[p0,…,pT-1]。
例如,可以将位姿向量p0与帧级别的编码向量CF=[c1,c2…cT]输入至训练中的运动解码器的转换器解码器,以得到第1帧的位姿向量p′1。类似地,可以将位姿向量p1与帧级别的编码向量CF=[c1,c2…cT]输入至训练中的运动解码器的转换器解码器,以得到第2帧的位姿向量p′2。以此类推,直至得到最后一个帧对应的位姿向量p′T。这些位姿向量组成了第一位姿预测值p′=[p′1,…,p′T]。在训练的每个时间步中,都可以基于位姿真值p=[p0,…,pT-1]和第一位姿预测值p′=[p′1,…,p′T],来计算第一位姿重建损失,其表征位姿真值和第一位姿预测值之间的差异。例如,可以使用公式(1)来计算第一位姿重建损失。
然后可以基于第一位姿重建损失对应的值,调整用于生成运动序列数据的模型中的神经元的参数,以使得第一位姿重建损失收敛。
更进一步地,如果位姿真值P和第一位姿预测值P′中的各个元素均为虚拟实体在各个帧的SMPL位姿参数的情况下,还可以将位姿真值P、第一位姿预测值P′以及平均形状输入至可微的SMPL模型,以得到蒙皮和面片的位置真值V=[v0,...vT-1]和第一位置预测值V′=[v′1,...v′T]。蒙皮和面片的位置的真值V又称为关节位置真值。蒙皮和面片的第一位置预测值V′又称为又称为第一关节位置预测值。在训练的每个时间步中,都可以基于关节位置真值V=[v0,...vT-1]和第一关节位置预测值V′=[v′1,...v′T],来计算第一关节坐标重建损失,其表征关节位置真值和第一关节位置预测值之间的差异。例如,可以使用公式(2)来计算第一关节坐标重建损失。
然后可以基于第一关节坐标重建损失对应的值,调整用于生成运动序列数据的模型中的神经元的参数,以使得第一关节坐标重建损失收敛。
在一些示例中,还可以使用第一位姿重建损失和第一关节坐标重建损失的加权和来确定第一重建损失,调整用于生成运动序列数据的模型中的神经元的参数,以使得第一重建损失收敛。
在一些示例中,还可以获取目标均值μtarget和目标方差σtarget,然后基于上述求解的均值μ和方差σ以及目标均值μtarget和目标方差σtarget,计算输出分布和目标分布之间的KL散度(又称为相对熵)。然后可以基于KL散度/>对应的值,调整用于生成运动序列数据的模型中的神经元的参数,以使得KL散度/>最小化。
在一些示例中,还可以使用第一位姿重建损失、第一关节坐标重建损失以及KL散度的加权和来确定第一总体损失,调整用于生成运动序列数据的模型中的神经元的参数,以使得第一总体损失收敛。KL散度/>能够平衡了多样性与真实性。KL散度/>是用于计算两个分布是否相近的损失值。在这些示例中,KL散度/>的权重越大则用于生成运动序列数据的模型可以生成多样性越高的动作序列数据,而散度/>的权重越小,则用于生成运动序列数据的模型可以生成越真实的动作序列数据。
在一些示例中,如图7所示,还可以进一步地采用调度采样训练策略,将第一位姿预测值P′和位姿真值P按照可变比例进行随机地混合,以得到混合后的位姿向量集合Pmix。在一个示例中,随着训练进程的进展,第一位姿预测值P′占Pmix的比例可以逐渐增加,以缩小实际推理过程和训练过程中的数据分布的差异。接着,可以将Pmix中的第一个位姿向量与帧级别的编码向量CF=[c1,c2…cT]输入至训练中的运动解码器的转换器解码器,以得到第1帧的位姿向量p″1。类似地,可以将第二个位姿向量/>与帧级别的编码向量CF=[c1,c2…cT]输入至训练中的运动解码器的转换器解码器,以得到第2帧的位姿向量p″2。以此类推,直至得到最后一个帧对应的位姿向量p″T。这些位姿向量组成了第二位姿预测值P″=[p″1,…,p″T]。在训练的每个时间步中,都可以基于位姿真值P=[p0,…,pT-1]和第二位姿预测值P″=[p″1,…,p″T],来计算第二位姿重建损失,其表征位姿真值和第二位姿预测值之间的差异。例如,可以使用公式(3)来计算第二位姿重建损失。
然后可以基于第二位姿重建损失对应的值,调整用于生成运动序列数据的模型中的神经元的参数,以使得第二位姿重建损失收敛。
类似地,更进一步地,如果位姿真值P和第二位姿预测值P″中的各个元素均为虚拟实体在各个帧的SMPL位姿参数的情况下,还可以将位姿真值P、第二位姿预测值P″以及平均形状输入至可微的SMPL模型,以得到蒙皮和面片的位置真值V=[v0,...vT-1]和第二位置预测值V″=[v″1,...v″T]。蒙皮和面片的位置的真值V又称为关节位置真值。蒙皮和面片的第二位置预测值V′又称为又称为第二关节位置预测值。在训练的每个时间步中,都可以基于关节位置真值V=[v0,...vT-1]和第二关节位置预测值V″=[v″1,...v″T],来计算第一关节坐标重建损失,其表征关节位置真值和第二关节位置预测值之间的差异。例如,可以使用公式(4)来计算第二关节坐标重建损失。
在一些示例中,还可以使用第一位姿重建损失、第二位姿重建损失、第一关节坐标重建损失、第二关节坐标重建损失、散度中任意两项或多项的加权和来确定用于生成运动序列数据的模型的损失函数,然后可以基于用于生成运动序列数据的模型的损失函数对应的值,调整用于生成运动序列数据的模型中的神经元的参数,以使得用于生成运动序列数据的模型的损失函数对应的值收敛。当然本公开并不限于此。
由此,根据本公开实施例的用于生成运动序列数据的模型的训练方法可以被简述为:获取训练样本,基于所述训练样本,利用训练中的所述装置预测所述训练样本中各个帧对应的位姿真值和第一位姿预测值;基于所述位姿真值和所述第一位姿预测值,计算第一位姿重建损失;基于所述第一位姿重建损失对应的值,调整所述的装置中的神经元的参数,以使得第一位姿重建损失收敛。
可选地,该训练方法还包括基于所述训练样本中各个帧对应的位姿真值和第一位姿预测值,确定关节位置真值和第一关节位置预测值;基于所述位姿真值和所述第一关节位置预测值,计算关节坐标重建损失;基于所述关节坐标重建损失对应的值,调整所述的装置中的神经元的参数,以使得所述关节坐标重建损失收敛。
可选地,该训练方法还包括:获取目标均值和目标方差,基于所述运动潜在空间的均值和方差、所述目标均值和目标方差,确定KL散度值,调整所述的装置中的神经元的参数,以使得所述KL散度值最小化。
可选地,该训练方法还包括:将第一位姿预测值和位姿真值按照可变比例进行随机地混合,以得到混合后的位姿向量集合;基于所述位姿向量集合,确定利用训练中的所述装置预测所述训练样本中各个帧对应的第二位姿预测值;基于所述位姿真值和所述第二位姿预测值,计算第二位姿重建损失;基于所述第二位姿重建损失对应的值,调整所述的装置中的神经元的参数,以使得第二位姿重建损失收敛。
除了参考图3至图6描述的本公开实施例的优势以外,针对生成动作序列数据的多样性差的问题以及训练和生成时输入数据分布不一致带来的域偏差问题,参考图7至图8描述的本公开的实施例还可选地利用了基于自回归算法的解码器来调度采样输入姿态序列,使得输出运动数据与真实运动数据逐渐接近,可以有效缓解过拟合问题。甚至在理想情况下,本公开的全部或部分实施例可以生成任意长的运动序列。
以下参考图9和图10来进一步说明本公开的各项实施例的优势。图9示出了根据本公开的实施例与传统方案的性能对比图。图10示出了根据本公开的实施例生成多样化的运动序列数据的示意图。
在图9和图10的测试过程中,均利用参考图7至图8描述的训练方案来对装置500进行训练。然后向完成训练的装置500输入不同的测试用例,以使得装置500执行方法30,并输出对应的测试结果。
具体地,在图9对应的测试过程中,本公开实施例与传统方案ACTOR和传统方案ACTOR2Motion进行了比较。从图9可知,本公开实施例取得到了最小的关节点位置的平均位置误差,也即本公开实施例生成的运动序列从整体上来看与真实的数据更加的接近,从而能够生成更自然流畅的动作。
而在图10对应的测试过程中,本公开实施例按照用户指定的动作“扔”,生成了多样化的运动序列。具体地,其中第一个是不使用重参数化直接得到的结果;第二个使用重参数化采样一次的结果;第三个使用重参数化采样两次的结果。即使给定完全一样的输入,这3个“扔”的动作仍然各不相同,可见本公开实施例可以生成多样的动作。
第四个是仅改变动作对应的时长(例如总帧数)的结果;第五个是仅改变上下文信息中的前序动作的结果;第五个是仅改变当前动作标签的结果。可见,本公开实施例可以根据改变的输入部分生成更加符合的“扔”的动作,这说明本公开实施例在考虑了上下文信息后能够更好的控制动作的生成。
总之,本公开实施例利用基于转换器的神经网络,将动作标签信息、动作上下文信息、动作时长信息、运动轨迹信息等多种运动信息进行了融合处理,可控制地真实、多样化且符合用户要求的可变长度运动序列数据,相比于之前的方法,本公开实施例有以下几项优势。
第一,本公开实施例的输入信息简单可调,对于用户友好。例如,本公开实施例可以以动作级别的运动信息(例如,动作标签信息和动作上下文信息等)作为输入信息,并得到符合这些动作信息要求的动作序列。
第二,本公开实施例还可以将上述的动作信息与帧级别的运动信息(例如,运动时长信息和运动轨迹信息等)一同作为输入信息,以实现用户对待合成的动作序列的逐帧控制。
第三,本公开实施例还可以以自回归形式递归地生成运动序列,减少了输入数据的信息量。
第四,本公开实施例在模型训练时采用调度采样策略逐渐增加预测数据与真实数据之间的比例,缓解了训练集的数据分布与推理时的输入数据的数据分布不一致的问题,从而提高了模型的容错能力。
根据本公开的又一方面,还提供了一种电子设备,用于实施根据本公开实施例的方法30或搭载根据本公开实施例的装置500。图11示出了根据本公开实施例的电子设备2000的示意图。
如图11所示,所述电子设备2000可以包括一个或多个处理器2010,和一个或多个存储器2020。其中,所述存储器2020中存储有计算机可读代码,所述计算机可读代码当由所述一个或多个处理器2010运行时,可以执行如上所述的方法。
本公开实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。上述处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中的公开的各方法、操作及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是X86架构或ARM架构的。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
例如,根据本公开实施例的方法或装置也可以借助于图12所示的计算设备3000的架构来实现。如图12所示,计算设备3000可以包括总线3010、一个或多个CPU 3020、只读存储器(ROM)3030、随机存取存储器(RAM)3040、连接到网络的通信端口3050、输入/输出组件3060、硬盘3070等。计算设备3000中的存储设备,例如ROM 3030或硬盘3070可以存储本公开提供的方法的处理和/或通信使用的各种数据或文件以及CPU所执行的程序指令。计算设备3000还可以包括用户界面3080。当然,图12所示的架构只是示例性的,在实现不同的设备时,根据实际需要,可以省略图12示出的计算设备中的一个或多个组件。
根据本公开的又一方面,还提供了一种计算机可读存储介质。图13示出了根据本公开的存储介质4000的示意图。
如图13所示,所述计算机存储介质4020上存储有计算机可读指令4010。当所述计算机可读指令4010由处理器运行时,可以执行参照以上附图描述的根据本公开实施例的方法。本公开实施例中的计算机可读存储介质可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接内存总线随机存取存储器(DR RAM)。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本公开实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行根据本公开实施例的方法。
需要说明的是,附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
在上面详细描述的本公开的示例实施例仅仅是说明性的,而不是限制性的。本领域技术人员应该理解,在不脱离本公开的原理和精神的情况下,可对这些实施例或其特征进行各种修改和组合,这样的修改应落入本公开的范围内。
Claims (15)
1.一种生成运动序列数据的方法,包括:
基于输入数据,获取动作级别的运动信息和帧级别的运动信息,其中,所述动作级别的运动信息用于描述虚拟实体执行的至少一个动作,所述帧级别的运动信息指示与所述虚拟实体执行所述至少一个动作相关联的至少一个帧的信息;
基于虚拟实体的初始位姿信息和所述动作级别的运动信息,生成动作级别的编码特征;
基于所述帧级别的运动信息和所述动作级别的编码特征,生成帧级别的编码特征,以及
获取所述虚拟实体在前一帧的位姿信息,基于所述前一帧的位姿信息和所述帧级别的编码特征,生成所述运动序列数据,所述运动序列数据包括时序排列的多个帧的数据,每个帧的数据指示所述虚拟实体在该帧对应的位姿信息。
2.如权利要求1所述的方法,其中,
所述动作级别的运动信息包括动作标签信息和上下文信息中的至少一项,所述动作标签信息指示虚拟实体执行的至少一个动作对应的标签,所述上下文信息指示虚拟实体执行的动作之间的顺序;
所述帧级别的运动信息包括虚拟对象对应的轨迹信息、帧的总量、和所述至少一个动作对应的帧的数量中的至少一项,所述虚拟对象对应的轨迹信息包括一个或多个帧对应的虚拟实体的位姿信息。
3.如权利要求2所述的方法,其中,所述虚拟对象对应的轨迹信息包括以下各项中的至少一项:虚拟对象在至少一个帧的时间戳对应的关节位置、虚拟对象的网格顶点坐标、或者虚拟对象的各个关节的平移和旋转。
4.如权利要求2所述的方法,其中,所述基于虚拟实体的初始位姿信息和所述动作级别的运动信息,生成动作级别的编码特征包括:
基于所述虚拟实体的初始位姿信息以及所述动作级别的运动信息,以自回归的方式生成动作级别的编码特征,其中,所述动作级别的编码特征包括所述至少一个动作中的每个动作对应的动作向量,
其中,生成所述至少一个动作中的第一个动作对应的动作向量的过程包括:基于所述虚拟实体的初始位姿信息、第一个动作对应的标签以及第二个动作对应的标签,生成所述第一个动作对应的动作向量;
其中,对于所述至少一个动作中除第一个动作以外的其他动作,生成所述其他动作中的每个动作对应的动作向量的过程包括:至少基于所述动作的前序动作的动作向量、所述动作的动作标签以及所述动作的后序动作的动作标签,生成所述动作的动作向量。
5.如权利要求2所述的方法,其中,所述动作级别的编码特征中的特征数量等于所述至少一个动作的动作数量,所述基于所述帧级别的运动信息和所述动作级别的编码特征,生成帧级别的编码特征包括:
将所述动作级别的编码特征展开成帧级别的动作序列向量,以及
将展开后的帧级别的动作序列向量与轨迹信息对应的向量进行拼接,以得到帧级别的编码特征,所述帧级别的编码特征中的特征数量等于帧的总量。
6.如权利要求1所述的方法,还包括:基于所述运动序列数据,播放所述虚拟实体执行的至少一个动作的动画。
7.如权利要求6所述的方法,其中,所述每个帧的数据包括所述虚拟实体的蒙皮多人线性模型在该帧对应的位姿参数,所述基于所述运动序列数据,播放所述虚拟实体执行的至少一个动作的动画还包括:
获取所述虚拟实体的形状参数,
基于所述虚拟实体的形状参数以及所述每个帧的数据中的所述虚拟实体的蒙皮多人线性模型在该帧对应的位姿参数,生成所述虚拟实体执行的至少一个动作的动画;以及
播放所述虚拟实体执行的至少一个动作的动画。
8.一种生成运动序列数据的装置,包括:
条件编码器,被配置为:基于虚拟实体的初始位姿信息和动作级别的运动信息,生成动作级别的编码特征,其中,所述动作级别的运动信息用于描述虚拟实体执行的至少一个动作;
时序展开模块,被配置为:基于帧级别的运动信息和所述动作级别的编码特征,生成帧级别的编码特征,其中,所述帧级别的运动信息指示与所述虚拟实体执行所述至少一个动作相关联的至少一个帧的信息;
运动解码器,被配置为:获取所述虚拟实体在前一帧的位姿信息,基于所述前一帧的位姿信息和所述帧级别的编码特征,生成所述运动序列数据,所述运动序列数据包括时序排列的多个帧的数据,每个帧的数据指示所述虚拟实体在该帧对应的位姿信息。
9.一种训练方法,其用于对如权利要求8所述的装置进行训练,所述训练方法包括:
获取训练样本,基于所述训练样本,利用训练中的所述装置预测所述训练样本中各个帧对应的位姿真值和第一位姿预测值;
基于所述位姿真值和所述第一位姿预测值,计算第一位姿重建损失;
基于所述第一位姿重建损失对应的值,调整所述的装置中的神经元的参数,以使得第一位姿重建损失收敛。
10.如权利要求9所述的方法,还包括:
基于所述训练样本中各个帧对应的位姿真值和第一位姿预测值,确定关节位置真值和第一关节位置预测值;
基于所述位姿真值和所述第一关节位置预测值,计算关节坐标重建损失;
基于所述关节坐标重建损失对应的值,调整所述的装置中的神经元的参数,以使得所述关节坐标重建损失收敛。
11.如权利要求9所述的方法,其中,所述装置的条件编码器包括均值计算器和方差计算器,所述训练方法还包括:
获取目标均值和目标方差,
基于所述运动潜在空间的均值和方差、所述目标均值和目标方差,确定KL散度值,
调整所述的装置中的神经元的参数,以使得所述KL散度值最小化。
12.如权利要求9所述的方法,还包括:
将第一位姿预测值和位姿真值按照可变比例进行随机地混合,以得到混合后的位姿向量集合;
基于所述位姿向量集合,确定利用训练中的所述装置预测所述训练样本中各个帧对应的第二位姿预测值;
基于所述位姿真值和所述第二位姿预测值,计算第二位姿重建损失;
基于所述第二位姿重建损失对应的值,调整所述的装置中的神经元的参数,以使得第二位姿重建损失收敛。
13.如权利要求12所述的方法,还包括:
基于所述第一位姿重建损失和所述第二位姿重建损失的加权和,调整所述的装置中的神经元的参数,以使得第二位姿重建损失收敛。
14.一种电子设备,包括:
处理器;以及
存储器,其中,所述存储器中存储有计算机可执行程序,当由所述处理器执行所述计算机可执行程序时,执行权利要求1-7或9-13中任一项所述的方法。
15.一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-7或9-13中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211170104.8A CN116993866A (zh) | 2022-09-22 | 2022-09-22 | 生成运动序列数据的方法及装置、训练方法、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211170104.8A CN116993866A (zh) | 2022-09-22 | 2022-09-22 | 生成运动序列数据的方法及装置、训练方法、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116993866A true CN116993866A (zh) | 2023-11-03 |
Family
ID=88520147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211170104.8A Pending CN116993866A (zh) | 2022-09-22 | 2022-09-22 | 生成运动序列数据的方法及装置、训练方法、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116993866A (zh) |
-
2022
- 2022-09-22 CN CN202211170104.8A patent/CN116993866A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Motiondiffuse: Text-driven human motion generation with diffusion model | |
US10546408B2 (en) | Retargeting skeleton motion sequences through cycle consistency adversarial training of a motion synthesis neural network with a forward kinematics layer | |
CN110227266B (zh) | 使用真实世界虚拟现实地图来构建虚拟现实游戏玩耍环境 | |
Ferreira et al. | Learning to dance: A graph convolutional adversarial network to generate realistic dance motions from audio | |
US10964084B2 (en) | Generating realistic animations for digital animation characters utilizing a generative adversarial network and a hip motion prediction network | |
EP3834137A1 (en) | Committed information rate variational autoencoders | |
CN110062934A (zh) | 使用神经网络确定图像中的结构和运动 | |
Li et al. | Ganimator: Neural motion synthesis from a single sequence | |
Cervantes et al. | Implicit neural representations for variable length human motion generation | |
CN112733616B (zh) | 一种动态图像的生成方法、装置、电子设备和存储介质 | |
US20230123820A1 (en) | Generating animated digital videos utilizing a character animation neural network informed by pose and motion embeddings | |
CN111753801A (zh) | 人体姿态跟踪与动画生成方法及装置 | |
WO2023071801A1 (zh) | 动画生成方法及装置、计算机设备、存储介质、计算机程序、计算机程序产品 | |
CN116392812A (zh) | 动作生成方法及虚拟人物动画生成方法 | |
WO2018050045A1 (zh) | 一种动画片段拼接方法、信息发送方法及装置 | |
US20230154089A1 (en) | Synthesizing sequences of 3d geometries for movement-based performance | |
US11861762B2 (en) | Generating synthesized digital images utilizing class-specific machine-learning models | |
CN113269066B (zh) | 说话视频生成方法、装置和电子设备 | |
CN114155325A (zh) | 一种虚拟角色动画生成方法和系统 | |
CN116757923B (zh) | 一种图像生成方法、装置、电子设备及存储介质 | |
US10839249B2 (en) | Methods and systems for analyzing images utilizing scene graphs | |
CN116993866A (zh) | 生成运动序列数据的方法及装置、训练方法、电子设备 | |
CN114117086A (zh) | 多媒体作品的制作方法、装置及计算机可读存储介质 | |
CN115205428A (zh) | 视频处理方法、装置、设备及存储介质 | |
Pan et al. | Diverse dance synthesis via keyframes with transformer controllers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40100929 Country of ref document: HK |