CN116248920A - 虚拟角色直播处理方法、装置及系统 - Google Patents

虚拟角色直播处理方法、装置及系统 Download PDF

Info

Publication number
CN116248920A
CN116248920A CN202310331299.8A CN202310331299A CN116248920A CN 116248920 A CN116248920 A CN 116248920A CN 202310331299 A CN202310331299 A CN 202310331299A CN 116248920 A CN116248920 A CN 116248920A
Authority
CN
China
Prior art keywords
virtual character
skeleton
data
capture data
dynamic capture
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
Application number
CN202310331299.8A
Other languages
English (en)
Inventor
纪智辉
李睿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
4u Beijing Technology Co ltd
Original Assignee
4u Beijing Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 4u Beijing Technology Co ltd filed Critical 4u Beijing Technology Co ltd
Priority to CN202310331299.8A priority Critical patent/CN116248920A/zh
Publication of CN116248920A publication Critical patent/CN116248920A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23412Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请提供了一种虚拟角色直播处理方法、装置及系统,该方法包括:利用动捕装置实时获取用于驱动虚拟角色的动捕数据,并对所述动捕数据进行处理;基于所述虚拟角色的骨架,对处理后的所述动捕数据进行自动逆向运动学解算,得到所述虚拟角色的骨架的关节角度;基于所述虚拟角色的关节角度来驱动所述虚拟角色,生成视频流数据,并将所述视频流数据推送至终端设备,以实现所述虚拟角色的直播。本申请解决了由于动捕数据匹配不同虚拟角色时骨骼匹配不准确导致的角色动作不自然的技术问题。

Description

虚拟角色直播处理方法、装置及系统
技术领域
本申请涉及虚拟角色直播技术领域,具体而言,涉及一种虚拟角色直播处理方法、装置及系统。
背景技术
随着通信技术的发展,网络通信带宽得到了很大的提高,视频直播技术也日趋成熟。目前,主流的虚拟角色直播技术一般采用关键帧动画或实时渲染的方法来实现。
关键帧动画方案通常是预先录制虚拟角色的动画,将其存储为一系列关键帧,然后在直播过程中播放这些关键帧,以产生虚拟角色的动画效果。这种方案的优点是制作成本低、易于实现,但缺点是缺乏互动性和自由度,无法灵活地响应观众的需求。
为了解决关键帧动画的问题,现有技术提出了实时渲染的方法。这种方法利用计算机图形学技术实时渲染虚拟角色的模型和动画,以产生更真实的效果。但是,在实时渲染中,骨骼结构的匹配问题是一个挑战,现有技术中通常采用统计学方法或形状匹配方法来解决。
基于统计学方法的骨骼匹配技术通常需要使用大量的骨骼样本数据,对每个关键帧的骨骼旋转进行统计和分析,得到一个能够适应不同虚拟角色的统计模型。当需要将骨骼姿势应用到新的虚拟角色上时,可以使用统计模型进行匹配,以自动调整骨骼旋转角度。但是,统计学方法的缺点是需要投入较高的时间和资源成本,而且在应用到新的虚拟角色上时,可能存在模型适应性不够的问题,导致匹配效果不理想。
基于形状匹配的骨骼匹配技术通过分析虚拟角色的骨骼结构和形状特征,计算出每个骨骼在不同角度下的形状变化。但是,形状匹配方法需要对虚拟角色的骨骼结构和形状特征进行分析和计算,这需要一定的计算资源。此外,在应用到新的虚拟角色上时,可能会出现骨骼连接方式、骨骼大小等方面的不同导致匹配不准确的问题。
针对上述由于动捕数据匹配不同虚拟角色时骨骼匹配不准确导致的角色动作不自然的技术问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种虚拟角色直播处理方法、装置及系统,以至少解决由于动捕数据匹配不同虚拟角色时骨骼匹配不准确导致的角色动作不自然的技术问题。
根据本申请实施例的一个方面,提供了一种虚拟角色直播处理方法,包括:利用动捕装置实时获取用于驱动虚拟角色的动捕数据,并对所述动捕数据进行处理;基于所述虚拟角色的骨架,对处理后的所述动捕数据进行自动逆向运动学解算,得到所述虚拟角色的骨架的关节角度;基于所述虚拟角色的关节角度来驱动所述虚拟角色,生成视频流数据,并将所述视频流数据推送至终端设备,以实现所述虚拟角色的直播。
根据本申请实施例的另一方面,提供了一种虚拟角色直播处理装置,包括处理模块,被配置为利用动捕装置实时获取用于驱动虚拟角色的动捕数据,并对所述动捕数据进行处理;解算模块,被配置为基于所述虚拟角色的骨架,对处理后的所述动捕数据进行自动逆向运动学解算,得到所述虚拟角色的骨架的关节角度;生成模块,被配置为基于所述虚拟角色的关节角度来驱动所述虚拟角色,生成视频流数据;推送模块,被配置为将所述视频流数据推送至终端设备,以实现所述虚拟角色的直播。
根据本申请实施例的又一方面,还提供了一种虚拟角色直播处理系统,包括:动捕装置,被配置为采集用于驱动虚拟角色的动捕数据;如上所述的虚拟角色直播处理装置;终端设备,用于呈现所述虚拟角色直播装置推送的视频流。
在本申请实施例中,基于所述虚拟角色的骨架,对处理后的所述动捕数据进行自动逆向运动学解算,得到所述虚拟角色的骨架的关节角度;基于所述虚拟角色的关节角度来驱动所述虚拟角色,生成视频流数据,并将所述视频流数据推送至终端设备,以实现所述虚拟角色的直播。通过上述方案,解决了现有技术中由于动捕数据匹配不同虚拟角色时匹配不准确导致的角色动作不自然的技术问题,具有生成的虚拟角色逼真的有益效果。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种虚拟角色直播处理系统的架构示意图;
图2是根据本申请实施例的一种虚拟角色直播处理方法的流程图;
图3是根据本申请实施例的另一种虚拟角色直播处理方法的流程图;
图4是根据本申请实施例的将虚拟角色的骨架映射到动捕数据的骨骼结构上的方法的流程图;
图5是根据本申请实施例的在虚拟角色的骨架上添加控制器的方法的流程图;
图6是根据本申请实施例的利用控制器对动捕数据进行自动逆向运动学解算的方法的流程图;
图7是根据本申请实施例的计算误差的方法的流程图;
图8是根据本申请实施例的一种虚拟角色直播处理装置的结构示意图;
图9是根据本申请实施例的一种电子设备的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
实施例1
图1示出了根据本申请实施例的一种虚拟角色直播处理系统的架构示意图,如图1所示,虚拟角色直播处理系统100可以包括终端设备101、102、103中的一个或多个、网络104、服务器105和动捕装置106。
网络104用以在终端设备101、102、103和服务器105之间、以及动捕装置106和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络、动捕装置和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、动捕装置和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
动捕装置106用于实时采集动捕数据,并经网络104发送给服务器105。其中,动捕装置106可以包括动捕头盔1062、动捕服1064和动捕手套1066中的一个或多个。
动捕头盔1062设置有摄像头,其拍摄速度高达60帧/秒,能够捕捉快速的唇部动作、眨眼动作,以及面部的抽动和抖动。此外,本实施例中的动捕头盔1062是开放式的结构,这样,空气能够在其中流通,从而使得佩带动捕头盔1062的人员能够在进行操作时更加舒适。动捕头盔1062可以连接专用的数据线,如果数据线长度不够,还可以通过连接增强型USB延长线延长。
动捕服1064可以由惯性传感器、控制盒、莱卡面料等组成。本实施例中的动捕服1064设置有17个传感器,能够同时追踪23个不同的身体环节的动作,追踪部位包括双脚、小腿、膝盖、腹部、双手、手肘以及肩膀等。本实施例中的动捕服1064通过这样的结构,能够满足运动捕捉和动画设计的严格需求,具有使用简单、穿戴舒适、数据质量高的有益效果。在其他的实施例中,动捕服1064上还可以通过放置可追踪标记来捕捉穿戴动捕服1064的人或其他物体的运动轨迹。例如,可以放置反光标记,通过红外相机等追踪装置来跟踪这些标记。
动捕手套1066由惯性传感器、弹性面料、手部动作捕捉系统等组成。本实施例中,动捕手套1066上设置有12颗高性能的九轴惯性传感器,姿态更新频率为120Hz,采集点数量为12个节点,静态精度为0.02度,动态精度为0.2度,解算频率为约1000Hz,数据延迟为30ms。
服务器105接收到动捕装置106采集的动捕数据之后,执行本公开实施例所提供的虚拟角色直播处理方法,利用动捕数据来驱动虚拟角色,生成直播视频流,并推送给终端设备101、102、103。
本公开实施例所提供的虚拟角色直播处理方法一般由服务器105执行,相应地,虚拟视频直播处理装置一般设置于服务器105中。但本领域技术人员容易理解的是,本公开实施例所提供的虚拟角色直播处理方法也可以由终端设备101、102、103执行,为其他终端设备提供虚拟直播处理服务,相应的,虚拟角色直播处理装置也可以设置于终端设备101、102、103中,本示例性实施例中对此不做特殊限定。
在一些示例性实施例中,可以是用户通过终端设备101、102、103上的应用程序进入直播间,服务器105通过本公开实施例所提供的虚拟角色直播处理方法,生成直播视频流,并将直播视频流传输给终端设备101、102、103等。
实施例2
本申请实施例提供了一种虚拟角色直播处理方法,如图2所示,该方法包括:
步骤S202,利用动捕装置实时获取用于驱动虚拟角色的动捕数据,并对所述动捕数据进行处理。
首先,对所获取的动捕数据进行标准化处理,使得所述动捕数据的数据特征在相同的尺度上。例如,将动捕数据进行标准化处理,即,将动捕数据的每个特征值减去该特征的均值,然后除以该特征的标准差,使得每个特征值在相同的尺度上。这样,将不同特征之间的数值范围进行统一,从而便于进行比较。此外,标准化处理还可以减少数据的偏差,使得数据更加接近正态分布,有助于降低数据的误差和噪声,提高数据的准确性。
接着,计算标准化处理后的所述动捕数据的协方差矩阵,并对所述协方差矩阵进行特征值分解,得到所述动捕数据的特征向量。具体地,计算动捕数据的协方差矩阵,该协方差矩阵反映了不同特征之间的相关性,其中非对角线上的元素表示两个不同特征之间的协方差,对角线上的元素表示单个特征的方差。对协方差矩阵进行特征值分解,得到特征值和特征向量。特征值反映了动捕数据在特征向量方向上的方差大小,特征向量则表示动捕数据在相应方向上的投影。
协方差矩阵反映了不同特征之间的相关性,通过对协方差矩阵进行特征值分解,可以得到特征向量,特征向量代表了数据在不同方向上的关系和结构。这可以有助于根据数据的结构进行分类、聚类、降维等操作。而通过特征值分解,可以得到特征值,特征值反映了数据在特征向量方向上的方差大小。这些特征向量对应的特征值越大,代表这些方向上的信息越多,这些方向上的数据也就越重要。因此,可以通过保留特征值较大的特征向量,来提取数据中的重要特征,以用于后续的建模和分析。
之后,基于所述特征向量构建转换矩阵,并利用所述转换矩阵对所述动捕数据进行降维处理,得到降维后的特征矩阵。例如,选择前k个特征值对应的特征向量,构成一个k维的转换矩阵W。这个转换矩阵可以将动捕数据映射到一个新的k维坐标系中,使得动捕数据的方差最大化。然后,对动捕数据进行线性变换,将其映射到新的k维坐标系中,得到降维后的特征矩阵。在这个新的特征矩阵中,每一列表示一个新的特征,这些新的特征是动捕数据的原始特征的线性组合。
通过上述降维处理,将动捕数据投影到一个更低维的空间中,降低了数据的维度。这有助于减少数据的复杂度,提高数据的可处理性。此外,因为在低维空间中的数据可以更快地处理和分析,因此显著提高了计算的效率。
最后,利用深度学习方法对降维后的特征矩阵进行序列预测,以对所述动捕数据进行误差补偿。
在一些实施例中,可以利用前向传播计算长短期记忆网络每个时刻的输出,并基于所述每个时刻的输出使用误差反向传播计算所述长短期记忆网络每个时刻的梯度;然后,对所述每个时刻的梯度加权求和得到当前时刻的梯度,基于所述当前时刻的梯度,使用梯度下降算法更新当前时刻的权值。例如,基于所述当前时刻的梯度,使用梯度下降算法计算用于指示上一时刻的梯度和当前时刻的梯度的指数移动平均值的动量指标;基于所述动量指标,来更新所述当前时刻的权值。最后,基于所述当前时刻的权值,对降维后的所述特征矩阵进行序列预测,以对所述动捕数据进行误差补偿。
本申请实施例通过使用深度学习方法对降维后的特征矩阵进行序列预测,可以提高对动捕数据的预测准确性。这有助于更好地理解数据的趋势和规律,以及改善数据的精度和质量。此外,通过使用误差反向传播计算每个时刻的梯度,并使用梯度下降算法更新当前时刻的权值,可以优化网络的权值,从而提高网络的性能和精度。并且,使用深度学习方法进行序列预测可以提高算法的效率,从而使得处理动捕数据更加高效。最后通过使用动量指标来更新当前时刻的权值,可以使网络具有自适应性,从而更好地适应不同类型和不同分布的数据。
步骤S204,基于所述虚拟角色的骨架,对处理后的所述动捕数据进行自动逆向运动学解算,得到所述虚拟角色的骨架的关节角度。
例如,获取所述虚拟角色的骨架上的末端效应器的位置;基于所述虚拟角色的骨架上的末端效应器的位置,对所述动捕数据进行自动逆向运动学解算,得到所述虚拟角色的每个关节的关节角度,以使所述虚拟角色的末端能够到达指定的位置。
在一些实施例中,可以将所述动捕数据中的末端效应器的位置和姿势转换到所述虚拟角色的坐标系下,计算所述虚拟角色的骨架的末端效应器的位置和姿势与转换后的所述动捕数据的末端效应器位置和姿势之间的误差。例如,对于所述虚拟角色的骨架的每个关节,计算所述动捕数据中相应的关节姿势或角度的加权平均值,其中,所述加权平均值是根据其在骨架层次结构中的位置分配,越接近根部的关节权重越大;对于所述虚拟角色的骨架的每个关节,基于相应的所述加权平均值,计算所述虚拟角色的骨架的末端效应器的位置和姿势;对于所述虚拟角色的骨架的每个关节,使用欧几里得距离或角度差计算所述虚拟角色的骨架的末端效应器的位置和姿势与转换后的所述动捕数据的末端效应器位置和姿势之间的误差。
然后,利用最小二乘法,计算出使误差最小化的所述虚拟角色的每个关节的角度,以匹配所述虚拟角色的末端效应器位置和姿势。
本实施例通过自动逆向运动学解算,可以在虚拟角色上实现更自然和准确的动作,从而提高角色动作的质量和可信度。具体来说,通过自动逆向运动学解算,可以精确地控制虚拟角色的关节角度,从而实现更准确和自然的动作。这将使虚拟角色的动作看起来更真实和流畅,提高用户体验。
步骤S206,基于所述虚拟角色的关节角度来驱动所述虚拟角色,生成视频流数据,并将所述视频流数据推送至终端设备,以实现所述虚拟角色的直播。
对于所述虚拟角色的骨架的每个关节,基于所述虚拟角色的关节角度,通过线性插值计算出所述虚拟角色的关节角度在相邻帧之间的过渡值;在所述过渡值之间应用平滑函数,生成平滑的所述视频流数据。
本申请实施例解决了由于动捕数据匹配不同虚拟角色时骨骼匹配不准确导致的角色动作不自然的技术问题,具有使得虚拟角色直播时表现更加自然的有益效果。
实施例3
本申请实施例提供了另一种虚拟角色直播处理的方法,如图3所示,该方法包括:
步骤S302,获取动捕数据,并将虚拟角色的骨架映射到动捕数据的骨骼结构上。
图4是根据本申请实施例的将虚拟角色的骨架映射到动捕数据的骨骼结构上的方法的流程图,如图4所示,该方法可以包括如下步骤:
步骤S3022,确定动捕数据中的骨骼结构。
首先,获取动捕数据,并提取出动捕数据中的骨骼结构数据。通过动捕装置所获取的动捕数据中包含骨骼结构数据。骨骼结构数据是记录了被捕捉人体骨架各个关节位置和方向的数据。这些数据通常用于生成三维模型或进行运动分析等应用。在动捕过程中,被捕捉的人体通常会被穿上动捕装置,动捕装置会感测到被捕捉人体的关键点的运动。通过记录这些关键点的位置和运动轨迹,可以计算出骨骼结构的位置和方向。
步骤S3024,确定虚拟角色的骨架。
在建模软件中创建虚拟角色的骨架结构。如果虚拟角色已经有了自己的动画数据,那么可以使用这些数据来确定骨架结构。
步骤S3026,将虚拟角色的骨架与动捕数据中的骨骼结构匹配。
将虚拟角色的骨架与动捕数据中的骨骼结构进行匹配。将虚拟角色的骨架中的每个骨骼与动捕数据中的骨骼结构中最接近的骨骼进行匹配。这里,可以使用建模软件中的骨骼匹配工具来辅助匹配过程。
步骤S3028,创建映射关系并调整映射关系。
在匹配的骨骼之间建立映射关系。将每个虚拟角色骨骼与动捕数据中的骨骼结构中最接近的骨骼之间建立映射关系。可以使用建模软件中的骨骼绑定工具来辅助创建映射关系。
在创建映射关系之后,还需要调整映射关系以使虚拟角色的骨架与动捕数据中的骨骼结构的骨骼位置和方向尽可能一致。
步骤S304,在虚拟角色的骨架上添加控制器。
虚拟角色的骨架是由一系列连接的骨骼组成,每个骨骼都代表着虚拟角色的某个部位。为了控制模型的姿态和动作,需要在骨架上添加控制器。
如图5所示,在虚拟角色骨架上添加控制器包括以下步骤:
步骤S3042,确定需要添加控制器的部位。
例如,如果希望模型能够进行走路动作,需要在脚部添加控制器。
步骤S3044,在3D建模软件中创建控制器。
通常情况下,控制器可以是一个虚拟对象,如一个小球或一个长方体,也可以是一个平面,例如平面控制器用于平移。
步骤S3046,将控制器与骨骼绑定。
通过将控制器与骨骼进行约束实现。例如,在Maya中,可以使用PointConstraint、Orient Constraint和Parent Constraint等工具将控制器与骨骼约束在一起。
步骤S3048,配置控制器。
可以通过在属性编辑器中调整控制器的参数,如旋转、平移和缩放等来改变模型的姿态和动作。
步骤S306,利用控制器对动捕数据的姿势数据进行自动逆向运动学解算,得到所述虚拟角色的姿势或关节角度。
动捕数据的姿势数据包括骨架结构、关节的旋转限制、以及每个关键帧的骨骼姿势数据。
利用控制器和动捕数据的姿势数据,可以进行自动逆向运动学解算。逆向运动学解算是根据末端效应器(如手或脚)的位置,计算出每个关节的角度,以使其能够到达指定的位置。逆向运动学解算可以使用数学库或专业的动画引擎完成。
如图6所示,具体的自动逆向运动学解算方法包括以下步骤:
步骤S3062,根据虚拟角色的骨架,计算出虚拟角色的骨架的末端效应器的位置和姿势。
计算所述虚拟角色的骨架的末端效应器的位置和姿势需要进行正向运动学计算。正向运动学是根据关节的角度计算出末端效应器的位置和姿势。
具体步骤如下:从根部开始,按照骨骼层次结构的顺序遍历所有的骨骼。对于每个骨骼,计算其相对于其父骨骼的变换矩阵。变换矩阵包括平移、旋转和缩放三种变换。将变换矩阵与其父骨骼的变换矩阵相乘,得到当前骨骼的世界变换矩阵。将当前骨骼的本地变换矩阵(骨骼姿势)与世界变换矩阵相乘,得到当前骨骼的最终变换矩阵。将当前骨骼的最终变换矩阵应用到其下属的所有子骨骼和网格顶点上,得到它们的新位置和姿势。如果当前骨骼是末端骨骼,则返回其位置和姿势作为末端效应器的位置和姿势。如果当前骨骼不是末端骨骼,则继续遍历其下属的子骨骼,重复上述步骤,直到到达末端骨骼。最终得到的末端效应器的位置和姿势。
在计算过程中,需要注意骨骼的旋转限制,以确保角度在可接受的范围内。此外,可以使用矩阵库或四元数库来进行矩阵和旋转的计算。
通过上述方法,计算出所述虚拟角色的骨架的末端效应器的位置和姿势,可以进一步地计算每个关节的角度,以使其能够到达指定的位置。通过计算末端效应器的位置和姿势,可以提高逆向运动学解算的精度和效率,并确保动画的连贯性和自然性。
步骤S3064,将所述动捕数据的末端效应器的位置和姿势转换到所述虚拟角色的坐标系下。
首先,对于虚拟角色的每个骨骼,构建一个变换矩阵。变换矩阵包含了该骨骼的平移、旋转和缩放信息。
其次,对于每个骨骼,通过其父骨骼的变换矩阵来计算该骨骼的变换矩阵。例如,可以将该骨骼的平移、旋转和缩放信息转换为一个变换矩阵T,然后,将该骨骼的父骨骼的变换矩阵P与变换矩阵T相乘,得到该骨骼的变换矩阵M。
之后,对于动捕数据中的每个骨骼,通过该骨骼的变换矩阵来计算其在虚拟角色坐标系下的位置和姿态。例如,将该骨骼在动捕数据中的位置和姿态转换为一个变换矩阵S;将骨骼的变换矩阵M与变换矩阵S相乘,得到该骨骼在虚拟角色坐标系下的位置和姿态。
最后,将动捕数据中的所有骨骼的位置和姿态都转换为虚拟角色坐标系下的位置和姿态,即可完成将动捕数据的末端效应器的位置和姿态转换到虚拟角色的坐标系下的过程。
本实施例提供的上述方法可以精确地计算出骨骼的末端效应器的位置和姿势,并且可以处理复杂的骨骼层次结构和动画效果。此外,该方法还适用于各种不同类型的虚拟角色和骨骼动画数据,并且可以轻松地集成到现有的动画引擎中。
步骤S3066,计算所述虚拟角色的骨架的末端效应器的位置和姿势与转换后的所述动捕数据的末端效应器位置和姿势之间的误差。
如图7所示,误差的计算方法包括以下步骤:
步骤S30662,计算加权平均值。
对于所述虚拟角色的骨架的每个关节,计算所述动捕数据中相应的关节姿势或角度的加权平均值,其中,所述加权平均值是根据其在骨架层次结构中的位置分配,越接近根部的关节权重越大。这里的加权平均值是根据关节在骨架层次结构中的位置进行分配的,越接近根部的关节具有更高的权重。计算加权平均值的公式如下:
Figure BDA0004155012590000091
其中,xi表示第i个关节的姿势或角度,wi表示第i个关节的权重,ri表示第i个关节的运动范围,rmax表示所有关节运动范围的最大值,n表示关节的个数。
上述计算加权平均值的方法,考虑了关节的运动范围,将权重与关节的运动范围相关联。例如,对于一个关节的运动范围较小的情况,可以将其权重调整为较小的值,从而在计算加权平均值时减小其对结果的影响。这样可以更加准确地反映出关节的运动情况。
在另外一些实施例中,还可以使用高斯混合模型(Gaussian Mixture Model,简称GMM)来计算加权平均值。GMM是一种常用的概率密度估计方法,它可以将复杂的概率密度函数建模为多个高斯分布的加权和,每个高斯分布表示一个“成分”,加权系数表示每个成分在总体中的比例。
在使用GMM计算加权平均值时,可以将每个关节的位置或旋转表示为一个多元高斯分布,其中每个成分对应于标准动画数据中的一个姿势。然后,使用EM算法来拟合GMM,并将每个成分的权重视为该关节的权重。最终的加权平均值可以表示为GMM的均值向量或旋转矩阵。
例如,给定N个数据点{x1,x2,...,xN},GMM的目标是使用K个高斯分布来对数据进行建模。设第k个高斯分布的权重为wk,第j个高斯分布的权重为wj,均值为μ,协方差矩阵为Σ,则对于数据点xi,它对高斯分布k的贡献可以表示为:
Figure BDA0004155012590000101
其中,
Figure BDA0004155012590000102
表示xi在高斯分布k中的概率密度函数值,同样的,
Figure BDA0004155012590000103
表示xi在高斯分布j中的概率密度函数值。这样,每个数据点xi都会被分配到所有K个高斯分布上,并计算出它对于每个高斯分布的贡献。
将协方差矩阵展平为一个向量,这样,每个高斯分布k的向量可以表示为:
Figure BDA0004155012590000104
其中,φ(xi)表示D维特征向量,θk是每个高斯分布k对应的参数向量,θj是每个高斯分布j对应的参数向量。
最后,加权平均值可以通过计算每个高斯分布k对应的向量和高斯分布k的贡献的加权的均值得到:
Figure BDA0004155012590000105
使用GMM进行加权平均值计算,可以更好地处理非线性和多模态的分布,并且不需要手动指定权重的分配方式。同时,GMM也可以应用于其他相关的问题,如运动分割和模型拟合等。
这样,在后续计算每个关节的角度时,可以使用关节的限制(例如旋转范围)和加权平均值。采用上述方法计算出的加权平均值可以更好地控制每个关节的运动范围,使得关节在运动时能够更加自然和流畅。
步骤S30664,计算位置和姿势。
对于所述虚拟角色的骨架的每个关节,基于相应的所述加权平均值,计算所述虚拟角色的骨架的末端效应器的位置和姿势。
每个关节的运动范围可以通过定义关节的最小角度、最大角度和默认角度来实现。最小角度和最大角度定义了关节的旋转范围,而默认角度定义了关节在初始状态下的位置。
在运动过程中,可以使用加权平均值来控制关节的运动范围。例如,如果加权平均值为0.5,则关节的旋转范围将限制在默认角度的50%之内。如果加权平均值为1,则关节将可以完全自由地旋转。
本实施例中,使用三次插值来计算关节的实际角度。具体来说,可以使用默认角度、最小角度和最大角度来定义三个关键帧,然后使用加权平均值来计算中间的角度。这样可以确保关节在运动过程中的角度变化是平滑的。
另外,还可以使用其他方法来控制关节的运动范围,例如使用角度限制器(angleclamping)或三角函数来定义关节的运动范围,即位置(关机角度)和姿势。
步骤S30666,计算误差。
对于所述虚拟角色的骨架的每个关节,使用欧几里得距离或角度差计算所述虚拟角色的骨架的末端效应器的位置和姿势与转换后的所述动捕数据的末端效应器位置和姿势之间的误差。
具体地,对于每个关节,使用逆向运动学技术计算虚拟角色的骨架的末端效应器的位置和姿势。使用逆向运动学技术,计算转换后的动捕数据的末端效应器的位置和姿势。计算两个末端效应器位置之间的欧几里得距离或角度差。欧几里得距离是两个点之间的直线距离,而角度差是指两个方向之间的角度差异。对于每个关节,将计算得到的欧几里得距离或角度差加起来,得到所有关节的总误差。优选地,还可以对总误差进行标准化处理,以便将误差值转换为可读性更好的百分比或分数。
步骤S3068,利用最小二乘法,计算出使误差最小化的所述虚拟角色的每个关节的角度或姿势,以匹配所述动捕数据的末端效应器位置和姿势。
对于每个关节,使用最小二乘法拟合一个函数,该函数将角度或姿势映射到误差值。这个函数可以是一个线性函数、多项式函数、三角函数等。对于每个关节,使用拟合函数计算出使误差最小化的角度或姿势。可以使用梯度下降等优化算法来求解函数最小值。对于所有关节,将计算得到的角度或姿势应用到虚拟角色的骨架上,以得到匹配动捕数据的末端效应器位置和姿势的虚拟角色。
步骤S308,基于虚拟角色的姿势或关节角度驱动虚拟角色。
最后,可以通过控制器来控制虚拟角色的姿势或关节角度。通过调整控制器的位置和角度,可以达到期望的姿势或动作效果,然后合成视频数据流。
实施例4
本实施例提供了一种虚拟角色直播处理装置,如图8所示,包括:处理模块82、解算模块84和生成模块86。
处理模块82被配置为利用动捕装置实时获取用于驱动虚拟角色的动捕数据,并对所述动捕数据进行处理。
解算模块84被配置为基于所述虚拟角色的骨架,对处理后的所述动捕数据进行自动逆向运动学解算,得到所述虚拟角色的骨架的关节角度。
生成模块86被配置为基于所述虚拟角色的关节角度来驱动所述虚拟角色,生成视频流数据。
推送模块88被配置为将所述视频流数据推送至终端设备,以实现所述虚拟角色的直播。
本实施例能够实现上述实施例中的虚拟角色直播处理的方法,因此,此处不再赘述。
实施例5
图9为本申请实施例提供的一种电子设备的结构示意图,如图9所示,该电子设备包括:
处理器(processor)291,电子设备还包括了存储器(memory)292;还可以包括通信接口(Communication Interface)293和总线294。其中,处理器291、存储器292、通信接口293、可以通过总线294完成相互间的通信。通信接口293可以用于信息传输。处理器291可以调用存储器294中的逻辑指令,以执行上述实施例的方法。
此外,上述的存储器292中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器292作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本申请实施例中的方法对应的程序指令/模块。处理器291通过运行存储在存储器292中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器292可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器292可以包括高速随机存取存储器,还可以包括非易失性存储器。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现任一实施例中所述的方法。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时用于实现任一实施例中所述的方法。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的终端设备,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种虚拟角色直播处理方法,其特征在于,包括:
利用动捕装置实时获取用于驱动虚拟角色的动捕数据,并对所述动捕数据进行处理;
基于所述虚拟角色的骨架,对处理后的所述动捕数据进行自动逆向运动学解算,得到所述虚拟角色的骨架的关节角度;
基于所述虚拟角色的关节角度来驱动所述虚拟角色,生成视频流数据,并将所述视频流数据推送至终端设备,以实现所述虚拟角色的直播。
2.根据权利要求1所述的方法,其特征在于,对所述动捕数据进行处理,包括:
对所述动捕数据进行标准化处理,使得所述动捕数据的数据特征在相同的尺度上;
计算标准化处理后的所述动捕数据的协方差矩阵,并对所述协方差矩阵进行特征值分解,得到所述动捕数据的特征向量;
基于所述特征向量构建转换矩阵,并利用所述转换矩阵对所述动捕数据进行降维处理,得到降维后的特征矩阵;
利用深度学习方法对降维后的所述特征矩阵进行序列预测,以对所述动捕数据进行误差补偿。
3.根据权利要求2所述的方法,其特征在于,利用深度学习方法对降维后的所述特征矩阵进行序列预测,以对所述动捕数据进行误差补偿,包括:
利用前向传播计算长短期记忆网络每个时刻的输出,并基于所述每个时刻的输出使用误差反向传播计算所述长短期记忆网络每个时刻的梯度;
对所述每个时刻的梯度加权求和得到当前时刻的梯度,基于所述当前时刻的梯度,使用梯度下降算法更新当前时刻的权值;
基于所述当前时刻的权值,对降维后的所述特征矩阵进行序列预测,以对所述动捕数据进行误差补偿。
4.根据权利要求3所述的方法,其特征在于,基于所述当前时刻的梯度,使用梯度下降算法更新当前时刻的权值,包括:
基于所述当前时刻的梯度,使用梯度下降算法计算用于指示上一时刻的梯度和当前时刻的梯度的指数移动平均值的动量指标;
基于所述动量指标,来更新所述当前时刻的权值。
5.根据权利要求1所述的方法,其特征在于,基于所述虚拟角色的骨架,对处理后的所述动捕数据进行自动逆向运动学解算,得到所述虚拟角色的骨架的关节角度,包括:
获取所述虚拟角色的骨架上的末端效应器的位置;
基于所述虚拟角色的骨架上的末端效应器的位置,对所述动捕数据进行自动逆向运动学解算,得到所述虚拟角色的每个关节的关节角度,以使所述虚拟角色的末端能够到达指定的位置。
6.根据权利要求5所述的方法,其特征在于,基于所述虚拟角色的骨架上的末端效应器的位置,对所述动捕数据进行自动逆向运动学解算,得到所述虚拟角色的每个关节的关节角度,包括:
将所述动捕数据中的末端效应器的位置和姿势转换到所述虚拟角色的坐标系下;
计算所述虚拟角色的骨架的末端效应器的位置和姿势与转换后的所述动捕数据的末端效应器位置和姿势之间的误差;
利用最小二乘法,计算出使误差最小化的所述虚拟角色的每个关节的角度,以匹配所述虚拟角色的末端效应器位置和姿势。
7.根据权利要求5所述的方法,其特征在于,计算所述虚拟角色的骨架的末端效应器的位置和姿势与转换后的所述动捕数据的末端效应器位置和姿势之间的误差,包括:
对于所述虚拟角色的骨架的每个关节,计算所述动捕数据中相应的关节姿势或角度的加权平均值,其中,所述加权平均值是根据其在骨架层次结构中的位置分配,越接近根部的关节权重越大;
对于所述虚拟角色的骨架的每个关节,基于相应的所述加权平均值,计算所述虚拟角色的骨架的末端效应器的位置和姿势;
对于所述虚拟角色的骨架的每个关节,使用欧几里得距离或角度差计算所述虚拟角色的骨架的末端效应器的位置和姿势与转换后的所述动捕数据的末端效应器位置和姿势之间的误差。
8.根据权利要求1所述的方法,其特征在于,基于所述虚拟角色的关节角度来驱动所述虚拟角色,生成视频流数据,包括:
对于所述虚拟角色的骨架的每个关节,基于所述虚拟角色的关节角度,通过线性插值计算出所述虚拟角色的关节角度在相邻帧之间的过渡值;
在所述过渡值之间应用平滑函数,生成平滑的所述视频流数据。
9.一种虚拟角色直播处理装置,其特征在于,包括:
处理模块,被配置为利用动捕装置实时获取用于驱动虚拟角色的动捕数据,并对所述动捕数据进行处理;
解算模块,被配置为基于所述虚拟角色的骨架,对处理后的所述动捕数据进行自动逆向运动学解算,得到所述虚拟角色的骨架的关节角度;
生成模块,被配置为基于所述虚拟角色的关节角度来驱动所述虚拟角色,生成视频流数据;
推送模块,被配置为将所述视频流数据推送至终端设备,以实现所述虚拟角色的直播。
10.一种虚拟角色直播处理系统,其特征在于,包括:
动捕装置,被配置为采集用于驱动虚拟角色的动捕数据;
如权利要求9所述的虚拟角色直播处理装置;
终端设备,被配置为呈现所述虚拟角色直播装置推送的视频流数据。
CN202310331299.8A 2023-03-30 2023-03-30 虚拟角色直播处理方法、装置及系统 Pending CN116248920A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310331299.8A CN116248920A (zh) 2023-03-30 2023-03-30 虚拟角色直播处理方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310331299.8A CN116248920A (zh) 2023-03-30 2023-03-30 虚拟角色直播处理方法、装置及系统

Publications (1)

Publication Number Publication Date
CN116248920A true CN116248920A (zh) 2023-06-09

Family

ID=86624398

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310331299.8A Pending CN116248920A (zh) 2023-03-30 2023-03-30 虚拟角色直播处理方法、装置及系统

Country Status (1)

Country Link
CN (1) CN116248920A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116700499A (zh) * 2023-08-01 2023-09-05 海马云(天津)信息技术有限公司 虚拟数字人驱动方法和装置、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116700499A (zh) * 2023-08-01 2023-09-05 海马云(天津)信息技术有限公司 虚拟数字人驱动方法和装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
KR100483806B1 (ko) 예제동작을 이용한 영상기반 동작복원방법
Zhao et al. Robust realtime physics-based motion control for human grasping
CN112614213B (zh) 人脸表情确定方法、表情参数确定模型、介质及设备
Stoll et al. Fast articulated motion tracking using a sums of gaussians body model
JP2023549821A (ja) 変形可能なニューラル放射輝度場
US11282257B2 (en) Pose selection and animation of characters using video data and training techniques
CN118229779A (zh) 用于跟踪身体或其部分的系统、方法、和装置
CN113421328B (zh) 一种三维人体虚拟化重建方法及装置
Villegas et al. Contact-aware retargeting of skinned motion
JP2014085933A (ja) 3次元姿勢推定装置、3次元姿勢推定方法、及びプログラム
CN111815768B (zh) 三维人脸重建方法和装置
Krzeszowski et al. Articulated body motion tracking by combined particle swarm optimization and particle filtering
CN114422832A (zh) 主播虚拟形象生成方法及装置
WO2023185703A1 (zh) 虚拟角色的动作控制方法、装置、设备和存储介质
CN108174141B (zh) 一种视频通信的方法和一种移动装置
CN116248920A (zh) 虚拟角色直播处理方法、装置及系统
CN114677572B (zh) 对象描述参数的生成方法、深度学习模型的训练方法
CN116342782A (zh) 生成虚拟形象渲染模型的方法和装置
Lifkooee et al. Real-time avatar pose transfer and motion generation using locally encoded laplacian offsets
JP2023536074A (ja) 単眼カメラからのフル骨格3d姿勢復元
US11361467B2 (en) Pose selection and animation of characters using video data and training techniques
Chen et al. Skeleton-driven surface deformation through lattices for real-time character animation
Woo et al. A survey of deep learning methods and datasets for hand pose estimation from hand-object interaction images
Hwang et al. Primitive object grasping for finger motion synthesis
Xia et al. Recent advances on virtual human synthesis

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