1.本说明书涉及动画技术领域,特别涉及一种虚拟角色动画生成方法和系统。
背景技术:
2.虚拟角色一般指游戏、动画等作品中出现的虚拟形象,随着5g技术、图像处理技术的发展,虚拟角色已广泛应用于直播、即时通信服务等各种领域。虚拟角色动画中包括大量的虚拟角色动作,且在一些场景中需要虚拟角色根据音乐做出相应的动作,例如根据音乐跳舞、做出角色的打斗招式等,这些都使得生成虚拟角色动画比较复杂(例如建模师需要先将动作捕捉设备与真人绑定,通过捕捉真人的动作来对应生成虚拟角色动画,需要大量且复杂的人工操作)且不易生成高质量的虚拟角色动画。
3.因此,亟需虚拟角色动画生成的方法和系统来实现自动、高效地生成高质量的虚拟角色动画。
技术实现要素:
4.本说明书实施例之一提供一种虚拟角色动画生成方法。所述虚拟角色动画生成方法包括:获取音乐帧序列,所述音乐帧序列中的各个音乐帧包括音乐帧信息;通过动作生成模型,基于所述音乐帧序列生成对应的骨骼动作序列;以及基于所述骨骼动作序列和对应的骨骼模型,生成虚拟角色动画。
5.在一些实施例中,所述音乐帧信息包括以下中的一种或多种:音乐帧的拍子信息、音量信息以及音频信息。
6.在一些实施例中,所述骨骼动作序列中的骨骼动作包括与音乐帧对应的至少一个骨骼的骨骼位置以及骨骼旋转参数。
7.在一些实施例中,所述基于所述音乐帧序列生成对应的骨骼动作序列包括:根据所述音乐帧序列生成音乐帧编码向量序列;以及根据所述音乐帧编码向量序列生成所述骨骼动作序列。
8.在一些实施例中,所述根据所述音乐帧编码向量序列生成所述骨骼动作序列动作包括:获取所述音乐帧序列的起始骨骼动作和停止骨骼动作;以及根据所述音乐帧编码向量序列、起始骨骼动作和停止骨骼动作得到所述骨骼动作序列。
9.在一些实施例中,所述动作生成模型包括编码网络、双向循环神经网络和解码网络;所述基于所述音乐帧序列生成对应的骨骼动作序列包括:通过所述编码网络,根据所述音乐帧序列生成所述音乐帧编码向量序列;通过所述双向循环神经网络,基于所述音乐帧编码向量序列、所述起始骨骼动作和所述停止骨骼动作得到初始骨骼动作序列;以及通过所述解码网络,基于所述音乐帧编码向量序列和所述初始骨骼动作序列,得到所述骨骼动作序列。
10.在一些实施例中,所述基于所述骨骼动作序列和对应的骨骼模型,生成虚拟角色动画包括:通过数据拟合方法获取骨骼动作序列中两个骨骼动作之间的至少一个拟合骨骼
动作;基于所述骨骼动作序列和所述拟合骨骼动作得到骨骼动作动画;以及基于所述骨骼动作动画和所述骨骼模型生成所述虚拟角色动画。
11.在一些实施例中,所述动作生成模型的获得方法包括:获取至少一个训练样本以及初始动作生成模型,其中,训练样本包括音乐样本及其对应的动作样本;以及基于所述至少一个训练样本迭代更新所述初始动作生成模型的参数以得到所述动作生成模型。
12.本说明书实施例之一提供一种虚拟角色动画生成系统,所述系统包括:获取模块,用于获取音乐帧序列,所述音乐帧序列中的各个音乐帧包括音乐帧信息;动作生成模块,用于通过动作生成模型,基于所述音乐帧序列生成对应的骨骼动作序列;以及动画生成模块,用于基于所述骨骼动作序列和对应的骨骼模型,生成虚拟角色动画。
13.本说明书实施例之一提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行本说明书实施例所提供的虚拟角色动画生成方法。
附图说明
14.本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
15.图1是根据本说明书一些实施例所示的虚拟角色动画生成系统的应用场景示意图;
16.图2是根据本说明书一些实施例所示的处理设备的模块示意图;
17.图3是根据本说明书一些实施例所示的虚拟角色动画生成方法的示例性流程图;
18.图4是根据本说明书一些实施例所示的虚拟角色动画生成模型的示例性结构框图;
19.图5是根据本说明书一些实施例所示的虚拟角色动画生成模型训练方法的结构化流程图;
20.图6是根据本说明书一些实施例所示的骨骼模型关键节点的结构示意图。
具体实施方式
21.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
22.应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
23.如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者
设备也可能包含其它的步骤或元素。
24.本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
25.图1是根据本说明书一些实施例所示的虚拟角色动画生成系统的应用场景的示例性示意图。
26.如图1所示,在应用场景中可以包括服务器110、网络120、终端设备130以及存储设备140。
27.虚拟角色动画生成系统100主要用于涉及虚拟角色动画的生成。虚拟角色可以指游戏、动画等作品中出现的虚拟形象。在一些实施例中,虚拟角色可以是二维人物动画和/或三维人物模型。例如,虚拟角色可以是通过live2d技术生成的二维虚拟直播形象。再例如,虚拟角色可以是通过3d建模技术生成的三维虚拟形象。虚拟角色动画指虚拟角色的连续动作,其呈现方式与虚拟角色类型对应,例如,虚拟角色为二维形象时,虚拟角色动画可以指虚拟角色的图像帧序列。虚拟角色为三维形象时,虚拟角色动画可以指三维模型的连续动作。虚拟角色动画生成系统100已被广泛应用于各种虚拟角色的制作场景中,例如:动画剧、电影动画、虚拟偶像直播或者3d游戏等。在一些实施例中,虚拟角色动画生成系统100可以通过实施本说明书中披露的虚拟角色动画生成的方法和/或过程来基于音乐生成虚拟角色的动画。
28.服务器110可以包括用于执行虚拟角色动画生成方法的处理设备112。在一些实施例中,服务器110可以是本地的或远程的。例如,服务器110可以在终端设备130本地连接终端设备130以获取其发送的信息和/或数据。又例如,服务器110可以经由网络120远程接收终端设备130发送的信息和/数据。在一些实施例中,服务器110可以在云平台上实施。仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。
29.网络120可以促进信息和/或数据的交换。在一些实施例中,虚拟角色动画生成系统100的一个或者多个组件(例如服务器110、终端设备130、存储设备140)可以通过网络120传送信息至虚拟角色动画生成系统100的其他组件。例如,终端设备130可以通过网络120向服务器110发送音乐文件以生成虚拟角色动画。又例如,服务器110可以将对虚拟角色动画进行存储。在一些实施例中,网络120可以是任意形式的有线或者无线网络,或其任意组合。仅作为范例,网络120可以是有线网络、光纤网络、远程通信网络、内部网络、互联网、局域网(lan)、广域网(wan)、无线局域网(wlan)、城域网(man)、广域网(wan)、公共交换电话网络(pstn)、蓝牙网络等中的一种或多种组合。在一些实施例中,网络120可以包括一个或以上网络接入点。例如,网络120可以包括有线或无线网络接入点,例如基站和/或网络交换点120-1、120-2、
…
,通过这些进出点系统的一个或多个组件可连接到网络120上以交换数据和/或信息。
30.终端设备130可以用于虚拟角色动画生成系统100中的人机交互。在一些实施例中,终端设备130可以是带有数据获取、存储和/或发送功能的便携式设备,例如,平板电脑130-1、智能手机130-2、笔记本电脑130-3、其他可移动终端130-4等或其任意组合。在一些
实施例中,终端设备130可以包括一个或多个处理引擎(例如,单核心处理引擎或多核心处理器)。仅作为示例,处理引擎可以包括中央处理器(中央处理器)、特定应用集成电路(asic)、专用指令集处理器(asip)、图像处理器(gpu)、物理运算处理单元(ppu)、数字信号处理器(dsp)、现场可程序门阵列(fpga)、可程序逻辑装置(pld)、控制器、微控制器单元、精简指令集计算机(risc)、微处理器等中的一种或多种组合。在一些实施例中,操作人员可以通过终端设备130输入或在音乐库中选择音乐,以使处理设备112可以基于该音乐生成对应的虚拟角色动画。在一些实施例中,终端设备130可以获取虚拟角色动画,还可以将获取的虚拟角色动画展示给用户或观众。
31.存储设备140可以存储数据和/或指令。在一些实施例中,存储设备140可以存储终端设备130和/或服务器110获得/获取的数据,例如音乐、骨骼模型、动作生成模型、虚拟角色动画等。在一些实施例中,存储设备140可以存储服务器110用于执行或使用来完成本说明书中描述的示例性方法的数据和/或指令。在一些实施例中,存储设备140可以包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(rom)等或其任意组合。示例性的大容量储存器可以包括磁盘、光盘、固态磁盘等。示例性可移动存储器可以包括闪存驱动器、软盘、光盘、存储卡、压缩盘、磁带等。示例性的挥发性只读存储器可以包括随机存取内存(ram)。示例性的ram可包括动态ram(dram)、双倍速率同步动态ram(ddrsdram)、静态ram(sram)、闸流体ram(t-ram)和零电容ram(z-ram)等。示例性的rom可以包括掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(perom)、电子可擦除可编程rom(eeprom)、光盘rom(cd-rom)和数字通用磁盘rom等。在一些实施例中,存储设备140可以在云平台上实现。仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。
32.在一些实施例中,存储设备140可以连接到网络120以与虚拟角色动画生成系统100中的一个或以上组件(例如,服务器110、终端设备130)通信。图像处理100中的一个或以上组件可以通过网络120访问存储设备140中存储的数据或指令。在一些实施例中,存储设备140可以与虚拟角色动画生成系统100中的一个或以上组件(例如,服务器110、终端设备130等)直接连接或通信。在一些实施例中,存储设备140可以是服务器110的一部分。
33.图2是根据本说明书一些实施例的虚拟角色动画生成系统的模块示意图。虚拟角色动画生成系统200可以部署于处理设备112上。虚拟角色动画生成系统200可以包括获取模块210、动作生成模块220以及动画生成模块230。
34.获取模块210可以用于获取音乐帧序列,其中,音乐帧序列中各个音乐帧包括音乐帧信息。
35.在一些实施例中,获取模块210可以根据操作人员在终端设备130和/或存储设备140中输入的音乐自动生成对应的音乐帧序列。
36.在一些实施例中,音乐帧信息可以包括音乐帧的拍子信息、音量信息以及音频信息中的一种或多种。动作生成模块220可以通过动作生成模型,基于音乐帧序列生成对应的骨骼动作序列。
37.在一些实施例中,骨骼动作序列中的骨骼动作可以包括与音乐帧对应的至少一个骨骼的骨骼位置以及骨骼旋转参数。
38.在一些实施例中,动作生成模块220中基于音乐帧序列生成对应的骨骼动作序列
的操作可以包括:根据音乐帧序列生成音乐帧编码向量序列;以及根据音乐帧编码向量序列生成骨骼动作序列。
39.在一些实施例中,根据音乐帧编码向量序列生成骨骼动作序列动作的操作可以包括:获取音乐帧序列的起始骨骼动作和停止骨骼动作;以及根据音乐帧编码向量序列、起始骨骼动作和停止骨骼动作得到骨骼动作序列。
40.在一些实施例中,动作生成模块220中的动作生成模型可以包括编码网络、双向循环神经网络和解码网络。基于该动作生成模型,动作生成模块220中基于音乐帧序列生成对应的骨骼动作序列的操作可以包括:根据音乐帧编码向量序列生成骨骼动作序列包括:通过编码网络,根据音乐帧序列生成音乐帧编码向量序列;通过双向循环神经网络,基于音乐帧编码向量序列、起始骨骼动作和停止骨骼动作得到初始骨骼动作序列;以及通过解码网络,基于音乐帧编码向量序列和初始骨骼动作序列,得到骨骼动作序列。
41.动画生成模块230可以基于骨骼动作序列和对应的骨骼模型,生成虚拟角色动画。
42.在一些实施例中,动画生成模块230基于骨骼动作序列和对应的骨骼模型,生成虚拟角色动画的操作可以包括:通过数据拟合方法获取骨骼动作序列中两个骨骼动作之间的至少一个拟合骨骼动作;基于骨骼动作序列和拟合骨骼动作得到骨骼动作动画;以及基于骨骼动作动画和骨骼模型生成虚拟角色动画。
43.在一些实施例中,虚拟角色动画生成系统200还可以包括训练模块240,训练模块240用于训练初始动作生成模型以得到动作生成模型。
44.在一些实施例中,训练模块240中动作生成模型的训练方法可以包括:获取至少一个训练样本以及初始动作生成模型,其中,训练样本包括音乐样本及其对应的动作样本;以及基于至少一个训练样本迭代更新初始动作生成模型的参数以得到动作生成模型。
45.需要注意的是,以上对虚拟角色动画生成系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。在一些实施例中,本说明书实施例披露的获取模块、动作生成模块、动画生成模块和训练模块可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
46.基于本说明书一些实施例提供虚拟角色动画生成方法和系统,可以将虚拟角色的动画拆解为骨骼的动作序列与骨骼模型,并基于音乐自动生成骨骼的动作序列,进而基于骨骼的动作序列实现虚拟角色动画的自动生成。实现了高质量地生成虚拟角色动画,并且降低了人力成本,提高了虚拟角色动画的生成效率。
47.图3是根据本说明书一些实施例所示的虚拟角色动画生成方法的示例性流程图。在一些实施例中,流程300可以由处理设备112执行。如图3所示,流程300具体可以包括步骤310~步骤330。
48.步骤310,获取音乐帧序列。在一些实施例中,可以由获取模块210执行步骤310。
49.音乐帧是指按照预设时间长度(可以称为帧长,例如25ms、30ms等)对音乐的音频信号进行采样或划分得到的音频数据,可以包含对应预设时间长度内的音乐信息,音乐帧包括的音乐信息可以称为音乐帧信息。
50.音乐帧序列可以指音乐包括的音乐帧所形成的序列,例如,每个音乐帧的帧长为30ms时,一段30s的音乐可以表示为1000个连续的音乐帧所形成的序列。在一些实施例中,音乐帧序列可以通过对音乐进行分帧处理得到。
51.在一些实施例中,音乐和/或音乐帧序列可以通过终端设备130获取。例如,操作人员可以通过终端设备130上传音乐,音乐可以经过终端设备130或处理设备112进行分帧处理,得到对应的音乐帧序列。再例如,操作人员可以通过终端设备130输入调用指令,终端设备130可以将指令发送至处理设备112以控制处理设备112从存储设备140中调用对应的音乐帧序列。
52.在一些实施例中,音乐帧可以与音乐的节拍相关,例如,在对音乐进行分帧处理时,可以以音乐的节拍点作为音乐帧的分割点,一个音乐帧可以包含一个节拍的音频信号数据。由此,基于音乐帧序列确定的骨骼动作序列中每一个骨骼动作都与音乐的节拍点对应,从而使生成的虚拟角色动画更具有节奏感。
53.在一些实施例中,音乐帧序列可以是各种类型的音乐对应的音乐帧序列,例如,当虚拟角色作为虚拟dj角色时,音乐一般为电子音乐,各种类型的音乐可以指不同节奏的电子音乐。在一些实施例中,各种类型的音乐可以根据音乐的风格与特点划分,各个类型的音乐可以包括古典音乐(classical music)、流行音乐(pop music)、蓝调歌曲(blues)、摇滚乐(rock&roll)、爵士乐(jazz)等不同类型的音乐。
54.在一些实施例中,音乐帧信息可以包括音乐帧的拍子信息、音量信息、音频信息以及其他音乐相关信息中的一种或多种。其中,拍子即乐曲中固定单位时值和强弱规律的组织形式,也可以称为节拍,音乐帧的拍子信息(也可以称为节拍信息)可以包括音乐帧对应的单位时间拍子数,拍子信息的单位可以为bpm(即beat per minute)。音量信息可以指音乐的声音强度信息,音量的单位可以为分贝。音频信息可以指音乐的声音频率信息,音频的单位可以为赫兹。
55.在一些实施例中,在获取音乐后,可以对音乐进行解析以获得音乐帧信息,例如,音乐帧信息中音乐帧的拍子信息、音量信息等信息可以储存在音乐的封装信息中,音频信息可以是各个音乐帧对应的音乐波形片段。在一些实施例中,可以通过识别算法处理音乐和/或音乐帧序列以得到音乐帧信息,例如,可以通过识别算法确认拍子信息,然后基于拍子信息确定音乐帧序列,最后根据音乐帧中音乐波形的形状以及幅度确定音量信息以及音频信息,其中,识别算法可以包括频谱分析算法、包络提取算法、周期性检测算法等。
56.步骤320,通过动作生成模型,基于音乐帧序列生成对应的骨骼动作序列。在一些实施例中,可以由动作生成模块220执行步骤320。
57.在一些实施例中,动作生成模型可以存储在存储设备140中,可以通过动作生成模块220调用动作生成模型来实现步骤320。其中,音乐帧序列可以作为动作生成模型的输入,骨骼动作序列作为动作生成模型的输出。在一些实施例中,动作生成模块220可以为机器学习模型。例如,动作生成模型可以包括cnn(卷积神经网络,convolutional neural networks)、rnn(循环神经网络,recurrent neural network)、gan(生成式对抗网络,generative adversarial networks)等人工神经网络以及相关改良型人工神经网络。特别地,动作生成模型可以包括transformer模型。关于动作生成模型的更多具体内容可以参见步骤320的更多具体说明和图4及其相关说明。
58.虚拟角色可以是各种虚拟的人物、动物、植物等角色,虚拟角色可以有其对应的虚拟角色骨骼以及骨骼模型,其中,虚拟角色的骨骼可以包括虚拟角色的身体骨骼、躯体的关键节点。骨骼模型可以指至少一个身体骨骼和/或至少一个关键节点构成的模型,虚拟角色的骨骼模型可以反映虚拟角色的躯体结构。例如,虚拟人物的骨骼模型中,手部可以包括15个关键节点(手掌,拇指第一关节、拇指第二关节、食指第一关节、食指第二关节、食指第三关节、中指第一关节、中指第二关节、中指第三关节、无名指第一关节、无名指第二关节、无名指第三关节、小指第一关节、小指第二关节、小指第三关节等),骨骼模型中的关键节点可以用各个关节对应的二维或三维轮廓来表示,也可以用节点和线条来表示。
59.在一些实施例中,虚拟角色的骨骼模型可以根据虚拟角色类型(如人物性别、人物身份等)、虚拟角色人物特点(如年龄、身高等)、画面精度、播放介质等实际需要确定。
60.在一些实施例中,当虚拟形象用于虚拟dj人物时,骨骼模型可以包括15个关键节点,具体可以参考本技术图6所示的骨骼模型关键节点的结构示意图。如图6所示,骨骼模型可以包括头部(head)、脊柱(spine)、臀部(hips)、左手(left hand)、左前臂(left forearm)、左臂(left arm)、右手(right hand)、右前臂(right forearm)、右臂(right arm)、左大腿(left upleg)、左小腿(left leg)、左足(left foot)、右大腿(right upleg)、右小腿(right leg)、右足(right foot)。其中,各个节点名字可以表征节点与骨骼模型的对应关系或者节点之间与骨骼模型的对应关系,例如,头部节点可以表征骨骼模型中模型头部的位置。再例如,脊柱节点(spine)与臀部节点(hips)之间的骨骼可以表征骨骼模型中的脊柱位置与形态。
61.骨骼动作可以指虚拟角色的骨骼姿态。骨骼动作序列可以为多个骨骼动作所组成的序列,可以反映骨骼的姿态变化。在一些实施例中,骨骼动作与音乐帧对应,表示虚拟角色在该音乐帧对应的骨骼动作,骨骼动作序列可以是多个音乐帧对应的多个骨骼动作构成的序列。在一些实施例中,当音乐的节拍点作为音乐帧的分割点时,骨骼动作序列中的每个骨骼动作可以与音乐的各个节拍点对应,进而使虚拟角色的动作与节拍点准确匹配,提高了虚拟角色的动作与音乐节奏的适应性。
62.骨骼动作的表征方法与表征参数可以根据实际需要确定,骨骼动作可以包括骨骼姿态相关的各种参数中的一种或多种。在一些实施例中,考虑到骨骼动作主要由位置、旋转姿态等来指导完成,所以骨骼动作可以通过骨骼位置以及骨骼旋转参数表征,对应的,骨骼动作序列中的骨骼动作可以包括与音乐帧对应的至少一个骨骼的骨骼位置以及骨骼旋转参数,所述的至少一个骨骼是虚拟角色的骨骼模型中包括的至少一个骨骼。在一些实施例中,骨骼动作还可以直接表征为骨骼位置以及节点朝向,其中节点朝向可以包括该骨骼节点对应的骨骼模型的朝向(例如,左手节点中掌心的朝向)、运动方向以及运动加速度方向中的至少一种。
63.在一些实施例中,骨骼动作可以包括某个音乐帧对应的骨骼动作所包括的各个参数及其取值,可以通过向量表示,骨骼动作序列可以包括多个骨骼动作对应的多个向量。在一些实施例中,一个骨骼动作可以包括至少一个骨骼(例如虚拟角色的骨骼模型中包括的至少一个骨骼)的至少一个位置参数以及至少一个旋转参数。例如,虚拟角色为三维角色时,一个骨骼动作的向量可以包括多个坐标轴(例如x轴、y轴、z轴)对应的多个位置参数,以及多个表征骨骼旋转状态的参数(例如三维旋转中的四元数中包括的4个旋转参数,又例如
欧拉角等旋转参数),当骨骼动作序列包括t帧音乐帧对应的t个骨骼动作,一个骨骼动作包括n个骨骼的3个位置参数和4个旋转参数时,每帧对应的骨骼动作可以表示为n*(3+4)维的向量,骨骼动作序列则可以表示为t个n*(3+4)维的向量。
64.在一些实施例中,动作生成模块230可以先根据音乐帧序列生成音乐帧编码向量序列,然后根据音乐帧编码向量序列生成骨骼动作序列。基于此,可以提高动作生成模型对音乐帧序列的解析能力。其中,音乐帧编码向量序列包括音乐帧序列中多个音乐帧对应的多个音乐帧编码向量。
65.在一些实施例中,音乐帧编码向量序列中各个音乐帧编码向量可以表征音乐帧的特征信息,例如,音乐帧编码向量可以包括音乐帧的音量特征、拍子特征以及音频特征等。
66.在一些实施例中,动作生成模型可以包括编码网络,音乐帧编码向量可以通过编码网络生成,例如,transformer中的编码网络、rnn编码模型等可以用于实现编码的网络模型。在一些实施例中,编码网络可以包括一个或多个编码器(例如包括多个编码器的transformer编码网络)。
67.在一些实施例中,编码网络可以包括引入了自注意力机制(也记作自相关关系)的机器学习模型,例如,引入注意力机制的rnn模型,transformer模型等,对应的,各个音乐帧编码向量可以包括该音乐帧与其他音乐帧的相关关系,音乐帧编码向量序列可以包括各个音乐帧的相关关系。例如,对于t帧的音乐帧序列,音乐帧编码向量序列可以表征为t
×
t的矩阵,矩阵中各行表征该行/列对应的音乐帧与其他音乐帧的相关关系,音乐帧编码向量可以是矩阵中一行或一列的值。
68.基于此,音乐帧序列中音乐帧特征的改变可以通过音乐帧编码向量序列体现,例如,当音乐帧序列包括20帧音乐帧时,操作人员可以在第10帧执行音乐帧调整操作(例如,调节音量),调整后的音乐帧序列经编码网络处理,输出的音乐帧编码向量序列可以体现出前10帧在音量上相关,后10帧在音量上相关,前10帧音乐序列与后10帧音乐序列在音量上不相关,这一相关关系可以在后续操作中被解析,进而使第10帧对应的骨骼动作与调节音量的动作对应。关于音乐帧调整操作的详细内容可以参考本技术图4的相关描述。
69.在一些实施例中,可以先获取音乐帧序列中各个音乐帧的位置向量表示;然后通过编码网络,根据音乐帧序列和音乐帧序列中各个音乐帧的位置向量表示生成音乐帧编码向量序列。
70.在一些实施例中,为提高音乐帧编码向量的精度,减少编码过程的运算量。在根据音乐帧序列确定音乐帧编码向量序列前,可以先对音乐帧进行特征提取处理,得到各个音乐帧对应的音乐帧特征,从而得到音乐帧序列对应的音乐帧特征序列。具体的,根据音乐帧序列生成音乐帧编码向量序列可以包括先根据音乐帧序列生成音乐帧特征序列,然后根据音乐帧特征序列生成音乐帧编码向量序列。在一些实施例中,对音乐帧进行特征提取可以通过特征提取网络实现,例如,nn(神经网络,neural networks)、cnn等。
71.在一些实施例中,动作生成模型还可以包括解码网络,解码网络用于基于音乐帧编码向量确定骨骼动作序列。在一些实施例中,解码网络可以通过各种可以处理音乐帧编码向量得到对应的骨骼动作的网络模型实现,例如,深度神经网络、transformer解码网络等。在一些实施例中,解码网络可以包括一个或多个解码器(例如包括多个解码器的transformer解码网络)。
72.在一些实施例中,还可以确定音乐帧序列的起始骨骼动作和停止骨骼动作。其中,当前音乐帧序列的停止骨骼动作还可以作为下一音乐帧序列的起始骨骼动作,可以保证虚拟角色在多段音乐切换时的动作连贯性。在一些实施例中,根据音乐帧编码向量序列生成骨骼动作序列可以包括根据音乐帧编码向量序列、起始骨骼动作和停止骨骼动作得到骨骼动作序列。
73.在一些实施例中,起始骨骼动作和停止骨骼动作可以根据音乐帧序列的音乐信息和/或实际需求进行设定。在一些实施例中,动作生成模型还可以包括双向循环神经网络,进而可以通过动作生成模型,根据音乐帧编码向量序列、起始骨骼动作和停止骨骼动作得到骨骼动作序列。更多关于动作生成模型和生成骨骼动作序列的具体内容可以参考图4及其相关描述。
74.步骤330,基于骨骼动作序列和对应的骨骼模型,生成虚拟角色动画。在一些实施例中,可以由动画生成模块230执行步骤330。
75.在一些实施例中,可以将骨骼动作序列中的各个骨骼动作套在对应的骨骼模型上,并将各个骨骼动作拼接,从而得到虚拟角色动画。具体地,可以将骨骼动作序列中的各个骨骼动作拼接得到骨骼动作动画,进而将骨骼动作动画套用在虚拟角色的模型上(例如将骨骼动作动画导入计算机程序中,计算机程序将骨骼动作动画套用在虚拟角色的模型上),从而得到虚拟角色动画。在一些实施例中,将骨骼动作序列中的各个骨骼动作套在对应的骨骼模型上可以通过骨骼蒙皮技术实现,即将虚拟角色的骨骼(关键节点)与骨骼模型的对应位置绑定,从而将骨骼动作参数转化为骨骼模型的动作。
76.在一些实施例中,还可以对骨骼动作序列进行骨骼动作补充,具体地,对于骨骼动作序列中的两个相邻骨骼动作,可以进一步在该两个相邻骨骼动作之间补充一个或多个骨骼动作,以使得基于补充后的骨骼动作序列生成的虚拟角色动画可以更加流畅和平滑。
77.在一些实施例中,在该两个相邻骨骼动作之间补充一个或多个骨骼动作可以通过数据拟合的方式实现。其中,拟合可以理解为基于已知的数据点拟合得到数据曲线或数据的函数,实现数据修匀(数据平滑)。根据数据拟合方法,可以基于骨骼动作序列中的多个骨骼动作拟合得到骨骼动作对应的数据曲线或函数,从而基于该数据曲线或函数可以得到两个相邻骨骼动作之间的补充的一个或多个骨骼动作。然后,可以基于骨骼动作序列和拟合骨骼动作得到虚拟角色动画(例如先得到骨骼动作动画,再将骨骼动作动画套用在虚拟角色的模型上,得到虚拟角色动画)。在本说明书中,根据数据拟合方法得到的补充的骨骼动作可以称为拟合骨骼动作。
78.在一些实施例中,数据拟合方法可以包括高斯拟合、多项式拟合、hermite曲线拟合等。
79.在一些实施例中,上述生成虚拟角色动画的方法中部分步骤可以更改顺序。例如,可以先确定各个音乐帧对应的动画,然后基于各个音乐帧的动画拟合出中间帧的动画以得到整体虚拟角色动画。
80.图4是本说明书一些实施例提供的一种动作生成模型的示例性结构框图。
81.如图4所示,动作生成模型400可以包括编码网络410、双向神经网络420以及解码网络430。
82.编码网络410可以用于根据音乐帧序列生成音乐帧编码向量序列。在一些实施例
中,编码网络410可以由transformer编码器组成,可以包括多个串联的transformer编码器,以实现获取更加深层次的音乐帧序列的音乐信息。具体地,第一个transformer编码器的输入为音乐帧序列,最后一个transformer编码器输出音乐帧编码向量序列,中间transformer编码器输入为前一个transformer编码器的编码输出。
83.对于每一层transformer编码器,编码器的输入可以经位置编码、多头注意力机制层(multi-head-attention)以及前馈神经网络得到编码器的输出。其中,多头注意力机制层可以使本层输出中包含本层输入的自相关关系。transformer编码器还可以根据实际需要设置其他结构,例如,归一化层、叠加层等。
84.双向循环神经网络420可以用于基于音乐帧编码向量序列、起始骨骼动作和停止骨骼动作得到初始骨骼动作序列。其中,双向循环神经网络420指可以从过去的时间点获取记忆,又可以从未来的时间点获取信息的循环神经网络,即对于某个时刻t的初始骨骼动作的确定同时受到起始骨骼动作与停止骨骼动作的影响。在一些实施例中,双向循环神经网络420可以包括双向长短时记忆循环神经网络(bi-directional long short-term memory,blstm)或类似的神经网络模型,双向长短时记忆循环神经网络的内部结构可以参考图4。
85.解码网络430可以用于基于音乐帧编码向量序列和初始骨骼动作序列,得到骨骼动作序列。在一些实施例中,解码网络430可以由transformer解码器组成,可以包括多个串联的transformer解码器。其中,第一个transformer解码器的输入为音乐帧编码向量序列和初始骨骼动作序列,最后一个transformer解码器输出为骨骼动作序列,中间transformer解码器的输入为前一个transformer解码器的输出。
86.对于每一层transformer解码器,解码器可以对输入的数据(例如上一层解码器的解码输出或者音乐帧编码向量序列,又或者音乐帧编码向量序列和初始骨骼动作序列)执行蒙面多头注意力机制层(mask multi-head-attention)以计算当前骨骼动作和已经调整后的骨骼动作之间的关系,然后将计算结果与音乐帧编码向量序列一同执行多头注意力机制层(multi-head-attention)以计算当前调整的骨骼动作和编码向量之间的关系,最后通过前馈神经网络与softmax回归函数得到解码器的输出。transformer解码器还可以根据实际需要设置其他结构,例如,归一化层、叠加层等。
87.通过本实施例,动作生成模型输出的骨骼动作可以准确反应出音乐帧序列之间的相关关系,与音乐帧序列呈现高度的关联性。同时骨骼动作的生成受到从起始骨骼动作和停止骨骼动作的影响,使得生成的骨骼动作序列更加连贯,方便多个音乐帧序列的拼接。
88.在一些实施例中,虚拟角色用于虚拟dj时,虚拟角色的动作可以包括两类:即兴表演与技术动作,其中,舞蹈动作可以指虚拟dj在一首歌的主体部分,根据音乐的旋律以及音乐的节拍做出包括跳舞、摇摆等动作。技术动作可以指虚拟dj在播放音乐时为提高播放效果所采用的技术动作,技术动作可以包括设置热记忆点(hot cue)、调解音高(调整pitch)、调节音量、调解音乐均衡器(拧eq)等技术动作中的一种或多种。虚拟dj的技术动作与操作人员对原始音乐的音乐帧操作对应。其中,设置热记忆点可以理解为在音乐中设置记忆点(播放点),并将音乐的播放位置转跳到记忆点的位置,调解音高可以理解为音乐添加效果(例如,音乐升调、降调等),调解音乐均衡器可以理解为对音乐中各个频率声音的调解,例如,音乐均衡器中63、160通道表征低频信息,与音乐中打击乐器的表现相关。
89.在一些实施例中,操作人员可以直接输入包含音乐帧操作指令的音乐帧序列,包含音乐帧操作指令的音乐帧序列在进行编码时可以根据内部相关关系识别出音乐帧操作指令从而体现在音乐帧编码向量序列。例如,当调节音量时,调解后的音乐帧音量可能小于之前的音乐帧音量,这样的差异会体现在各个音乐帧序列的相关关系中,从而体现在音乐帧编码向量序列,在后续解码时,可以根据该相关关系解析出虚拟角色执行了调节音量这一技术动作。
90.在一些实施例中,为减少训练难度,操作人员在确定原始音乐后,可以实时输入音乐帧操作指令,处理设备112根据原始音乐以及音乐帧操作指令确定音乐帧序列。在一些实施例中,可以以音乐帧操作指令所对应位置作为序列切分点,对处理后的原始音乐分割以得到多个音乐帧序列。由此,音乐帧序列的起始骨骼动作和停止骨骼动作可以与音乐帧操作指令所指示的技术动作对应,从而实现技术动作与舞蹈动作的流畅衔接。
91.图5是根据本说明书一些实施例所示的动作生成模型训练方法的示例性流程图。如图5所示,流程500具体可以包括步骤510、步骤520。在一些实施例中,流程500可以由处理设备112执行。
92.步骤510,获取至少一个训练样本以及初始动作生成模型。其中,训练样本包括音乐样本及其对应的动作样本。初始动作生成模型可以是未经调整模型参数或还未达到要求的动作生成模型400。训练样本的数量可以根据动作生成模型的精度需求、实际应用场景等因素选取。
93.在一些实施例中,可以获取各种音乐作为音乐样本,对于音乐样本可以得到器对应的音乐帧序列,以及还可以根据音乐样本库中音乐的音乐参数,人为地制作虚拟角色动画并导出动画的运动参数,以得到与音乐样本对应的动作样本(例如与各个音乐帧对应的虚拟角色动作,又例如一段音乐(包括多个音乐帧)对应的虚拟角色动画(包括多个虚拟角色动作)),进而建立动作样本库。
94.在一些实施例中,还可以根据音乐样本的类型、音乐的bpm等音乐参数的相似度对音乐样本进行分类,并基于分类结果构建训练样本。例如,可以先根据音乐样本的音乐帧信息对音乐样本进行分类,得到音乐样本的分类结果,其中,分类结果可以包括不同bpm的电子音乐。然后,根据分类结果以及每个类别中各个音乐样本对应的动作样本,生成各个类别对应的动作样本库。
95.对于同一类别的音乐样本可以对应相同的动作样本库,训练后的动作生成模型对该类型的音乐有较高的识别能力,同时,对于类型相似的音乐也具备了一定的迁移能力与适应能力。
96.在一些实施例中,为提高动作生成模型对音乐调整操作(技术动作)的表征能力,可以对音乐样本进行处理,引入音乐调整操作,扩大样本范围。具体地,可以先获取待处理音乐样本例如一个或多个音乐。然后,根据待处理音乐样本确定待处理音乐样本的音乐调整操作,例如在单个音乐中间进行随机位置的频率音量变化模拟实际打碟过程中的变化,扩充数据集样本,并同样进行分类,和对应动作样本。
97.在一些实施例中,为模拟dj的即兴操作,前述音乐调整操作可以包括随机插入在待处理音乐样本中的至少一个的随机音乐帧操作指令,响应于音乐调整操作,在对应的动作样本中可以添加与音乐帧操作指令对应的技术动作。例如,对于一个3min的待处理音乐
样本,可以在50s处执行hot cue操作将音乐回放至45s,可以在1min23s处调解音高、在2min时调节音量,在对应的动作样本中,虚拟dj可以在50s处进行了hot cue动作,在1min23s处执行调整pitch动作,在2min处执行音量键调解动作。
98.在一些实施例中,可以对进行音乐调整操作后的音乐样本进行分类处理,以扩展每个类别中各个音乐样本的数量。在一些实施例中,音乐调整操作可以包括调整音乐样本类型的操作,例如,混音,调节bpm等,从而进一步扩展每个类别中各个音乐样本的数量。
99.步骤520,基于训练样本迭代更新初始动作生成模型的参数以得到动作生成模型。
100.在一些实施例中,可以将音乐样本对应的音乐帧序列输入初始动作生成模型,初始动作生成模型得到对应的输出即骨骼动作序列,音乐样本所对应动作样本的骨骼动作序列可以作为该音乐样本对应的标签,每一次迭代都可以根据模型输出与标签的对比结果来调整或更新模型的参数,以使得模型输出与标签的差异最小化。在一些实施例中,可以基于模型输出与标签的差异确定模型的损失函数,以基于损失函数来调整或更新模型的参数。在一些实施例中,可以提前通过人工来标记各个音乐帧中对应的骨骼动作标签值。在一些实施例中,迭代更新模型参数的方法可以包括随机梯度下降等常规的模型训练方法。
101.基于此,本说明书将动作生成模型整体包装为初始动作生成模型,动作生成模型中的各个参数在随初始动作生成模型训练中同时确定,减少了工程的复杂度。同时避免了多模块(例如,图4中的编码网络410、双向循环神经网络420以及解码网络430)中训练目标不一致导致的宏观目标偏差,进而提高了人体姿态预估系统的整体性能。
102.根据前述内容可知,本说明书一些实施例可能带来的有益效果包括但不限于:(1)通过音乐帧序列自动生成虚拟角色动画,降低了人工成本;(2)引入音乐帧序列的内部相关关系可以分析出技术操作对音乐帧序列的影响,进而确定虚拟dj的技术操作;(3)引入起始骨骼动作和停止骨骼动作,使各个音乐帧序列的衔接更为连贯;(4)将动作生成模型进行整体包装训练,减少了工程的复杂度,避免了多模块中训练目标不一致导致的宏观目标偏差,进而提高了人体姿态预估系统的整体性能。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
103.上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
104.同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
105.此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本
说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
106.同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
107.一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有
±
20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
108.针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
109.最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
技术特征:
1.一种虚拟角色动画生成方法,包括:获取音乐帧序列,所述音乐帧序列中的各个音乐帧包括音乐帧信息;通过动作生成模型,基于所述音乐帧序列生成对应的骨骼动作序列;以及基于所述骨骼动作序列和对应的骨骼模型,生成虚拟角色动画。2.根据权利要求1所述的方法,所述音乐帧信息包括以下中的一种或多种:音乐帧的拍子信息、音量信息以及音频信息。3.根据权利要求1所述的方法,所述骨骼动作序列中的骨骼动作包括与音乐帧对应的至少一个骨骼的骨骼位置以及骨骼旋转参数。4.根据权利要求1所述的方法,所述基于所述音乐帧序列生成对应的骨骼动作序列包括:根据所述音乐帧序列生成音乐帧编码向量序列;以及根据所述音乐帧编码向量序列生成所述骨骼动作序列。5.根据权利要求4所述的方法,所述根据所述音乐帧编码向量序列生成所述骨骼动作序列动作包括:获取所述音乐帧序列的起始骨骼动作和停止骨骼动作;以及根据所述音乐帧编码向量序列、起始骨骼动作和停止骨骼动作得到所述骨骼动作序列。6.根据权利要求5所述的方法,所述动作生成模型包括编码网络、双向循环神经网络和解码网络;所述基于所述音乐帧序列生成对应的骨骼动作序列包括:通过所述编码网络,根据所述音乐帧序列生成所述音乐帧编码向量序列;通过所述双向循环神经网络,基于所述音乐帧编码向量序列、所述起始骨骼动作和所述停止骨骼动作得到初始骨骼动作序列;以及通过所述解码网络,基于所述音乐帧编码向量序列和所述初始骨骼动作序列,得到所述骨骼动作序列。7.根据权利要求1所述的方法,所述基于所述骨骼动作序列和对应的骨骼模型,生成虚拟角色动画包括:通过数据拟合方法获取骨骼动作序列中两个骨骼动作之间的至少一个拟合骨骼动作;基于所述骨骼动作序列和所述拟合骨骼动作得到骨骼动作动画;以及基于所述骨骼动作动画和所述骨骼模型生成所述虚拟角色动画。8.根据权利要求1所述的方法,所述动作生成模型的获得方法包括:获取至少一个训练样本以及初始动作生成模型,其中,训练样本包括音乐样本及其对应的动作样本;以及基于所述至少一个训练样本迭代更新所述初始动作生成模型的参数以得到所述动作生成模型。9.一种虚拟角色动画生成系统,包括:获取模块,用于获取音乐帧序列,所述音乐帧序列中的各个音乐帧包括音乐帧信息;动作生成模块,用于通过动作生成模型,基于所述音乐帧序列生成对应的骨骼动作序列;以及动画生成模块,用于基于所述骨骼动作序列和对应的骨骼模型,生成虚拟角色动画。
10.一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行如权利要求1~8中任一项所述的方法。
技术总结
本说明书实施例提供一种虚拟角色动画生成方法,该方法包括获取音乐帧序列,所述音乐帧序列中各个音乐帧包括音乐帧信息;通过动作生成模型,基于所述音乐帧序列生成对应的骨骼动作序列以及基于所述骨骼动作序列和对应的骨骼模型,生成虚拟角色动画。生成虚拟角色动画。生成虚拟角色动画。
技术研发人员:渠思源
受保护的技术使用者:北京慧夜科技有限公司
技术研发日:2021.12.14
技术公布日:2022/3/8