基于体态的三维模型获取方法及装置与流程

文档序号:14451513阅读:512来源:国知局

本发明涉及计算机视觉及图形学领域,尤其涉及一种基于体态的三维模型获取方法及装置。



背景技术:

三维重建是计算机视觉和图形学领域的重点问题,特别是针对人体的三维重建技术在影视娱乐等多个方面有着重要的应用价值。现有的人体三维重建技术主要有三种:一是搭建多视点的彩色相机阵列或深度相机阵列,通过多视角静态采集和融合来重建人体模型,这种方法的缺点在于设备搭建及标定过程较为复杂;二是利用单深度相机,要求用户从不同的角度做出同样的姿势,深度相机分别进行扫描,最终将点云融合,这种方法对用户要求较高,使用不便;三是同样利用单深度相机,用户不要求固定同一姿势,采集到多幅深度图像后采用动态融合方法进行融合,这种方法较为实用,但鲁棒性及准确性均不高,实际使用中会遇到网格无法准确闭合的问题。



技术实现要素:

为解决上述问题,本发明提出一种基于体态的三维模型获取方法及装置,该方法和装置对设备要求低,精确鲁棒,使用简单,适合普通用户使用,拥有广阔的应用前景。

本发明提出的基于体态的三维模型获取方法包括:s1.获取包含人体各个局部的深度图像;s2.将所述人体各个局部的深度图像进行动态融合,获得各个局部的三维网格;s3.利用标准人体模型匹配各个局部的三维网格,求取人体的形态参数和关节变换矩阵;s4.根据形态参数和关节变换矩阵,获取三维模型。

本发明还提供一种包含计算机程序的计算机可读存储介质,该计算机程序可使计算机执行如上所述的方法。

本发明还提供一种基于体态的三维模型获取装置,包括:深度相机和处理器,深度相机获取包含人体各个局部的深度图像,处理器包含如上所述的方法。

本发明的有益效果:利用标准模型,求取所获取对象深度图像中的形态参数和关节变换矩阵;通过所获取的形态参数和关节变换矩阵,可使最终获得的三维模型精确度高、鲁棒性好,且该方法对设备要求低,适合普通用户使用。

附图说明

图1为本发明具体实施方式中三维人体模型制作场景示意图。

图2为本发明具体实施方式中深度相机的侧面结构示意图。

图3为本发明具体实施方式中三维人体模型获取方法流程图。

图4为本发明具体实施方式中动态融合三维网格的方法流程图。

图5为本发明具体实施方式中利用形态参数和关节变化矩阵获得三维人体模型的流程图。

具体实施方式

下面结合具体实施方式并对照附图对本发明作进一步详细说明,应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。

基于体态的三维模型制作场景如图1所示,包括一个深度相机101和人体103。在一个实施例中,深度相机固定在可调节高度的三角架102上。人体103在深度相机101的测量范围内,利用深度相机对其进行360°拍摄,拍摄完成后可以获取包含人体所有局部的多幅深度图像。

可以理解的是,人体103可以指整个人体,也可以指部分人体,比如仅包含上半身的人体。另外,该方法和装置不仅适用于获取人体的三维模型,针对于其他的,比如:动物,也同样适用。

图1的场景中,其利用一个深度相机101对人体103从多个角度进行拍摄,在一个实施例中,将深度相机所在的支撑架放置于一圆形导轨上,导轨有导轮和电机,电机运行可推动导轮滚动,从而带动所述支撑架上的深度相机以人体为圆心进行拍摄。又一实施例中,深度相机保持不动,人体进行360°旋转从而实现深度相机对其进行360°拍摄。可以理解的是,任何可以实现以单深度相机对目标进行的360°拍摄方案都被包含在本发明中。

深度相机101是用于获取目标空间的深度信息(和彩色信息),按种类主要分为结构光深度相机、tof深度相机以及双目视觉深度相机。

基于结构光三角法的深度相机利用激光投影装置向空间中投射经编码的标准结构光图案,空间中目标深度的不同将标准结构光图案进行了调制,通过图像相关等算法获取调制后的结构光图像与标准结构光图案的差别,根据结构光三角法建立该差别与目标深度之间的关系就可求解出整个目标空间的深度图像。

基于时间飞行法的深度相机利用激光投影装置向目标发射激光脉冲,由光接收装置获取脉冲并记录下发射到接收的光飞行时间,根据飞行时间可以计算出目标的深度图像。

基于双目视觉原理的深度相机,本质上与结构光三角法原理相似,区别在于结构光三角法是主动测量,而双目视觉则是被动测量。利用左右相机获取的图像在视差上的差别,并由视觉算法获取该视差后进一步利用三角法测量原理计算出目标的深度值。

一般地,前两种深度相机中都需要借助于激光投影装置来向空间中投射光学信号,而对于双目视觉深度相机而言,目前也会常常利用激光投影装置来增加空间中物体的纹理信息以提高测量精度。因为,激光投影装置对于深度相机而言异常重要,往往激光投影装置的性能、体积、功耗将直接影响深度相机的精度、体积等。在后续的说明中,3d传感器中的深度相机以基于激光投影装置的深度相机为例进行说明。

图2所示的为结构光深度相机的侧面结构示意图,深度相机101主要组成部件有激光投影模组204、采集模组205、主板203、处理器202,另外还可设置rgb相机207。激光投影模组204、采集模组205以及rgb相机207一般被安装在同一个深度相机平面上,且处于同一条基线,每个模组或相机都对应一个进光窗口208。一般地,处理器202被集成在主板203上,而激光投影模组204与采集模组205通过接口206与主板连接,在一种实施例中所述的接口为fpc接口。其中,激光投影模组用于向目标空间中投射经编码的结构光图案,采集模组205采集到该结构光图像后通过处理器202的处理从而得到目标空间的深度图像。在一个实施例中,结构光图像为红外激光散斑图案,图案具有颗粒分布相对均匀但具有很高的局部不相关性,这里的局部不相关性指的是图案中各个子区域都具有较高的唯一性。对应的采集模组205为与激光投影模组204对应的红外相机。利用处理器获取深度图像具体地指接收到由采集模组采集到的散斑图案后,通过计算散斑图案与参考散斑图案之间的偏离值来进一步得到深度图像。

图3所示的是根据本发明一个实施例的基于人体体态的三维人体模型获取方法,包括如下步骤:

步骤301.人体在深度相机前缓慢旋转一周,得到一系列包含人体各个局部的单视点深度图像/深度视频。

步骤302.将所获得深度视频均分为多个片段,每一片段对应人体的一个局部图像。在本实施例中,具体分为片段a、b和c,对每个片段进行动态融合,得到人体的各个局部三维网格a、b和c。

具体地,对于每段深度视频片段,动态融合得到人体的局部三维网格包含以下步骤,如图4所示:

3021.建立参考tsdf(truncatedsigneddistancefunction,截断符号距离函数)体v,将第一帧深度图像融合到v中,得到初始三维网格;

3022.对于之后的每一帧深度图像p,获取已有三维网格到p之间的匹配点对;

3023.根据匹配点对求取网格的非刚性运动场;

3024.根据非刚性运动场,将深度图像p融合到v之中,得到新的三维网格;

3025.重复3022~3024,直至所有深度图全部融合到v中,得到最终的三维网格。

步骤303.用smpl(skinnedmulti-personlinearmodel,蒙皮多人线性模型)人体模型匹配各个局部三维网格,建立能量函数a、b、c。

具体地,smpl人体模型是一个从大量人体扫描数据中通过机器学习得到的一个可以进行形态变化和姿态变换的人体三维模型,具体包括以下参数:标准模型的顶点坐标、关节坐标和三角网格;每个顶点坐标对于形态变换基的变换权重;关节坐标对于形态变换基的变换权重;每个顶点坐标对于关节变换的变换权重;关节与关节之间的连接信息。

在其他实施例中也可以采用其他人体模型,比如scape(shapecompletionandanimationofpeople)人体模型等。

通过最近邻查找得到从局部三维网格到smpl人体模型上的匹配点对,建立能量函数:

e=argminedistance+eregular+esmooth+erigid

其中,edistance为匹配点对的距离约束,eregular为形态参数的正则项,esmooth为姿态参数的平滑约束,erigid为姿态参数的刚性约束。

各个能量项的定义如下:

edistance=∑(v,v′)∈c(v-v′)2

其中,姿态参数包括关节变换矩阵,c为三维网格到smpl人体模型的匹配点对,v为smpl人体模型上经过形态变化和姿态变化的点,v′为三维网格上的对应点,βs为人体形态参数;δtj为关节变换矩阵的变换量,tj为关节变换矩阵,p(j)为关节j的父关节。

其中,人体模型上点v的变换公式为:

其中,为v对于关节j的变化权重,tj为关节变换矩阵,v0为标准姿态下的坐标,βm为形态变化参数,为v对于基m的变化权重。

各个关节的求取变化量的矩阵表示及对应的变化矩阵更新公式为:

其中,δt为待求的变化量,α、β、γ、tx、ty、tz为δt的参数表示,t表示时间,即此刻的变换矩阵在上一帧的基础上进行更新。上述公式为通用公式,因此出于表达的简介,省略了应有的关节下标j。

步骤304.根据能量函数求取各个三维网格下的形态参数和关节变换矩阵。

求解过程为三个子步骤的迭代,分别如下:

3041.通过最近邻查找方法,获取三维网格到smpl人体模型的匹配点对;

3042.固定形态参数,求取关节变换矩阵,此时优化的目标函数如下:

e=argminedistance+esmooth+erigid

3043.更新并固定关节变换矩阵,求取形态参数,此时优化的目标函数如下:

e=argminedistance+eregular

通过使用线性最小二乘方法可以快速高效的求解上述能量函数。利用求解的x对人体的形态和姿态进行更新,更新之后重新查找匹配点对,重新求解。由于本发明实施例的方法的最近点约束中使用了最近点即为对应点的假设,因此,需要迭代多次求解才能达到最终正确位置。

步骤305.将求取出来的形态参数进行平均,得到最终的形态参数。

尽管深度相机扫描的是同一个人体,但是对于局部的网格,没有全部的人体信息,因此求解得到的形态参数有一定的差别。通过取平均可以得到最终的误差较小的形态参数。

步骤306.根据求取出来的关节变换矩阵,将所有的三维网格反变换至标准姿态。

具体地,变换公式为:

其中,v′为三维网格上的点,tj为关节变换矩阵,为点v对于关节j的变换权重,此变换权重可以通过在人体模型上查找m个v′的近邻点,然后将这些近邻点的权重取平均值计算得到。由于前述步骤中已经对人体模型在各个局部网格下的姿态和形态参数进行了求解,因此此时smpl人体模型与局部网格能够较好地匹配,故通过近邻平均的方法来求解变换权重是合理而准确的。

步骤307.获取相邻两个视频片段所对应的标准姿态网格之间的匹配点对,并对求取出来的关节变换矩阵进行优化。

具体地,优化的目标函数为:

e=argminedistance

其中,c为标准姿态下网格之间匹配点对,v1,v2为匹配点对在原始网格中的坐标,t1、t2分别为两个网格对v0的变换矩阵v0为匹配点对在标准姿态下的坐标,实际为求解过程中的中间变量。

上述目标函数的求解过程可以分解为两步:

(1)固定t1、t2求解v0;

(2)更新并固定v0求解t1、t2。

分解之后,通过使用线性最小二乘方法可以快速高效的求解上述能量函数。由于本发明具体实施方式的方法的最近点约束中使用了最近点即为对应点的假设,因此,需要迭代多次求解才能达到最终正确位置。

步骤308.根据最终优化得到的形态参数和关节变换矩阵,将各个视频片段得到的参考tsdf体融合到标准姿态下,得到最终的三维人体模型。

具体地,最终的融合包括步骤:

3081.根据最终优化得到的形态参数和关节变换矩阵,将标准姿态下的每个体素变换到各个局部网格下。

首先通过形态参数变换原有的人体模型,使得人体模型的形态与实际用户相对应。此步骤可以得到该用户在标准姿态下的模型。然后对于标准姿态下的tsdf体v0中的每个体素v0(voxel),首先查找其在标准姿态下的人体模型上的近邻点,通过对这些近邻点的对各个关节变换权重取平均,得到该体素对于各个关节的变换权重;根据每个局部网格mi下的关节变换矩阵,求解该体素在每个局部网格对应姿态下的坐标;

3082.对坐标变换后的体素,在相应的局部三维网格的tsdf体vi中找到vi的近邻体素,通过插值求取vi中vi点的tsdf值。插值公式为:

dr=∑i∈n(r)di+(xr-xi

其中,r为待插值的体素,n(r)为r在局部网格所对应的tsdf体中的近邻体素,xr,xi分别表示r和近邻体素i的坐标,δ为i处的tsdf梯度。

3083.对各局部网格下求得的vi点的tsdf值取平均,即可得到对于标准姿态下的tsdf体v0中的体素v0的tsdf值。对融合后的tsdf体提取网格,得到最终的三维人体模型。

以上内容是结合具体/优选的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,其还可以对这些已描述的实施方式做出若干替代或变型,而这些替代或变型方式都应当视为属于本发明的保护范围。

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