CN116563497A - 一种虚拟人驱动方法、装置、设备及可读存储介质 - Google Patents
一种虚拟人驱动方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN116563497A CN116563497A CN202310098261.0A CN202310098261A CN116563497A CN 116563497 A CN116563497 A CN 116563497A CN 202310098261 A CN202310098261 A CN 202310098261A CN 116563497 A CN116563497 A CN 116563497A
- Authority
- CN
- China
- Prior art keywords
- dimensional space
- person
- rotation angle
- space coordinates
- joint
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000001914 filtration Methods 0.000 claims description 35
- 239000011159 matrix material Substances 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 6
- 238000007152 ring opening metathesis polymerisation reaction Methods 0.000 claims 4
- 210000001503 joint Anatomy 0.000 description 30
- 210000001624 hip Anatomy 0.000 description 6
- 238000010586 diagram Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 210000004394 hip joint Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
- G06V40/23—Recognition of whole body movements, e.g. for sport training
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Computational Linguistics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种虚拟人驱动方法、装置、设备及可读存储介质,涉及计算机图形学领域,包括:获取视频帧数据,所述视频帧数据包括至少一个人物;根据所述视频帧数据和姿态估计模型确定所述人物的关节点的三维空间坐标和所述人物的关节点的旋转角度;根据所述三维空间坐标和所述旋转角度构建驱动文件;基于所述驱动文件对虚拟人进行驱动。可见,本申请能够直接通过视频帧数据构建驱动虚拟人的驱动文件,实现仅通过视频就可驱动虚拟人,相比于现有技术中先通过动作捕捉装置录制动作,再使用FBX动作文件来驱动虚拟人的方法,大大降低了使用成本,提高了虚拟人的可交互性。
Description
技术领域
本申请涉及计算机图形学领域,更具体地说,涉及一种虚拟人驱动方法、装置、设备及可读存储介质。
背景技术
在实时人体动作的捕捉与迁移是计算机视觉与计算机图形学领域中一个重要且基础的问题,它在虚拟现实及混合现实等领域有着非常广泛的应用。例如,在混合现实中,通过引入虚拟角色模型,再利用实时获得的人体运动进行驱动,也即虚拟人驱动,可以获得更丰富的交互体验。正是由于人的运动在日常生活中无处不在,人体运动的捕捉具有极高的科研和应用价值。
现有的虚拟人驱动方法主要是先通过动作捕捉装置录制动作,再使用FBX动作文件来驱动虚拟人。然而该方法的使用成本较高,极大地限制了虚拟人的可交互性。
发明内容
本申请实施例提供了一种虚拟人驱动方法、装置、设备及可读存储介质,相比于现有技术中先通过动作捕捉装置录制动作,再使用FBX动作文件来驱动虚拟人的方法,大大降低了使用成本,提高了虚拟人的可交互性。
有鉴于此,本申请实施例提供了一种虚拟人驱动方法,所述方法包括:
获取视频帧数据,所述视频帧数据包括至少一个人物;
根据所述视频帧数据和姿态估计模型确定所述人物的关节点的三维空间坐标和所述人物的关节点的旋转角度;
根据所述三维空间坐标和所述旋转角度构建驱动文件;
基于所述驱动文件对虚拟人进行驱动。
可选的,所述姿态估计模型包括ROMP模型和Mediapipe模型;根据所述视频帧数据和姿态估计模型确定所述人物的关节点的三维空间坐标和所述人物的关节点的旋转角度,包括:
将所述视频帧数据输入所述ROMP模型中,得到所述人物的躯干关节点的旋转角度和所述根关节点的局部旋转角度,所述躯干关节点为所述人物的关节点中除所述根关节点以外的关节点;
将所述视频帧数据输入所述Mediapipe模型中,得到所述人物的关节点的初始三维空间坐标;
对所述初始三维空间坐标进行重定位,得到所述人物的关节点的目标三维空间坐标;
基于所述目标三维空间坐标构建以所述根关节点为原点的目标坐标系;
根据所述根关节点的局部旋转角度和所述目标坐标系构建所述根关节点的旋转矩阵;
将所述旋转矩阵转化为所述根关节点的欧拉角,得到所述根关节点的全局旋转角度,并将所述根关节点的全局旋转角度作为所述根关节点的旋转角度;
根据所述全局旋转角度和所述人物的关节点的原始三维空间坐标计算得到所述人物的关节点的三维空间坐标,所述原始三维空间坐标为所述人物处于绑定姿势时的三维空间坐标。
可选的,根据所述三维空间坐标和所述旋转角度构建驱动文件,包括:
创建初始驱动文件,所述初始驱动文件包括人物的关节点的原始三维空间坐标和原始旋转角度,所述原始三维空间坐标为所述人物处于绑定姿势时的三维空间坐标,所述原始旋转角度为零;
将所述原始三维空间坐标替换为所述人物的关节点的三维空间坐标;
对所述人物的关节点的旋转角度进行镜像处理,得到所述人物的关节点的镜像旋转角度;
将所述原始旋转角度替换为所述镜像旋转角度;
设定缩放值,得到所述驱动文件。
可选的,在所述根据所述三维空间坐标和所述旋转角度构建驱动文件之前,所述方法还包括:
分别对所述三维空间坐标和所述旋转角度进行滤波处理,得到过滤后的所述人物的关节点的三维空间坐标和过滤后的所述人物的关节点的旋转角度;
则,所述根据所述三维空间坐标和所述旋转角度构建驱动文件,具体为:
根据过滤后的所述人物的关节点的三维空间坐标和过滤后的所述人物的关节点的旋转角度构建驱动文件。
可选的,所述分别对所述三维空间坐标和所述旋转角度进行滤波处理,得到过滤后的所述人物的关节点的三维空间坐标和过滤后的所述人物的关节点的旋转角度,包括:
通过一欧元滤波器分别对所述三维空间坐标和所述旋转角度进行初次滤波处理,得到初次过滤后的三维空间坐标和初次过滤后的旋转角度;
通过加权均值滤波器分别对所述初次过滤后的三维空间坐标和所述初次过滤后的旋转角度进行再次过滤,得到过滤后的所述人物的关节点的三维空间坐标和过滤后的所述人物的关节点的旋转角度。
本申请实施例还提供了一种虚拟人驱动装置,所述装置包括:
获取单元,用于获取视频帧数据,所述视频帧数据包括至少一个人物;
确定单元,用于根据所述视频帧数据和姿态估计模型确定所述人物的关节点的三维空间坐标和所述人物的关节点的旋转角度;
构建单元,用于根据所述三维空间坐标和所述旋转角度构建驱动文件;
驱动单元,用于基于所述驱动文件对虚拟人进行驱动。
可选的,所述姿态估计模型包括ROMP模型和Mediapipe模型;所述确定单元具体用于:
将所述视频帧数据输入所述ROMP模型中,得到所述人物的躯干关节点的旋转角度和所述根关节点的局部旋转角度,所述躯干关节点为所述人物的关节点中除所述根关节点以外的关节点;
将所述视频帧数据输入所述Mediapipe模型中,得到所述人物的关节点的初始三维空间坐标;
对所述初始三维空间坐标进行重定位,得到所述人物的关节点的目标三维空间坐标;
基于所述目标三维空间坐标构建以所述根关节点为原点的目标坐标系;
根据所述根关节点的局部旋转角度和所述目标坐标系构建所述根关节点的旋转矩阵;
将所述旋转矩阵转化为所述根关节点的欧拉角,得到所述根关节点的全局旋转角度,并将所述根关节点的全局旋转角度作为所述根关节点的旋转角度;
根据所述全局旋转角度和所述人物的关节点的原始三维空间坐标计算得到所述人物的关节点的三维空间坐标,所述原始三维空间坐标为所述人物处于绑定姿势时的三维空间坐标。
可选地,所述构建单元具体用于:
创建初始驱动文件,所述初始驱动文件包括人物的关节点的原始三维空间坐标和原始旋转角度,所述原始三维空间坐标为所述人物处于绑定姿势时的三维空间坐标,所述原始旋转角度为零;
将所述原始三维空间坐标替换为所述人物的关节点的三维空间坐标;
对所述人物的关节点的旋转角度进行镜像处理,得到所述人物的关节点的镜像旋转角度;
将所述原始旋转角度替换为所述镜像旋转角度;
设定缩放值,得到所述驱动文件。
本申请实施例还提供了一种计算机设备,包括:存储器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,以实现上述所述的任意一种虚拟人驱动方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
本申请实施例还提供了一种计算机可读存储介质,存储有指令,当其在计算机上运行时,使得计算机执行如上述所述的任意一种虚拟人驱动方法。
本申请实施例提供了一种虚拟人驱动方法,包括:获取视频帧数据,所述视频帧数据包括至少一个人物;根据所述视频帧数据和姿态估计模型确定所述人物的关节点的三维空间坐标和所述人物的关节点的旋转角度;根据所述三维空间坐标和所述旋转角度构建驱动文件;基于所述驱动文件对虚拟人进行驱动。可见,本申请能够直接通过视频帧数据构建驱动虚拟人的驱动文件,实现仅通过视频就可驱动虚拟人,相比于现有技术中先通过动作捕捉装置录制动作,再使用FBX动作文件来驱动虚拟人的方法,大大降低了使用成本,提高了虚拟人的可交互性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种虚拟人驱动方法的流程示意图;
图2为本申请实施例提供的一种骨骼节点模板的结构示意图;
图3为本申请实施例提供的另一种骨骼节点模板的结构示意图;
图4为本申请实施例提供的一种虚拟人驱动装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在实时人体动作的捕捉与迁移是计算机视觉与计算机图形学领域中一个重要且基础的问题,它在虚拟现实及混合现实等领域有着非常广泛的应用。例如,在混合现实中,通过引入虚拟角色模型,再利用实时获得的人体运动进行驱动,也即虚拟人驱动,可以获得更丰富的交互体验。正是由于人的运动在日常生活中无处不在,人体运动的捕捉具有极高的科研和应用价值。现有的虚拟人驱动方法主要是先通过动作捕捉装置录制动作,再使用FBX动作文件来驱动虚拟人。然而该方法的使用成本较高,极大地限制了虚拟人的可交互性。
因此,针对上述问题,本申请实施例提供了一种虚拟人驱动方法、装置、设备及可读存储介质,相比于现有技术中先通过动作捕捉装置录制动作,再使用FBX动作文件来驱动虚拟人的方法,大大降低了使用成本,提高了虚拟人的可交互性。
请参阅图1,本申请实施例所提供的一种虚拟人驱动方法包括以下步骤。
S101、获取视频帧数据,所述视频帧数据包括至少一个人物。
本实施例中,为了实现仅通过视频就可驱动虚拟人,可以先获取视频帧数据,其中视频帧数据包括至少一个人物。可以理解的是,视频帧数据可以是提前录制好的视频中的帧数据,也可以是通过摄像头实时录制的视频中的帧数据。并且视频帧数据中至少应包括有一个人物,以便于能根据人物的动作和姿态对虚拟人进行驱动。可以通过OpenCV接入视频帧数据,其中OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库。
S102、根据所述视频帧数据和姿态估计模型确定所述人物的关节点的三维空间坐标和所述人物的关节点的旋转角度。
本实施例中,在获取视频帧数据后,可以根据视频帧数据和姿态估计模型确定人物的关节点的三维空间坐标和人物的关节点的旋转角度。可以理解的是,在获取视频帧数据后,需要对视频帧数据中所包括的人物进行姿态估计,可以通过姿态估计模型对人物进行姿态估计,确定人物的关节点的三维空间坐标和人物的关节点的旋转角度,以便于构建出能够准确驱动虚拟人的驱动文件。
在一种可能实现的方式中,姿态估计模型可以包括ROMP模型和Mediapipe模型;可以将视频帧数据输入ROMP模型中,得到人物的躯干关节点的旋转角度和根关节点的局部旋转角度,躯干关节点为人物的关节点中除根关节点以外的关节点;将视频帧数据输入Mediapipe模型中,得到人物的关节点的初始三维空间坐标;对初始三维空间坐标进行重定位,得到人物的关节点的目标三维空间坐标;基于目标三维空间坐标构建以根关节点为原点的目标坐标系;根据根关节点的局部旋转角度和目标坐标系构建根关节点的旋转矩阵;将旋转矩阵转化为根关节点的欧拉角,得到根关节点的全局旋转角度,并将根关节点的全局旋转角度作为根关节点的旋转角度;根据全局旋转角度和人物的关节点的原始三维空间坐标计算得到人物的关节点的三维空间坐标,原始三维空间坐标为人物处于绑定姿势时的三维空间坐标。
可以理解的是,ROMP(Regression ofMultiple 3D People)模型是一种用来从像素级别回归出多个3D人体网格的单阶段网络,可以直接从单张图像中估计出多个不同的map,通过这些map能够解析出所有人的3D人体网格。Mediapipe模型是谷歌的一个开源项目,可以提供开源的、跨平台的常用机器学习(machine learning)方案。Mediapipe模型实际上是一个集成的机器学习视觉算法的工具库,包含了人脸检测、人脸关键点、手势识别、头像分割和姿态识别等各种模型。可以先将视频帧数据输入ROMP模型中,得到人物的关节点的局部旋转角度,其中包括人物的躯干关节点的局部旋转角度和根关节点的局部旋转角度,根关节点为人物的臀部关节点,局部旋转角度可以用三维欧拉角表示。可以发现,通过ROMP模型确定出的人物的躯干关节点的局部旋转角度较为准确,可以直接将躯干关节点的局部旋转角度确定为用于构建驱动文件时躯干关节点的旋转角度。然而通过ROMP模型估计出的根关节点的局部旋转角度与人物实际的旋转角度差别较大,若是直接将根关节点的局部旋转角度确定为用于构建驱动文件时根关节点的旋转角度,会导致虚拟人的根关节点的旋转不稳定。
因此,为了解决根关节点的旋转角度的问题,可以将视频帧数据输入Mediapipe模型中,得到人物的关节点的目标初始三维空间坐标。Mediapipe模型使用的骨骼节点模板如图2所示,也即Mediapipe模型可以估计出人物32个关节点的初始三维空间坐标。然而为了计算根关节点的旋转角度,可以将Mediapipe模型估计出的人物的关节点的初始三维空间坐标进行重定位,得到如3所示的人物的关节点的目标三维空间坐标。其中部分目标三维空间坐标与初始三维空间坐标的对应关系如下:
Hips=(left_hip+right_hip)/2;
Neck=(left_shoulder+right_shoulder)/2;
Spine=Hips+(Neck-Hips)/3;
LeftUpLeg=left_hip;
RightUpLeg=right_hip;
其中,Hips、Neck、Spine、LeftUpLeg、RightUpLeg为图3中人物的部分关节点的目标三维空间坐标,left_hip、right_hip、left_shoulder、right_shoulder为图2中人物的部分关节点的初始三维空间坐标。
需要特别说明的是,获取的人物的关节点的目标三维空间坐标可能与驱动虚拟人时所使用的虚拟引擎中相反,若是直接使用目标三维空间坐标计算根关节点的旋转角度,最终可能会导致虚拟人倒立着动作,所以可以将所有的坐标点绕X轴旋转180度,与虚拟引擎中的Y轴保持一致。
在获取人物的关节点的目标三维空间坐标后,可以基于目标三维空间坐标构建以根关节点为原点的目标坐标系,具体可以如下所示:
X_dir=keypoints3d[LeftUpLeg]-keypoints3d[RightUpLeg];
Y_dir=keypoints3d[Spine]-keypoints3d[Hips];
Z_dir=X_dir*Y_dir;
其中,X_dir为目标坐标系的X轴,Y_dir为目标坐标系的Y轴,Z_dir为目标坐标系的Z轴,*为叉乘符号,keypoints3d[LeftUpLeg]为LeftUpLeg关节点的目标三维空间坐标,keypoints3d[RightUpLeg]为RightUpLeg关节点的目标三维空间坐标,keypoints3d[Spine]为Spine关节点的目标三维空间坐标,keypoints3d[Hips]为Hips关节点的目标三维空间坐标。
在构建出以根关节点为原点的目标坐标系后,可以对三个坐标轴进行单位化,按照xyz列顺序以及根关节点的局部旋转角度构建旋转矩阵,再将旋转矩阵转换为四元数,具体如下所示:
四元数q=w+xi+yj+zk,||q||=x2+y2+z2+w2=1,其中w为四元数的实部,xi+yj+zk为四元数的虚部,用该四元数构造的旋转矩阵可以表示为:
因此旋转矩阵转四元数的公式如下:
在将旋转矩阵转换成四元数后,可以再将四元数转换为欧拉角(φ,θ,ψ),具体如下所示:
此时可以计算出的欧拉角为根关节点的全局旋转角度,可以将该全局旋转角度作为确定为用于构建驱动文件时根关节点的旋转角度。
在得到根关节点的全局旋转角度后,可以根据全局旋转角度和人物的关节点的原始三维空间坐标计算得到人物的关节点的三维空间坐标,其中原始三维空间坐标为人物处于绑定姿势也即Tpose时的三维空间坐标,具体如下所示:
首先先将欧拉角转换成旋转矩阵R,如下所示:
其中,α是根关节点绕z轴旋转的角度,β是根关节点绕y轴旋转的角度,γ是根关节点绕x轴旋转的角度。
然后根据旋转矩阵以及人物的关节点的原始三维空间坐标,计算得到人物的关节点的三维空间坐标,如下所示:
′
p=Rp;
其中,p′为人物的关节点的三维空间坐标,R为旋转矩阵,p为人物的关节点的原始三维空间坐标,也即人物处于绑定姿势也即Tpose时的三维空间坐标。
S103、根据所述三维空间坐标和所述旋转角度构建驱动文件。
本实施例中,可以根据人物的关节点的三维空间坐标和人物的关节点的旋转角度来构建驱动文件。可以理解的是,在获取人物的关节点的三维空间坐标和人物的关节点的旋转角度后,可以构建驱动文件,以便于能够基于驱动文件对虚拟人进行驱动。
在一种可能实现的方式中,可以创建初始驱动文件,其中初始驱动文件包括人物的关节点的原始三维空间坐标和原始旋转角度,其中原始三维空间坐标为人物处于绑定姿势时的三维空间坐标,原始旋转角度为零;将原始三维空间坐标替换为人物的关节点的三维空间坐标;对人物的关节点的旋转角度进行镜像处理,得到人物的关节点的镜像旋转角度;将原始旋转角度替换为镜像旋转角度;设定缩放值,得到驱动文件。
可以理解的是,首先可以先创建一个原始驱动文件,可以是虚拟人Tpose对应的FBX文件,是需要对其数据补全的文件,该文件可以提供人物的关节点未旋转时的原始三维空间坐标和原始旋转角度。且若是直接根据获取得人物的关节点的三维空间坐标和人物的关节点的旋转角度对空白的驱动文件进行数据补全,得到驱动文件,最终得到的数据是镜像的,如视频帧数据中人物左手的动作会展示在虚拟人右手上,所以需要对人物的关节点的旋转角度进行镜像处理,得到人物的关节点的镜像旋转角度。最后将原始旋转角度替换为镜像旋转角度,并设定好缩放值,缩放值默认可以为1,从而构建出驱动文件。
在一种可能实现的方式中,在根据三维空间坐标和旋转角度构建驱动文件之前,可以分别对所述三维空间坐标和所述旋转角度进行滤波处理,得到过滤后的所述人物的关节点的三维空间坐标和过滤后的所述人物的关节点的旋转角度;则,所述根据所述三维空间坐标和所述旋转角度构建驱动文件,具体为:根据过滤后的所述人物的关节点的三维空间坐标和过滤后的所述人物的关节点的旋转角度构建驱动文件。
可以理解的是,若是直接根据获取的人物的关节点的三维空间坐标和旋转角度构建驱动文件,并基于该驱动文件对虚拟人进行驱动,虚拟人可能会出现动作抖动的问题,因此需要先对人物的关节点的三维空间坐标和旋转角度进行滤波处理,得到过滤后的人物的关节点的三维空间坐标和过滤后的人物的关节点的旋转角度,并根据过滤后的三维空间坐标和旋转角度构建驱动文件。
在一种可能实现的方式中,可以通过一欧元滤波器分别对三维空间坐标和旋转角度进行初次滤波处理,得到初次过滤后的三维空间坐标和初次过滤后的旋转角度;通过加权均值滤波器分别对初次过滤后的三维空间坐标和初次过滤后的旋转角度进行再次过滤,得到过滤后的人物的关节点的三维空间坐标和过滤后的人物的关节点的旋转角度。
可以理解的是,可以为三维空间坐标和旋转角度分别构造滤波器,先使用一欧元滤波器过滤一些小的抖动,再使用加权均值滤波器过滤大的扰动。1欧元滤波器是由GeryCasiez等人于2012年提出的一种自适应截止频率低通滤波器,它只有两个可配置参数,可以实时过滤噪声信号。
加权均值滤波器的公式为:
其中,y(n)为过滤后的值,x(n)为当前帧的值,x(n-1)为当前帧的前一帧的值,x(n-2)为当前帧的前两帧的值。即每输入一帧,对该帧及该帧前两帧的值进行加权求和,得到过滤后的人物的关节点的三维空间坐标和旋转角度。
S104、基于所述驱动文件对虚拟人进行驱动。
本实施例中,在构建出驱动文件后,可以基于驱动文件对虚拟人进行驱动,实现仅通过视频就可驱动虚拟人。具体地,可以将驱动文件封装成JSON格式,通过socket接口发送给驱动虚拟人的虚幻引擎。虚幻引擎可以拓展UE中的LiveLink插件,处理接收到的数据。先构造FLiveLinkStaticDataStruct,根据poseNames和parents添加骨骼节点;再向FliveLinkFrameDataStruct逐帧添加每个骨骼的三维空间坐标、旋转角度以及缩放值;值得注意的是,UE中的旋转的定义是FRotator(Pitch,Yaw,Roll),Pitch表示绕y轴旋转的角度,Yaw表示绕z轴旋转的角度,Roll表示绕x轴旋转的角度。除了拓展插件外,还需为UE里待驱动的虚拟人骨骼创建一个动画蓝图,使得Livelink接收到的数据能流向该骨骼。
本申请实施例提供了一种虚拟人驱动方法,包括:获取视频帧数据,所述视频帧数据包括至少一个人物;根据所述视频帧数据和姿态估计模型确定所述人物的关节点的三维空间坐标和所述人物的关节点的旋转角度;根据所述三维空间坐标和所述旋转角度构建驱动文件;基于所述驱动文件对虚拟人进行驱动。可见,本申请能够直接通过视频帧数据构建驱动虚拟人的驱动文件,实现仅通过视频就可驱动虚拟人,相比于现有技术中先通过动作捕捉装置录制动作,再使用FBX动作文件来驱动虚拟人的方法,大大降低了使用成本,提高了虚拟人的可交互性。
请参阅图4,本申请实施例提供了一种虚拟人驱动装置,所述装置包括:
获取单元401,用于获取视频帧数据,所述视频帧数据包括至少一个人物;
确定单元402,用于根据所述视频帧数据和姿态估计模型确定所述人物的关节点的三维空间坐标和所述人物的关节点的旋转角度;
构建单元403,用于根据所述三维空间坐标和所述旋转角度构建驱动文件;
驱动单元404,用于基于所述驱动文件对虚拟人进行驱动。
可选的,所述姿态估计模型包括ROMP模型和Mediapipe模型;所述确定单元402具体用于:
将所述视频帧数据输入所述ROMP模型中,得到所述人物的躯干关节点的旋转角度和所述根关节点的局部旋转角度,所述躯干关节点为所述人物的关节点中除所述根关节点以外的关节点;
将所述视频帧数据输入所述Mediapipe模型中,得到所述人物的关节点的初始三维空间坐标;
对所述初始三维空间坐标进行重定位,得到所述人物的关节点的目标三维空间坐标;
基于所述目标三维空间坐标构建以所述根关节点为原点的目标坐标系;
根据所述根关节点的局部旋转角度和所述目标坐标系构建所述根关节点的旋转矩阵;
将所述旋转矩阵转化为所述根关节点的欧拉角,得到所述根关节点的全局旋转角度,并将所述根关节点的全局旋转角度作为所述根关节点的旋转角度;
根据所述全局旋转角度和所述人物的关节点的原始三维空间坐标计算得到所述人物的关节点的三维空间坐标,所述原始三维空间坐标为所述人物处于绑定姿势时的三维空间坐标。
可选的,所述构建单元403具体用于:
创建初始驱动文件,所述初始驱动文件包括人物的关节点的原始三维空间坐标和原始旋转角度,所述原始三维空间坐标为所述人物处于绑定姿势时的三维空间坐标,所述原始旋转角度为零;
将所述原始三维空间坐标替换为所述人物的关节点的三维空间坐标;
对所述人物的关节点的旋转角度进行镜像处理,得到所述人物的关节点的镜像旋转角度;
将所述原始旋转角度替换为所述镜像旋转角度;
设定缩放值,得到所述驱动文件。
可选的,所述装置还包括:
滤波单元,分别对所述三维空间坐标和所述旋转角度进行滤波处理,得到过滤后的所述人物的关节点的三维空间坐标和过滤后的所述人物的关节点的旋转角度;
则,所述构建单元403具体用于:
根据过滤后的所述人物的关节点的三维空间坐标和过滤后的所述人物的关节点的旋转角度构建驱动文件。
可选的,所述滤波单元具体用于:
通过一欧元滤波器分别对所述三维空间坐标和所述旋转角度进行初次滤波处理,得到初次过滤后的三维空间坐标和初次过滤后的旋转角度;
通过加权均值滤波器分别对所述初次过滤后的三维空间坐标和所述初次过滤后的旋转角度进行再次过滤,得到过滤后的所述人物的关节点的三维空间坐标和过滤后的所述人物的关节点的旋转角度。
本申请实施例还提供了一种计算机设备,包括:存储器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,以实现上述所述的任意一种虚拟人驱动方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
本申请实施例还提供了一种计算机可读存储介质,存储有指令,当其在计算机上运行时,使得计算机执行如上述所述的任意一种虚拟人驱动方法。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种虚拟人驱动方法,其特征在于,所述方法包括:
获取视频帧数据,所述视频帧数据包括至少一个人物;
根据所述视频帧数据和姿态估计模型确定所述人物的关节点的三维空间坐标和所述人物的关节点的旋转角度;
根据所述三维空间坐标和所述旋转角度构建驱动文件;
基于所述驱动文件对虚拟人进行驱动。
2.根据权利要求1所述的方法,其特征在于,所述姿态估计模型包括ROMP模型和Mediapipe模型;根据所述视频帧数据和姿态估计模型确定所述人物的关节点的三维空间坐标和所述人物的关节点的旋转角度,包括:
将所述视频帧数据输入所述ROMP模型中,得到所述人物的躯干关节点的旋转角度和所述根关节点的局部旋转角度,所述躯干关节点为所述人物的关节点中除所述根关节点以外的关节点;
将所述视频帧数据输入所述Mediapipe模型中,得到所述人物的关节点的初始三维空间坐标;
对所述初始三维空间坐标进行重定位,得到所述人物的关节点的目标三维空间坐标;
基于所述目标三维空间坐标构建以所述根关节点为原点的目标坐标系;
根据所述根关节点的局部旋转角度和所述目标坐标系构建所述根关节点的旋转矩阵;
将所述旋转矩阵转化为所述根关节点的欧拉角,得到所述根关节点的全局旋转角度,并将所述根关节点的全局旋转角度作为所述根关节点的旋转角度;
根据所述全局旋转角度和所述人物的关节点的原始三维空间坐标计算得到所述人物的关节点的三维空间坐标,所述原始三维空间坐标为所述人物处于绑定姿势时的三维空间坐标。
3.根据权利要求1所述的方法,其特征在于,根据所述三维空间坐标和所述旋转角度构建驱动文件,包括:
创建初始驱动文件,所述初始驱动文件包括人物的关节点的原始三维空间坐标和原始旋转角度,所述原始三维空间坐标为所述人物处于绑定姿势时的三维空间坐标,所述原始旋转角度为零;
将所述原始三维空间坐标替换为所述人物的关节点的三维空间坐标;
对所述人物的关节点的旋转角度进行镜像处理,得到所述人物的关节点的镜像旋转角度;
将所述原始旋转角度替换为所述镜像旋转角度;
设定缩放值,得到所述驱动文件。
4.根据权利要求1所述的方法,其特征在于,在所述根据所述三维空间坐标和所述旋转角度构建驱动文件之前,所述方法还包括:
分别对所述三维空间坐标和所述旋转角度进行滤波处理,得到过滤后的所述人物的关节点的三维空间坐标和过滤后的所述人物的关节点的旋转角度;
则,所述根据所述三维空间坐标和所述旋转角度构建驱动文件,具体为:
根据过滤后的所述人物的关节点的三维空间坐标和过滤后的所述人物的关节点的旋转角度构建驱动文件。
5.根据权利要求4所述的方法,其特征在于,所述分别对所述三维空间坐标和所述旋转角度进行滤波处理,得到过滤后的所述人物的关节点的三维空间坐标和过滤后的所述人物的关节点的旋转角度,包括:
通过一欧元滤波器分别对所述三维空间坐标和所述旋转角度进行初次滤波处理,得到初次过滤后的三维空间坐标和初次过滤后的旋转角度;
通过加权均值滤波器分别对所述初次过滤后的三维空间坐标和所述初次过滤后的旋转角度进行再次过滤,得到过滤后的所述人物的关节点的三维空间坐标和过滤后的所述人物的关节点的旋转角度。
6.一种虚拟人驱动装置,其特征在于,所述装置包括:
获取单元,用于获取视频帧数据,所述视频帧数据包括至少一个人物;
确定单元,用于根据所述视频帧数据和姿态估计模型确定所述人物的关节点的三维空间坐标和所述人物的关节点的旋转角度;
构建单元,用于根据所述三维空间坐标和所述旋转角度构建驱动文件;
驱动单元,用于基于所述驱动文件对虚拟人进行驱动。
7.根据权利要求6所述的装置,其特征在于,所述姿态估计模型包括ROMP模型和Mediapipe模型;所述确定单元具体用于:
将所述视频帧数据输入所述ROMP模型中,得到所述人物的躯干关节点的旋转角度和所述根关节点的局部旋转角度,所述躯干关节点为所述人物的关节点中除所述根关节点以外的关节点;
将所述视频帧数据输入所述Mediapipe模型中,得到所述人物的关节点的初始三维空间坐标;
对所述初始三维空间坐标进行重定位,得到所述人物的关节点的目标三维空间坐标;
基于所述目标三维空间坐标构建以所述根关节点为原点的目标坐标系;
根据所述根关节点的局部旋转角度和所述目标坐标系构建所述根关节点的旋转矩阵;
将所述旋转矩阵转化为所述根关节点的欧拉角,得到所述根关节点的全局旋转角度,并将所述根关节点的全局旋转角度作为所述根关节点的旋转角度;
根据所述全局旋转角度和所述人物的关节点的原始三维空间坐标计算得到所述人物的关节点的三维空间坐标,所述原始三维空间坐标为所述人物处于绑定姿势时的三维空间坐标。
8.根据权利要求6所述的装置,其特征在于,所述构建单元具体用于:
创建初始驱动文件,所述初始驱动文件包括人物的关节点的原始三维空间坐标和原始旋转角度,所述原始三维空间坐标为所述人物处于绑定姿势时的三维空间坐标,所述原始旋转角度为零;
将所述原始三维空间坐标替换为所述人物的关节点的三维空间坐标;
对所述人物的关节点的旋转角度进行镜像处理,得到所述人物的关节点的镜像旋转角度;
将所述原始旋转角度替换为所述镜像旋转角度;
设定缩放值,得到所述驱动文件。
9.一种计算机设备,其特征在于,包括:存储器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,以实现权利要求1至5中任一项所述的方法;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
10.一种计算机可读存储介质,其特征在于,存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310098261.0A CN116563497A (zh) | 2023-02-10 | 2023-02-10 | 一种虚拟人驱动方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310098261.0A CN116563497A (zh) | 2023-02-10 | 2023-02-10 | 一种虚拟人驱动方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116563497A true CN116563497A (zh) | 2023-08-08 |
Family
ID=87485022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310098261.0A Pending CN116563497A (zh) | 2023-02-10 | 2023-02-10 | 一种虚拟人驱动方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116563497A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117503120A (zh) * | 2023-12-18 | 2024-02-06 | 北京铸正机器人有限公司 | 人体姿态估计方法及系统 |
-
2023
- 2023-02-10 CN CN202310098261.0A patent/CN116563497A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117503120A (zh) * | 2023-12-18 | 2024-02-06 | 北京铸正机器人有限公司 | 人体姿态估计方法及系统 |
CN117503120B (zh) * | 2023-12-18 | 2024-04-16 | 北京铸正机器人有限公司 | 人体姿态估计方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110827342B (zh) | 三维人体模型重建方法及存储设备、控制设备 | |
Hasler et al. | Multilinear pose and body shape estimation of dressed subjects from image sets | |
WO2021169839A1 (zh) | 一种基于骨骼关键点的动作还原方法以及装置 | |
US8933928B2 (en) | Multiview face content creation | |
EP3992919B1 (en) | Three-dimensional facial model generation method and apparatus, device, and medium | |
CN112950751B (zh) | 姿态动作的展示方法及装置、存储介质、系统 | |
US20120306874A1 (en) | Method and system for single view image 3 d face synthesis | |
CN106296598A (zh) | 三维姿态处理方法、系统及拍摄终端 | |
CN113421328B (zh) | 一种三维人体虚拟化重建方法及装置 | |
WO2021063271A1 (zh) | 人体模型重建方法、重建系统及存储介质 | |
CN111968165A (zh) | 动态人体三维模型补全方法、装置、设备和介质 | |
JP2011159329A (ja) | 自動3dモデリングシステム及び方法 | |
CN116563497A (zh) | 一种虚拟人驱动方法、装置、设备及可读存储介质 | |
CN107766864A (zh) | 提取特征的方法和装置、物体识别的方法和装置 | |
CN111680573B (zh) | 人脸识别方法、装置、电子设备和存储介质 | |
CN111311664A (zh) | 一种深度、位姿与场景流的联合无监督估计方法及系统 | |
CN113706373A (zh) | 模型重建方法及相关装置、电子设备和存储介质 | |
CN101356549A (zh) | 用于生成对动画模型性态进行近似的膨化组件的方法 | |
CN113706431A (zh) | 模型优化方法及相关装置、电子设备和存储介质 | |
Heo et al. | Rapid 3D face modeling using a frontal face and a profile face for accurate 2D pose synthesis | |
CN109829857B (zh) | 一种基于生成对抗网络的倾斜图像的矫正方法及装置 | |
CN116863044A (zh) | 人脸模型的生成方法、装置、电子设备及可读存储介质 | |
Ju et al. | Individualising Human Animation Models. | |
CN110853131A (zh) | 一种用于行为识别的虚拟视频数据生成方法 | |
Jabbar et al. | FD-stackGAN: face de-occlusion using stacked generative adversarial networks |
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 |