CN116912433A - 三维模型骨骼绑定方法、装置、设备及存储介质 - Google Patents

三维模型骨骼绑定方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116912433A
CN116912433A CN202311191302.7A CN202311191302A CN116912433A CN 116912433 A CN116912433 A CN 116912433A CN 202311191302 A CN202311191302 A CN 202311191302A CN 116912433 A CN116912433 A CN 116912433A
Authority
CN
China
Prior art keywords
model
target
grid
matching
dimensional model
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.)
Granted
Application number
CN202311191302.7A
Other languages
English (en)
Other versions
CN116912433B (zh
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.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads 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 Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202311191302.7A priority Critical patent/CN116912433B/zh
Publication of CN116912433A publication Critical patent/CN116912433A/zh
Application granted granted Critical
Publication of CN116912433B publication Critical patent/CN116912433B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请公开了一种三维模型骨骼绑定方法、装置、设备及存储介质,该三维模型骨骼绑定方法包括:获取初始网格模型和三维模型;所述初始网格模型具有预先绑定的骨骼和蒙皮权重;所述三维模型具有目标姿态和目标外形;对所述三维模型进行人体特征检测,得到第一三维模型;基于所述第一三维模型,对所述初始网格模型进行姿态匹配和形状匹配,得到与所述目标姿态和所述目标外形匹配的目标网格模型;其中,所述目标网格模型具有所述初始网格模型绑定的骨骼和所述蒙皮权重。采用本申请实施例的方案,解决了现有技术中无法对任意形式表示和任意姿态中至少任一的角色模型进行自动骨骼绑定问题。

Description

三维模型骨骼绑定方法、装置、设备及存储介质
技术领域
本申请涉及但不限于计算机视觉技术领域,尤其涉及一种三维模型骨骼绑定方法、装置、设备及存储介质。
背景技术
基于重建算法获得的三维(3 Dimensions,3D)模型通常无法直接被驱动,因此,重建得到的3D模型无法被应用于虚拟角色制作和动画制作等场景。
为了得到可用于驱动的3D模型,已有方法需要对3D模型进行骨骼绑定,现有的骨骼绑定算法有两类,第一类是手动绑定,需要用户手动的指定骨骼关节点的位置;第二类是利用一些工具对标准姿态(T-Pose/A-Pose)进行自动绑定。第二类虽然可以对一些标准姿态进行自动绑定,但是对输入的角色模型(目标角色模型D)必须是标准姿态而且也需要是基于网格表示的3D模型。如果输入的作为目标角色模型D不是标准姿态或基于网格表示的3D模型,则需要先将输入的目标角色模型D变换为基于网格表示的标准姿态的3D模型,以及变换为标准姿态后,再进行骨骼绑定。由此可见,现有技术无法实现对任意形式表示和任意姿态中至少任一的目标角色模型D进行自动骨骼绑定。
发明内容
有鉴于此,本申请实施例至少提供一种三维模型骨骼绑定方法、装置、设备及存储介质。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种三维模型骨骼绑定方法,所述三维模型骨骼绑定方法包括:获取初始网格模型和三维模型;所述初始网格模型具有预先绑定的骨骼和蒙皮权重;所述三维模型具有目标姿态和目标外形;对所述三维模型进行人体特征检测,得到第一三维模型;基于所述第一三维模型,对所述初始网格模型进行姿态匹配和形状匹配,得到与所述目标姿态和所述目标外形匹配的目标网格模型;其中,所述目标网格模型具有所述初始网格模型绑定的骨骼和所述蒙皮权重。
本申请实施例提供一种三维模型骨骼绑定装置,该三维模型骨骼绑定装置包括:获取模块,用于获取初始网格模型和三维模型;所述初始网格模型具有预先绑定的骨骼和蒙皮权重;所述三维模型具有目标姿态和目标外形;检测模块,用于对所述三维模型进行人体特征检测,得到第一三维模型;匹配模块,用于基于所述第一三维模型,对所述初始网格模型进行姿态匹配和形状匹配,得到与所述目标姿态和所述目标外形匹配的目标网格模型;其中,所述目标网格模型具有所述初始网格模型绑定的骨骼和所述蒙皮权重。
本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述三维模型骨骼绑定方法中的步骤。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述三维模型骨骼绑定方法中的步骤。
本申请实施例中,基于输入的三维模型对作为模板的初始网格模型进行姿态匹配和外形匹配后,得到目标网格模型,因此,一方面,在姿态匹配和外形匹配完成后,目标网格模型即具有输入的三维模型的目标姿态和目标外形;另一方面,不但可以对三维模型的表示形式不进行限定,也无需对输入的三维模型进行网格表示的转换和/或标准姿态的变换;在作为模板的初始网格模型是网格模型的情况下,即可使得作为输出的目标网格模型为适合进行后期处理的网格模型。
另外,由于初始网格模型本身就具有预先绑定的骨骼和蒙皮权重,因此,在姿态匹配和外形匹配完成后,目标网格模型也具有了预先绑定的骨骼和蒙皮权重。换句话说,如果以目标网格模型作为输出则无需再进行蒙皮迁移。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请的技术方案。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1为本申请实施例提供的一种三维模型骨骼绑定方法的实现流程示意图一;
图2为本申请实施例提供的形状匹配的处理过程的实现流程示意图;
图3为本申请实施例提供的一种三维模型骨骼绑定方法的实现流程示意图二;
图4为本申请实施例提供的一种三维模型骨骼绑定方法的实现流程示意图三;
图5为本申请实施例提供的步骤S101的实现流程示意图;
图6为本申请实施例提供的一种三维模型骨骼绑定方法的实现流程示意图四;
图7为本申请实施例提供的一种三维模型骨骼绑定装置的组成结构示意图;
图8为本申请实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和实施例对本申请的技术方案进一步详细阐述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请的目的,不是旨在限制本申请。
3D数据的不同表示类型一般包括:点云(Point clouds)、体素网格(Voxel grids,简称体素)、多边形网格(Polygon meshes,简称网格)和多视图表示(Multi-viewrepresentations)。其中,网格在三维动画领域应用较多,可以理解为一种可视化方法;而多视图表示是从不同模拟视角渲染的二维(2 Dimensions,2D)图像集合。
点云是不规则的数据结构,就是用一堆点来表示物体,即点云是三维空间(例如采用包括x轴y轴和z轴的笛卡尔坐标系)点的集合,这种方法的限制是点与点之间没有联系,缺乏物体的表面信息。点云的表示方法,对于某一点N一般采用N x N y N z 的三维矩阵,或编码xyz三个通道的栅格数据,或以深度图的方式进行表示。
体素,可以对应于图像中的像素而理解为三维物体中的像素,这就使得三维空间中的物体可以基于规则的空间体素进行表示,进而将图像领域的框架挪用到三维领域,使用3D卷积等方式直接对体素进行处理,缺点是会消耗大量的计算资源,因此限制了体素的分辨率。体素的表示方法为有向距离场(Signed Distance Field,SDF),也就是通过给每个体素赋予SDF来模拟物体表面。如果SDF值大于0,表示该体素在当前表面前;如果SDF值小于0,则表示体素在表面后,SDF越接近0,表明它越接近场景真实表面。
针对现有技术中无法实现对任意形式表示和/或任意姿态的角色模型D进行自动骨骼绑定的问题,本申请实施例提供一种三维模型骨骼绑定方法,该方法可以由计算机设备的处理器执行。其中,计算机设备指的可以是服务器、笔记本电脑、平板电脑、台式计算机、移动设备(例如智能手机)等具备数据处理能力的设备。
图1为本申请实施例提供的一种三维模型骨骼绑定方法的实现流程示意图一,如图1所示,该方法包括如下步骤S101至步骤S103:
步骤S101,获取初始网格模型和三维模型;所述初始网格模型具有预先绑定的骨骼和蒙皮权重;所述三维模型具有目标姿态和目标外形;
这里,获取作为模板的初始网格模型和以任意形式表示的三维模型;所述初始网格模型具有预先绑定的骨骼和蒙皮权重;所述三维模型具有目标姿态和目标外形;
在本实施例中,三维模型骨骼绑定方法的执行主体(例如计算机设备)可以接收用户提交的需要进行骨骼绑定的三维模型,或者可以从本地存储的待绑定三维模型数据库中获取三维模型,该三维模型可以具有任意外形(形态)、任意姿态。对于获取到的某一具体的三维模型来讲,该三维模型具有目标姿态和目标外形。
任意形式表示的三维模型作为目标角色模型D,可以是点云、体素、多边形网格和多视图表示中的任意一种。在三维动画领域,较为常见的表示形式是点云、体素、多边形网格,本申请实施例中,对输入的三维模型的表示形式不做限定。
本申请实施例中,网格模型中的网格面片(或简称为网格)都是由顶点、边和面三个基本结构组成,表示由多边形面片组成,网格按照每个面包括的顶点数目来区分,可以分为三角面片(三角网格,tirs)、四边面片(四边网格,quads)和更多(n-边面,n-gons)。一般情况下,较为常用的网格一般是利于计算的三角网格或者利于形变的四边网格。
本申请实施例中的三维模型和初始网格模型可以为同一类模型,例如三维模型和初始网格模型可以是人体模型、动物模型等之一具有骨骼的三维模型,其中动物模型可以是四足动物。
本申请实施例中,计算机设备的另一输入为作为模板的初始网格模型(简称模板角色模型)S,该初始网格模型的表示形式为网格。初始网格模型为一个已绑定好的骨骼模板S:包含顶点、网格面片(例如三角面片)、骨骼结构以及蒙皮权重,要求该角色模型可通过骨骼带动蒙皮进行正常的驱动。初始网格模型提供了基础的骨骼模板,通过姿态匹配可将该骨骼模板复用到目标角色模型D上。其好处在于,可以通过自由选择模板角色模型S的形式,满足用户为目标角色模型D进行不同骨骼数量的绑定。
作为模板的初始网格模型可以是一种参数化3D模型,例如在三维模型为人体模型时,参数化3D模型可以为参数化的人体三维(Skinned Multi-Person Linear,SMPL)模型。SMPL模型可以模拟人体的肌肉在肢体运动过程中的肌肉拉伸以及收缩运动。该模型可以通过身体形状参数和姿态参数驱动人体模型。
SMPL模型可以简单表示为:M(β,θ,Φ),其中βθ是输入参数,β代表是个人体高矮胖瘦、头身比等比例的10个参数,θ是代表人体整体运动位姿和24个关节相对角度的72个参数。Φ是模型学习到的5个内在参数。β参数是ShapeBlendPose参数,可以通过10个增量模板控制人体形状变化。人体参数模型预先定义了人体骨骼关键点的位置以及模型表面每个顶点到骨骼关键点的蒙皮权重,则生成的人体3D模型中有固定的6890个顶点,每个顶点都和人体骨骼点有一个预设的绑定关系,因此,人体参数模型可以看作是一个可驱动的人体3D模型,即将不同的人体模型参数输入人体参数模型中,可以得到不同的、可驱动的人体3D模型。
其中,蒙皮(用网格顶点表示)被骨骼带动进行运动,蒙皮权重表示每个关节点对于每个顶点的控制权重。
步骤S102,对所述三维模型进行人体特征检测,得到第一三维模型;
这里,对所述三维模型进行人体特征检测,得到第一三维模型,包括:对所述三维模型进行关节点检测或肢体部分分割,得到第一三维模型。
这里,由于三维模型以任意形式表示,所以对三维模型进行关节点检测或肢体部分分割,得到具有所述任意形式的第一三维模型。关节点检测或肢体部分分割对三维模型的表示形式不限,对于任意形式的三维模型都可以进行关节点检测或肢体部分分割。
在三维模型和初始网格模型均为人体模型为例,对输入的人体模型进行人体关节点检测或肢体部分分割,用于服务于姿态匹配,以实现将作为模板的初始网格模型转换为目标的三维模型的姿态。人体关节点检测和肢体部分分割,两者选择其一即可。
肢体部分分割分为两种情况:1)如果输入的三维模型的表示形式为网格,对网格模型中的顶点直接进行分割。具体为:首先对任意姿态输入的网格表示的三维模型进行归一化处理,然后提取三维模型的顶点、网格面片(例如三角面片)和边的特征。然后将这些特征输入神经网络模型进行肢体部分分割。该神经网络模型需要监督化训练,训练所需要的数据可以通过已经绑定好的现有角色进行数据增强得到。2)如果三维模型的表示形式为点云或体素,则首先将输入的三维模型转化为SDF,然后再输入神经网络模型进行分割。神经网络模型的训练数据也可以通过已经绑定好的现有角色进行数据增强得到。
步骤S103,基于所述第一三维模型,对所述初始网格模型进行姿态匹配和形状匹配,得到与所述目标姿态和所述目标外形匹配的目标网格模型;
这里,基于所述第一三维模型,对所述初始网格模型进行姿态匹配和形状匹配,得到具有所述目标姿态和所述目标外形的目标网格模型;
其中,目标网格模型S’具有所述初始网格模型绑定的骨骼和所述蒙皮权重。在另一些实施例中,所述形状匹配中至少可以以所述三维模型为目标对所述初始网格模型进行重拓扑得到的。
本申请实施例中的各模型的区别在于,输入的三维模型可以为任意形式,具有目标姿态和目标外形,但是没有骨骼和蒙皮权重。初始网格模型的表示形式为网格,具有预先形成的骨骼和蒙皮权重,也具有初始姿态和初始外形,也就是说,初始网格模型的外形参数值和姿态参数值可以是已知的。第一三维模型是对三维模型进行关键点检测或肢体部分分割后的结果,第一三维模型与输入的三维模型的表示形式相同。
在影视、游戏、动画等领域的三维模型为了便于进行后期的处理,例如对于人头模型的面部重建技术和拓扑(Topology)迁移技术,都是基于网格模型进行的,因此,在现有技术中,对于输入的三维模型需要先进行预处理,即在输入的三维模型不是网格模型的情况下,将其他输入的表示形式先转换为网格模型。
本申请实施例中,基于输入的三维模型对作为模板的初始网格模型进行姿态匹配和外形匹配后,得到目标网格模型,因此,一方面,在姿态匹配和外形匹配完成后,目标网格模型即具有输入的三维模型的目标姿态和目标外形;另一方面,不但可以对三维模型的表示形式不进行限定,也无需对输入的三维模型进行网格表示的转换和/或标准姿态的变换;在作为模板的初始网格模型是网格模型的情况下,即可使得作为输出的目标网格模型为适合进行后期处理的网格模型。
另外,由于初始网格模型本身就具有预先绑定的骨骼和蒙皮权重,因此,在姿态匹配和外形匹配完成后,目标网格模型也具有了预先绑定的骨骼和蒙皮权重。换句话说,如果以目标网格模型作为输出则无需再进行蒙皮迁移。
本申请实施例中,基于所述第一三维模型,对所述初始网格模型进行姿态匹配和形状匹配,得到与所述目标姿态和所述目标外形匹配的目标网格模型,包括:对所述初始网格模型进行至少一轮迭代匹配处理,得到所述目标网格模型;其中,迭代匹配处理,包括:对第一网格模型进行第一匹配处理,得到第二网格模型;以及,对所述第二网格模型进行第二匹配处理,得到第三网格模型;响应于满足处理完成条件,将所述第三网格模型确定为所述目标网格模型;
其中,所述第一网格模型为所述初始网格模型或上一轮迭代匹配处理得到的第三网格模型,所述第一匹配处理和所述第二匹配处理分别为姿态匹配或形状匹配,且所述第一匹配处理和所述第二匹配处理不同,所述形状匹配基于所述三维模型进行,所述姿态匹配基于所述第一三维模型进行。
在实施的过程中,基于所述第一三维模型,对所述初始网格模型进行姿态匹配和形状匹配,得到具有所述目标姿态和所述目标外形的目标网格模型,包括以下方式A、B和C之一,其中方式A又包括方式A1或方式A2,如下:
方式A,采用循环迭代的方式对所述初始网格模型同时进行姿态匹配和形状匹配:
方式A1,在每一迭代循环中,基于所述第一三维模型对所述初始网格模型或前一循环中形状匹配后的初始网格模型进行姿态匹配,以及,基于所述三维模型对本次迭代循环中姿态匹配后的初始网格模型进行形状匹配,最终得到与所述目标姿态和所述目标外形匹配的目标网格模型;
方式A2,在每一迭代循环中,基于所述三维模型对所述初始网格模型或前一迭代循环中姿态匹配后的初始网格模型进行形状匹配,以及,基于所述第一三维模型对前一循环中形状匹配后的初始网格模型进行姿态匹配,最终得到与所述目标姿态和所述目标外形匹配的目标网格模型;
方式B,基于所述第一三维模型对所述初始网格模型进行姿态匹配,以及基于所述三维模型对姿态匹配后的网格模型进行形状匹配,得到与所述目标姿态和所述目标外形匹配的目标网格模型;
方式C,基于所述三维模型对所述初始网格模型进行形状匹配,以及基于第一三维模型对形状匹配后的网格模型进行姿态匹配,得到与所述目标姿态和所述目标外形匹配的目标网格模型。
本申请实施例中的三维模型骨骼绑定方法中输入包含两部分,即作为已绑定的作为模板的初始网格模型,以及具有任意姿态的三维模型,其中目标角色模型D可以兼容不同的表示形式。
本申请实施例中的三维模型骨骼绑定方法包括姿态匹配算法和外形匹配算法,姿态匹配算法和外形匹配算法可进行整体优化或者分别进行优化;其中,整体优化对应于上述的方式A,整体优化可以理解为同时进行循环迭代优化,例如姿态匹配和外形匹配分别包括3个循环:
先进行第一循环的姿态匹配,在第一循环的姿态匹配后得到结果的基础上,进行第一循环的外形匹配;在第一循环的外形匹配后得到结果的基础上,进行第二循环的姿态匹配和在第二循环的姿态匹配后得到结果的基础上,进行第二循环的外形匹配;在第二循环的外形匹配后得到结果的基础上,进行第三循环的姿态匹配和在第三循环的姿态匹配后得到结果的基础上,进行第三循环的外形匹配,这样最终得到目标网格模型。
由此可见,在某一时段,姿态匹配和外形匹配可以是同时进行的,而且是在前一循环的基础上进行后一循环,例如在某一时段中,姿态匹配是基于所述第一三维模型对所述初始网格模型或前一循环中形状匹配后的初始网格模型进行的,同时外形匹配是基于所述三维模型对本次迭代循环中姿态匹配后的初始网格模型进行的。
在一些实施例中,在所述迭代匹配处理的轮次为一轮,所述第一匹配处理为姿态匹配,第二匹配处理为形状匹配的情况下,所述第一网格模型为所述初始网格模型,对第一网格模型进行第一匹配处理,得到第二网格模型,包括步骤11和步骤12,其中:
步骤11,确定所述初始网格模型的姿态参数值;
其中,所述初始网格模型的姿态参数值包括骨骼长度值、关节点旋转参数值,和在3D空间中关节点的位置参数值;
步骤12,基于所述第一三维模型,调整所述初始网格模型的姿态参数值,得到与所述目标姿态匹配的所述第二网格模型;
基于所述初始网格模型的姿态参数值对所述第一三维模型的目标姿态进行调整,得到目标姿态匹配的第二网格模型;所述第二网格模型具有所述初始网格模型绑定的所述骨骼和所述蒙皮权重;
对应地,对所述第二网格模型进行第二匹配处理,得到第三网格模型,包括步骤13,其中:
步骤13,基于所述三维模型,对将所述第二网格模型进行形状匹配,得到与所述目标姿态和所述目标外形匹配的第三网格模型。
在一些实施例中,在所述迭代匹配处理的轮次为一轮,所述第一匹配处理为形状匹配,所述第二匹配处理为姿态匹配的情况下,所述第一网格模型为所述初始网格模型,对第一网格模型进行第一匹配处理,得到第二网格模型,包括步骤21,其中:
步骤21,基于所述三维模型对所述初始网格模型进行形状匹配,得到具有与所述目标外形匹配的第二网格模型,实现所述形状匹配;
对应地,对所述第二网格模型进行第二匹配处理,得到第三网格模型,包括步骤22和步骤23,其中:
步骤22,确定所述初始网格模型的姿态参数值;
其中,所述初始网格模型的姿态参数值包括骨骼长度值、关节点旋转参数值,和在3D空间中关节点的位置参数值;
步骤23,将所述初始网格模型的姿态参数值作为所述第二网格模型的姿态参数值,基于所述第二网格模型的姿态参数值对所述第一三维模型的目标姿态进行调整,得到与所述目标姿态和所述目标外形匹配的第三网格模型。
这里,姿态对齐后以实现姿态匹配。
在一些实施例中,在所述迭代匹配处理的轮次为一轮,所述第一匹配处理为姿态匹配,所述第二匹配处理为形状匹配的情况下,所述第一网格模型为所述初始网格模型,对第一网格模型进行第一匹配处理,得到第二网格模型,包括步骤31和步骤32,其中:
步骤31,将所述初始网格模型和所述第一三维模型输入用于实现姿态匹配的神经网络模型,得到预测的姿态角度参数的目标值;
这里,第一三维模型是对具有任意形式表示的三维模型进行关节点检测或肢体部分分割后得到的。因此,可以理解为:将三维模型、初始网格模型以及关键点或肢体分割的结果输入到深度神经网络模型,则得到预测的姿态角度参数的目标值;
步骤32,基于所述预测的姿态角度参数的目标值,对所述初始网格模型的姿态角度参数进行调整,得到与所述目标姿态匹配的第二网格模型;
对应地,对所述第二网格模型进行第二匹配处理,得到第三网格模型,包括步骤33和步骤34,其中:
步骤33,将所述第一三维模型和与所述目标姿态匹配的第二网格模型输入用于实现外形匹配的神经网络模型,得到预测的形变参数的目标值;
步骤34,基于所述预测的形变参数的目标值,对与所述目标姿态匹配的第二网格模型进行外形匹配,得到与所述目标姿态和所述目标外形匹配的目标网格模型。
这里,外形匹配是通过对顶点和三角面片的变形来实现的。
在一些实施例中,在所述迭代匹配处理的轮次为一轮,所述第一匹配处理为形状匹配,所述第二匹配处理为姿态匹配的情况下,所述第一网格模型为所述初始网格模型,对第一网格模型进行第一匹配处理,得到第二网格模型,包括步骤41和步骤42,其中:
步骤41,将所述三维模型和所述初始网格模型输入用于实现外形匹配的神经网络模型,得到预测的形变参数的目标值;
步骤42,基于所述预测的形变参数的目标值,对所述初始网格模型进行外形匹配,得到与所述目标外形匹配的第二网格模型;
对应地,对所述第二网格模型进行第二匹配处理,得到第三网格模型,包括步骤43和步骤44,其中:
步骤43,将与所述目标外形匹配的第二网格模型和所述第一三维模型输入用于实现姿态匹配的神经网络模型,得到预测的姿态角度参数的目标值;
步骤44,基于所述预测的姿态角度参数的目标值,对与所述目标外形匹配的第二网格模型进行姿态调整,得到与所述目标姿态和所述目标外形匹配的目标网格模型。
本申请实施例中,步骤31至步骤34,以及步骤41至步骤44中,在三维模型为网格表示形式的情况下,那么第一三维模型或三维模型可以输入到已训练的神经网络模型中。在三维模型不是网格表示形式的情况下,而是体素或点云表示形式的话,需要先将体素或点云表示形式的三维模型或第一三维模型转换为SDF,然后再输入到神经网络模型中。也就是说,输入到神经网络模型中的模型一般可以是网格或SDF表示形式的。
在另一些实施例中,基于神经网络模型对输入的要求,还需要对输入模型(例如三维模型或第一三维模型或初始网格模型等)进行归一化处理,然后提取输入模型的顶点、三角面片和边的特征。
需要说明的是,本申请实施例中,用于关节点检测、用于肢体部分分割、用于实现姿态匹配以及用于实现外形匹配的神经网络模型都是已训练的,这些神经网络模型通过被标注过真值的样本进行监督训练,直至达到各自的收敛条件。本申请实施例中,各神经网络模型在训练时所需要的数据可以通过已经绑定好的现有角色进行数据增强得到。
在一些实施例中,如图2所示,形状匹配的处理过程,包括:
步骤S201,基于所述三维模型,调整第四网格模型的外形参数值,得到与所述三维模型外形对齐后的第五网格模型;
这里,所述第四网格模块为初始网格模型或上一轮迭代匹配处理得到经过形状匹配后的网格模型;通过调整所述初始网格模型的外形参数值使得调整后的初始网格模型在外形上与所述三维模型进行对齐,得到对齐后的网格模型(即为第五网格模型),其中,外形参数值用于表征高矮胖瘦、头身比等比例。
在三维模型为SMPL模型时,该外形参数可以是SMPL模型中的输入参数β,输入参数β代表是个人体高矮胖瘦、头身比等比例的10个参数。在具体实施的过程中,通过调整初始网格模型的输入参数β值,实现初始网格模型与三维模型在外形上进行匹配。
步骤S202,确定所述第五网格模型的至少一个顶点分别对应的残差系数;
步骤S203,基于所述残差系数,对所述第五网格模型至少一个顶点的坐标值进行调整,得到第六网格模型;
其中,所述第六网格模型为所述第二网格模型或所述第三网格模型;
在一些实施例中,将第五网格模型至少一个顶点的坐标值和对应的残差系数作为一个整体进行优化,直到优化后的第五网格模型的顶点与所述三维模型对应顶点之间的距离之和达到最小,将距离之和达到最小时所对应的第五网格模型确定为第六网格模型。
从上面可以看出,本申请实施例中的外形匹配算法可以分为两个阶段:1)基于输入的三维模型对作为模板的初始网格模型的外形参数值进行优化,得到网格模型D’;其中,外形参数值用于表征高矮胖瘦、头身比等比例;2)在1)的基础上,优化初始网格模型上顶点位置的残差。具体步骤为:假设1)中得到的网格模型D’有3000个顶点,则初始化一个与D’有同样顶点个数的矩阵R作为要被优化的残差项,对该残差项R和网格模型D’作为一个整体进行优化,即min dist[D,(D’+R)],其中min表示求最小值,dist表示求[ , ]中逗号前后二者之间的距离。同时,为了保证拓扑网格的均匀分布,只限定R的方向为顶点法线的方向。
在步骤S103中,目标网格模型S’和三维模型共用初始网格模型的骨骼。如果目标网格模型满足输出要求,例如,网格面片的数量和/或网格顶点的数量满足输出要求,则可以将目标网格模型作为最终的输出。如果想要以三维模型的网格面片的数量和/或网格顶点的数量作为输出,则可以基于目标网格模型对三维模型进行蒙皮迁移。
在一些实施例中,如果想要输出三维模型,则需要将作为目标网格模型S’的蒙皮权重迁移到三维模型,如图3所示,在步骤S103之后,该方法还包括:
步骤S301,确定所述三维模型上顶点与所述目标网格模型上最近的目标网格面片;
步骤S302,确定所述三维模型上顶点与所述目标网格面片上顶点之间距离;
网格模型的表面是网格面片,那么步骤S301可以理解为点到平面之间的之间。步骤S302可以理解为点到点之间的距离。
步骤S303,基于所述三维模型上顶点与所述目标网格面片上顶点之间距离,和所述目标网格面片顶点上的蒙皮权重,对所述三维模型上的顶点进行线性插值,得到所述三维模型上顶点的蒙皮权重。
在步骤S303之后,可以输出三维模型上的蒙皮权重,并且将目标网格模型上的骨骼作为三维模型的骨骼。
本申请实施例中,可直接进行线性插值得到作为目标角色模型D上任一顶点(顶点P)的蒙皮权重;首先计算作为目标角色模型D中每个顶点P,在目标网格模型S’上距离最近的三角面片(设顶点为A、B和C),然后计算出该顶点P到该三角面片上每个顶点A、B和C的距离d 1 、d 2 d 3 。最后,基于公式(1)进行线性插值,得到目标角色模型D上的顶点的蒙皮权重W P
(1)。
其中,W P 表示目标角色模型D上的顶点的蒙皮权重,d 1 、d 2 d 3 分别表示顶点P到该三角面片上每个顶点A、B和C的距离,W A W B W C 分别表示顶点A、B和C的蒙皮权重。
经过骨骼绑定后,目标网格模型S’的拓扑结构和输入的作为目标角色模型D可能不同。为了生成对应于原始拓扑的目标角色模型D的蒙皮权重,可将目标网格模型S’的蒙皮权重迁移到作为目标角色模型D的骨骼和顶点上。目标角色模型D的点数与模板角色模型S的点数不一致的时候,可以采用权重迁移的方式。例如目标角色模型D的顶点数量比较多或比较少,采用插值的方式,保留目标角色模型的顶点数量。如果目标角色模型D的网格顶点数量与模板角色模型S的网格顶点数量一致,骨骼绑定完成就不需要进行蒙皮权重迁移了。因此在一些实施例中,如图4所示,该方法还包括:
步骤S401,在所述三维模型表示为网格的情况下,确定所述三维模型的顶点数量;
在一些实施例中,如果需要输出三维模型(目标角色模型D),而且三维模型的表示形式不为网格的话,想要将三维模型转换为网格模型,然后再将目标网格模型的蒙皮迁移到三维模型上。
步骤S402,在所述目标网格模型的顶点数量与所述三维模型的顶点数量之差小于等于预设阈值的情况下,输出所述目标网格模型;
其中,例如在所述目标网格模型的顶点数量与所述三维模型的顶点数量相同,或者在所述目标网格模型的顶点数量与所述三维模型的顶点数量之差比较小,小于阈值的时候,则可以输出目标网格模型。
步骤S403,在所述目标网格模型的顶点数量与所述三维模型的顶点数量之差大于预设阈值的情况下,确定所述三维模型上顶点与所述目标网格模型上最近的目标网格面片。
这里,步骤S403用于替换上述实施例中的步骤S301。在另一些实施例中,在所述目标网格模型与三维模型的网格面片的边数、网格数量和顶点数量分别满足预设条件的情况下,输出所述目标网格模型;在不满足预设条件的情况下,执行上述的步骤S301至步骤S303。例如,分别针对边数、网格数量和顶点数量设置阈值1、阈值2和阈值3,在目标网格模型与三维模型的边数、网格数量和顶点数量之差分别对应小于等于对应阈值1、2和3的情况下(表示目标网格模型与三维模型之间的细节呈现差异不大),则输出目标网格模型。在目标网格模型与三维模型的边数、网格数量和顶点数量之差至少任意一个大于对应阈值1、2和3的情况下,执行上述的步骤S301至步骤S303。
本申请实施例中,作为模板的初始网格模型(即模板角色模型S)可以只有1个,例如对于人体模型设置一个较为常用的骨骼数量,例如24点,顶点数量为5000个的初始网格模型。在另一些实施例中,还可以针对不同的骨骼绑定需求(包括骨骼数量),设置具有不同的骨骼数量的模板角色模型S,例如对于人体模型,假设较为常见的骨骼点的数量为12、17、18、24、26和28六种,那么可以针对这六种中每一种骨骼点的数量都设置一个模板角色模型,形成具有6个模板角色模型的模板库。
在实施时,可以根据运动需求对骨骼点的数量进行增减,其中,18个骨骼的关键点分别为:鼻子(nose)0、颈部、脖子(neck)1、右肩膀(r-shoulder)2、右胳膊肘(r-elbow)3、右手腕(r-wrist)4、左肩膀(l-shoulder)5、左胳膊肘(l-elbow)6、左手腕(l-wrist)7、右臀部、髋部(r-hip)8、右膝盖(r-knee)9、右脚踝(r-ankle)10、左臀部、髋部(l-hip)11、左膝盖(l-knee)12、左脚踝(l-ankle)13、右眼(r-eye)14、左眼(l-eye)15、右耳(r-ear)16、左耳(l-ear)17。为了更加方便的选择初始网格模型,可以预先设置不同骨骼点的数量的模板角色模型,形成模板库。由此,如图5所示,步骤S101中的获取初始网格模型,包括:
步骤S1011,确定针对所述三维模型的骨骼绑定需求,所述骨骼绑定需求至少包括骨骼点的数量;
步骤S1012,基于所述骨骼点的数量从预设的模板库确定所述初始网格模型。
这里,从预设的模板库确定具有所述骨骼点数量的初始网格模型。
网格模型通常可以用网格面片数量(或顶点的数量)的多少来衡量网格质量,网格面片数量多(即网格密集)的一般称为高模,而网格数量少(即网格稀疏)的一般称为低模。因此,骨骼绑定需求还包括:顶点的数量;对应地,步骤S1012,基于所述骨骼点数量从预设的模板库确定所述初始网格模型,包括:基于所述骨骼点的数量和顶点的数量,从预设的模板库确定所述初始网格模型。
下面以数字人领域为例来说明,数字人,又称虚拟人或虚拟数字人,是一种通过计算机图形学、图形渲染、动作捕捉、深度学习、语音合成等数字技术所创造出的、与人类形象接近的、被赋予特定人物身份的、在视觉上拉近和人的心理距离并为人类带来更加真实的情感互动的数字化形象。
数字人作为一种快捷载体,结合人工智能和虚拟现实技术赋予行业更个性化和智能化的服务内容。然而基于人体重建算法获得的3D人体模型通常无法直接被驱动,因此,重建得到的人体模型无法被应用于虚拟角色制作和动画制作等场景。为了得到可用于驱动的人体模型,已有方法需要对3D人体模型进行骨骼绑定,现有的骨骼绑定算法有两类:
第一类是手动绑定:基于用户手动在软件中对人物角色进行骨骼绑定,需要用户手动的指定骨骼关节点的位置,例如给定一个人体的网格模型,艺术家需要手动在软件中为其添加骨骼节点和蒙皮。其目的是为了对3D角色的运动进行控制。运动控制的原理是:通过骨骼关节点的旋转和平移,来确定人体目标姿态。
第二类是利用一些工具对标准姿态进行自动绑定。第二类虽然可以对一些标准姿态进行自动绑定,但是对输入的目标角色模型D必须是标准姿态而且也需要是基于网格表示的3D人体模型,如果目标角色模型D不是标准姿态和/或基于网格表示的3D人体模型,则需要先将目标角色模型D变换为基于网格表示的标准姿态的3D人体模型,然后再进行骨骼绑定。由此可见,现有技术无法实现对任意形式表示和/或任意姿态的角色模型的自动骨骼绑定。
综上所述,现有技术存在的问题在于,1)只能对标准姿态进行自动绑定,无法实现对任意姿态的输入进行绑定。2)通常只能兼容一种表示形式(通常只兼容网格表示)进行绑定,对于其他形式的表示例如点云或体素,需要先将点云或体素进行表示形式的转换,得到网格表示的三维模型。
为了解决上述问题,本申请实施例提供的方法,1)可以对任意姿态的输入进行绑定,2)可同时兼容网格、点云和体素等任意表示形式,即可同时兼容多种不同的表示形式,并输出为统一的网格模型。
本申请实施例提供的三维模型骨骼绑定方法,如图6所示,该方法包括:
1)利用一套事先绑定好骨骼和蒙皮权重的模板角色模型S(即上述的初始网格模型),拟合输入的目标角色模型D(即上述的三维模型)进行姿态匹配601和形状匹配602,从而实现将模板角色模型S的骨骼放在目标角色模型D上的目的。
2)由于1)中将模板角色模型S的外形变化为目标角色模型D的模样,则实际上已完成了对目标角色模型D的拓扑结构重建(表示为目标网格模型S’);最后将目标网格模型S’的蒙皮权重迁移到目标角色模型D上,得到最终输出模型604,该过程即完成蒙皮权重生成603。
三维模型骨骼绑定方法的输入包含2部分,即已绑定的模板角色模型S和任意姿态的目标角色模型D,其中目标角色模型D兼容不同的表示形式。
三维模型骨骼绑定方法包括姿态匹配算法和外形匹配算法,其中姿态匹配算法和外形匹配算法可依次进行优化,或进行同时进行整体优化。
在姿态匹配算法中,需要对于目标角色模型D需要先进行人体关节点检测或肢体部分分割605:也就是人体关节点检测或肢体部分分割服务于姿态匹配,以实现将模板角色模型S转换为目标角色模型D的姿态。人体关节点检测或肢体部分分割两者选择其一即可。
第一部分:人体关节点检测方式,包括3D关节点检测方式和2D关节点检测方式,其中:
a)2D关节点检测方式:把目标角色模型D可渲染为单张图片或者多张2D图像,基于关节点检测算法,分别确定每一2D图像中的关节点;基于至少一张2D图像中的关节点,确定目标角色模型D的骨骼关键点。2D关键点检测方式的优势在于:1)可将(目标角色模型D)渲染到2D空间(相当于用虚拟相机拍照)中,用已有的2D关节点检测技术进行检测,然后投影到3D空间中对应的坐标位置。2)不受不同表示形式的影响。其缺点在于,当人物动作存在严重遮挡时,会导致2D关键点检测不准确,从而影响姿态匹配的精度。然而3D关节点检测的实现方式可消除这一问题。
b)3D关节点检测的实现方式:可训练神经网络模型直接对输入的网格/点云/体素进行3D关节点预测;首先,将不同的输入利用现有的工具或软件转化为SDF,然后将SDF输入3D关节点检测网络模型进行3D关节点检测。其中3D关键点检测网络模型可以利用深度学习的模块,如卷积神经网络,图神经网络等进行设计。
第二部分:肢体部分分割方式的优势在于:1)利用目标角色模型D对姿态进行拟合,得到的姿态精度比关键点检测的高;2)不受遮挡的影响;3)除了能够对姿态匹配提供约束信息,还能够帮助于人体形状拟合。
已绑定好的模板角色模型S:包含顶点、三角面片、骨骼结构以及蒙皮权重。要求该角色可通过骨骼带动蒙皮进行正常的驱动。模板角色模型S提供了基础的骨骼模板,通过姿态匹配可将该模板角色复用到目标角色模型D上。其好处在于,可以通过自由选择模板角色模型S的形式,满足用户为目标角色模型D进行不同骨骼数量的绑定。模板角色模型S可以只有1个,针对不同的骨骼绑定需求(包括骨骼数量),有不同的骨骼数量的模板。
姿态匹配算法的目的是将已绑定好的角色S的姿态变化为目标角色模型D的姿态。其原理为,根据3D关节点或分割后的肢体对模板角色模型S的姿态参数进行优化,其中姿态参数包括骨骼长度值、关节点旋转参数及关节点在3D空间中的位置(平移和旋转),使得模板角色模型S做出和目标角色模型D同样的动作,以在3D空间中对齐。
外形匹配算法:在姿态匹配完成后,对模板角色模型S的顶点位置和三角面片进行优化,使其变形至目标角色模型D的形状。其过程和结果相当于对模板角色模型S进行了重拓扑。其好处在于:如果表示形式是点云或体素数据,则在进行数字人制作时通常需要进行重拓扑生成网格模型的过程,本申请实施例中的外形匹配算法可同时免去对点云或体素数据制作3D网格模型的流程,直接输出与目标角色模型D相同拓扑结构的网格模型。该网格模型在外形结构上复刻了输入的目标角色模型D,并且该算法的输出的目标网格模型S’已经实现了绑定,可以被自由驱动。
姿态匹配算法和外形匹配算法的关系:
1)姿态匹配算法和外形匹配算法可同时进行优化;例如,可通过已训练的第一神经网络模型(可同时进行姿态匹配和外形匹配),将目标角色模型D、关键点/肢体分割的结果和模板角色模型S输入神经网络模型,输出姿态参数和形变的参数。
2)姿态匹配算法和外形匹配算法可依次进行优化。例如,先进行姿态匹配,将模板角色模型S中的姿态参数值,包括模板角色模型S中在3D空间中的整体旋转和平移、骨骼的长度参数值、以及关节点的旋转角度参数值,优化至与输入(目标角色模型D)进行对齐;然后进行外形匹配,即优化模板角色模型S的顶点和三角面片,使其能最好地表示目标角色模型D的外形。
再如,先进行姿态匹配,第二神经网络模型(可进行姿态匹配)的输入是目标角色模型D、模板角色模型S和关键点/肢体分割的结果;输出是姿态参数(包括模板角色模型S在3D空间中的整体旋转和平移、骨骼的长度参数和关键点的旋转角度参数);然后再进行外形匹配,第三神经网络模型(可进行外形匹配)的输入是目标角色模型D、模板角色模型S和关键点/肢体分割的结果,+姿态匹配的结果(=姿态参数),输出是形变的参数(=顶点的位移)。
蒙皮权重迁移:针对于网格模型输入。经过骨骼绑定后,目标角色模型D已经有了重拓扑的输出模型(即目标网格模型)S’,但是目标网格模型S’的拓扑结构和输入的目标角色模型D可能不同。为了生成对应于原始拓扑的目标角色模型D的蒙皮权重,可将重拓扑的输出模型S’的蒙皮权重迁移到目标角色模型D的骨骼和顶点上。
目标角色模型D的点数与模板角色模型S的点数不一致的时候,可以采用权重迁移的方式。例如目标角色模型D的顶点数量比较多或比较少,采用插值的方式保留目标角色模型D的顶点数量。如果目标角色模型D的顶点数量与模板角色模型S的顶点数量一致,骨骼绑定完成就不需要进行蒙皮权重迁移了。
本申请实施例中,可直接进行线性插值得到目标角色模型D上任一顶点(顶点P)的蒙皮权重;首先计算目标角色模型D中每个顶点P,在目标网格模型S’上距离最近的三角面片(设顶点为A、B和C),然后计算出该顶点P到该三角面片上每个顶点A、B和C的距离d1、d2和d3。最后,基于公式(1)进行线性插值得到目标角色模型D上的顶点的蒙皮权重W P
从以上实施例可以看出,本申请实施例的有益效果在于:1)可对任意姿态的角色输入进行骨骼和蒙皮权重绑定;2)可兼容多种表示形式;3)针对点云和体素的表示形式,通过姿态匹配和外形匹配,对其进行了重拓扑,省去了为其手动进行Mesh重建的操作;4)本申请实施例提供的三维模型骨骼绑定方法也可复用于其他形式的角色,如对四足动物进行绑定。
基于前述的实施例,本申请实施例提供一种三维模型骨骼绑定装置,该装置包括所包括的各模块,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(Central Processing Unit,CPU)、微处理器(Microprocessor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)或现场可编程门阵列(Field Programmable Gate Array,FPGA)等。
图7为本申请实施例提供的一种三维模型骨骼绑定装置的组成结构示意图,如图7所示,三维模型骨骼绑定装置700包括:
获取模块710,用于获取初始网格模型和三维模型;所述初始网格模型具有预先绑定的骨骼和蒙皮权重;所述三维模型具有目标姿态和目标外形;
检测模块720,用于对所述三维模型进行人体特征检测,得到第一三维模型;
匹配模块730,用于基于所述第一三维模型,对所述初始网格模型进行姿态匹配和形状匹配,得到与所述目标姿态和所述目标外形匹配的目标网格模型;
其中,所述目标网格模型具有所述初始网格模型绑定的骨骼和所述蒙皮权重。
在一些实施例中,所述匹配模块,用于对所述初始网格模型进行至少一轮迭代匹配处理,得到所述目标网格模型;
所述匹配模块包括第一匹配处理模块、第二匹配处理模块和目标确定模块,其中:
第一匹配处理模块,用于对第一网格模型进行第一匹配处理,得到第二网格模型;
第二匹配处理模块,用于对所述第二网格模型进行第二匹配处理,得到第三网格模型;
目标确定模块,用于响应于满足处理完成条件,将所述第三网格模型确定为所述目标网格模型;
其中,所述第一网格模型为所述初始网格模型或上一轮迭代匹配处理得到的第三网格模型,所述第一匹配处理和所述第二匹配处理分别为姿态匹配或形状匹配,且所述第一匹配处理和所述第二匹配处理不同,所述形状匹配基于所述三维模型进行,所述姿态匹配基于所述第一三维模型进行。
匹配模块在进行形状匹配的处理过程,包括:
第一调整模块,用于基于所述三维模型,调整第四网格模型的外形参数值,得到与所述三维模型外形对齐后的第五网格模型;其中,所述第四网格模块为初始网格模型或上一轮迭代匹配处理得到经过形状匹配后的网格模型;
残差确定模块,用于确定所述第五网格模型的至少一个顶点分别对应的残差系数;
第三调整模块,用于基于所述残差系数,对所述第五网格模型至少一个顶点的坐标值进行调整,得到第六网格模型;其中,所述第六网格模型为所述第二网格模型或所述第三网格模型。
在一些实施例中,在所述迭代匹配处理的轮次为一轮,所述第一匹配处理为姿态匹配,所述第二匹配处理为形状匹配的情况下,第一匹配处理模块,用于:确定所述初始网格模型的姿态参数值;基于所述第一三维模型,调整所述初始网格模型的姿态参数值,得到与所述目标姿态匹配的所述第二网格模型;所述第二网格模型具有所述初始网格模型绑定的所述骨骼和所述蒙皮权重;
第二匹配处理模块,用于:基于所述三维模型,对所述第二网格模型进行形状匹配,得到与所述目标姿态和所述目标外形匹配的第三网格模型。
在一些实施例中,在所述迭代匹配处理的轮次为一轮,所述第一匹配处理为形状匹配,所述第二匹配处理为姿态匹配的情况下,第一匹配处理模块,用于:基于所述三维模型对所述初始网格模型进行形状匹配,得到具有与所述目标外形匹配的第二网格模型;所述对所述第二网格模型进行第二匹配处理,得到第三网格模型,包括:
第二匹配处理模块,用于:确定所述初始网格模型的姿态参数值;将所述初始网格模型的姿态参数值作为所述第二网格模型的姿态参数值,基于所述第二网格模型的姿态参数值对所述第一三维模型的目标姿态进行调整,得到与所述目标姿态和所述目标外形匹配的第三网格模型。
在一些实施例中,在所述迭代匹配处理的轮次为一轮,所述第一匹配处理为姿态匹配,所述第二匹配处理为形状匹配的情况下,第一匹配处理模块,用于将所述初始网格模型和所述第一三维模型输入用于实现姿态匹配的神经网络模型,得到预测的姿态角度参数的目标值;以及,基于所述预测的姿态角度参数的目标值对所述初始网格模型的姿态角度参数进行调整,得到与所述目标姿态匹配的第二网格模型;
第二匹配处理模块,用于将所述第一三维模型和与所述目标姿态匹配的第二网格模型输入用于实现外形匹配的神经网络模型,得到预测的形变参数的目标值;以及,基于所述预测的形变参数的目标值,对与所述目标姿态匹配的第二网格模型进行外形匹配,得到与所述目标姿态和所述目标外形匹配的第三网格模型。
在一些实施例中,所述装置还包括:第一确定模块,用于确定所述三维模型上顶点与所述目标网格模型上最近的目标网格面片;第二确定模块,用于确定所述三维模型上顶点与所述目标网格面片上顶点之间距离;线性差值模块,用于基于所述三维模型上顶点与所述目标网格面片上顶点之间距离,和所述目标网格面片顶点上的蒙皮权重,对所述三维模型上的顶点进行线性插值,得到所述三维模型上顶点的蒙皮权重。
在一些实施例中,所述装置还包括:第三确定模块,用于在所述三维模型表示为网格的情况下,确定所述三维模型的顶点数量;输出模块,用于在所述目标网格模型的顶点数量与所述三维模型的顶点数量之差小于等于预设阈值的情况下,输出所述目标网格模型;第一确定模块,还用于在所述目标网格模型的顶点数量与所述三维模型的顶点数量之差大于预设阈值的情况下,确定所述三维模型上顶点与所述目标网格模型上最近的目标网格面片。
在一些实施例中,所述装置还包括:第四确定模块,用于确定针对所述三维模型的骨骼绑定需求,所述骨骼绑定需求至少包括骨骼点的数量;第五确定模块,用于基于所述骨骼点的数量从预设的模板库确定所述初始网格模型。
在一些实施例中,所述骨骼绑定需求还包括:顶点的数量,所述第五确定模块还用于基于所述骨骼点的数量和顶点的数量,从预设的模板库确定所述初始网格模型。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
本申请实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,图8为本申请实施例提供的一种计算机设备的硬件实体示意图,如图8所示,该计算机设备800的硬件实体包括:处理器801、通信接口802和存储器803,其中:
处理器801通常控制计算机设备800的总体操作。
通信接口802可以使计算机设备通过网络与其他计算机设备通信。
存储器803配置为存储由处理器801可执行的指令和应用程序,还可以缓存待处理器801以及计算机设备800中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。处理器801、通信接口802和存储器803之间可以通过总线804进行数据传输。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块;既可以位于一个地方,也可以分布到多个网络模块上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能模块可以全部集成在一个处理模块中,也可以是各模块分别单独作为一个模块,也可以两个或两个以上模块集成在一个模块中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (14)

1.一种三维模型骨骼绑定方法,其特征在于,所述三维模型骨骼绑定方法包括:
获取初始网格模型和三维模型;所述初始网格模型具有预先绑定的骨骼和蒙皮权重;所述三维模型具有目标姿态和目标外形;
对所述三维模型进行人体特征检测,得到第一三维模型;
基于所述第一三维模型,对所述初始网格模型进行姿态匹配和形状匹配,得到与所述目标姿态和所述目标外形匹配的目标网格模型;
其中,所述目标网格模型具有所述初始网格模型绑定的骨骼和所述蒙皮权重。
2.根据权利要求1所述的三维模型骨骼绑定方法,其特征在于,所述基于所述第一三维模型,对所述初始网格模型进行姿态匹配和形状匹配,得到与所述目标姿态和所述目标外形匹配的目标网格模型,包括:
对所述初始网格模型进行至少一轮迭代匹配处理,得到所述目标网格模型;其中,迭代匹配处理,包括:
对第一网格模型进行第一匹配处理,得到第二网格模型;
对所述第二网格模型进行第二匹配处理,得到第三网格模型;
响应于满足处理完成条件,将所述第三网格模型确定为所述目标网格模型;
其中,所述第一网格模型为所述初始网格模型或上一轮迭代匹配处理得到的第三网格模型,所述第一匹配处理和所述第二匹配处理分别为姿态匹配或形状匹配,且所述第一匹配处理和所述第二匹配处理不同,所述形状匹配基于所述三维模型进行,所述姿态匹配基于所述第一三维模型进行。
3.根据权利要求2所述的三维模型骨骼绑定方法,其特征在于,形状匹配的处理过程,包括:
基于所述三维模型,调整第四网格模型的外形参数值,得到与所述三维模型外形对齐后的第五网格模型;其中,所述第四网格模块为初始网格模型或上一轮迭代匹配处理得到经过形状匹配后的网格模型;
确定所述第五网格模型的至少一个顶点分别对应的残差系数;
基于所述残差系数,对所述第五网格模型至少一个顶点的坐标值进行调整,得到第六网格模型;其中,所述第六网格模型为所述第二网格模型或所述第三网格模型。
4.根据权利要求2所述的三维模型骨骼绑定方法,其特征在于,在迭代匹配处理的轮次为一轮,所述第一匹配处理为姿态匹配,所述第二匹配处理为形状匹配的情况下,所述对第一网格模型进行第一匹配处理,得到第二网格模型,包括:
确定所述初始网格模型的姿态参数值;
基于所述第一三维模型,调整所述初始网格模型的姿态参数值,得到与所述目标姿态匹配的所述第二网格模型;所述第二网格模型具有所述初始网格模型绑定的所述骨骼和所述蒙皮权重;
所述对所述第二网格模型进行第二匹配处理,得到第三网格模型,包括:
基于所述三维模型,对所述第二网格模型进行形状匹配,得到与所述目标姿态和所述目标外形匹配的第三网格模型。
5.根据权利要求2所述的三维模型骨骼绑定方法,其特征在于,在所述迭代匹配处理的轮次为一轮,所述第一匹配处理为形状匹配,所述第二匹配处理为姿态匹配的情况下,所述对第一网格模型进行第一匹配处理,得到第二网格模型,包括:
基于所述三维模型对所述初始网格模型进行形状匹配,得到具有与所述目标外形匹配的第二网格模型;
所述对所述第二网格模型进行第二匹配处理,得到第三网格模型,包括:
确定所述初始网格模型的姿态参数值;
将所述初始网格模型的姿态参数值作为所述第二网格模型的姿态参数值,基于所述第二网格模型的姿态参数值对所述第一三维模型的目标姿态进行调整,得到与所述目标姿态和所述目标外形匹配的第三网格模型。
6.根据权利要求2所述的三维模型骨骼绑定方法,其特征在于,在所述迭代匹配处理的轮次为一轮,所述第一匹配处理为姿态匹配,所述第二匹配处理为形状匹配的情况下,
所述对第一网格模型进行第一匹配处理,得到第二网格模型,包括:
将所述初始网格模型和所述第一三维模型输入用于实现姿态匹配的神经网络模型,得到预测的姿态角度参数的目标值;以及,基于所述预测的姿态角度参数的目标值对所述初始网格模型的姿态角度参数进行调整,得到与所述目标姿态匹配的第二网格模型;
所述对所述第二网格模型进行第二匹配处理,得到第三网格模型,包括:
将所述第一三维模型和与所述目标姿态匹配的第二网格模型输入用于实现外形匹配的神经网络模型,得到预测的形变参数的目标值;以及,基于所述预测的形变参数的目标值,对与所述目标姿态匹配的第二网格模型进行外形匹配,得到与所述目标姿态和所述目标外形匹配的第三网格模型。
7.根据权利要求1至6任一项所述的三维模型骨骼绑定方法,其特征在于,所述三维模型骨骼绑定方法还包括:
确定所述三维模型上顶点与所述目标网格模型上最近的目标网格面片;
确定所述三维模型上顶点与所述目标网格面片上顶点之间距离;
基于所述三维模型上顶点与所述目标网格面片上顶点之间距离,和所述目标网格面片顶点上的蒙皮权重,对所述三维模型上的顶点进行线性插值,得到所述三维模型上顶点的蒙皮权重。
8.根据权利要求1至6任一项所述的三维模型骨骼绑定方法,其特征在于,所述三维模型骨骼绑定方法还包括:
在所述三维模型为网格表示的情况下,确定所述三维模型的顶点数量;
在所述目标网格模型的顶点数量与所述三维模型的顶点数量之差小于等于预设阈值的情况下,输出所述目标网格模型。
9.根据权利要求1至6任一项所述的三维模型骨骼绑定方法,其特征在于,获取初始网格模型,包括:
确定针对所述三维模型的骨骼绑定需求,所述骨骼绑定需求至少包括骨骼点的数量;
基于所述骨骼点的数量从预设的模板库确定所述初始网格模型。
10.根据权利要求9所述的三维模型骨骼绑定方法,其特征在于,所述骨骼绑定需求还包括:顶点的数量,基于所述骨骼点数量从预设的模板库确定所述初始网格模型,包括:
基于所述骨骼点的数量和顶点的数量,从预设的模板库确定所述初始网格模型。
11.根据权利要求1至6任一项所述的三维模型骨骼绑定方法,其特征在于,所述对所述三维模型进行人体特征检测,得到第一三维模型,包括:
对所述三维模型进行关节点检测或肢体部分分割,得到第一三维模型。
12.一种三维模型骨骼绑定装置,其特征在于,所述三维模型骨骼绑定装置包括:
获取模块,用于获取初始网格模型和三维模型;所述初始网格模型具有预先绑定的骨骼和蒙皮权重;所述三维模型具有目标姿态和目标外形;
检测模块,用于对所述三维模型进行人体特征检测,得到第一三维模型;
匹配模块,用于基于所述第一三维模型,对所述初始网格模型进行姿态匹配和形状匹配,得到与所述目标姿态和所述目标外形匹配的目标网格模型;
其中,所述目标网格模型具有所述初始网格模型绑定的骨骼和所述蒙皮权重。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至11任一项所述三维模型骨骼绑定方法中的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11任一项所述三维模型骨骼绑定方法中的步骤。
CN202311191302.7A 2023-09-15 2023-09-15 三维模型骨骼绑定方法、装置、设备及存储介质 Active CN116912433B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311191302.7A CN116912433B (zh) 2023-09-15 2023-09-15 三维模型骨骼绑定方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311191302.7A CN116912433B (zh) 2023-09-15 2023-09-15 三维模型骨骼绑定方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116912433A true CN116912433A (zh) 2023-10-20
CN116912433B CN116912433B (zh) 2023-12-19

Family

ID=88353548

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311191302.7A Active CN116912433B (zh) 2023-09-15 2023-09-15 三维模型骨骼绑定方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116912433B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120162218A1 (en) * 2010-12-23 2012-06-28 Electronics And Telecommunications Research Institute Apparatus and method for generating digital clone
CN113034691A (zh) * 2021-03-22 2021-06-25 广州虎牙科技有限公司 人体模型的骨骼绑定方法、装置及电子设备
CN113610981A (zh) * 2021-08-04 2021-11-05 广州虎牙科技有限公司 脸部模型生成方法、交互方法及相关装置
CN114119908A (zh) * 2020-08-27 2022-03-01 北京陌陌信息技术有限公司 一种服装模型驱动方法、设备和存储介质
CN115131476A (zh) * 2022-06-24 2022-09-30 北京百度网讯科技有限公司 虚拟对象的骨骼绑定迁移方法、装置、设备及存储介质
WO2022252674A1 (zh) * 2021-06-01 2022-12-08 北京百度网讯科技有限公司 可驱动三维人物生成方法、装置、电子设备及存储介质
EP4148682A1 (en) * 2021-09-09 2023-03-15 Nokia Technologies Oy A method, an apparatus and a computer program product for computer graphics
CN116310000A (zh) * 2023-03-16 2023-06-23 北京百度网讯科技有限公司 蒙皮数据生成方法、装置、电子设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120162218A1 (en) * 2010-12-23 2012-06-28 Electronics And Telecommunications Research Institute Apparatus and method for generating digital clone
CN114119908A (zh) * 2020-08-27 2022-03-01 北京陌陌信息技术有限公司 一种服装模型驱动方法、设备和存储介质
CN113034691A (zh) * 2021-03-22 2021-06-25 广州虎牙科技有限公司 人体模型的骨骼绑定方法、装置及电子设备
WO2022252674A1 (zh) * 2021-06-01 2022-12-08 北京百度网讯科技有限公司 可驱动三维人物生成方法、装置、电子设备及存储介质
CN113610981A (zh) * 2021-08-04 2021-11-05 广州虎牙科技有限公司 脸部模型生成方法、交互方法及相关装置
EP4148682A1 (en) * 2021-09-09 2023-03-15 Nokia Technologies Oy A method, an apparatus and a computer program product for computer graphics
CN115131476A (zh) * 2022-06-24 2022-09-30 北京百度网讯科技有限公司 虚拟对象的骨骼绑定迁移方法、装置、设备及存储介质
CN116310000A (zh) * 2023-03-16 2023-06-23 北京百度网讯科技有限公司 蒙皮数据生成方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN116912433B (zh) 2023-12-19

Similar Documents

Publication Publication Date Title
US11302064B2 (en) Method and apparatus for reconstructing three-dimensional model of human body, and storage medium
Kähler et al. Geometry-based muscle modeling for facial animation
CN113496507A (zh) 一种人体三维模型重建方法
CN113628327B (zh) 一种头部三维重建方法及设备
KR101744079B1 (ko) 치과 시술 시뮬레이션을 위한 얼굴모델 생성 방법
US20170213320A1 (en) Reconstruction of articulated objects from a moving camera
JP2024522287A (ja) 三次元人体再構成方法、装置、デバイスおよび記憶媒体
WO2021063271A1 (zh) 人体模型重建方法、重建系统及存储介质
CN109377563A (zh) 一种人脸网格模型的重建方法、装置、设备和存储介质
CN110458924B (zh) 一种三维脸部模型建立方法、装置和电子设备
CN112102480B (zh) 图像数据处理方法、装置、设备以及介质
CN115461785A (zh) 生成非线性人类形状模型
CN111862278B (zh) 一种动画获得方法、装置、电子设备及存储介质
CN113593001A (zh) 目标对象三维重建方法、装置、计算机设备和存储介质
CN115115805A (zh) 三维重建模型的训练方法、装置、设备及存储介质
CN117218300A (zh) 三维模型的构建方法、三维构建模型的训练方法及装置
CN115661367B (zh) 基于照片采集的动态混合变形的建模方法及系统
CN116912433B (zh) 三维模型骨骼绑定方法、装置、设备及存储介质
EP3980975B1 (en) Method of inferring microdetail on skin animation
CN115023742A (zh) 具有详细褶皱的面部网格变形
CN117576280B (zh) 一种基于3d数字人的智能端云一体化生成方法及系统
CN117710468B (zh) 基于关节网格形变的姿态重定向方法、装置、设备及介质
US20240212279A1 (en) Detailed 3d object reconstruction method and apparatus using laplacian coordinates
US11562504B1 (en) System, apparatus and method for predicting lens attribute
US20240127539A1 (en) Mechanical weight index maps for mesh rigging

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