CN111179385B - 一种舞蹈动画的处理方法及装置、电子设备、存储介质 - Google Patents
一种舞蹈动画的处理方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN111179385B CN111179385B CN201911419702.2A CN201911419702A CN111179385B CN 111179385 B CN111179385 B CN 111179385B CN 201911419702 A CN201911419702 A CN 201911419702A CN 111179385 B CN111179385 B CN 111179385B
- Authority
- CN
- China
- Prior art keywords
- action
- dance
- segment
- music
- sequence
- 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.)
- Active
Links
Images
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
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/205—3D [Three Dimensional] animation driven by audio data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/762—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/806—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/84—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using probabilistic graphical models from image or video features, e.g. Markov models or Bayesian networks
- G06V10/85—Markov-related models; Markov random fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/41—Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供了一种舞蹈动画的处理方法及装置、电子设备、存储介质,所述方法包括:获取多个舞蹈动作片段,并建立针对多个舞蹈动作片段的动画状态转移关系,其中,动画状态转移关系中每个动作节点对应一舞蹈动作片段,各个动作节点之间存在转移代价;获取目标音频文件,并确定针对目标音频文件的音乐特征序列;结合动画状态转移关系中的转移代价,确定针对音乐特征序列的舞蹈动作序列;采用舞蹈动作序列,生成针对目标音频文件的舞蹈动画。通过本申请实施例,实现了对舞蹈动画的制作,提升了制作的舞蹈动画与音乐的匹配度,且缩短了制作周期、降低了制作成本。
Description
技术领域
本申请涉及动画处理技术领域,特别是涉及一种舞蹈动画的处理方法及装置、电子设备、存储介质。
背景技术
音乐和舞蹈一直以来都是密不可分的两种艺术形式,而应用在游戏中,可以根据如热门歌曲等音乐为游戏中虚拟游戏角色制作舞蹈动画。
在现有技术中,通常采用动作捕捉、动画师手动制作(手动K帧)等方式进行舞蹈动画制作,而采用这种方式,可能会导致舞蹈动画的制作周期长、制作成本高,且难以制作的舞蹈动画与音乐的匹配度不高。
发明内容
鉴于上述问题,提出了以便提供克服上述问题或者至少部分地解决上述问题的一种舞蹈动画的处理方法及装置、电子设备、存储介质,包括:
一种舞蹈动画的处理方法,所述方法包括:
获取多个舞蹈动作片段,并建立针对所述多个舞蹈动作片段的动画状态转移关系图;,其中,所述动画状态转移关系图中每个动作节点对应一舞蹈动作片段,所述各个动作节点之间存在转移代价;
获取目标音频文件,并确定针对所述目标音频文件的音乐特征序列;其中,所述音乐特征序列包括多个音乐特征片段;
结合所述动画状态转移图关系中的转移代价,确定针对所述音乐特征序列的舞蹈动作序列;其中,所述舞蹈动作序列包括多个舞蹈动作片段,每个舞蹈动作片段对应一音乐特征片段;
采用所述舞蹈动作序列,生成针对所述目标音频文件的舞蹈动画。
可选地,所述结合所述动画状态转移图动画状态转移关系中的转移代价,确定针对所述音乐特征序列的舞蹈动作序列,包括:
预置一隐马尔可夫模型;
将所述动画状态转移图动画状态转移关系中动作节点作为隐状态、所述音乐特征序列作为可观测状态输入所述隐马尔可夫模型;
获取所述隐马尔可夫模型输出针对所述音乐特征序列的舞蹈动作序列。
可选地,所述隐马尔可夫模型采用如下方式生成针对所述音乐特征序列的舞蹈动作序列:
在第N个音乐特征片段时,确定所述动画状态转移图动画状态转移关系中每个动作节点对应的最小代价及所述最小代价对应的最小代价路径;其中,N为大于1的正整数,所述最小代价路径包括一个或多个动作节点;
在所述第N个音乐特征片段为最后一个音乐特征片段时,比较每个动作节点对应的最小代价,得到目标动作节点;
采用所述目标动作节点对应的最小代价路径,生成针对所述音乐特征序列的舞蹈动作序列。
可选地,所述在第N个音乐特征片段时,确定所述动画状态转移图动画状态转移关系中每个动作节点对应的最小代价及所述最小代价对应的最小代价路径,包括:
针对所述动画状态转移图动画状态转移关系中每个动作节点,确定与所述第N个音乐特征片段的匹配代价,作为第一代价分值;
确定所述动画状态转移图动画状态转移关系中任一动作节点相对于所述动作节点的转移代价,作为多个第二代价分值;
获取在第N-1个音乐特征片段时所述动画状态转移图动画状态转移关系中每个动作节点对应的最小代价,作为第三代价分值;
结合所述第一代价分值、所述多个第二代价分值、所述第三代价分值,得到多个整体代价;
确定最小的整体代价为所述动作节点的最小代价,并确定所述最小代价对应的最小代价路径。
可选地,所述结合所述第一代价分值、所述多个第二代价分值、所述第三代价分值,得到多个整体代价,包括:
在当前满足重复性约束时,确定一惩罚代价,作为第四代价分值;
结合所述第一代价分值、所述多个第二代价分值、所述第三代价分值、所述第四代价分值,得到整体代价。
可选地,所述重复性约束包括:
存在至少两个相同的音乐特征片段对应的舞蹈动作片段不同;
或者,在预设区间范围内,存在至少两个不相同的音乐特征片段对应的舞蹈动作片段相同。
可选地,所述匹配代价包括强度匹配代价,和/或,时长匹配代价,和/或,风格匹配代价,所述确定与所述第N个音乐特征片段的匹配代价,包括:
确定所述动作节点对应的舞蹈动作片段的动作强度,以及所述第N个音乐特征片段的音乐强度;
结合所述动作强度和所述音乐强度,确定与所述第N个音乐特征片段的强度匹配代价;
和/或,确定所述动作节点对应的舞蹈动作片段的动作时长,以及所述第N个音乐特征片段的音乐时长;
结合所述动作时长和所述音乐时长,确定与所述第N个音乐特征片段的时长匹配代价;
和/或,确定所述动作节点对应的舞蹈动作片段的动作风格,以及所述第N个音乐特征片段的音乐风格;
结合所述动作风格和所述音乐风格,确定与所述第N个音乐特征片段的风格匹配代价。
可选地,所述舞蹈动作片段包括第一舞蹈动作片段和第二舞蹈动作片段,所述第一舞蹈动作片段对应有音乐风格信息,所述动作风格采用如下方式确定:
采用所述音乐风格信息,确定所述第一舞蹈动作片段的动作风格;
按照所述动作风格,对所述第一舞蹈动作片段进行聚类,得到多个动作聚类簇;
确定所述第二舞蹈动作片段对应的目标动作聚类簇,并将所述目标动作聚类簇对应的动作风格作为所述第二舞蹈动作片段的动作风格。
可选地,所述建立针对所述多个舞蹈动作片段的动画状态转移图动画状态转移关系,包括:
建立所述多个舞蹈动作片段对应的动作节点;
确定各个动作节点之间存在转移代价;
在所述转移代价大于预设转移代价的动作节点之间建立连边连边关系,得到针对所述多个舞蹈动作片段的动画状态转移图动画状态转移关系。
可选地,所述采用所述舞蹈动作序列,生成针对所述目标音频文件的舞蹈动画,包括:
当所述舞蹈动作序列中舞蹈动作片段的脚步为指定状态时,对所述舞蹈动作片段进行脚步修正;
所述指定状态包括:
双脚均在地面滑动、一只脚在地面滑动且另一只脚未固定在地面。
可选地,所述方法还包括:
获取原始舞蹈动作数据;
确定所述原始舞蹈动作数据中的动作节奏点特征,并按照所述动作节奏点特征,对所述原始舞蹈动作数据进行切分,得到多个舞蹈动作片段。
可选地,所述动作节奏点特征包括以下任一项或多项:
关节加权角速度曲线、关节轨迹曲线、脚步高度曲线。
可选地,所述原始舞蹈动作数据包括第一原始舞蹈动作数据和第二原始舞蹈动作数据,所述获取原始舞蹈动作数据,包括:
获取第一原始舞蹈动作数据;
采用所述第一原始舞蹈动作数据,进行动作扩充,得到第二原始舞蹈动作数据。
可选地,采用如下方式进行动作扩充:
动作镜像、动作融合、动作曲线控制。
一种舞蹈动画的处理装置,所述装置包括:
动画状态转移图动画状态转移关系建立模块,用于获取多个舞蹈动作片段,并建立针对所述多个舞蹈动作片段的动画状态转移图动画状态转移关系;其中,所述动画状态转移图动画状态转移关系中每个动作节点对应一舞蹈动作片段,所述各个动作节点之间存在转移代价;
音乐特征序列确定模块,用于获取目标音频文件,并确定针对所述目标音频文件的音乐特征序列;其中,所述音乐特征序列包括多个音乐特征片段;
舞蹈动作序列确定模块,用于结合所述动画状态转移图动画状态转移关系中的转移代价,确定针对所述音乐特征序列的舞蹈动作序列;其中,所述舞蹈动作序列包括多个舞蹈动作片段,每个舞蹈动作片段对应一音乐特征片段;
舞蹈动画生成模块,用于采用所述舞蹈动作序列,生成针对所述目标音频文件的舞蹈动画。
一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的舞蹈动画的处理方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的舞蹈动画的处理方法的步骤。
本申请实施例具有以下优点:
在本申请实施例中,通过获取多个舞蹈动作片段,并建立针对多个舞蹈动作片段的动画状态转移关系,动画状态转移关系中每个动作节点对应一舞蹈动作片段,各个动作节点之间存在转移代价,然后获取目标音频文件,并确定针对目标音频文件的音乐特征序列,音乐特征序列包括多个音乐特征片段,结合动画状态转移关系中的转移代价,确定针对音乐特征序列的舞蹈动作序列,并采用所述舞蹈动作序列,生成针对目标音频文件的舞蹈动画,实现了对舞蹈动画的制作,提升了制作的舞蹈动画与音乐的匹配度,且缩短了制作周期、降低了制作成本。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的一种舞蹈动画的处理方法的步骤流程图;
图2a是本申请一实施例提供的一种图形用户界面的示意图;
图2b是本申请一实施例提供的另一种图形用户界面的示意图;
图3是本申请一实施例提供的一种舞蹈动画的处理实例的示意图;
图4a是本申请一实施例提供的一种动画状态转移关系的示意图;
图4b是本申请一实施例提供的一种模型处理的示意图;
图4c是本申请一实施例提供的一种风格聚类的示意图;
图4d是本申请一实施例提供的一种模型处理实例的示意图;
图5是本申请一实施例提供的另一种舞蹈动画的处理方法的步骤流程图;
图6a是本申请一实施例提供的一种人体骨骼的示意图;
图6b是本申请一实施例提供的一种动作切分的示意图;
图7是本申请一实施例提供的一种舞蹈动画的处理装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参照图1,示出了本申请一实施例提供的一种舞蹈动画的处理方法的步骤流程图,该方法可以应用于游戏中,如图2a,其可以用于为游戏中虚拟游戏角色制作舞蹈动画,当然也可以应用于其他方面,如图2b,应用于直播中,其可以用于为虚拟直播对象制作舞蹈动画。
以下结合图3进行说明,具体可以包括如下步骤:
步骤101,获取多个舞蹈动作片段,并建立针对所述多个舞蹈动作片段的动画状态转移关系;其中,所述动画状态转移关系中每个动作节点对应一舞蹈动作片段,所述各个动作节点之间存在转移代价;
其中,动画状态转移关系中可以多个动作节点,每个动作节点可以对应一舞蹈动作片段,且各个动作节点之间存在转移代价,则可以在动画状态转移关系的动作节点中存储对应的舞蹈动作片段及其他动作节点之间的转移代价,转移代价可以表征两个舞蹈动作片段之间进行过渡时耗费的价值。
在实际应用中,如图3中动作数据预处理模块,可以预先获取到多个舞蹈动作片段,并可以计算各个舞蹈动作片段之间的转移代价,然后可以针对每个舞蹈动作片段建立一动作节点,并采用转移代价,构建包含多个动作节点的动画状态转移关系,动画状态转移关系可以采用图数据结构、表格、数据库等形式,如图4a所示为采用图数据结构的形式的动画状态转移关系,即动画状态转移图,动画状态转移图中包括动作节点和连接于动作节点之间的连线,其中,连线代表两个动作节点之间的转移代价。
步骤102,获取目标音频文件,并确定针对所述目标音频文件的音乐特征序列;其中,所述音乐特征序列包括多个音乐特征片段;
在制作舞蹈动画的过程中,如图3中音乐特征提取模块,可以获取待制作舞蹈动画的目标音频文件,并可以对目标音频文件进行分析,具体可以从音乐节拍、音乐结构、音乐风格等方面进行音乐特征的分析,确定针对目标音频文件的音乐特征序列,该音乐特征序列可以包括多个音乐特征片段。
步骤103,结合所述动画状态转移关系中的转移代价,确定针对所述音乐特征序列的舞蹈动作序列;其中,所述舞蹈动作序列包括多个舞蹈动作片段,每个舞蹈动作片段对应一音乐特征片段;
由于预先构建了动画状态转移关系,则在获得音乐特征序列后,如图3中舞蹈动作合成模块,可以结合动画状态转移关系中的转移代价,生成针对音乐特征序列的舞蹈动作序列。
在本申请一实施例中,步骤103可以包括如下子步骤:
预置一隐马尔可夫模型(Hidden Markov Model,HMM);将所述动画状态转移关系中动作节点作为隐状态、所述音乐特征序列作为可观测状态输入所述隐马尔可夫模型;获取所述隐马尔可夫模型输出针对所述音乐特征序列的舞蹈动作序列。
其中,隐马尔可夫模型是一个双重随机过程,隐马尔可夫模型的隐含状态不能直接观察到,只能获得可观测状态的信息,隐状态内部有自身的转移概率,同时每个可观测状态又以一定概率对应这各个隐状态。
在合成舞蹈动作时,如图4b,隐状态可以为是动作状态转移图中的各个动作节点,动作节点之间的转移代价表征着隐状态之间的转移概率(动作转移代价越高,转移概率越低),音乐特征序列则可以是可观测状态,音乐特征与动作特征的匹配代价即为观测状态对应各个隐状态的概率大小(音乐与动作匹配代价越低,对应的概率越高)。
应用于本申请实施例中,通过将动画状态转移关系中动作节点作为隐状态、音乐特征序列作为可观测状态输入隐马尔可夫模型,经过模型的处理后,可以获取隐马尔可夫模型输出针对音乐特征序列的舞蹈动作序列。
在本申请一实施例中,HMM模型在给定一个观测序列时,可以通过最大化概率的方法优化出最可能对应的隐状态序列,则可以结合动态规划算法,如维特比算法(Viterbi),该动态规划算法利用了局部最短路的特征,即求解长度为N的序列时只考虑已求出最优解的长度为N-1的路径,避免了采用了近似枚举的优化方法,减少了动画合成的时间。
具体的,隐马尔可夫模型可以采用如下方式生成针对音乐特征序列的舞蹈动作序列:
子步骤11,在第N个音乐特征片段时,确定所述动画状态转移关系中每个动作节点对应的最小代价及所述最小代价对应的最小代价路径;其中,N为大于1的正整数,所述最小代价路径包括一个或多个动作节点;
由于音乐特征序列可以包括多个音乐特征片段,且其具有一定的时间顺序,对于第N个音乐特征片段,可以对动画状态转移关系中每个动作节点都进行分析,确定选取该动作节点时的最小代价,进而可以确定在第N个音乐特征片段时每个动作节点的最小代价路径。
在本申请一实施例中,子步骤11可以包括如下子步骤:
子步骤111,针对所述动画状态转移关系中每个动作节点,确定与所述第N个音乐特征片段的匹配代价,作为第一代价分值;
在第N个音乐特征片段时,针对动画状态转移关系中每个动作节点,可以确定与第N个音乐特征片段的匹配代价,作为第一代价分值。
在本申请一实施例中,匹配代价可以包括强度匹配代价,和/或,时长匹配代价,和/或,风格匹配代价,则子步骤111可以包括如下子步骤:
确定所述动作节点对应的舞蹈动作片段的动作强度,以及所述第N个音乐特征片段的音乐强度;结合所述动作强度和所述音乐强度,确定与所述第N个音乐特征片段的强度匹配代价;
和/或,确定所述动作节点对应的舞蹈动作片段的动作时长,以及所述第N个音乐特征片段的音乐时长;结合所述动作时长和所述音乐时长,确定与所述第N个音乐特征片段的时长匹配代价;
和/或,确定所述动作节点对应的舞蹈动作片段的动作风格,以及所述第N个音乐特征片段的音乐风格;结合所述动作风格和所述音乐风格,确定与所述第N个音乐特征片段的风格匹配代价。
具体的,可以分别从动作强度和音乐强度、动作时长和音乐时长、动作风格和音乐风格等方面来对匹配代价进行分析。
例如,假设目标音频文件通过节拍分析后得到的音乐片段序列为{M0,M2,…MN-1},每个音乐特征片段Mi包含了该音乐特征片段的片段时长,音乐强度值以及音乐风格等信息,动画状态转移关系中的所有舞蹈动作片段为{S0,S2,…SM-1},音乐与舞蹈片段的匹配代价由如下公式确定:
在上述公式中,参数a、b、c、d为调节系数。Intensity(Mi)表示音乐片段的强度,Intensity(Sj)为舞蹈片段的动作强度,两者经过了归一化到了一个同一区间。Time(Mi)和Time(Sj)分别为音乐片段的时长和舞蹈动画的时长。
其中,公式第一项可以用于衡量舞蹈与音乐强弱的匹配度,即强度匹配代价,可以控制节奏强度比较大的音乐片段能够匹配动作强度比较大的舞蹈。
公式第二项衡量舞蹈片段时长与音乐片段时长的接近程度,即时长匹配大家,两者越接近,将舞蹈片段在时间上进行拉升的代价越小。
而且,通过采用指数函数,利用了其非线性,则强度比较接近的片段间的匹配代价更小,而差异一旦稍微变大,匹配代价就会迅速增高。
公式第三项的StyleCost主要用来约束舞蹈与音乐风格的一致性,即重复性约束时的代价(下文会进行详细说明)。如果音乐风格与动作风格不一致时,StyleCost会是一个较大的风格代价惩罚值,否则该项为零。
在本申请一实施例中,舞蹈动作片段可以包括第一舞蹈动作片段和第二舞蹈动作片段,第一舞蹈动作片段对应有音乐风格信息,则动作风格可以采用如下方式确定:
采用所述音乐风格信息,确定所述第一舞蹈动作片段的动作风格;按照所述动作风格,对所述第一舞蹈动作片段进行聚类,得到多个动作聚类簇;确定所述第二舞蹈动作片段对应的目标动作聚类簇,并将所述目标动作聚类簇对应的动作风格作为第二舞蹈动作片段的动作风格。
在实际应用中,如图4c,可以获取网络上开源的一些舞蹈动作数据集以及一些动画师手K或者动捕采集的舞蹈动作数据,其中,有部分舞蹈动作有对应的音乐数据,其余的则为纯动作数据。
对于存在有对应的音乐数据的第一舞蹈动作片段,可以采用音乐数据的音乐风格信息,确定第一舞蹈动作片段的动作风格,然后对第一舞蹈动作片段进行聚类,得到多个动作聚类簇,即图4c中初始聚类簇。
对于纯动作数据的第二舞蹈动作片段,其可以确定第二舞蹈动作片段对应的目标动作聚类簇,加入最近的聚类中心,然后可以目标动作聚类簇对应的动作风格作为第二舞蹈动作片段的动作风格。
子步骤112,确定所述动画状态转移关系中任一动作节点相对于所述动作节点的转移代价,作为多个第二代价分值;
由于预先在动画状态转移关系中存储了各个动作之间的转移代价,对于当前的动作节点,可以确定动画状态转移关系中任一动作节点相对于该动作节点的转移代价,进而可以得到多个第二代价分值。
子步骤113,获取在第N-1个音乐特征片段时所述动画状态转移关系中每个动作节点对应的最小代价,作为第三代价分值;
对于第N个音乐特征片段,其可以获取第N-1个音乐特征片段时动画状态转移关系中每个动作节点对应的最小代价,作为第三代价分值。
子步骤114,结合所述第一代价分值、所述多个第二代价分值、所述第三代价分值,得到多个整体代价;
在获得第一代价分值、多个第二代价分值、第三代价分值,可以对各个代价分值进行累加,得到多个整体代价。
在本申请一实施例中,子步骤114可以包括如下子步骤:
在当前满足重复性约束时,确定一惩罚代价,作为第四代价分值;结合所述第一代价分值、所述多个第二代价分值、所述第三代价分值、所述第四代价分值,得到整体代价。
其中,重复性约束可以包括如下内容:
存在至少两个相同的音乐特征片段对应的舞蹈动作片段不同;或者,在预设区间范围内,存在至少两个不相同的音乐特征片段对应的舞蹈动作片段相同。
在存在至少两个相同的音乐特征片段对应的舞蹈动作片段不同,或者,在预设区间范围内,存在至少两个不相同的音乐特征片段对应的舞蹈动作片段相同,则这种情况是要被丢弃的,则可以确定一惩罚代价,作为第四代价分值,进而可以提升整体代价。
子步骤115,确定最小的整体代价为所述动作节点的最小代价,并确定所述最小代价对应的最小代价路径。
在确定多个整体代价后,每个整体代价对应一条路径,则可以确定最小的整体代价的最小代价,进而确定最小代价对应的最小代价路径。
需要说明的是,当第N-1个音乐特征片段为第1个音乐特征片段时,由于不存在动作转移,则其最小代价即为其自身的匹配代价。
子步骤12,在所述第N个音乐特征片段为最后一个音乐特征片段时,比较每个动作节点对应的最小代价,得到目标动作节点;
在分析至最后一个音乐特征片段时,则可以比较在该音乐特征片段下每个动作节点对应的最小代价,确定其中最小的最小代价对应的动作节点,作为目标动作节点。
子步骤13,采用所述目标动作节点对应的最小代价路径,生成针对所述音乐特征序列的舞蹈动作序列。
在确定目标动作节点后,可以该目标动作节点的最小代价对应的最小代价路径,进而采用该路径中动作节点对应的舞蹈动作片段,生成针对音乐特征序列的舞蹈动作序列。
以下结合具体的公式,对上述过程进行说明:
假设通过音乐节拍切分得到音乐片段序列为{M0,M2,…MN-1},需要分配一个对应长度的舞蹈动作序列并且希望分配得到的动作同音乐片段的匹配代价尽可能小,同时动作片段间的转移代价尽可能小,并且距离较近的动作序列中尽可能不要有重复动作,即希望最小化如下代价函数(即最大化HMM模型的概率):
D(nj-1,nj)为动画状态转移关系中储存的转移代价。转移代价之和越小表示HMM模型的隐状态间的转移概率越大,优化这一项可以提高舞蹈整体的流程程度。
R(nj)为重复性约束项,重复性约束一方面用来防止一些动作片段在很短的区间内反复出现。如果nj与序列与其前若干个状态中存在重复(计算时需要沿当前最优路径的父节点进行回溯),会加一个极大惩罚值。另外重复检测的回溯会有一个回溯长度的上限,设为maxLength。
另一方面R(nj)也会用来约束音乐重复的地方出现相同的动作序列(由音乐结构特征给出),假设{Mi,…Mj}与{Mk,…Ml}被检测出是音乐的重复部分,则可以要求与两部分的动作一致,否则重复性约束会设为一个极大的惩罚值。即:
通过在Viterbi算法的基础上,增加一定的约束就可以得到符合需求的动态规划算法。设状态变量为State(i,j),它表示当前状态已经为M0到Mi的长度为i的音乐序列选择好了舞蹈,并且最后一个动作状态为Sj时的局部匹配代价,则状态转移方程如下:
初始状态为:State(0,j)=α·E(M0,Sj)(j=0,1,…M-1)
最后要求得的结果为:min(State(N-1,j)(j=0,1,…M-1)
其中,上面公式中adj(Sj)表示在动画状态转移关系中状态Sj的入射邻边集合,这样可以减小搜索的范围。如果音乐特征序列的长度为N(观测序列长度为N),动作状态转移图的状态数为D(即隐状态共D个),那么该算法的最差复杂度(即每次求最小值都要枚举整个状态空间)为O(N*D2),不过由于使用了父节点集,且动画图通常都是比较稀疏的,所以可以认为该算法的实际复杂度远低于此,为O(p*N*D),p为最大父节点数。
以下结合图4d,对上述过程进行示例性说明(为了简化说明,以下过程忽略了第一代价分值,即匹配代价):
假设依次存在音乐特征片段A、音乐特征片段B、音乐特征片段C,且数据库中存在舞蹈动作片段1、舞蹈动作片段2、舞蹈动作片段3。
在分析第1个音乐特征片段A时:
可以确定针对舞蹈动作片段1的最小代价为SA1、针对舞蹈动作片段2的最小代价为SA2、针对舞蹈动作片段2的最小代价为SA3。
在分析第2个音乐特征片段B时:
针对舞蹈动作片段1(即第2个音乐特征片段B选取舞蹈动作片段1),可以分别计算出各个舞蹈动作片段至舞蹈动作片段1的转移代价,则存在以下三种情况:
从舞蹈动作片段1转移到舞蹈动作片段1(即第1个音乐特征片段A选取舞蹈动作片段1,第2个音乐特征片段B选取舞蹈动作片段1),得到:
整体代价1=SA1+转移代价1
其中,转移代价1作为第二代价分值,SA1作为第三代价分值。
从舞蹈动作片段2转移到舞蹈动作片段1(即第1个音乐特征片段A选取舞蹈动作片段2,第2个音乐特征片段B选取舞蹈动作片段1),得到:
整体代价2=SA2+转移代价2
其中,转移代价2作为第二代价分值,SA2作为第三代价分值。
从舞蹈动作片段3转移到舞蹈动作片段1(即第1个音乐特征片段A选取舞蹈动作片段3,第2个音乐特征片段B选取舞蹈动作片段1),得到:
整体代价3=SA3+转移代价3
其中,转移代价3作为第二代价分值,SA3作为第三代价分值。
在得到多个整体代价后,可以比较多个整体代价的大小,确定最小的整体代价,作为第2个音乐特征片段B选取舞蹈动作片段1的最小代价SB1:
SB1=min(整体代价1,整体代价2,整体代价3)
(其他舞蹈动作片段以此类推,可以计算出SB2、SB3)
在分析第3个音乐特征片段B时:
按照上述方式,可以分别计算出SC1、SC2、SC3,由于第3个音乐特征片段B为最后一个音乐特征片段,则可以比较SC1、SC2、SC3的大小,假设确定SC1为最小的,则可以确定针对第3个音乐特征片段C的目标动作节点为舞蹈动作片段1,即可以确定第3个音乐特征片段C选取舞蹈动作片段1。
假设在计算最小代价SC1的过程中,确定最小代价SC1为第2个音乐特征片段B选取舞蹈动作片段1,第3个音乐特征片段C选取舞蹈动作片段1时的整体代价,则可以确定第2个音乐特征片段B选取舞蹈动作片段1。
假设在计算最小代价SB1的过程中,确定最小代价SB1为第1个音乐特征片段A选取舞蹈动作片段1,第2个音乐特征片段B选取舞蹈动作片段1时的整体代价,则可以确定第2个音乐特征片段B选取舞蹈动作片段1、第1个音乐特征片段A选取舞蹈动作片段1。
综上,可以得到最后的舞蹈动作序列为第1个音乐特征片段A对应舞蹈动作片段1、第2个音乐特征片段B对应舞蹈动作片段1、第3个音乐特征片段C对应舞蹈动作片段1。
步骤104,采用所述舞蹈动作序列,生成针对所述目标音频文件的舞蹈动画。
在获得舞蹈动作序列后,则可以采用舞蹈动作序列,生成针对目标音频文件的舞蹈动画。
在本申请实施例中,通过获取多个舞蹈动作片段,并建立针对多个舞蹈动作片段的动画状态转移关系,动画状态转移关系中每个动作节点对应一舞蹈动作片段,各个动作节点之间存在转移代价,然后获取目标音频文件,并确定针对目标音频文件的音乐特征序列,音乐特征序列包括多个音乐特征片段,结合动画状态转移关系中的转移代价,确定针对音乐特征序列的舞蹈动作序列,并采用所述舞蹈动作序列,生成针对目标音频文件的舞蹈动画,实现了对舞蹈动画的制作,提升了制作的舞蹈动画与音乐的匹配度,且缩短了制作周期、降低了制作成本。
参照图5,示出了本申请一实施例提供的一种舞蹈动画的处理方法的步骤流程图,具体可以包括如下步骤:
步骤501,获取多个舞蹈动作片段;
在本申请一实施例中,该方法还可以包括如下步骤:
获取原始舞蹈动作数据;确定所述原始舞蹈动作数据中的动作节奏点特征,并按照所述动作节奏点特征,对所述原始舞蹈动作数据进行切分,得到多个舞蹈动作片段。
作为一示例,动作节奏点特征可以包括以下任一项或多项:
关节加权角速度曲线、关节轨迹曲线、脚步高度曲线。
在欣赏一只舞蹈时,观众会很自然的感受到其中的动作节奏点,舞蹈者会通过各种身体的律动来呼应音乐的节拍,要合成节奏感与音乐相符的舞蹈,最基本的就是要检测出舞蹈动作中节奏点的位置,相邻节奏点之间间的动作片段被认定为一个基础舞姿,如一次拍手动作、一次跺脚动作,将动作准确地在节奏点处切分为一个个基础动作片段是后续舞蹈合成算法的基础。
舞蹈动作节奏点切分的准确性会直接影响最终合成舞蹈的节奏感的好坏。不过由于实际的舞蹈动作千姿百态,动作节奏点的特征很多样,所以为了提高动作切分的准确度,综合利用了多个特征来进行分析。这些特征包括关节加权角速度曲线,手部动作轨迹曲线以及脚步高度曲线来进行综合划分。
通过对加权角速度曲线,手部动作轨迹曲线以及脚步高度曲线的分析,可以得到多个节奏划分点的候选集。实际切分时,会以加权角速度曲线为主,结合后两者进行一些补充,对于很接近的多个节奏切分点只会取它们的中点进行切分。另外对于部分较复杂的舞蹈动作,如果自动切分得不够准确,会通过人工对七分位置进行进一步的修正。
另外,基于动作加权角速度曲线,可以继续提炼出每个舞蹈动作片段的动作强度(角速度值的累加平均值)。这个特征值可以方便后续的音乐和动作进行匹配的计算。
对于关节加权角速度曲线:
舞蹈动作在节拍处往往会有一个短暂的暂停,例如常见的挥手动作,手从左边挥到右边再到左边的过程中,当手接近最左边或者最右边时都会有一个短暂的停顿,即角速度逐渐接近零后再反向运动。因此,需要计算单位时间内各关节的角速度大小(单位时间内绕一个关节转动的角度大小)。由于相邻帧的时间间隔很短,可以简化的认为相邻帧的转动角度值就是角速度值。角速度曲线局部极小值点就是动作节奏点的候选点
如图6a为人体骨骼模型图。设vi为人体的第i个关节,Q(vi,f)为vi关节在第f帧时的局部旋转四元数。
用如下公式计算一帧的加权角速度和。其中Angle函数是计算两个四元数夹角的一个基础函数。αi为一个加权参数,因为有些骨骼对于动作的影响比较大,例如手臂和双脚,可以设置更大的加权参数来提高其对结果的影响。
W(f)=Σiαi·Angle(Q(vi,f),Q(vi,f+1))
对于一段舞蹈动画的各帧计算出其加权角速度曲线W(f),经过适当平滑后检测处其中的极小值点就能够得到候选切分位置,如图6b为一段动作按找加权角速度曲线切分的结果。
在一示例中,可以设定一个最小划分长度(片段不至于太短)以及最低能量值(如果某个区间整体能量值都很低不进行划分)。
对于关节轨迹曲线:
舞蹈动作中一些重要关节的位置轨迹曲线也能够为节拍点检测提供重要的信息。例如手部伸展到最远再收回的这一动作,认为手部到达最远的时候是动作的一个节拍点,因此额外考虑了双手以及双脚的轨迹信息,分析了关节轨迹距离模型原点处的距离曲线,当距离曲线达到最大或最小值时也认为是可能的节拍点位置。
对于脚步高度曲线:
舞蹈中出现踏步或者走动的动作时,认为脚步落地点是一个节拍点的位置。因此,对于双脚的轨迹分析还加入了一个脚步高度的曲线,当脚步落地时曲线值为0,脚步抬起时曲线值为脚步距离地面的高度,当脚步刚刚落地的时刻也认为是一个可能的节拍点位置。
在本申请一实施例中,原始舞蹈动作数据可以包括第一原始舞蹈动作数据和第二原始舞蹈动作数据,所述获取原始舞蹈动作数据,包括:
获取第一原始舞蹈动作数据;采用所述第一原始舞蹈动作数据,进行动作扩充,得到第二原始舞蹈动作数据。
作为一示例,可以采用如下方式进行动作扩充:
动作镜像、动作融合、动作曲线控制。
动作镜像:将动作的左右半身的动作进行镜像,即左手做右手的动作,左脚做右脚的动作,以此类推。
动作融合:将相近风格的动作的上下半身动作进行重组融合,如一段动作的上身动作同另一段动作的下肢动作进行融合。这种方法不能保证融合得到的新动作都有美感,所以需要筛掉一些较差的动作。
动作曲线控制:通过调整一些关节的轨迹曲线(主要是手部)得到相同模型的新动作。如通过一个在胸前拍手的动作通过调高手部轨迹曲线,结合IK算法得到在不同高度拍手的动作。
在一示例中,可以对于扩充的结果需要做一些筛选,去掉存在问题的动作,主要包括两个方面。一方面的进行动作的碰撞检测,如果扩充出来的动作的骨骼之间出现了相互的交叉碰撞,那么是明显有问题需要筛除的动作。另一方面是检测各个关节的旋转范围是否超过了正常范围(如肩膀是否后旋),如果出现了异常也会直接筛除。
步骤502,建立所述多个舞蹈动作片段对应的动作节点;
步骤503,确定各个动作节点之间存在转移代价;
对于两个舞蹈动作片段i,j,定义Di,j为由舞蹈动作片段i转移到舞蹈动作片段j的转移代价:
D(i,j)=∑kαk·Angle(Qi(vk,end),Qj(vk,begin))
其中,Qi(vk,end)表示舞蹈动作片段i的vk关节的最后一帧的局部旋转四元数,而Qj(vk,begin)是舞蹈动作片段j的开始帧中vk关节的局部旋转四元数。这个公式是由计算加权角速度W(f)变化而来,D(i,j)表示一个舞蹈动作片段结尾过渡到另一个舞蹈动作片段开始的代价,也代表着两个动作片段的衔接程度。
步骤504,在所述转移代价大于预设转移代价的动作节点之间建立连边关系,得到针对所述多个舞蹈动作片段的动画状态转移关系;
其中,连边关系是用以表征两个动作节点之间转移的可能性,当不存在连边关系时,两个动作节点之间是不可能进行转移的,即两个动作节点对应的舞蹈动作片段之间不能进行过渡,在后续确定路径的过程中,仅仅具有连边关系的动作节点才能够构成路径。
在具体实现中,可以在转移代价大于预设转移代价的动作节点之间建立连边关系,对于转移代价大于预设转移代价的动作节点不建立连边关系,得到针对多个舞蹈动作片段的动画状态转移关系。
在一示例中,由于建图时会设定每个节点的最大连边数量,所以动作状态转移图可以被认为是K最近邻图(K Nearest Neighbor,KNN),即每个状态会与转移代价最小的K个状态建立连边关系。直接建图的复杂度会很高,当状态数量增加时所需时间会迅速增加,则为了加快建图速度采用了基于KD树的近似K近邻的算法。
步骤505,获取目标音频文件,并确定针对所述目标音频文件的音乐特征序列;其中,所述音乐特征序列包括多个音乐特征片段;
步骤506,结合所述动画状态转移关系中的转移代价,确定针对所述音乐特征序列的舞蹈动作序列;其中,所述舞蹈动作序列包括多个舞蹈动作片段,每个舞蹈动作片段对应一音乐特征片段;
步骤507,采用所述舞蹈动作序列,生成针对所述目标音频文件的舞蹈动画。
在本申请一实施例中,步骤507可以包括如下步骤:
当所述舞蹈动作序列中舞蹈动作片段的脚步为指定状态时,对所述舞蹈动作片段进行脚步修正。
其中,指定状态可以包括:
双脚均在地面滑动、一只脚在地面滑动且另一只脚未固定在地面。
由于动作合成后得到得舞蹈序列有时候会存在脚步滑动得问题,一方面可能是原始动作数据的问题,也有可能是不同动作片段进行插值过渡导致的,则可以进行脚步修正。
具体的,可以分别检测每个脚步在整个动作序列中在落地的区间,如果一只脚在落地的一段区间中存在滑动的情况,会检测另一只脚的情况来决定是否修改。如果另一只脚在该区间中在地面固定不动,那么会认为另一只脚为固定脚,动作不需要修改;如果另一只脚不在地面或者在也在地面滑动,那么会认为需要对这个区间进行脚步修正。
在修正时,会选择修正在地面且运动幅度较小的那只脚,将其轨迹固定在滑动的中点位置,同时将区间前后的部分通过插值过渡到这个位置固定,然后会得到两只脚修正后的脚步轨迹,通过脚步IK处理整个动作序列就可以得到修正后的舞蹈数据。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图7,示出了本申请一实施例提供的一种舞蹈动画的处理装置的结构示意图,具体可以包括如下模块:
动画状态转移关系建立模块701,用于获取多个舞蹈动作片段,并建立针对所述多个舞蹈动作片段的动画状态转移关系;其中,所述动画状态转移关系中每个动作节点对应一舞蹈动作片段,所述各个动作节点之间存在转移代价;
音乐特征序列确定模块702,用于获取目标音频文件,并确定针对所述目标音频文件的音乐特征序列;其中,所述音乐特征序列包括多个音乐特征片段;
舞蹈动作序列确定模块703,用于结合所述动画状态转移关系中的转移代价,确定针对所述音乐特征序列的舞蹈动作序列;其中,所述舞蹈动作序列包括多个舞蹈动作片段,每个舞蹈动作片段对应一音乐特征片段;
舞蹈动画生成模块704,用于采用所述舞蹈动作序列,生成针对所述目标音频文件的舞蹈动画。
在本申请一实施例中,所述舞蹈动作序列确定模块703,包括:
模型预置子模块,用于预置一隐马尔可夫模型;
模型输入子模块,用于将所述动画状态转移关系中动作节点作为隐状态、所述音乐特征序列作为可观测状态输入所述隐马尔可夫模型;
模型输出子模块,用于获取所述隐马尔可夫模型输出针对所述音乐特征序列的舞蹈动作序列。
在本申请一实施例中,所述隐马尔可夫模型采用如下模块生成针对所述音乐特征序列的舞蹈动作序列:
最小代价及路径确定模块,用于在第N个音乐特征片段时,确定所述动画状态转移关系中每个动作节点对应的最小代价及所述最小代价对应的最小代价路径;其中,N为大于1的正整数,所述最小代价路径包括一个或多个动作节点;
目标动作节点得到模块,用于在所述第N个音乐特征片段为最后一个音乐特征片段时,比较每个动作节点对应的最小代价,得到目标动作节点;
舞蹈动作序列生成模块,用于采用所述目标动作节点对应的最小代价路径,生成针对所述音乐特征序列的舞蹈动作序列。
在本申请一实施例中,所述最小代价及路径确定模块,包括:
第一代价分值作为子模块,用于针对所述动画状态转移关系中每个动作节点,确定与所述第N个音乐特征片段的匹配代价,作为第一代价分值;
第二代价分值作为子模块,用于确定所述动画状态转移关系中任一动作节点相对于所述动作节点的转移代价,作为多个第二代价分值;
第三代价分值作为子模块,用于获取在第N-1个音乐特征片段时所述动画状态转移关系中每个动作节点对应的最小代价,作为第三代价分值;
整体代价得到子模块,用于结合所述第一代价分值、所述多个第二代价分值、所述第三代价分值,得到多个整体代价;
代价及路径确定子模块,用于确定最小的整体代价为所述动作节点的最小代价,并确定所述最小代价对应的最小代价路径。
在本申请一实施例中,所述整体代价得到子模块,包括:
第四代价分值作为单元,用于在当前满足重复性约束时,确定一惩罚代价,作为第四代价分值;
结合第四代价分值单元,用于结合所述第一代价分值、所述多个第二代价分值、所述第三代价分值、所述第四代价分值,得到整体代价。
在本申请一实施例中,所述重复性约束包括:
存在至少两个相同的音乐特征片段对应的舞蹈动作片段不同;
或者,在预设区间范围内,存在至少两个不相同的音乐特征片段对应的舞蹈动作片段相同。
在本申请一实施例中,所述匹配代价包括强度匹配代价,和/或,时长匹配代价,和/或,风格匹配代价,所述第一代价分值作为子模块,包括:
强度确定单元,用于确定所述动作节点对应的舞蹈动作片段的动作强度,以及所述第N个音乐特征片段的音乐强度;
强度代价确定单元,用于结合所述动作强度和所述音乐强度,确定与所述第N个音乐特征片段的强度匹配代价;
和/或,时长确定单元,用于确定所述动作节点对应的舞蹈动作片段的动作时长,以及所述第N个音乐特征片段的音乐时长;
时长代价单元,用于结合所述动作时长和所述音乐时长,确定与所述第N个音乐特征片段的时长匹配代价;
和/或,风格确定单元,用于确定所述动作节点对应的舞蹈动作片段的动作风格,以及所述第N个音乐特征片段的音乐风格;
风格代价确定单元,用于结合所述动作风格和所述音乐风格,确定与所述第N个音乐特征片段的风格匹配代价。
在本申请一实施例中,所述舞蹈动作片段包括第一舞蹈动作片段和第二舞蹈动作片段,所述第一舞蹈动作片段对应有音乐风格信息,所述动作风格采用如下方式确定:
采用所述音乐风格信息,确定所述第一舞蹈动作片段的动作风格;
按照所述动作风格,对所述第一舞蹈动作片段进行聚类,得到多个动作聚类簇;
确定所述第二舞蹈动作片段对应的目标动作聚类簇,并将所述目标动作聚类簇对应的动作风格作为所述第二舞蹈动作片段的动作风格。
在本申请一实施例中,所述动画状态转移关系建立模块701,包括:
动作节点建立子模块,用于建立所述多个舞蹈动作片段对应的动作节点;
转移代价确定子模块,用于确定各个动作节点之间存在转移代价;
连边关系建立子模块,用于在所述转移代价大于预设转移代价的动作节点之间建立连边关系,得到针对所述多个舞蹈动作片段的动画状态转移关系。
在本申请一实施例中,所述舞蹈动画生成模块704,包括:
脚步修正子模块,用于当所述舞蹈动作序列中舞蹈动作片段的脚步为指定状态时,对所述舞蹈动作片段进行脚步修正;
所述指定状态包括:
双脚均在地面滑动、一只脚在地面滑动且另一只脚未固定在地面。
在本申请一实施例中,所述装置还包括:
原始舞蹈动作数据获取模块,用于获取原始舞蹈动作数据;
动作切分模块,用于确定所述原始舞蹈动作数据中的动作节奏点特征,并按照所述动作节奏点特征,对所述原始舞蹈动作数据进行切分,得到多个舞蹈动作片段。
在本申请一实施例中,所述动作节奏点特征包括以下任一项或多项:
关节加权角速度曲线、关节轨迹曲线、脚步高度曲线。
在本申请一实施例中,所述原始舞蹈动作数据包括第一原始舞蹈动作数据和第二原始舞蹈动作数据,所述原始舞蹈动作数据获取模块,包括:
第一原始舞蹈动作数据获取子模块,用于获取第一原始舞蹈动作数据;
动作扩充子模块,用于采用所述第一原始舞蹈动作数据,进行动作扩充,得到第二原始舞蹈动作数据。
在本申请一实施例中,采用如下方式进行动作扩充:
动作镜像、动作融合、动作曲线控制。
本申请一实施例还提供了一种电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上舞蹈动画的处理方法的步骤。
本申请一实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上舞蹈动画的处理方法的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对所提供的一种舞蹈动画的处理方法及装置、电子设备、存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (15)
1.一种舞蹈动画的处理方法,其特征在于,所述方法包括:
获取多个舞蹈动作片段,并建立针对所述多个舞蹈动作片段的动画状态转移关系,其中,所述动画状态转移关系中每个动作节点对应一舞蹈动作片段,所述各个动作节点之间存在转移代价;
获取目标音频文件,并确定针对所述目标音频文件的音乐特征序列;其中,所述音乐特征序列包括多个音乐特征片段;
结合所述动画状态转移关系中的转移代价,确定针对所述音乐特征序列的舞蹈动作序列;其中,所述舞蹈动作序列包括多个舞蹈动作片段,每个舞蹈动作片段对应一音乐特征片段;
采用所述舞蹈动作序列,生成针对所述目标音频文件的舞蹈动画;
其中,所述结合所述动画状态转移关系中的转移代价,确定针对所述音乐特征序列的舞蹈动作序列,包括:
预置一隐马尔可夫模型;
将所述动画状态转移关系中动作节点作为隐状态、所述音乐特征序列作为可观测状态输入所述隐马尔可夫模型;
获取所述隐马尔可夫模型输出针对所述音乐特征序列的舞蹈动作序列;
其中,所述隐马尔可夫模型采用如下方式生成针对所述音乐特征序列的舞蹈动作序列:
在第N个音乐特征片段时,确定所述动画状态转移关系中每个动作节点对应的最小代价及所述最小代价对应的最小代价路径;其中,N为大于1的正整数,所述最小代价路径包括一个或多个动作节点;
在所述第N个音乐特征片段为最后一个音乐特征片段时,比较每个动作节点对应的最小代价,得到目标动作节点;
采用所述目标动作节点对应的最小代价路径,生成针对所述音乐特征序列的舞蹈动作序列。
2.根据权利要求1所述的方法,其特征在于,所述在第N个音乐特征片段时,确定所述动画状态转移关系中每个动作节点对应的最小代价及所述最小代价对应的最小代价路径,包括:
针对所述动画状态转移关系中每个动作节点,确定与所述第N个音乐特征片段的匹配代价,作为第一代价分值;
确定所述动画状态转移关系中任一动作节点相对于所述动作节点的转移代价,作为多个第二代价分值;
获取在第N-1个音乐特征片段时所述动画状态转移关系中每个动作节点对应的最小代价,作为第三代价分值;
结合所述第一代价分值、所述多个第二代价分值、所述第三代价分值,得到多个整体代价;
确定最小的整体代价为所述动作节点的最小代价,并确定所述最小代价对应的最小代价路径。
3.根据权利要求2所述的方法,其特征在于,所述结合所述第一代价分值、所述多个第二代价分值、所述第三代价分值,得到多个整体代价,包括:
在当前满足重复性约束时,确定一惩罚代价,作为第四代价分值;
结合所述第一代价分值、所述多个第二代价分值、所述第三代价分值、所述第四代价分值,得到整体代价。
4.根据权利要求3所述的方法,其特征在于,所述重复性约束包括:
存在至少两个相同的音乐特征片段对应的舞蹈动作片段不同;
或者,在预设区间范围内,存在至少两个不相同的音乐特征片段对应的舞蹈动作片段相同。
5.根据权利要求2或3或4所述的方法,其特征在于,所述匹配代价包括强度匹配代价,和/或,时长匹配代价,和/或,风格匹配代价,所述确定与所述第N个音乐特征片段的匹配代价,包括:
确定所述动作节点对应的舞蹈动作片段的动作强度,以及所述第N个音乐特征片段的音乐强度;
结合所述动作强度和所述音乐强度,确定与所述第N个音乐特征片段的强度匹配代价;
和/或,确定所述动作节点对应的舞蹈动作片段的动作时长,以及所述第N个音乐特征片段的音乐时长;
结合所述动作时长和所述音乐时长,确定与所述第N个音乐特征片段的时长匹配代价;
和/或,确定所述动作节点对应的舞蹈动作片段的动作风格,以及所述第N个音乐特征片段的音乐风格;
结合所述动作风格和所述音乐风格,确定与所述第N个音乐特征片段的风格匹配代价。
6.根据权利要求5所述的方法,其特征在于,所述舞蹈动作片段包括第一舞蹈动作片段和第二舞蹈动作片段,所述第一舞蹈动作片段对应有音乐风格信息,所述动作风格采用如下方式确定:
采用所述音乐风格信息,确定所述第一舞蹈动作片段的动作风格;
按照所述动作风格,对所述第一舞蹈动作片段进行聚类,得到多个动作聚类簇;
确定所述第二舞蹈动作片段对应的目标动作聚类簇,并将所述目标动作聚类簇对应的动作风格作为所述第二舞蹈动作片段的动作风格。
7.根据权利要求1所述的方法,其特征在于,所述建立针对所述多个舞蹈动作片段的动画状态转移关系,包括:
建立所述多个舞蹈动作片段对应的动作节点;
确定各个动作节点之间存在转移代价;
在所述转移代价大于预设转移代价的动作节点之间建立连边关系,得到针对所述多个舞蹈动作片段的动画状态转移关系。
8.根据权利要求1所述的方法,其特征在于,所述采用所述舞蹈动作序列,生成针对所述目标音频文件的舞蹈动画,包括:
当所述舞蹈动作序列中舞蹈动作片段的脚步为指定状态时,对所述舞蹈动作片段进行脚步修正;
所述指定状态包括:
双脚均在地面滑动、一只脚在地面滑动且另一只脚未固定在地面。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取原始舞蹈动作数据;
确定所述原始舞蹈动作数据中的动作节奏点特征,并按照所述动作节奏点特征,对所述原始舞蹈动作数据进行切分,得到多个舞蹈动作片段。
10.根据权利要求9所述的方法,其特征在于,所述动作节奏点特征包括以下任一项或多项:
关节加权角速度曲线、关节轨迹曲线、脚步高度曲线。
11.根据权利要求9或10所述的方法,其特征在于,所述原始舞蹈动作数据包括第一原始舞蹈动作数据和第二原始舞蹈动作数据,所述获取原始舞蹈动作数据,包括:
获取第一原始舞蹈动作数据;
采用所述第一原始舞蹈动作数据,进行动作扩充,得到第二原始舞蹈动作数据。
12.根据权利要求11所述的方法,其特征在于,采用如下方式进行动作扩充:
动作镜像、动作融合、动作曲线控制。
13.一种舞蹈动画的处理装置,其特征在于,所述装置包括:
动画状态转移关系建立模块,用于获取多个舞蹈动作片段,并建立针对所述多个舞蹈动作片段的动画状态转移关系;其中,所述动画状态转移关系中每个动作节点对应一舞蹈动作片段,所述各个动作节点之间存在转移代价;
音乐特征序列确定模块,用于获取目标音频文件,并确定针对所述目标音频文件的音乐特征序列;其中,所述音乐特征序列包括多个音乐特征片段;
舞蹈动作序列确定模块,用于结合所述动画状态转移关系中的转移代价,确定针对所述音乐特征序列的舞蹈动作序列;其中,所述舞蹈动作序列包括多个舞蹈动作片段,每个舞蹈动作片段对应一音乐特征片段;
舞蹈动画生成模块,用于采用所述舞蹈动作序列,生成针对所述目标音频文件的舞蹈动画;
其中,所述舞蹈动作序列确定模块,包括:
模型预置子模块,用于预置一隐马尔可夫模型;
模型输入子模块,用于将所述动画状态转移关系中动作节点作为隐状态、所述音乐特征序列作为可观测状态输入所述隐马尔可夫模型;
模型输出子模块,用于获取所述隐马尔可夫模型输出针对所述音乐特征序列的舞蹈动作序列;
其中,所述隐马尔可夫模型采用如下模块生成针对所述音乐特征序列的舞蹈动作序列:
最小代价及路径确定模块,用于在第N个音乐特征片段时,确定所述动画状态转移关系中每个动作节点对应的最小代价及所述最小代价对应的最小代价路径;其中,N为大于1的正整数,所述最小代价路径包括一个或多个动作节点;
目标动作节点得到模块,用于在所述第N个音乐特征片段为最后一个音乐特征片段时,比较每个动作节点对应的最小代价,得到目标动作节点;
舞蹈动作序列生成模块,用于采用所述目标动作节点对应的最小代价路径,生成针对所述音乐特征序列的舞蹈动作序列。
14.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至12中任一项所述的舞蹈动画的处理方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12中任一项所述的舞蹈动画的处理方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911419702.2A CN111179385B (zh) | 2019-12-31 | 2019-12-31 | 一种舞蹈动画的处理方法及装置、电子设备、存储介质 |
PCT/CN2020/082055 WO2021134942A1 (zh) | 2019-12-31 | 2020-03-30 | 一种舞蹈动画的处理方法及装置、电子设备、存储介质 |
US17/778,040 US20230162421A1 (en) | 2019-12-31 | 2020-03-30 | Dance Animation Processing Method and Apparatus, Electronic Device, and Storage Medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911419702.2A CN111179385B (zh) | 2019-12-31 | 2019-12-31 | 一种舞蹈动画的处理方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111179385A CN111179385A (zh) | 2020-05-19 |
CN111179385B true CN111179385B (zh) | 2021-04-02 |
Family
ID=70650648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911419702.2A Active CN111179385B (zh) | 2019-12-31 | 2019-12-31 | 一种舞蹈动画的处理方法及装置、电子设备、存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230162421A1 (zh) |
CN (1) | CN111179385B (zh) |
WO (1) | WO2021134942A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111798549B (zh) * | 2020-07-15 | 2024-02-20 | 广州微咔世纪信息科技有限公司 | 舞蹈的编辑方法、装置及计算机存储介质 |
CN111968202A (zh) * | 2020-08-21 | 2020-11-20 | 北京中科深智科技有限公司 | 一种基于音乐节奏的实时舞蹈动作生成方法和系统 |
CN112637622A (zh) * | 2020-12-11 | 2021-04-09 | 北京字跳网络技术有限公司 | 一种直播演唱方法、装置、设备及介质 |
CN112541959A (zh) * | 2020-12-21 | 2021-03-23 | 广州酷狗计算机科技有限公司 | 虚拟对象显示方法、装置、设备及介质 |
CN114268814A (zh) * | 2021-11-29 | 2022-04-01 | 广州繁星互娱信息科技有限公司 | 音乐视频的获取方法、装置和存储介质及电子设备 |
CN114419205B (zh) * | 2021-12-22 | 2024-01-02 | 北京百度网讯科技有限公司 | 虚拟数字人的驱动方法及位姿获取模型的训练方法 |
CN114820888A (zh) * | 2022-04-24 | 2022-07-29 | 广州虎牙科技有限公司 | 动画生成方法、系统及计算机设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110216677A (zh) * | 2019-06-21 | 2019-09-10 | 浙江大学 | 一种机械灵巧手弹琴动作序列的生成及其优化方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6448483B1 (en) * | 2001-02-28 | 2002-09-10 | Wildtangent, Inc. | Dance visualization of music |
CN100454342C (zh) * | 2003-12-15 | 2009-01-21 | 中国科学院自动化研究所 | 三维植物体音乐动画系统 |
US20110293144A1 (en) * | 2009-02-02 | 2011-12-01 | Agency For Science, Technology And Research | Method and System for Rendering an Entertainment Animation |
CN101615302B (zh) * | 2009-07-30 | 2011-09-07 | 浙江大学 | 音乐数据驱动的基于机器学习的舞蹈动作生成方法 |
CN102500094B (zh) * | 2011-10-28 | 2013-10-30 | 北京航空航天大学 | 一种基于kinect的动作训练方法 |
CN106096720A (zh) * | 2016-06-12 | 2016-11-09 | 杭州如雷科技有限公司 | 一种舞蹈动作自动合成的方法 |
CN106292424A (zh) * | 2016-08-09 | 2017-01-04 | 北京光年无限科技有限公司 | 针对人形机器人的音乐数据处理方法及装置 |
CN108527376A (zh) * | 2018-02-27 | 2018-09-14 | 深圳狗尾草智能科技有限公司 | 控制机器人舞蹈动作的方法、装置、设备及介质 |
CN108202334B (zh) * | 2018-03-22 | 2020-10-23 | 东华大学 | 一种能够识别音乐节拍和风格的舞蹈机器人 |
-
2019
- 2019-12-31 CN CN201911419702.2A patent/CN111179385B/zh active Active
-
2020
- 2020-03-30 WO PCT/CN2020/082055 patent/WO2021134942A1/zh active Application Filing
- 2020-03-30 US US17/778,040 patent/US20230162421A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110216677A (zh) * | 2019-06-21 | 2019-09-10 | 浙江大学 | 一种机械灵巧手弹琴动作序列的生成及其优化方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021134942A1 (zh) | 2021-07-08 |
CN111179385A (zh) | 2020-05-19 |
US20230162421A1 (en) | 2023-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111179385B (zh) | 一种舞蹈动画的处理方法及装置、电子设备、存储介质 | |
Tang et al. | Dance with melody: An lstm-autoencoder approach to music-oriented dance synthesis | |
Huang et al. | Dance revolution: Long-term dance generation with music via curriculum learning | |
JP6522060B2 (ja) | オブジェクト認識装置、分類ツリー学習装置及びその動作方法 | |
Sargin et al. | Analysis of head gesture and prosody patterns for prosody-driven head-gesture animation | |
JP5238602B2 (ja) | 映像コンテンツ生成装置及びコンピュータプログラム | |
CN110955786A (zh) | 一种舞蹈动作数据的生成方法及装置 | |
Cao et al. | Real-time speech motion synthesis from recorded motions | |
KR20190070065A (ko) | 텍스트 기반 적응적 가창 립싱크 애니메이션 생성 장치 및 방법 | |
JP2016041142A (ja) | ダンス動作データ作成システム及びダンス動作データ作成方法 | |
US11282257B2 (en) | Pose selection and animation of characters using video data and training techniques | |
CN111223168B (zh) | 目标对象控制方法、装置、存储介质和计算机设备 | |
US20160232698A1 (en) | Apparatus and method for generating animation | |
WO2022028136A1 (zh) | 舞蹈视频的动作提取方法、装置、计算机设备及存储介质 | |
Au et al. | Choreograph: Music-conditioned automatic dance choreography over a style and tempo consistent dynamic graph | |
CN116528016A (zh) | 音视频合成方法、服务器和可读存储介质 | |
CN116051688A (zh) | 过渡动画生成方法及装置、计算机可读存储介质、终端 | |
Sun et al. | Diffposetalk: Speech-driven stylistic 3d facial animation and head pose generation via diffusion models | |
JP6172755B2 (ja) | 感情情報推定装置、方法及びプログラム | |
Lee et al. | Automatic Choreography Generation with Convolutional Encoder-decoder Network. | |
CN103116901A (zh) | 基于运动特征的人体运动插值计算方法 | |
Wang et al. | Neural marionette: A transformer-based multi-action human motion synthesis system | |
JP6092698B2 (ja) | 動きデータセグメント決定装置、動きデータセグメント決定方法およびコンピュータプログラム | |
Li et al. | An automatic framework for generating Labanotation scores from continuous motion capture data | |
Wu et al. | Music-to-Dance Generation with Optimal Transport |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |