合成虚拟对象的动作序列的方法及设备与流程

文档序号:21369527发布日期:2020-07-04 04:46阅读:287来源:国知局
合成虚拟对象的动作序列的方法及设备与流程

本公开涉及人工智能服务领域,更具体地涉及一种合成虚拟对象的动作序列的方法、设备、装置和计算机可读存储介质。本公开还涉及一种生成虚拟对象动作的视频的方法。



背景技术:

目前的虚拟对象(例如,虚拟人物、虚拟动物、三维卡通对象等)的动作主要依赖于美术人员人工设计。通常情况下,美术人员完成一个或多个动作(例如,虚拟对象奔跑、跳跃、行走等)的设计后,将其与动作的关键词对应的存储在数据库中。计算机读取虚拟人物的动作描述信息,例如“小明行走一段时间后跳跃”,然后使用关键词匹配读取出相应的动作设计,完成虚拟对象“小明”的动作序列的串联。通过这样的方式完成的动作序列通常会使得虚拟对象的动作呆板僵硬。同时,由于需要耗费大量的美术人员人工设计动作,导致虚拟对象的动作呈现耗费过高的成本。



技术实现要素:

本公开的实施例提供了合成虚拟对象的动作序列的方法、设备、电子设备和计算机可读存储介质。

本公开的实施例提供了一种合成虚拟对象的动作序列的方法,包括:获取所述虚拟对象的动作序列的描述信息;基于所述描述信息和由视频素材构建的连续动作片段库,确定与所述动作序列中的至少一部分动作相似的连续动作片段集合;以及基于所述连续动作片段集合,合成所述虚拟对象的动作序列,其中,所述连续动作片段库中的每个连续动作片段包括所述连续动作片段的唯一标识符、所述连续动作片段的动作信息、以及所述连续动作片段对应的表示向量。

本公开的实施例提供了一种生成虚拟对象动作的视频的方法,包括:获取描述所述虚拟对象的动作序列的文本信息或音频信息;以及基于所述文本信息或音频信息,将所述虚拟对象的动作序列重定向到虚拟对象上,以输出所述虚拟对象动作的视频;其中,所述虚拟对象动作的视频是基于由视频素材构建的连续动作片段库中的动作序列连续动作片段集合合成的,其中,所述连续动作片段库中的每个连续动作片段包括所述连续动作片段的唯一标识符、所述连续动作片段的动作信息、以及所述连续动作片段对应的表示向量。

本公开的实施例提供了一种合成虚拟对象的动作序列的设备,包括:动作序列获取模块,被配置为获取所述虚拟对象的动作序列的描述信息;相似动作片段获取模块,被配置为基于所述描述信息和由视频素材构建的连续动作片段库,确定与所述动作序列中的至少一部分动作的相似的连续动作片段集合;和动作合成模块,被配置为基于所述连续动作片段集合,合成所述虚拟对象的动作,其中,所述连续动作片段库中的每个连续动作片段包括所述连续动作片段的唯一标识符、所述连续动作片段的动作信息、以及所述连续动作片段对应的表示向量。

本公开的实施例提供了一种合成虚拟对象的动作序列的装置,包括:处理器;存储器,存储器存储有计算机指令,该计算机指令被处理器执行时实现上述方法。

本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现上述方法。

本公开提出一种合成虚拟对象的动作序列的方法。该方法通过从真实的视频中提取动作信息,从而大大减少美术人员的工作量。同时,该方法还可以从连续动作片段库检索到与动作描述信息中的关键词相似的动作,以避免所合成的虚拟对象的动作呆板。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例的描述中所需要使用的附图作简单的介绍。下面描述中的附图仅仅是本公开的示例性实施例。

图1是示出为虚拟对象设计动作序列的场景的示例示意图。

图2a是示出根据本公开实施例的合成虚拟对象的动作序列的方法的流程图。

图2b是示出根据本公开实施例的合成虚拟对象的动作序列的方法的示意图。

图2c示出根据本公开实施例的合成虚拟对象的动作序列的设备的结构图。

图3a是示出根据本公开实施例的构建连续动作片段库的操作的流程图。

图3b是示出根据本公开实施例的构建连续动作片段库的示意图。

图4是示出根据本公开实施例的确定连续动作片段库中与所述动作序列至少一部分动作的相似的连续动作片段集合的示意图。

图5示出根据本公开实施例的生成虚拟对象动作的视频的方法的流程图。

图6是示出根据本公开实施例的合成虚拟对象的动作序列的设备的结构图。

具体实施方式

为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。

在本说明书和附图中,具有基本上相同或相似步骤和元素用相同或相似的附图标记来表示,且对这些步骤和元素的重复描述将被省略。同时,在本公开的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性或排序。

为便于描述本公开,以下介绍与本公开有关的概念。

人工智能(artificialintelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

自然语言处理(naturelanguageprocessing,nlp)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。

机器学习(machinelearning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。

可选地,下文中的各个模型都可以是人工智能模型,尤其是基于人工智能的神经网络模型。通常,基于人工智能的神经网络模型被实现为无环图,其中神经元布置在不同的层中。通常,神经网络模型包括输入层和输出层,输入层和输出层通过至少一个隐藏层分开。隐藏层将由输入层接收到的输入变换为对在输出层中生成输出有用的表示。网络节点经由边全连接至相邻层中的节点,并且每个层内的节点之间不存在边。在神经网络的输入层的节点处接收的数据经由隐藏层、激活层、池化层、卷积层等中的任意一项被传播至输出层的节点。神经网络模型的输入输出可以采用各种形式,本公开对此不作限制。

随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。

本公开的实施例提供的方案涉及人工智能、自然语言处理和机器学习等技术,具体通过如下实施例进行说明。

图1是示出为虚拟对象设计动作序列的场景100的示例示意图。

目前,虚拟对象(例如,虚拟人物、虚拟动物、三维卡通对象等)的动作主要依赖于美术人员人工设计。例如,假设美术人员希望为图1中的虚拟人物“小明”设计甩手的动作。美术人员会设计“小明”各个运动部件(例如,头、左手、右手、左臂、右臂、左腿、右腿等)在甩手这个动作的动作时长里每个运动部件的动作信息。动作信息包括每个运动部件在该帧中的三维坐标、旋转角和运动加速度等。例如,在第一帧中,“小明”的头的三位坐标为(x,y,z),而在第二帧中,“小明”的头的三维坐标为(x’,y’,z’)。

当美术人员完成虚拟对象“小明”在各个帧中的动作设计后,将该动作的动作信息与动作名称“甩手”对应的存储。由于虚拟对象可能具备很多动作,这将需要耗费大量的美术人员人工设计动作,导致设计虚拟对象的动作动画的成本过高。

在完成各个单一动作的设计后,计算设备将读取虚拟对象“小明”的动作描述信息,例如“小明行走一段时间后甩手”,然后使用关键词匹配读取出相应的动作设计“行走”和“甩手”,从而触发相应的动作,进而完成虚拟对象“小明”的动作序列的串联和合成。但是由于只有在动作描述信息中出现与动作名称完全相同的关键字时才会触发相应的动作,其余的时刻虚拟人物“小明”都将保持静止,这样会导致合成效果僵硬。例如,如果动作描述信息中记载“小明行走一段时间后摆动双手”,由于动作库中没有“摆动双手”这个动作,在最终合成的动作中“小明”可能在行走一段时间后保持静止,而没有摆动双手的效果。

本公开提出一种合成虚拟对象的动作序列的方法。该方法通过从真实的视频中提取动作信息,从而大大减少美术人员的工作量。同时,该方法还可以从连续动作片段库检索到与动作描述信息中的关键词相似的动作,以避免所合成的虚拟对象的动作呆板。

图2a是示出根据本公开实施例的合成虚拟对象的动作序列的方法200的流程图。图2b是示出根据本公开实施例的合成虚拟对象的动作序列的方法200的示意图。图2c示出根据本公开实施例的合成虚拟对象的动作序列的设备2000的结构图。

根据本公开的实施例的合成虚拟对象的动作序列的方法200可以应用于任何的电子设备中。可以理解,电子设备可以是不同种类的硬件设备,例如个人数字助理(pda)、音频/视频设备、移动电话、mp3播放器、个人计算机、膝上型计算机、服务器等等。例如,该电子设备可以是图2c中合成虚拟对象的动作序列的设备2000。以下,本公开以设备2000为例进行说明,本领域技术人员应当理解本公开并不以此为限。

参见图2c,设备2000可以包括处理器2001和存储器2002。处理器2001和存储器2002可以通过总线2003相连。

处理器2001可以根据存储在存储器2002中的程序执行各种动作和处理。具体地,处理器2001可以是一种集成电路芯片,具有信号的处理能力。上述处理器可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是x87架构或arm架构的。

存储器2002上存储有计算机指令,该计算机指令被微处理器执行时实现方法200。存储器2002可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或闪存。易失性存储器可以是随机存取存储器(ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、双倍数据速率同步动态随机存取存储器ddrsdram)、增强型同步动态随机存取存储器(esdram)、同步连接动态随机存取存储器(sldram)和直接内存总线随机存取存储器(drram)。应注意,本公开描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

首先,在操作201中,设备2000可以获取虚拟对象的动作序列的描述信息。

虚拟对象包括虚拟人物、虚拟动物、三维卡通对象等。虚拟对象的动作序列中可以包括虚拟对象的每个运动部件在视频或其它呈现方式中各个帧中的运动信息。这些运动信息包括:运动部件位置、速度、加速度中的至少一项。对于虚拟人物而言,运动部件可以包括头部、双手、肘部等运动关节。对于虚拟动物而言,运动部件可以包括四肢、尾巴等运动关节。运动信息可以以3dpose的方式存储。本公开不对虚拟对象和运动部件的类型进行限制。

虚拟对象的动作序列的描述信息可以是如图2b所示的描述信息220。描述信息220不仅可以以文本的形式记载着一段虚拟对象的动作情况,例如图2b中示出的“小明行走一段时间后摆动双手”,描述信息220还可以以音频的形式来描述虚拟对象的动作情况。例如,描述信息220可以是以一段激昂的音乐来描述虚拟对象动作的情绪,或者以一段鼓点来描述虚拟对象动作的节奏。当描述信息220是音频信息时,描述信息220还可以包括虚拟对象的对话、或者场景的旁白等等。本公开不对描述信息220的形式进行限制。

接下来,在操作202中,基于所述描述信息和连续动作片段库,设备2000确定与动作序列中的至少一部分动作相似的连续动作片段集合。

参考图2b,设备2000可以采用各种方式来确定连续动作片段库210中与动作序列中的至少一部分动作相似的连续动作片段集合230。例如,设备2000可以将连续动作片段库210中的每个连续动作片段的语义信息(例如标题、字幕、动作描述等)和动作属性信息(例如,动作节奏、动作情绪)中的任意一项与描述信息220中的一部分片段进行对比,计算二者之间的相似度,然后选择相似度最高的前k个连续动作片段作为连续动作片段集合230,其中k为大于0的整数。如图2b所示,连续动作片段集合230中可以包括多个连续动作片段,例如连续动作片段231和232。

可选地,操作202还可以包括:基于所述描述信息,获取虚拟对象的动作序列的表示向量,其中,该表示向量融合了动作序列的语义信息和动作属性信息;以及基于该虚拟对象的动作序列的表示向量,确定连续动作片段库中与动作序列中各动作相似的连续动作片段集。

虚拟对象的动作序列的表示向量可以是多模态的表示向量。模态(modality)可以指示信息的来源或者形式。例如,当描述信息220既包括文字信息又包括音频信息时,描述信息220的音频信息、文字信息等都可以被称为一种模态。不同的模态具有不同的统计特性,蕴含着不同的信息。例如,音频信息通常表示为频率、幅度、音色等,而文字信息通常表示为离散的词句。因此,为了更好的表征描述信息220的特征,设备2000可以分别从描述信息220的音频信息、文字信息中提取不同的特征信息,并将这些特征信息进行融合(fusion)和关联分析。

为了获取描述信息220的表示向量,设备2000可以从描述信息220的音频信息中提取动作属性信息,其中动作属性信息可以包括虚拟对象的动作节奏、动作情绪中的至少一项。可选地,动作属性信息可以将虚拟对象的动作节奏、动作情绪融合成一个表示向量。例如,设备2000可以利用vggish模型来将描述信息220的音频信息转换为描述信息220的音频特征的表示向量。设备2000通过解析音频信息的方式来构建该代表音频信息的梅尔倒频谱(mel-frequencycepstralcoefficients,mfcc)特征或log-mel特征。可选地,设备2000还可以对mfcc特征或log-mel特征进行时序融合以构建代表性更强的表示向量。当然,设备2000也可以使用其他神经网络模型来获取描述信息220的音频信息的表示向量,本公开对此不作限制。

为了获取描述信息220的表示向量,设备2000还可以从描述信息220的文字信息中提取语义信息。设备2000可以对文字形式的模态信息(例如,图2b中的“小明行走一段时间后摆动双手”)进行进一步的解析以获取描述信息220的语义信息,进而将其转化为描述信息220的表示向量。例如,设备2000可以利用bert(bidirectionalencoderrepresentationsfromtransformers,双向编码器表示转换器)算法来将描述信息220的文字信息分别分割成多个单词,然后通过将这些单词通过词嵌入(wordembedding)的方式转换成词向量,最后将这些词向量拼接起来作为描述信息220的表示向量。bert算法中的编码神经网络模型(encoder)可以将这些词向量转换成编码隐藏状态向量。在一些实施例中,编码神经网络模型可以被实现为长短期记忆神经网络模型,可以理解的是编码神经网络模型还可以被实现为任何能够对词向量进行编码以获取编码隐藏状态向量的神经网络模型。通过bert算法,设备2000可以提取出描述信息220中与上下文相关的自然语言特征,该算法把词语映射为词向量,从而语义相近的词语对应的词向量也更加相似。当然,设备2000也可以使用其他神经网络模型来获取描述信息220的语义信息的表示向量,本公开对此不作限制。

如果描述信息220既包括文字信息又包括音频信息,文字信息的表示向量和音频信息的表示向量有可能是互补且冗余的。设备2000可以采用各种方式来将描述信息220的这两种表示向量进行进一步的处理,以得到能够表征二者的表示向量。通常,将多个模态的数据所蕴含的特征信息数值化为实值向量的过程被称为多模态表示。多模态表示可以包括多模态融合表示和多模态深度表示。其中,将不同模态的特征整合成(例如简单拼接)单个向量的过程可以被称为多模态融合表示,整合而成的单个向量可以被称为多模态融合表示向量。对多模态融合表示向量进行进一步分析而获得的向量可以被称为多模态深度表示向量。例如,可以利用神经网络模型将描述信息220的多模态融合表示向量进一步抽象为更高层次的向量,该向量也被称为多模态深度表示向量。多模态深度表示向量可以是多维浮点数向量,如128位浮点型向量。本公开中的记载的表示向量既可以是多模态融合表示向量、也可以是多模态深度表示向量。本公开对描述信息220的表示向量的具体表征方式并不做限制。

由于多模态深度表示向量以向量的方式来表征描述信息220,并且涵盖了多个模态的信息,因此使用多模态深度表示向量可以更快更准确地检索到连续动作片段,以更方便地获取连续动作片段集合230。

连续动作片段库210是基于视频素材构建的。这些视频素材可以是现有的电影、电视剧、短片等等,也可以时在线的视频素材。设备2000从视频素材中提取运动对象(例如,真人演员)的一个或多个连续动作的运动信息来构建连续动作片段库210。比如,一个连续动作将包括运动对象完整走完一步路的动作,或者从起跳到落地的动作等等。而连续动作片段将包括这个完整连续的动作的动作信息。当然每个连续动作的时长可以相同也可以不同,本公开对此不作限制。

连续动作片段库210中的每个连续动作片段包括连续动作片段的唯一标识符、连续动作片段的动作信息、以及连续动作片段对应的表示向量。连续动作片段对应的表示向量也可以是上述的多模态融合表示向量或多模态深度表示向量,其融合了视频素材在该动作片段中的运动属性信息和语义信息,甚至画面信息。其中,动作属性信息和语义信息是从视频素材的音频数据和文本数据中提取的。在图2b中示意性地示出了连续动作片段集合230的两个连续动作片段。例如,对于连续动作片段231而言,其具有的表示向量融合语义信息“行走”,以及动作属性信息(也即运动对象在行走时的动作节奏和动作情绪等)。而连续动作片段232的表示向量则融合有语义信息“甩手”。

由此,设备2000可以将虚拟对象的动作序列的表示向量中的各个动作序列片段的表示向量与连续动作片段库210中的各个连续动作序列片段对应的表示向量进行比较。两个表示向量之间的距离越小,表示两个表示向量的相似度越高,从而可以获得与虚拟对象的动作序列中的至少一部分动作相似的连续动作片段集合230。

最后,在操作203中,基于所述连续动作片段集合,设备2000合成所述虚拟对象的动作序列。

描述信息220所描述的动作序列中的各个动作的动作信息和连续动作片段231或232是相似的,则虚拟对象的运动序列也可以使用与连续动作片段231和232中的动作信息来表达。由此,设备2000根据连续动作片段集合230,可以推测出描述信息220“小明行走一段时间后摆动双手”的动作信息也可以包括“行走”和“甩手”中的动作信息。设备2000可以将连续动作片段集合以虚拟对象的动作序列的时序信息的顺序进行拼接,从而合成虚拟对象的动作序列。

可选地,设备2000可以将所合成的动作重定向(retarget)到虚拟新闻主播、虚拟游戏解说、虚拟门迎、虚拟导购中的任一虚拟对象上。重定向,尤其是运动重定向(motionretarget)是一种在对象大小和比例(例如,手、腿、躯干等)不同的情况下将运动信息从一个源角色复制到另一个目标角色的过程。例如,视频素材中可能是一个一米六的演员在行走,而虚拟对象可能是一个一米八的虚拟门迎。因此,需要将演员的运动信息进行变化才能更好的贴合虚拟门迎的动作状态。运动重定向可以根据某些约束,把一套骨骼的动作迁移到另外一套骨骼,不同的骨骼的长度、比例可能有所不同。常见的约束如脚必须在地面以上,不同骨骼的旋转角度不超过某一阈值等。

方法200通过从视频素材中估计运动信息的方式,解决了虚拟对象的动作对美术人员的依赖的问题。由于方法可以利用互联网上大量的、甚至在线的视频数据,因此连续动作片段库210中的内容更加丰富,不容易重复出现。通过融合了语义信息和运动属性信息的表示向量的比对使得合成的动作序列的节奏不仅能够匹配文字数据中的语义还能够匹配语音的节奏和情绪,使得合成的动作序列更加自然。方法200可以实现,例如,当虚拟新闻主播放慢语速强调某一词语时,每说一个字,手就跟着上下抖动一次。方法200还可以从连续动作片段库检索到与动作描述信息中的关键词相似的动作,从而可以获取更多的备选连续动作片段,进而避免所合成的虚拟对象的大部分时间处于呆板的静止状态,从而在虚拟现实的应用场景中实现更为灵动的仿真效果。

图3a是示出根据本公开实施例的构建连续动作片段库的操作300的流程图。图3b是示出根据本公开实施例的构建连续动作片段库的示意图。

参见图3b,视频库310包括视频库中多个视频素材的视频信息,其中每个视频素材的视频信息包括视频素材的唯一标识符(id)、音乐、台词、字幕、视频文件本身等等。视频库310可能是以关系数据库方式存储视频信息的数据库。

连续动作片段库210可以以这些连续动作片段的表示向量为键,以动作信息为值构建键值对(key-valuepairs),从而连续动作片段库210可以对应地存储连续动作片段的表示向量和动作信息。连续动作片段库210可以是近似最近邻(approximatenearestneighbor,ann)检索数据库。在近似最近邻检索库中可以采取近似最近邻检索的方式快速地找到与检索键(例如,虚拟对象的动作序列的表示向量)相似的一个或多个数据。具体地,近似最近邻检索可以利用海量数据之间形成的簇状聚集分布的特性,通过对数据分析聚类的方法对连续动作片段库210中的连续动作片段对应的表示向量进行分类或编码。接着,近似最近邻检索可以根据查询键预测其所属的数据类别,返回类别中的部分或全部作为检索结果。可选地,连续动作片段库210可以利用annoy、faiss等工具被构建为近似最近邻检索库。当然,还可以使用其他工具来构建近似最近邻检索库,本公开对此不作限制。连续动作片段库210也可以是其它类型的数据库,例如经典的关系数据库。

请注意,虽然在图3b中将连续动作片段库210和视频库310分开示出,但本领域技术人员应当理解,连续动作片段库210可以是根据视频库310生成的独立的数据库,连续动作片段库210也可以是视频库310中的一部分,只要其能够存储相应信息即可。

为了从视频库310中构建这样的连续动作片段库210,设备2000可以执行图3a中的操作301-304。

参见图3a,在操作301中,设备2000可以从视频素材中提取运动对象的动作信息、动作属性信息和语义信息。如上所述,运动信息可以包括:运动部件位置、速度、加速度中的至少一项。动作属性信息可以包括运动对象的动作节奏、动作情绪中的至少一项。其中,动作属性信息和语义信息是从视频素材的音频数据和文本数据中提取的。运动信息是从视频素材中的画面数据中提取的。例如,设备2000可以从视频素材的每一帧画面中估计运动部件(例如,诸如头部、双手、肘部等人体关节)的三维坐标。然后设备2000可以从相邻两帧或多帧之间的同一运动部件的三维坐标来估计该运动部件的旋转角、加速度(包括旋转加速度、直线加速度)、速度等参数。

可选地,操作301还可以包括:对所提取的运动对象的动作信息进行降维。例如,设备2000可以对从视频中估计出来的所有人体关节的位置、速度、加速度等特征利用主成分分析算法(principalcomponentsanalysis,pca)来进行降维,从而仅保留动作信息中最重要的成分,丢弃噪音,使得提取的运动信息更加平滑、稳定。

此外,语义信息和动作属性信息还可以通过图2a和图2b中描述的方式被表征为表示向量,该表示向量包含时序信息。

在操作302中,设备2000基于所述运动对象的动作信息,将所述视频素材划分为多个连续动作片段。视频的时长短则数分钟,长则数小时。时长过长(帧数过多的)的动作信息的语义、节奏等通常难以整段都符合需求,而且还会导致计算量大,不利于特征相似度比较。为了方便合成动作,设备2000可以把这些包含过多帧数的动作信息根据动作切分为包含较少帧数的动作信息片段,这样的运动信息片段也即连续动作片段。每个连续动作片段将包括运动对象完成一个完整的动作的运动信息,比如从起跳到落地。从而使得设备2000能够更容易的找到匹配节奏、语义的动作,进而合成更加多样化的动作。

可选地,操作302还可以包括:确定视频素材的每一帧中的运动对象的运动状态;在至少一个特定帧中的所述运动对象的运动状态为静止的情况下,以至少一个特定帧为分割点将视频素材划分为多个动作片段。例如,设备2000可以训练支持向量机(svm)分类器来判断每一帧的虚拟对象是处于运动状态还是静止状态。svm分类器可以通过有监督机器学习算法来对输入信息进行分类。当某一帧的虚拟对象处于静止状态时,该帧可以被认为是一个特定帧。然后设备2000可以认定两个特定帧之间的多个帧组成了一个完整的动作。或者,设备2000还可以预先设定一个标准动作帧,该帧表示一个动作完成的起始状态和完成状态(假设一个动作的起始状态和完成状态相同,例如,跳跃的起始状态和完成状态都是静止站立)。然后,设备2000可以比较每一帧的运动信息与标准动作帧的运动信息,如果第n帧和第n+k帧都与标准动作帧中的运动信息相似,那么可以认定第n帧和第n+k帧之间的多个帧构成了一个完整的动作。设备2000还可以结合上述两种方法,比如,在向上弹跳过程中,可能也出现人物在未落地的时候的运动信息与标准动作帧中的运动信息相同或相似的情况,此时,通过静止状态和运动状态的分类信息就可以确定人物仍在运动中,一个完整的动作尚未完成。因此将二者结合可以得到更好的分类结果。本领域技术人员应当理解如何将视频素材进行划分还可以包括多种方式,本公开并不以此为限。

在操作303中,设备2000可以将每个连续动作片段对应的动作属性信息和语义信息转换为连续动作片段对应的表示向量。设备2000可以根据上述分类结果把动作序列及其对应的语义信息、动作属性信息切分为片段,并将其与动作信息进行关联。可选地,视频素材中表征语义信息和动作属性信息的表示向量可以根据上述分类的方式,被划分为多个表示向量,每个表示向量对应于一个连续动作片段,其融合该连续动作片段的语义信息、动作属性信息。

在操作304中,设备2000将每个动作片段对应的表示向量与动作片段的唯一标识符、动作信息对应地存储。例如,将这些信息对应地存储于连续动作片段库210。

由此,通过操作301至操作304,设备2000可以快速地获取连续动作片段库210。

图4是示出根据本公开实施例的确定连续动作片段库中与所述动作序列至少一部分动作的相似的连续动作片段集合的示意图。

例如,参见图4,设备2000可以基于虚拟对象的动作序列的表示向量,获取第一动作序列片段的表示向量。然后,设备2000基于第一动作序列片段的表示向量,获取第一连续动作片段。第一连续动作片段的表示向量与所述第一动作序列片段的表示向量具备第一相似度。其中,第一相似度大于等于连续动作片段库中的其它连续动作片段的表示向量与第一动作序列片段的表示向量的相似度。

例如,假设连续动作片段库210中包括100个连续动作片段,每个连续动作片段的时长/代表的帧数可能不同。设备2000在获取第一动作序列时,可以从虚拟对象的动作序列的表示向量中截取与连续动作片段库210中任一连续动作片段的时长相同的表示向量作为备选动作序列片段a的表示向量,然后,计算备选动作序列片段a的表示向量和该连续动作片段的表示向量之间的相似度a。接着,设备2000从虚拟对象的动作序列的表示向量中截取与另一连续动作片段的时长相同的表示向量作为备选动作序列片段b的表示向量,然后,计算备选动作序列片段b的表示向量和该连续动作片段的表示向量之间的相似度b。设备2000比较相似度a和相似度b,然后选取相似度高的那个备选动作序列片段继续与其它备选动作序列片段进行比较,直到完成100个连续动作片段的比较,从而选取到相似度最高的连续动作片段作为第一连续动作片段。如果有时长不同的连续动作片段与其对应的备选动作序列片段的相似度相同,那么选取时长较短的那个连续动作片段作为第一连续动作片段。

接着,设备2000可以基于虚拟对象的动作序列的表示向量,获取第二动作序列片段的表示向量,第二序列动作片段为第一动作序列片段的下一个动作序列片段。然后设备2000可以基于第一连续动作片段的末尾多帧的动作信息、第二动作序列片段的表示向量,获取第二连续动作片段。其中,第二相似度大于等于连续动作片段库中的其它动作片段的表示向量与第二动作序列片段的表示向量的相似度。如图4所示,第一连续动作片段的灰色部分表示第一连续动作片段的末尾n帧。假设第一连续动作片段的表示向量与虚拟对象的动作序列中的第1帧至第k帧的表示向量最为相似。那么在获取第二连续动作片段时,设备2000可以从第k-n帧开始截取虚拟对象的动作序列的表示向量作为用于获取第二连续动作片段的备选动作序列片段。例如,假设需要截取与备选动作片段c相同时长的第二连续动作片段,并且备选动作片段c具有m帧。那么可以截取虚拟对象的动作序列的表示向量中表示第k-n帧至第k-n+m帧的表示信息。然后设备2000采用与获取第一连续动作片段类似的方式,即可获取第二连续动作片段。

本公开并不局限于上述获取第一相似动作片段和第二相似动作片段的方式。例如,设备2000还可以将连续动作片段库210中的连续动作片段均压缩至相同的时长,然后与定长的动作序列片段的表示向量进行比较。或者,设备2000还可以利用邻近检索库的特性来完成第一相似片段和第二相似片段的检索。

在获取连续动作片段集合230后,设备2000可以将连续动作片段集合230中的连续动作片段进行拼接。其中,所述拼接包括将相邻的连续动作片段中的前一连续动作片段的末尾多帧与后一连续动作片段的起始多帧的动作信息进行融合。例如,设备2000可以将每个连续动作片段的末尾n帧与下一片段的开始n帧的旋转角加权平均,以使得合成动作能够在不同的连续动作片段平滑过渡,其中n为偶数。例如,假设第一连续动作片段表示虚拟对象的动作序列中的第i帧至第i+l1帧的动作。第二连续动作片段表示虚拟对象的动作序列中的第i+l1-n帧至第i+l1-n+l2帧的动作。为了使得连续动作片段平滑过渡,设备将第一连续动作片段中表示虚拟对象的动作序列中的第i+l1-n帧至第i+l1帧这n帧的动作信息与第二连续动作片段中表示虚拟对象的动作序列中的第i+l1-n帧至第i+l1帧这n帧的动作信息进行融合。例如,设备2000可以使用以下公式来计算当前连续动作片段第x帧每个运动部件的输出旋转角

为一个向量,表示前一连续动作片段第x帧虚拟对象的运动信息,每个运动部件的运动信息可以用旋转角表示。例如,向量中的每一元素表示人体某一关节的旋转角。表示当前动作片段第x帧每个运动部件的旋转角。x的取值范围为例如,假设当前连续动作片段为第二连续动作片段。当x=0时,为第一连续动作片段第l1-0.5*n帧的虚拟对象的各个运动部件的旋转角(其表示用第一连续动作片段来近似的情况下的虚拟对象的运动序列中第i+l1-0.5*n帧的运动信息)。为第二连续动作片段第0.5*n帧的虚拟对象的各个运动部件的旋转角(其表示用第二连续动作片段来近似的情况下的虚拟对象的运动序列中第i+l1-0.5*n帧的运动信息)。此时,将x=0带入上述公式,可以得到虚拟对象的运动序列中第i+l1-0.5*n帧的旋转角

通过上述公式可以实现,前一连续动作片段与当前连续动作片段末尾n帧与下一片段的开始n帧的旋转角加权平均,并且前一连续动作片段的权重随着x的增加而减少,后一连续动作片段的权重随着x的增加而增加。

图5示出根据本公开实施例的生成虚拟对象动作的视频的方法500的流程图。

在操作501中,设备2000可以获取描述所述虚拟对象的动作序列的文本信息或音频信息。描述虚拟对象的动作序列的文本信息或音频信息可以是方法200中的描述信息220。例如,文本信息可以是“小明行走一段时间后摆动双手”。音频信息可以是以一段激昂的音乐来描述虚拟对象动作的情绪,或者以一段鼓点来描述虚拟对象动作的节奏。

在操作502中,设备2000可以基于文本信息或音频信息,将虚拟对象的动作序列重定向到虚拟对象上,以输出虚拟对象动作的视频。

其中,所述虚拟对象动作的视频是基于由视频素材构建的连续动作片段库中的动作序列连续动作片段集合合成的,并且,所述连续动作片段库中的每个连续动作片段包括所述连续动作片段的唯一标识符、所述连续动作片段的动作信息、以及所述连续动作片段对应的表示向量。与方法200类似地,设备2000可以将文本信息或音频信息转换为虚拟对象的动作序列的表示向量,然后在连续动作片段库210中检索出相似的连续动作片段集230。将连续动作片段集230拼接完成后,设备2000将获取虚拟对象的动作序列。

设备2000可以将所合成的动作重定向(retarget)到虚拟新闻主播、虚拟游戏解说、虚拟门迎、虚拟导购中的任一个虚拟对象上。重定向可以在对象大小和比例(例如,手、腿、躯干等)不同的情况下将运动信息从一个源角色复制到另一个目标角色。例如,在线视频素材中可能是一个一米六的演员在行走,而虚拟对象可能是一个一米八的虚拟门迎。因此,需要将演员的运动信息进行变化才能更好的贴合虚拟门迎的动作状态。运动重定向可以根据某些约束,把一套骨骼的动作迁移到另外一套骨骼,不同的骨骼的长度、比例可能有所不同。常见的约束如脚必须在地面以上,不同骨骼的旋转角度不超过某一阈值等。在完成重定向后,可以将虚拟对象动作的视频输出。

方法500仅通过输入文本信息或音频信息,即可输出符合文本信息中的语义信息和符合音频信息的运动节奏信息的虚拟对象的视频,并且在该视频中虚拟对象的运动自然不僵硬。

图6是示出根据本公开实施例的合成虚拟对象的动作序列的设备2000的结构图。

设备2000可以包括动作序列获取模块601、相似动作片段获取模块602和动作合成模块603。

动作片段集确定模块601可以被配置为获取所述虚拟对象的动作序列的描述信息。虚拟对象包括虚拟人物、虚拟动物、三维卡通对象等。虚拟对象的动作序列中可以包括虚拟对象的每个运动部件在视频或其它呈现方式中各个帧中的运动信息。这些运动信息包括:运动部件位置、速度、加速度中的至少一项。

相似动作片段获取模块602可以被配置为基于所述描述信息和由视频素材构建的连续动作片段库,确定与所述动作序列中的至少一部分动作的相似的连续动作片段集合。可选地,相似动作片段获取模块602还可以被配置为基于所述描述信息,获取虚拟对象的动作序列的表示向量,其中,该表示向量融合了动作序列的语义信息和动作属性信息;以及基于该虚拟对象的动作序列的表示向量,确定连续动作片段库中与所述动作序列中各动作相似的连续动作片段集。其中,所述连续动作片段库中的每个连续动作片段包括所述连续动作片段的唯一标识符、所述连续动作片段的动作信息、以及所述连续动作片段对应的表示向量。

动作合成模块603可以被配置为基于所述连续动作片段集合,合成所述虚拟对象的动作。可选地,设备2000还可以将所合成的动作重定向(retarget)到虚拟新闻主播、虚拟游戏解说、虚拟门迎、虚拟导购中的任一个虚拟对象上。重定向,尤其是运动重定向(motionretarget)是一种在对象大小和比例(例如,手、腿、躯干等)不同的情况下将运动信息从一个源角色复制到另一个目标角色的过程。例如,视频素材中可能是一个一米六的演员在行走,而虚拟对象可能是一个一米八的虚拟门迎。因此,需要将演员的运动信息进行变化才能更好的贴合虚拟门迎的动作状态。运动重定向可以根据某些约束,把一套骨骼的动作迁移到另外一套骨骼,不同的骨骼的长度、比例可能有所不同。常见的约束如脚必须在地面以上,不同骨骼的旋转角度不超过某一阈值等。

设备2000通过从视频素材中估计运动信息的方式,解决了虚拟对象的动作对美术人员的依赖的问题。设备2000还可以从连续动作片段库检索到与动作描述信息中的关键词相似的动作,从而可以获取更多的备选连续动作片段,进而避免所合成的虚拟对象的大部分时间处于呆板的静止状态,从而在虚拟现实的应用场景中实现更为灵动的仿真效果。

本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现方法200和方法500。

根据本公开的实施例的方法200和方法500通过从视频素材中估计运动信息的方式,解决了虚拟对象的动作对美术人员的依赖的问题。由于方法可以利用互联网上大量的视频数据,因此连续动作片段库中的内容更加丰富,不容易重复出现。通过融合了语义信息和运动属性信息的表示向量的比对使得合成的动作序列的节奏不仅能够匹配文字数据中的语义还能够匹配语音的节奏和情绪,使得合成的动作序列更加自然。方法200和方法500可以实现,例如,当虚拟新闻主播放慢语速强调某一词语时,每说一个字,手就跟着上下抖动一次。方法200还可以从连续动作片段库检索到与动作描述信息中的关键词相似的动作(而不需找到与关键词完全相同的动作),从而可以获取更多的备选连续动作片段,进而避免所合成的虚拟对象的大部分时间处于呆板的静止状态,从而在虚拟现实的应用场景中实现更为灵动的仿真效果。

需要说明的是,附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。

在上面详细描述的本发明的示例实施例仅仅是说明性的,而不是限制性的。本领域技术人员应该理解,在不脱离本发明的原理和精神的情况下,可对这些实施例或其特征进行各种修改和组合,这样的修改应落入本发明的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1