掌桥专利:专业的专利平台
掌桥专利
首页

虚拟形象生成方法、装置、电子设备和介质

文献发布时间:2023-06-19 18:37:28


虚拟形象生成方法、装置、电子设备和介质

技术领域

本公开涉及人工智能技术领域,具体为增强现实、虚拟现实、计算机视觉、深度学习等领域,可应用于元宇宙、虚拟数字人等场景。本公开具体涉及一种虚拟形象生成方法、装置、电子设备、存储介质和计算机程序产品。

背景技术

动作重定向是指给定一个虚拟形象的动作,将此动作迁移到另一个虚拟形象身上,使其动作保持一致。动作重定向在社交、直播、游戏等场景中有着广泛的应用。相关技术中,可以通过离线方式来完成动作重定向。但是,实践中对作为动作源的虚拟形象的获取通常是实时的,离线重定向的方式并不适配。并且,由于不同的虚拟形象之间存在骨骼、蒙皮、面片等多处差异,采用离线重定向的方式通常需要人工进行大量调试来不断迭代配置文件,这会产生巨大耗时。

发明内容

本公开提供了一种虚拟形象生成方法、装置、电子设备、存储介质和计算机程序产品。

根据本公开的一方面,提供了一种虚拟形象生成方法,包括:获取针对参考虚拟形象的参考初始姿态参数以及针对目标虚拟形象的目标初始姿态参数;参考初始姿态参数用于表征参考虚拟形象的初始姿态,目标初始姿态参数用于表征目标虚拟形象的初始姿态;基于参考初始姿态参数,调整目标初始姿态参数,使得调整后的目标虚拟形象的初始姿态与参考虚拟形象的初始姿态相匹配;获取与参考虚拟形象的目标姿态相关联的目标姿态参数,并根据目标姿态参数和参考初始姿态参数,得到姿态调整参数;以及根据姿态调整参数和调整后的目标虚拟形象的目标初始姿态参数,生成基于目标姿态参数的目标虚拟形象。

根据本公开的另一方面,提供了一种虚拟形象生成装置,包括:第一获取模块,用于获取针对参考虚拟形象的参考初始姿态参数以及针对目标虚拟形象的目标初始姿态参数;参考初始姿态参数用于表征参考虚拟形象的初始姿态,目标初始姿态参数用于表征目标虚拟形象的初始姿态;调整模块,用于基于所述参考初始姿态参数,调整所述目标初始姿态参数,使得调整后的目标虚拟形象的初始姿态与参考虚拟形象的初始姿态相匹配;第二获取模块,用于获取与参考虚拟形象的目标姿态相关联的目标姿态参数,并根据所述目标姿态参数和所述参考初始姿态参数,得到姿态调整参数;以及生成模块,用于根据所述姿态调整参数和调整后的目标虚拟形象的目标初始姿态参数,生成基于目标姿态参数的目标虚拟形象。

根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行根据本公开提供的方法。

根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行根据本公开提供的方法。

根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据本公开提供的方法。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1是根据本公开的实施例的可以应用虚拟形象生成方法和装置的示例性系统架构示意图;

图2是根据本公开的实施例的虚拟形象生成方法的流程图;

图3是根据本公开的实施例的骨骼节点的树状层级结构的示意图;

图4A和图4B分别是参考虚拟形象的初始姿态对应的骨骼架构与调整后的目标虚拟形象的初始姿态对应的骨骼架构的效果图;

图5A和图5B分别是参考虚拟形象的目标姿态和基于目标姿态参数的目标虚拟形象的目标姿态的效果图;

图6是根据本公开的另一实施例的虚拟形象生成方法的流程图;

图7是根据本公开实施例的虚拟形象生成装置的框图;以及

图8是用来实现本公开实施例的虚拟形象生成方法的电子设备的框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。

本公开的实施例提供了一种虚拟形象生成方法,包括:获取针对参考虚拟形象的参考初始姿态参数以及针对目标虚拟形象的目标初始姿态参数;基于参考初始姿态参数,调整目标初始姿态参数,使得调整后的目标虚拟形象的初始姿态与参考虚拟形象的初始姿态相匹配;获取与参考虚拟形象的目标姿态相关联的目标姿态参数,并根据目标姿态参数和参考初始姿态参数,得到姿态调整参数;以及根据姿态调整参数和调整后的目标虚拟形象的目标初始姿态参数,生成基于目标姿态参数的目标虚拟形象。

图1是根据本公开的实施例的可以应用虚拟形象生成和装置的示例性系统架构示意图。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种客户端应用。例如,动画制作类应用、直播类应用、游戏类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端或社交平台软件等(仅为示例)。

终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器105可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或分布式系统,还可以是提供云服务、云计算、网络服务、中间件服务等基础云计算服务的云服务器。

服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。

例如,服务器105可以通过网络104获取来自终端设备101、102、103的针对参考虚拟形象的参考初始姿态参数以及针对目标虚拟形象的目标初始姿态参数,基于参考初始姿态参数,调整目标初始姿态参数,使得调整后的目标虚拟形象的初始姿态与参考虚拟形象的初始姿态相匹配。获取与参考虚拟形象的目标姿态相关联的目标姿态参数,并根据目标姿态参数和参考初始姿态参数,得到姿态调整参数,以及根据姿态调整参数和调整后的目标虚拟形象的目标初始姿态参数,生成基于目标姿态参数的目标虚拟形象。服务器105还可以将基于目标姿态参数的目标虚拟形象发送给终端设备101、102、103。

需要说明的是,本公开实施例所提供的虚拟形象生成方法一般可以由服务器105执行。相应地,本公开实施例所提供的虚拟形象生成装置一般可以设置于服务器105中。本公开实施例所提供的虚拟形象生成方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的虚拟形象生成装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

应注意,以下方法中各个操作的序号仅作为该操作的表示以便描述,而不应被看作表示该各个操作的执行顺序。除非明确指出,否则该方法不需要完全按照所示顺序来执行。

图2是根据本公开的实施例的虚拟形象生成方法的流程图。

如图2所示,虚拟形象生成方法200例如可以包括操作S210~S240。

在操作S210,获取针对参考虚拟形象的参考初始姿态参数以及针对目标虚拟形象的目标初始姿态参数。

在操作S220,基于参考初始姿态参数,调整目标初始姿态参数,使得调整后的目标虚拟形象的初始姿态与参考虚拟形象的初始姿态相匹配。

在操作S230,获取与参考虚拟形象的目标姿态相关联的目标姿态参数,并根据目标姿态参数和参考初始姿态参数,得到姿态调整参数。

在操作S240,根据姿态调整参数和调整后的目标虚拟形象的目标初始姿态参数,生成基于目标姿态参数的目标虚拟形象。

根据本公开的实施例,目标虚拟形象是待重定向的虚拟对象。可以将参考虚拟形象作为动作源来对目标虚拟形象进行动作重定向处理,以便将参考虚拟形象的姿态迁移到目标虚拟形象上,使得目标虚拟形象的姿态与参考虚拟形象的姿态一致。可以理解,虚拟形象的姿态是由虚拟形象的骨骼架构来确定的,因此,将参考虚拟形象作为动作源来对目标虚拟形象进行动作重定向处理,实质上是将参考虚拟形象的骨骼架构迁移到目标虚拟形象上。

虚拟形象可以是游戏、动画等视频中的角色,也可以是其他合适的角色,具体可以根据实际应用场景选择。虚拟形象可以是人物形态、卡通或者其他形态,本公开对此不做限定。

根据本公开的实施例,可以将具有初始姿态的参考虚拟形象和目标虚拟形象分别输入深度学习模型中,得到针对参考虚拟形象的参考初始姿态参数以及针对目标虚拟形象的目标初始姿态参数。可以理解,上述深度学习模型可以是任意一个用于人体姿态估计的深度学习模型,例如但不限于SMPL(Skinned Multi-Person Linear Model)系列模型,具体可以根据实际应用场景进行选择。

在本公开实施例中,针对参考虚拟形象的参考初始姿态参数可以用于表征参考虚拟形象的初始姿态,针对目标虚拟形象的目标初始姿态参数可以用于表征目标虚拟形象的初始姿态。

可以理解,由于不同的虚拟形象之间存在骨骼、蒙皮、面片等多处差异,因此,参考虚拟形象的初始姿态与目标虚拟形象的初始姿态会存在差异。另外,对于不同姿态下的同一虚拟形象,例如具有不同姿态的参考虚拟形象,它们对应的骨骼架构也是不同的。并且,由于实践中对参考虚拟形象的目标姿态的获取是实时的,如果直接利用参考虚拟形象的目标姿态来重定向目标虚拟形象,需要人工不断调试虚拟形象的姿态参数,不仅会产生巨大耗时,而且也会影响虚拟形象重定向结果的准确性。

因此,可以先将目标虚拟形象的初始姿态调整为与参考虚拟形象的初始姿态一致。这样,后续可以通过将参考虚拟形象的目标姿态与参考虚拟形象的初始姿态之间的差异迁移到目标虚拟形象中来完成对目标虚拟形象的重定向。通过采用上述方式,有利于减少虚拟形象动作重定向过程中的人工辅助工作量,可以提升动作重定向处理的效率,以及动作重定向处理的准确性。

例如,可以基于参考初始姿态参数来调整目标初始姿态参数,以使调整后的目标虚拟形象的初始姿态与参考虚拟形象的初始姿态相匹配。

接下来,可以获取与参考虚拟形象的目标姿态相关联的目标姿态参数,并根据目标姿态参数和参考初始姿态参数,得到姿态调整参数。之后,根据姿态调整参数和调整后的目标虚拟形象的目标初始姿态参数,生成基于目标姿态参数的目标虚拟形象。

需要说明的是,获取针对参考虚拟形象的目标姿态参数的方式与获取针对目标虚拟形象的目标初始姿态参数的方式类似。例如,可以将具有目标姿态的参考虚拟形象输入以上描述的深度学习模型中,得到针对参考虚拟形象的目标姿态参数。

另外,针对参考虚拟形象的目标姿态参数可以包括多个目标姿态下的参考虚拟形象的目标姿态参数。其中,每个目标姿态下的参考虚拟形象对应一个针对参考虚拟形象的目标姿态参数。针对每个目标姿态下的参考虚拟形象的目标姿态参数,均可以采用上述操作S2 1 0~S240来生成基于该目标姿态参数的目标虚拟形象。由此,可以将多个目标姿态下的参考虚拟形象重定向到目标虚拟形象上,得到多个目标姿态下的目标虚拟形象。基于上述方式,可以满足实时重定向的需求,提高了动作重定向处理的效率。

通过本公开的实施例,基于针对参考虚拟形象的参考初始姿态参数来调整目标虚拟形象的目标初始姿态参数,使得调整后的目标虚拟形象的初始姿态与参考虚拟形象的初始姿态相匹配。之后,基于参考虚拟形象的目标姿态与初始姿态之间的姿态差异来处理调整后的目标虚拟形象的目标初始姿态参数,得到基于目标姿态参数的目标虚拟形象,从而实现将参考虚拟形象的目标姿态迁移到目标虚拟形象上,即完成对目标虚拟形象的动作重定向处理。本公开的方案有利于减少虚拟形象动作重定向过程中的人工辅助工作量,可以提升动作重定向处理的效率,以及动作重定向处理的准确性。

为了便于后续说明,下面先对与虚拟形象的骨骼节点相关的内容进行示例说明。

根据本公开的实施例,虚拟形象的骨骼架构包括多个骨骼节点,虚拟形象中的骨骼节点之间具有拓扑关联关系,多个骨骼节点构成的拓扑层级结构例如可以是树状层级结构。

例如,在骨骼节点的树状层级结构中,可以将与当前骨骼节点相关联的上一骨骼节点作为当前骨骼节点的父节点,将与当前骨骼节点相关联的下一骨骼节点作为当前骨骼节点的子节点。其中,当前骨骼节点的父节点对应的拓扑结构层级高于当前骨骼节点对应的拓扑结构层级,当前骨骼节点对应的拓扑结构层级高于当前骨骼节点的子节点对应的拓扑结构层级。

下面参考图3对本实施例的骨骼节点的树状层级结构进行示例性说明。

图3是根据本公开实施例的骨骼节点的树状层级结构的示意图。

如图3所示,骨骼节点nodeRoot为根节点,根节点nodeRoot为骨骼节点nodeA的父节点,骨骼节点nodeA为骨骼节点nodeB的父节点。

例如,可以利用公式(1)确定骨骼节点的全局姿态矩阵。

corrdinate

在公式(1)中corrdinate

骨骼节点的局部姿态矩阵可以指示骨骼节点与父节点的相对位置关系,从根节点之后的节点开始,可以逐层传递父节点的局部姿态矩阵,得到各骨骼节点的全局姿态矩阵,即得到各骨骼节点的绝对位置信息。

例如,可以分别利用公式(2)、公式(3)和公式(4),确定骨骼节点nodeRoot、骨骼节点nodeA和骨骼节点nodeB的全局姿态矩阵。

globalRoot=localRoot (2)

globalA=globalRoot*localA (3)

globalB=globalA*localB (4)

在公式(2)~(4)中,globalRoot、globalA、globalB分别表示骨骼节点nodeRoot、nodeA、nodeB的全局姿态矩阵,localRoot、localA、localB分别表示骨骼节点nodeRoot、nodeA、nodeB的局部姿态矩阵。

根据本公开的实施例,参考初始姿态参数可以包括参考虚拟形象的多个参考骨骼节点的第一初始局部姿态矩阵,目标初始姿态参数可以包括目标虚拟形象的多个目标骨骼节点的第二初始局部姿态矩阵。

在上述操作S220中,基于参考初始姿态参数,调整目标初始姿态参数可以包括如下操作。

针对多个目标骨骼节点的第二初始局部姿态矩阵中的每一个,基于与第二初始局部姿态矩阵对应的第一初始局部姿态矩阵来调整第二初始局部姿态矩阵,得到目标骨骼节点的第三初始局部姿态矩阵;以及根据多个第三初始局部姿态矩阵,得到调整后的目标虚拟形象的目标初始姿态参数。

例如,可以根据第一初始局部姿态矩阵,确定参考骨骼节点的第一全局姿态矩阵。之后,根据参考骨骼节点的第一全局姿态矩阵来调整第二初始局部姿态矩阵,从而得到目标骨骼节点的第三初始局部姿态矩阵。

下面将结合示例对获取第三初始局部姿态矩阵的过程进行说明。

例如,针对参考虚拟形象中的根节点rRoot,可以根据根节点rRoot对应的第一初始局部姿态矩阵,确定根节点rRoot的第一全局姿态矩阵。之后,将根节点rRoot的第一全局姿态矩阵作为目标虚拟形象中的根节点TRoot对应的全局姿态矩阵,并根据根节点TRoot对应的全局姿态矩阵,确定根节点TRoot对应的第三初始局部姿态矩阵。根据公式(1)~(4)可知,根节点TRoot的第三初始局部姿态矩阵与根节点rRoot对应的第一初始局部姿态矩阵相同。

接下来,针对参考虚拟形象中第2参考骨骼节点,可以根据第2参考骨骼节点的第一初始局部姿态矩阵以及第2参考骨骼节点的父节点的第一全局姿态矩阵(即根节点rRoot的第一全局姿态矩阵),得到第2参考骨骼节点的第一全局姿态矩阵。之后,将第2参考骨骼节点的第一全局姿态矩阵,作为目标虚拟形象中第2目标骨骼节点对应的全局姿态矩阵。接下来,根据第2目标骨骼节点对应的全局姿态矩阵以及根节点TRoot对应的全局姿态矩阵,得到第2目标骨骼节点对应的第三初始局部姿态矩阵。可以理解,由于根节点rRoot的第一全局姿态矩阵与根节点TRoot对应的全局姿态矩阵相同,因此,第2目标骨骼节点对应的第三初始局部姿态矩阵与第2参考骨骼节点的第一初始局部姿态矩阵相同。

接下来,针对参考虚拟形象中第i(i为大于1的整数)参考骨骼节点,可以根据第i参考骨骼节点的第一初始局部姿态矩阵以及第i参考骨骼节点的父节点的第一全局姿态矩阵,得到第i参考骨骼节点的第一全局姿态矩阵。之后,将第i参考骨骼节点的第一全局姿态矩阵作为第i目标骨骼节点的全局姿态矩阵。之后,根据第i目标骨骼节点的全局姿态矩阵以及第i目标骨骼节点的父节点对应的全局姿态矩阵,得到第i目标骨骼节点对应的第三初始局部姿态矩阵。类似地,基于上述公式(1)~(4)可知,第i目标骨骼节点对应的第三初始局部姿态矩阵与第i参考骨骼节点的第一初始局部姿态矩阵相同。

根据上述描述可知,基于参考初始姿态参数,调整目标初始姿态参数的过程,相当于将每个目标骨骼节点对应的第二初始局部姿态矩阵替换为相应参考骨骼节点对应的第一初始局部姿态矩阵。

在一些示例中,基于参考初始姿态参数,调整目标初始姿态参数,还可以采用如下操作实现:例如,可以获取与预设姿态对应的预设姿态参数,之后,基于预设姿态参数,分别调整参考初始姿态参数和目标虚拟形象的目标初始姿态参数,使得调整后的参考虚拟形象的初始姿态和调整后的目标虚拟形象的初始姿态分别与预设姿态相匹配。

根据本公开的实施例,预设姿态参数用于表征任意一个虚拟形象的预设姿态(例如但不限于T-Poss姿态)。预设姿态参数包括该虚拟形象的多个骨骼节点的预设局部姿态矩阵。基于预设局部姿态矩阵,可以调整参考初始姿态参数和目标虚拟形象的目标初始姿态参数。其中,基于预设姿态参数来分别调整参考初始姿态参数和目标虚拟形象的目标初始姿态参数的过程,与上述基于参考初始姿态参数,调整目标初始姿态参数的过程类似,这里不再赘述。

通过上述实施例,可以以任意一个虚拟形象的预设姿态来调整参考虚拟形象的初始姿态和目标虚拟形象的初始姿态(例如T-Poss姿态)。由此,可以使得调整后的目标虚拟形象的初始姿态与调整后的参考虚拟形象的初始姿态一致。需要说明的是,在本公开实施例中,预设姿态可以根据需要设置,这里不做限定。

图4A和图4B分别是参考虚拟形象的初始姿态对应的骨骼架构与调整后的目标虚拟形象的初始姿态对应的骨骼架构的效果图。下面结合图4A和图4B示例性说明基于参考虚拟形象的初始姿态来调整目标虚拟形象的初始姿态的效果。

在本公开实施例中,根据参考虚拟形象的参考初始姿态参数,可以得到如图4A所示的参考虚拟形象的初始姿态对应的骨骼架构。另外,根据以上所述的方式,基于参考虚拟形象的初始姿态来调整目标虚拟形象的初始姿态,可以得到如图4B所示的调整后的目标虚拟形象的初始姿态对应的骨骼架构。

可以理解,虚拟形象的姿态是由虚拟形象的骨骼架构来确定的。因此,分别根据图4A和图4B中所示的虚拟形象的骨骼架构,可以确定参考虚拟形象的初始姿态和调整后的目标虚拟形象的初始姿态。

如图4A所示,参考虚拟形象的初始姿态例如为T-Poss姿态。如图4B所示,调整后的目标虚拟形象的初始姿态也为T-Poss姿态。通过比较图4A和图4B可知,基于参考虚拟形象的参考初始姿态参数来调整目标虚拟形象的初始姿态,可以使得调整后的目标虚拟形象的初始姿态与参考虚拟形象的初始姿态相匹配。

在一些实施例中,如果参考虚拟形象的初始姿态和目标虚拟形象的初始姿态不是T-Poss姿态,且两者的初始姿态不匹配,还可以以T-Poss姿态为预设姿态,并基于与预设姿态对应的预设姿态参数来调整参考初始姿态参数和目标虚拟形象的目标初始姿态参数,从而使得调整后的目标虚拟形象的初始姿态与调整后的参考虚拟形象的初始姿态相匹配。

根据本公开的实施例,目标姿态参数包括参考虚拟形象的多个参考骨骼节点的第一目标局部姿态矩阵,根据目标姿态参数和参考初始姿态参数,得到姿态调整参数可以包括如下操作。需要说明的是,以下操作是针对每个参考骨骼节点的第一目标局部姿态矩阵来执行的。

例如,针对每个参考骨骼节点的第一目标局部姿态矩阵,可以根据第一目标局部姿态矩阵和第一初始局部姿态矩阵,确定参考骨骼节点的第一姿态调整系数。之后,根据第一初始局部姿态矩阵,得到参考骨骼节点的第一全局姿态矩阵,以及根据第一姿态调整系数和第一全局姿态矩阵,确定姿态调整参数。

例如,可以根据公式(5)确定参考骨骼节点的第一姿态调整系数。

Acorrdinate

在公式(5)中,Acorrdinate

在本公开实施例中,可以采用公式(6)确定参考骨骼节点的第一全局姿态矩阵。

Acorrdinate

在公式(6)中,Acorrdinate

例如,可以根据公式(7)确定姿态调整参数。

ArotDiff

在公式(7)中,ArotDiff

需要说明的是,如果基于预设姿态参数来调整参考虚拟形象的初始姿态参数和目标虚拟形象的目标初始姿态参数,那么,在确定姿态调整参数的过程中,上述公式(5)~(7)中涉及的与参考骨骼节点对应的第一初始局部姿态矩阵和第一全局姿态矩阵,分别表示调整后的参考虚拟形象的参考骨骼节点的初始局部姿态矩阵和全局姿态矩阵。其中,基于调整后的参考虚拟形象的参考骨骼节点的初始局部姿态矩阵和全局姿态矩阵,确定姿态调整参数的方式与上述描述类似,这里不再赘述。

根据本公开的实施例,在获得姿态调整参数之后,可以根据姿态调整参数和调整后的目标虚拟形象的目标初始姿态参数,生成基于目标姿态参数的目标虚拟形象。需要说明的是,以下操作是针对每个第三初始局部姿态矩阵来执行的。

例如,针对每个第三初始局部姿态矩阵,可以根据目标骨骼节点的第三初始局部姿态矩阵,得到目标骨骼节点的第二全局姿态矩阵。

例如,可以根据公式(8)确定目标骨骼节点的第二全局姿态矩阵。

Bcorrdinate

在公式(8)中,Bcorrdinate

接下来,可以根据姿态调整参数和目标骨骼节点的第二全局姿态矩阵,确定第二姿态调整系数。

例如,可以根据公式(9)确定第二姿态调整系数。

BrotDiff

在公式(9)中,Bcorrdinate

接下来,可以根据第二姿态调整系数和目标骨骼节点的第三初始局部姿态矩阵,得到目标骨骼节点的第二目标局部姿态矩阵。

例如,可以根据公式(10)确定目标骨骼节点的第二目标局部姿态矩阵。

Bcorrdinate

在公式(10)中,Bcorrdinate

接下来,可以根据第二目标局部姿态矩阵,得到基于目标姿态参数的目标虚拟形象。

例如,通过利用目标骨骼节点的第二目标局部姿态矩阵对目标虚拟形象的第三初始局部姿态进行更新,可以将参考虚拟形象的目标姿态参数转换到目标虚拟形象中,从而生成基于目标姿态参数的目标虚拟形象。

在一些实施例中,还可以采用如下方式来生成基于目标姿态参数的目标虚拟形象。

例如,如果确定参考虚拟形象的初始姿态与目标虚拟形象的初始姿态相匹配,也就是说,可以不需要基于参考初始姿态参数来调整目标初始姿态参数,使得调整后的目标虚拟形象的初始姿态与参考虚拟形象的初始姿态相匹配。此时,可以直接获取与参考虚拟形象的目标姿态相关联的目标姿态参数,并根据目标姿态参数和参考初始姿态参数,得到姿态调整参数。之后,根据姿态调整参数和针对目标虚拟形象的目标初始姿态参数,生成基于目标姿态参数的目标虚拟形象。

在本公开实施例中,可以根据参考虚拟形象的目标姿态参数和参考虚拟形象的参考初始姿态参数来确定姿态调整参数。其中,确定姿态调整参数的方式与以上描述的方式相同,这里不再赘述。

在确定姿态调整参数之后,可以根据姿态调整参数和针对目标虚拟形象的目标初始姿态参数,生成基于目标姿态参数的目标虚拟形象。需要说明的是,以下操作是针对每个目标骨骼节点的第二初始局部姿态矩阵来执行的。

例如,针对多个目标骨骼节点的第二初始局部姿态矩阵中的每一个,根据目标骨骼节点的第二初始局部姿态矩阵,得到目标骨骼节点的第三全局姿态矩阵。

例如,可以根据公式(11)确定目标骨骼节点的第三全局姿态矩阵。

Bcorrdinate

在公式(11)中,Bcorrdinate

接下来,可以根据姿态调整参数和目标骨骼节点的第三全局姿态矩阵,确定第三姿态调整系数。

例如,可以根据公式(12)确定第三姿态调整系数。

BrotDiff

在公式(12)中,Bcorrdinate

接下来,根据第三姿态调整系数和目标骨骼节点的第二初始局部姿态矩阵,得到目标骨骼节点的第三目标局部姿态矩阵。

例如,可以根据公式(13)确定目标骨骼节点的第三目标局部姿态矩阵。

Bcorrdinate

在公式(13)中,Bcorrdinate

接下来,根据第三目标局部姿态矩阵,得到基于目标姿态参数的目标虚拟形象。

例如,通过利用目标骨骼节点的第三目标局部姿态矩阵对目标虚拟形象的第二初始局部姿态进行更新,可以将参考虚拟形象的目标姿态参数转换到目标虚拟形象中,从而生成基于目标姿态参数的目标虚拟形象。

图5A和图5B分别是参考虚拟形象的目标姿态和基于目标姿态参数的目标虚拟形象的目标姿态的效果图。下面结合图5A和图5B示例说明基于参考虚拟形象的目标姿态对目标虚拟形象进行重定向处理的效果。

图5A示出了参考虚拟形象的目标姿态的效果,图5B示出了基于目标姿态参数的目标虚拟形象的目标姿态的效果。通过比较图5A和图5B可知,基于参考虚拟形象的目标姿态对目标虚拟形象进行重定向处理,可以将参考虚拟形象的目标姿态迁移到目标虚拟形象上,使得目标虚拟形象的姿态与参考虚拟形象的姿态一致。

图6是根据本公开另一实施例的虚拟形象生成方法的流程图。

如图6所示,虚拟形象生成方法600包括操作S601~S608。

在操作S601,获取针对参考虚拟形象的参考初始姿态参数。

在操作S602,获取针对目标虚拟形象的目标初始姿态参数。

根据本公开的实施例,针对参考虚拟形象的参考初始姿态参数可以用于表征参考虚拟形象的初始姿态,针对目标虚拟形象的目标初始姿态参数可以用于表征目标虚拟形象的初始姿态。

可以将具有初始姿态的参考虚拟形象和目标虚拟形象分别输入深度学习模型中,得到针对参考虚拟形象的参考初始姿态参数以及针对目标虚拟形象的目标初始姿态参数。深度学习模型与以上描述的定义相同,这里不再赘述。

在操作S603,确定参考虚拟形象的初始姿态与目标虚拟形象的初始姿态是否匹配,若匹配,执行操作S605,否则,执行操作S604。

在操作S604,基于参考初始姿态参数,调整目标初始姿态参数,使得调整后的目标虚拟形象的初始姿态与参考虚拟形象的初始姿态相匹配。

由于不同的虚拟形象之间存在骨骼、蒙皮、面片等多处差异,因此,参考虚拟形象的初始姿态与目标虚拟形象的初始姿态会存在差异。另外,对于不同姿态下的同一虚拟形象,例如具有不同姿态的参考虚拟形象,它们对应的骨骼架构也是不同的。并且,由于实践中对参考虚拟形象的目标姿态的获取是实时的,如果直接利用参考虚拟形象的目标姿态来重定向目标虚拟形象,需要人工不断调试虚拟形象的姿态参数,不仅会产生巨大耗时,而且也会影响虚拟形象重定向结果的准确性。

因此,可以先判断参考虚拟形象的初始姿态与目标虚拟形象的初始姿态是否匹配。如果确定两者相匹配,则说明参考虚拟形象的初始姿态与目标虚拟形象的初始姿态是一致的,后续可以通过将参考虚拟形象的目标姿态与参考虚拟形象的初始姿态之间的差异迁移到目标虚拟形象中来完成对目标虚拟形象的重定向。如果确定两者不匹配,则可以将目标虚拟形象的初始姿态调整为与参考虚拟形象的初始姿态一致。由此,有利于减少虚拟形象动作重定向过程中的人工辅助工作量,可以提升动作重定向处理的效率,以及动作重定向处理的准确性。

在操作S605,获取与参考虚拟形象的目标姿态相关联的目标姿态参数。根据本公开的实施例,获取目标姿态参数的方式与获取针对目标虚拟形象的目标初始姿态参数的方式类似,这里不再赘述。

在操作S606,根据目标姿态参数和参考初始姿态参数,得到姿态调整参数。

在操作S607,根据姿态调整参数和目标虚拟形象的目标初始姿态参数,生成基于目标姿态参数的目标虚拟形象。

根据本公开的实施例,如果需要基于参考初始姿态参数,调整目标初始姿态参数,则可以根据以上描述的方式,基于目标姿态参数和参考初始姿态参数,得到姿态调整参数,以便利用姿态调整参数和调整后的目标虚拟形象的目标初始姿态参数,生成基于目标姿态参数的目标虚拟形象。如果无需对目标初始姿态参数进行调整,可以利用姿态调整参数和目标虚拟形象的目标初始姿态参数,生成基于目标姿态参数的目标虚拟形象。

在操作S608,根据目标姿态参数驱动目标虚拟形象执行与目标姿态对应的动作。

根据本公开的实施例,生成基于目标姿态参数的目标虚拟形象之后,可以根据目标姿态参数驱动目标虚拟形象执行与目标姿态对应的动作。例如,当目标姿态参数表征的目标姿态为叉腰动作时,可以根据目标姿态参数来驱动目标虚拟形象执行与叉腰对应的动作。

根据本公开的实施例,基于针对参考虚拟形象的参考初始姿态参数来调整目标虚拟形象的目标初始姿态参数,使得调整后的目标虚拟形象的初始姿态与参考虚拟形象的初始姿态相匹配。之后,基于参考虚拟形象的目标姿态与初始姿态之间的姿态差异来处理调整后的目标虚拟形象的目标初始姿态参数,得到基于目标姿态参数的目标虚拟形象,从而实现将参考虚拟形象的目标姿态迁移到目标虚拟形象上,即完成对目标虚拟形象的动作重定向处理。本公开的方案有利于减少虚拟形象动作重定向过程中的人工辅助工作量,可以提升动作重定向处理的效率,以及动作重定向处理的准确性。

图7是根据本公开的实施例的虚拟形象生成装置的框图。

如图7所示,虚拟形象生成装置700包括:第一获取模块710、调整模块720、第二获取模块730和生成模块740。

第一获取模块710用于获取针对参考虚拟形象的参考初始姿态参数以及针对目标虚拟形象的目标初始姿态参数。参考初始姿态参数用于表征参考虚拟形象的初始姿态,目标初始姿态参数用于表征目标虚拟形象的初始姿态。

调整模块720用于基于参考初始姿态参数,调整目标初始姿态参数,使得调整后的目标虚拟形象的初始姿态与参考虚拟形象的初始姿态相匹配。

第二获取模块730用于获取与参考虚拟形象的目标姿态相关联的目标姿态参数,并根据目标姿态参数和参考初始姿态参数,得到姿态调整参数。

第一生成模块740用于根据姿态调整参数和调整后的目标虚拟形象的目标初始姿态参数,生成基于目标姿态参数的目标虚拟形象。

根据本公开的实施例,参考初始姿态参数包括参考虚拟形象的多个参考骨骼节点的第一初始局部姿态矩阵,目标初始姿态参数包括目标虚拟形象的多个目标骨骼节点的第二初始局部姿态矩阵;调整模块720包括:第一调整单元和第二调整单元。第一调整单元用于针对多个目标骨骼节点的第二初始局部姿态矩阵中的每一个,基于与第二初始局部姿态矩阵对应的第一初始局部姿态矩阵来调整第二初始局部姿态矩阵,得到目标骨骼节点的第三初始局部姿态矩阵;以及第二调整单元用于根据多个第三初始局部姿态矩阵,得到调整后的目标虚拟形象的目标初始姿态参数。

根据本公开的实施例,目标姿态参数包括参考虚拟形象的多个参考骨骼节点的第一目标局部姿态矩阵;第二获取模块730包括:第一确定单元、第二确定单元和第三确定单元。第一确定单元用于针对多个参考骨骼节点的第一目标局部姿态矩阵中的每一个,根据第一目标局部姿态矩阵和第一初始局部姿态矩阵,确定参考骨骼节点的第一姿态调整系数;第二确定单元用于根据第一初始局部姿态矩阵,得到参考骨骼节点的第一全局姿态矩阵;以及第三确定单元用于根据第一姿态调整系数和第一全局姿态矩阵,确定姿态调整参数。

根据本公开的实施例,第一生成模块740包括:第一生成单元、第四确定单元、第二生成单元和第三生成单元。第一生成单元用于针对多个第三初始局部姿态矩阵中的每一个,根据目标骨骼节点的第三初始局部姿态矩阵,得到目标骨骼节点的第二全局姿态矩阵;第四确定单元用于根据姿态调整参数和第二全局姿态矩阵,确定第二姿态调整系数;第二生成单元用于根据第二姿态调整系数和第三初始局部姿态矩阵,得到目标骨骼节点的第二目标局部姿态矩阵;以及第三生成单元用于根据第二目标局部姿态矩阵,得到基于目标姿态参数的目标虚拟形象。

根据本公开的实施例,上述装置700还包括:第三获取模块、确定模块和第二生成模块。第三获取模块用于响应于确定参考虚拟形象的初始姿态与目标虚拟形象的初始姿态相匹配,获取与参考虚拟形象的目标姿态相关联的目标姿态参数;确定模块用于根据目标姿态参数和参考初始姿态参数,得到姿态调整参数;以及第二生成模块用于根据姿态调整参数和针对目标虚拟形象的目标初始姿态参数,生成基于目标姿态参数的目标虚拟形象。

根据本公开的实施例,第二生成模块包括:第四生成单元、第五确定单元、第五生成单元和第六生成单元。第四生成单元用于针对多个目标骨骼节点的第二初始局部姿态矩阵中的每一个,根据目标骨骼节点的第二初始局部姿态矩阵,得到目标骨骼节点的第三全局姿态矩阵;第五确定单元用于根据姿态调整参数和第三全局姿态矩阵,确定第三姿态调整系数;第五生成单元用于根据第三姿态调整系数和第二初始局部姿态矩阵,得到目标骨骼节点的第三目标局部姿态矩阵;以及第六生成单元用于根据第三目标局部姿态矩阵,得到基于目标姿态参数的目标虚拟形象。

根据本公开的实施例,第一调整单元包括:第一调整子单元和第二调整子单元。第一调整子单元用于根据第一初始局部姿态矩阵,得到参考骨骼节点的第一全局姿态矩阵;以及第二调整子单元用于根据参考骨骼节点的第一全局姿态矩阵,调整第二初始局部姿态矩阵,得到目标骨骼节点的第三初始局部姿态矩阵。

根据本公开的实施例,调整模块包括:获取单元和第三调整单元。获取单元用于获取与预设姿态对应的预设姿态参数;以及第三调整单元用于基于预设姿态参数,分别调整参考初始姿态参数和目标虚拟形象的目标初始姿态参数,使得调整后的参考虚拟形象的初始姿态和目标虚拟形象的初始姿态分别与预设姿态相匹配。

根据本公开的实施例,上述装置700还包括:驱动模块。驱动模块用于根据目标姿态参数驱动目标虚拟形象执行与目标姿态对应的动作。

需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。

本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。

在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

根据本公开的实施例,一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如本公开实施例的方法。

根据本公开的实施例,一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行如本公开实施例的方法。

根据本公开的实施例,一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如本公开实施例的方法。

图8是用来实现本公开实施例的虚拟形象生成方法的电子设备的框图。

图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。

设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如虚拟形象生成方法。例如,在一些实施例中,虚拟形象生成方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的虚拟形象生成方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行虚拟形象生成方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

技术分类

06120115633235