一种基于欧拉场形变约束的人体几何重建方法与流程

文档序号:19531059发布日期:2019-12-27 15:23阅读:235来源:国知局
一种基于欧拉场形变约束的人体几何重建方法与流程

本发明具体涉及一种基于欧拉场形变约束的人体几何重建方法。



背景技术:

近年来,虚拟场景中对象的三维建模,尤其是人体三维建模,不仅可以应用于影视、游戏等中所需的角色创造,且在虚拟试衣、医学辅助、职业教育等方面具有广泛的应用,但是人体建模的方法具有一定的局限性,对特定人体模型进行精确、迅速、逼真的重建还存在一些困难并且计算繁琐。近年来,满足工程和科研要求的三维人体重建备受国内外学者和科研机构的关注。基于计算机图形学相关技术的三维人体重建研究对于从事流体相关的科研工作者和计算机图形学的研究者来说无疑面临着巨大的挑战,也具有巨大的吸引力。

三维人体重建的方法主要分为两种:无模板的人体表面重建方法与基于模板的人体结构化重建方法。为进行三维人体的结构化重建,一般方法是建立人体形状空间或进行内部解剖学仿真,都相对复杂且具有一定局限性。



技术实现要素:

针对上述情况,为克服现有技术的缺陷,本发明提供了一种基于欧拉场形变约束的人体几何重建方法,改善了三维人体重建中网格形变的效果,提升了三维人体结构化重建的鲁棒性与效率,满足了对粗糙数据进行人体重建的需要。

为了实现上述目的,本发明采用以下技术方案:

一种基于欧拉场形变约束的人体几何重建方法,包括以下三个步骤:

(1)基于特征点驱动骨架变形的人体姿态粗略对齐:以目标人体网格为数据源,使用随机森林回归方法提取人体特征点,再通过这些特征点计算得到目标人体骨架节点;用特征点驱动骨架变形,并用线性混合蒙皮lbs方法驱动网格变形,使模板模型与目标模型的姿态粗略对齐;

(2)基于hrbf局部场约束的姿态调整与区域变形:以hrbf生成的局部场为基础,进行局部形状差异驱动的刚性变换;并进行基于局部形状驱动的区域膨胀与收缩;

(3)基于欧拉场目标能量函数驱动演化的人体重建:以姿态对齐的模板网格生成的sdf为基础,优化欧拉场中以目标数据约束、人体形变约束、水平集特性约束为基础的目标能量函数,计算形变向量场并得到sdf形变结果,依此驱动模板网格与目标模型的形状对齐,实现三维人体重建。

进一步地,步骤(1)中,模板模型为t型的静止姿态。

进一步地,步骤(2)具体过程为:局部的姿态调整采用估计局部hrbf场的刚性变换,为估计目标人体局部表面,对目标数据进行空间离散化,得到目标数据的符号距离场φtar,并得到场的梯度用空间场驱动中心点集合,间接驱动hrbf局部场的形变,贴近目标数据的局部形状;在得到目标sdf之后,对于hrbf中心点的驱动向量表达为

其中,φtar(vc)表示在点vc处的场函数值,nc表示vc处的场梯度方向,这里使用空间节点值的三线性插值得到中心点处的具体场函数值;用u(vc)对vc进行驱动,通过迭代,使中心点最终落在目标数据表面;在中心点到达终点位置后,将其法线方向设定为至此,得到hrbf场中心点为核心的表面对齐结果;为使局部hrbf场尽可能与目标的局部进行对齐,姿态调整的能量方程表达为

tp表示模板骨架旋转的变化量,使用中心点运动集合关于局部节点的旋转变换估计旋转轴时,同样利用四元数表达平均,而进行旋转角度的估计时,用局部线性化方法迭代求解;这里添加了目标表面的法线能量约束代表与vc相匹配的中心点,也就是说,在每次迭代结束后,将通过icp方法,依据法线和位置关系,更新每个中心点的目标匹配点,再进行下一次的迭代;这里的扭曲向量与粗略对齐阶段一致,在到达迭代终点后,得到人体姿态的调整结果;

利用hrbf场的膨胀与收缩,提供一个局部尺度的状态,作为拟合阶段的初始化输入;利用局部场进行姿态调整时,使用hrbf场作为局部形状的估计,故将中心点集合驱动至目标曲面;首先预先估计hrbf的形变终点状态,再通过每次迭代后的中心点驱动拟合,估计出合适的局部场膨胀收缩的γ值;在得知hrbf中心点运动终点集合后,能量可以表达为:

由于未知数仅是一个常量,因此该目标能量函数的解可以直接写作

其中nc表示除额外附加点外,中心点的个数,在将γ作为膨胀收缩系数应用于局部场时,中心点通过运动到达新的位置,再在中心点到达的新位置处得到欧拉向量场的状态,通过此状态下的欧拉场驱动,使中心点运动到目标表面,得到新的终点集合;通过迭代,即可得到区域的膨胀收缩系数。

进一步地,步骤(3)具体过程为:使用空间离散化的欧拉场目标能量函数驱动演化,进行形状的重建;将模板与目标人体网格所在空间离散化生成sdf,再使用目标数据约束、人体形变约束及水平集约束,建立基于欧拉空间的目标能量函数,并使用梯度下降的方法估计对齐模板与目标sdf的向量场;sdf对齐后,再利用sdf驱动模板网格至目标形状,完成目标数据的结构化人体重建。

进一步地,假设模板模型sdf为φtmp,目标模型sdf为φtar,受向量场驱动后的sdf为φtmp(ψ),则约束模板模型向量场向目标模型向量场对齐的能量表示为

这里的求和运算表示对sdf中所有参与运算节点的结果进行求和;

借助该hrbf场的形变驱动,为向量场ψ提供基于人体形变的平滑能量约束,写为:

其中,jψ即ψ的雅克比矩阵,而则表示ψbody的雅克比矩阵;此处ψbody是指可以将φtmp与φhrbf对齐的向量场,而φhrbf是由受目标sdf驱动进行变形到终点的局部hrbf场的组合场生成的,因此ψbody同样具有平滑的特点及人体局部形变的特征,这些特性反映在中,因此当ψ向量场局部特性与ψbody靠近时,能够获得人体局部的形变特征约束,使驱动φtmp演化时更好地体现人体形变特;

为确保sdf场的水平集特性,在每次迭代后满足

即确保其等值面尺度为1。

进一步地,在生成sdf的同时,记录三角网格点对应于φtmp真实值ψ0,在φtmp于向量场下进行驱动变形时,也将网格点随着sdf变化进行如下驱动

其中,vi表示网格点,表示网格点的驱动后新位置,ψ(vi)表示网格点vi在向量场变化后,在向量场φtmp(ψ)中的新值,而则表示向量场中相应位置处φtmp(ψ)的梯度使用该公式驱动,通过步长η,将vi移动到原来的等值面位置,相当于跟随sdf表面进行运动。

进一步地,sdf驱动过程中,使用局部的切向弛豫方法,每次迭代中将网格点依权重向其1环邻域点的加权中心移动;在初始状态下,对网格使用均值坐标方法,求出网格点的1环邻域点在其切平面上的投影集合qij,而质心坐标为bij,则初始状态下满足v=∑jbijqij,而在迭代中用如下公式进行修正:

其中,表示切向修正后的顶点位置,权重μ表达为一个随ψ(vi)变化的平滑函数

代表的是网格点未被驱动而sdf变化后的初始值,ψ0(vi)表示三角网格点对应于φtmp的真实值;在驱动一开始将进行比较大的切向驰豫,在接近目标等值面时则选择逐渐削减驰豫直至为0。

进一步地,当有些区域产生尖锐的畸变时,在相应的区域点处使用拉普拉斯平滑(laplaciansmoothing)处理。

本发明的有益效果是:

(1)本发明采用自顶向下的模板形变方法,先进行姿态对齐,再实现局部形状对齐,提升了算法的效率。

(2)本发明中空间离散节点的目标能量函数可以并行同时进行运算,从而提升优化对齐过程中的运算速度。

(3)本发明使用hrbf拟合局部人体的形变特性,使用构造局部场的方式实现人体重建,减小了形变的计算复杂度。

(4)本发明采用包含局部场形变约束的欧拉场能量函数优化驱动人体模板模型与目标数据对齐的方法,一方面用平滑隐式表面驱动模板网格,确保重建质量,另一方面利用欧拉场驱动可并行化的特点,提升计算效率,从而解决粗糙人体数据的重建问题,可以重建出符合目标形状姿态的三维人体结构化几何模型。

附图说明

图1为基于欧拉场形变约束的人体几何重建方法过程示意图。

图2为人体特征点示意图。

图3为人体骨架示意图。

图4为人体hrbf局部场示意图。

图5为不同数据输入时三维人体重建结果示意图。

具体实施方式

图1给出了基于欧拉场形变约束的人体几何重建的总体处理流程,下面结合附图进一步说明本发明。

本发明提供一种基于欧拉场形变约束的人体几何重建方法,具体为特征点驱动的骨架变形、hrbf驱动的局部变形及欧拉场驱动的形状变形,包括以下步骤:

(1)基于特征点驱动骨架变形的人体姿态粗略对齐:以目标人体网格为数据源,使用随机森林回归方法提取预定义的人体特征点,再通过这些特征点计算得到目标人体骨架节点;用特征点驱动骨架变形,并用线性混合蒙皮linearblendskinning(lbs)方法,先获得模板模型网格点上的骨架骨骼权重分布,再通过驱动骨架变形,使用相应权重驱动网格同时变形,使模板模型与目标模型的姿态粗略对齐;

本发明使用目标函数非线性优化方式进行骨架对齐与姿态对齐;人体特征点分布如图2所示,骨架结构如图3所示,图3中显示出了骨架节点;使用分别表示模板模型上预先标记好的人体特征点ltmp的集合与在目标人体网格上使用预先训练的表达形状特征-特征点位置关系的随机森林回归模型提取的人体特征点ltar的集合使用表示骨架的伸缩比例集合,s表示骨架的伸缩比例,使用(这里[·]t表示对应的列向量)表示骨架的旋转状态,其中表示人体在空间中刚性变换的旋转与平移,θ表示所有骨架节点的旋转角度集合;而静止状态,也就是t型时骨架的状态,以θ0表示。

通过使用目标人体网格上的特征点集合局部求平均位置,得到目标人体网格的骨架节点集合jtar为骨架节点,之后,需要通过目标骨架节点及特征点集合,估计θ的状态变化;模板与目标的局部尺度首先需要一致,对于某一骨骼,假设模板的父,子节点分别为ja,jb;目标的父,子节点分别为j′a,j′b,则伸缩比例可表示为:

将伸缩比例的集合赋给模板骨架,将骨架伸缩变换首先应用于模板网格,则得到与目标局部尺度一致的模板模型;尺度一致后,再进行以扭曲表示为基础的骨骼旋转变换估计。不同于动画或运动估计场景中所使用的连续帧数据,这里模板与目标的姿态差异一般具有较大的幅度;为进行旋转角的迭代估计,首先需要运用所得到的目标骨架节点信息,将模板骨架进行初始化,缩小模板与目标的姿态差异;为此,对模板骨架进行自顶向下,由父到子的旋转角预估计。

人体的刚性变换用根节点空间中状态估计,而对于某一骨骼,其旋转角可由模板和目标骨骼分别对应的向量旋转角估计出它的扭转信息,旋转角度θ和旋转轴ω可以分别表示为:

根据可以得到初始化骨架旋转平移向量可将θ0初始化到的状态,使模板骨架与目标骨架姿态大致对齐;此处,需要注意的是,这里分别对应着当前骨骼的层层父骨骼全部应用旋转后,当前骨骼节点的新位置需要施加的旋转角度与旋转轴。另外,比例缩放与旋转角度估计过程中,有的骨架节点是多个骨骼的父节点,对此,采用各个骨骼对应向量计算结果的平均值作为该父节点的旋转与缩放参数,其中为保证平滑,旋转角度的平均使用双四元数方法;此时模板骨架与目标骨架全局大致对齐,但两组特征点间还具有一定局部旋转的差异。

为进行细节调整,需进行特征点驱动的骨架旋转调整;其中不同位置的特征点约束所属局部,并使用相应骨骼权重,则对于整个骨架,两者差异能量可表示为

其中,δθ表示骨骼的旋转参数,而δθk表示骨架k的变化量,ξj表示初始化骨架变换向量为ξj的矩阵形式;ta(δθk)为骨架变换的线性混合形式,wi表示骨骼i的权重,a(i)表示骨骼i的相邻骨骼集合,δθj表示骨骼j的旋转角度变化量,注意,这里使用初始化后的扭曲向量,使优化过程中旋转与初始化方向保持一致;由于初始化的对齐,从状态开始,在过程中改变较小,从而可进行扭曲表示的局部线性化,如对于矩阵ta(δθk),在δθ=0处泰勒展开,可以近似为:

其中i表示单位阵,因此可以求解线性化的方程:

h·δθ=b

该线性方程中h与b分别表示由能量约束的目标函数计算生成的系数矩阵与目标值向量。为最小化能量函数,则对该线性方程进行求解,且在每次迭代结果附近进行新的线性化,再进行新的迭代,最终得到局部调整的δθ。

(2)基于hrbf局部场约束的姿态调整与区域变形:以hrbf生成的局部场为基础,进行局部形状差异驱动的刚性变换;并进行基于局部形状驱动的区域膨胀与收缩;

a)hermiteradialbasisfunction(hrbf)局部场姿态调整算法如下:

人体hrbf局部场如图4所示;局部的姿态调整采用估计局部hrbf场的刚性变换使其尽可能接近目标人体局部姿态的方式进行;为估计目标人体局部表面,对目标数据进行空间离散化,得到目标数据的符号距离场(signeddistancefield,sdf)φtar,并得到场的梯度用空间场驱动中心点集合,间接驱动hrbf局部场的形变,从而贴近目标数据的局部形状。在得到目标sdf之后,对于hrbf中心点的驱动向量可以表达为

其中,φtar(vc)表示在点vc处的场函数值,nc表示vc处的场梯度方向,这里使用空间节点值的三线性插值得到中心点处的具体场函数值;用u(vc)对vc进行驱动,通过适当的迭代次数,可以使中心点最终落在目标数据表面;在中心点到达终点位置后,为获取目标表面的信息,将其法线方向设定为至此,得到hrbf场中心点为核心的表面对齐结果;为使局部hrbf场尽可能与目标的局部进行对齐,姿态调整的能量方程可表达为

这里tp与上文中的ta类似,表示模板骨架旋转的变化量,使用中心点运动集合关于局部节点的旋转变换估计旋转轴时,同样利用四元数表达平均,而进行旋转角度的估计时,可以用类似的局部线性化方法迭代求解。这里添加了目标表面的法线能量约束代表与vc相匹配的中心点,也就是说,在每次迭代结束后,将通过icp方法,依据法线和位置关系,更新每个中心点的目标匹配点,再进行下一次的迭代。需要注意的是,这里的扭曲向量与粗略对齐阶段一致,以保证旋转的连续性;在到达迭代终点后,得到人体姿态的调整结果。

b)hrbf局部场区域调整算法如下:

利用hrbf场的膨胀与收缩,提供一个更为合适的局部尺度的状态,作为拟合阶段的初始化输入。利用局部场进行姿态调整时,使用hrbf场作为局部形状的估计,故将中心点集合驱动至目标曲面;此处,首先预先估计hrbf的形变终点状态,再通过每次迭代后的中心点驱动拟合,估计出合适的局部场膨胀收缩的γ值;在得知hrbf中心点运动终点集合后,能量可以表达为:

观察得到,由于未知数仅是一个常量,因此该目标能量函数的解其实可以直接写作

其中nc表示中心点的个数(除额外附加点外),在将γ作为膨胀收缩系数应用于局部场时,中心点通过运动到达新的位置,再在中心点到达的新位置处得到欧拉向量场的状态,通过此状态下的欧拉场驱动,使中心点运动到目标表面,得到新的终点集合;通过较少的迭代次数,即可得到区域的膨胀收缩系数。

(3)基于欧拉场目标能量函数驱动演化的人体重建:以姿态对齐的模板网格生成的sdf为基础,优化欧拉场中以目标数据约束、人体形变约束、水平集特性约束为基础的目标能量函数,计算形变向量场并得到sdf形变结果,依此驱动模板网格与目标模型的形状对齐,实现三维人体重建。

基于欧拉场sdf构建的能量约束分为目标数据能量约束、人体形变能量约束与水平集的能量约束三部分;总的能量方程可以表示为:

eshape=wdedata+wbebody+wlelsm

其中,edata、ebody、elsm分别表示目标数据能量、人体形变能量与水平集的能量,wd,wb,wl则分别表示目标数据能量、人体形变能量与水平集的能量的权重系数,下面分别介绍这三个能量项;

首先,为使模板模型与目标模型曲面尽可能对齐,在隐式表达sdf中,就意味着两个曲面的sdf场各节点的值差异尽可能小。节点值的变化通过向量场驱动实现,因此问题转化为对向量场的能量约束;假设模板模型sdf为φtmp,目标模型sdf为φtar,受向量场驱动后的sdf为φtmp(ψ),则约束模板模型向量场向目标模型向量场对齐的能量可以表示为

这里的求和运算表示对sdf中所有参与运算节点的结果进行求和。

其次,由于目标数据可能具有噪声,影响其sdf的质量,如果仅使用数据项约束,将可能在噪声的区域造成不可控的局部变形;hermiteradialbasisfunction(hrbf)生成的局部场在区域变形中具有良好的约束作用,而该局部场所生成的组合场具有平滑变形、区域各异的人体形变特点,因此,可以借助该hrbf场的形变驱动,为向量场ψ提供基于人体形变的平滑能量约束,可以写为:

这里jψ即ψ的雅克比矩阵,而则表示ψbody的雅克比矩阵;此处ψbody是指可以将φtmp与φhrbf对齐的向量场,而φhrbf是由受目标sdf驱动进行变形到终点的局部hrbf场的组合场生成的,因此ψbody同样具有平滑的特点及人体局部形变的特征,这些特性可以反映在中,因此当ψ向量场局部特性与ψbody靠近时,也可以获得人体局部的形变特征约束,使驱动φtmp演化时更好地体现人体形变特性。

此外,为确保sdf场的水平集特性,还需在每次迭代后满足

即确保其等值面尺度为1。

这里使用梯度下降的方法,通过一阶迭代更新,寻找可以最小化能量函数的解。由于优化对象是三维空间中的函数,因此需要使用变分法,用欧拉-拉格朗日方程对能量函数进行求导;各能量项的导数表达形式如下:

其中,表示向量场驱动后的φtmp的场梯度,表示φtmp的海森矩阵(hessianmatrix),这是由它关于三维三个坐标轴方向x,y,z的二阶偏导组成的;类似的,其中则是表示向量场ψ在x,y,z方向的分量u,v,w各自的海森矩阵;注意分母位置的场梯度的模使用了一个∈下标,表示为其加一个常数小量∈=10-5,避免除数为0。

在得到各自的导数表达式后,在梯度下降框架下进行对向量场的迭代,递推表达式

ψnew=ψ-τe′shape(ψ)

这里π表示梯度下降迭代的步长大小,e′shape表示一次更新中总能量的导数表达,ψnew表示向量场一次迭代后的新状态;当ψ的更新尺度小于0.01时,更新停止。

经过向量场的驱动,模板模型对应的φtmp可以和目标数据产生的φtar局部形状对齐;然而,仍需要将模板模型的三角网格也与目标形状对齐,一方面使依赖于骨架驱动的模板模型具有完整的重建形式,另一方面由于sdf对应的空间离散化可能会使局部丢失一些人体的局部形状细节,这需要用三角网格的变形来将细节迁移至重建结果。

首先,由于φtmp仅是三角网格的一个形状估计,这意味着三角网格的顶点所在空间位置对应的sdf值并不一定是0;因此在生成sdf的同时,需要记录三角网格点对应于φtmp真实值ψ0,在φtmp于向量场下进行驱动变形时,也将网格点随着sdf变化进行如下驱动

其中,vi表示网格点,表示网格点的驱动后新位置,ψ(vi)表示网格点vi在向量场变化后,在向量场φtmp(ψ)中的新值,而则表示向量场中相应位置处φtmp(ψ)的梯度使用该公式驱动,则可以通过适当的步长η,将vi移动到原来的等值面位置,相当于跟随sdf表面进行运动。

需要注意,在全局的sdf中,容易出现身体不同区域相互间隔较小的区域,如胳膊和身体之间的空隙;此时应该依据场梯度的变化,及时停止网格点的迭代,避免可能产生的自相交的问题。

其次,在网格点无约束状态下受sdf驱动时,还有可能造成切向的畸变,引入不必要的噪声,甚至降低了原本的网格质量;为此,使用局部的切向弛豫方法,每次迭代中将网格点依权重向其1环邻域点的加权中心移动;为实现这一目的,在初始状态下,对网格使用均值坐标(meanvaluecoordinate)方法,求出网格点的1环邻域点在其切平面上的投影集合qij,而质心坐标为bij,则初始状态下满足v=∑jbijqij,而在迭代中用如下公式进行修正:

表示切向修正后的顶点位置,其中权重μ可以表达为一个随ψ(vi)变化的平滑函数

这里代表的是网格点未被驱动而sdf变化后的初始值,上文已提到,ψ0(vi)表示三角网格点对应于φtmp的真实值。可以看出在驱动一开始将进行比较大的切向驰豫,在接近目标等值面时则选择逐渐削减驰豫直至为0。

此外,因为该驱动过程并非全局能量约束,因此有些区域可能会产生尖锐的畸变,这种情况下将在相应的区域点处使用拉普拉斯平滑(laplaciansmoothing)处理。通过以适当的步长对sdf演化前后的三角网格进行驱动,从而使三角网格形变为目标形状。

图5展示了不同数据输入的人体重建输出结果,图5(a)、(b)、(c)、(d)中,从左至右分别为目标数据模型、重建结果与误差热谱图,其中,误差热谱图的范围为0至4cm,误差从小到大依次对应不同深浅的颜色,那么,由颜色深浅可以判断误差的大小,由图可知,颜色越浅的部分误差越大。图5(a)中的目标数据来自学生的kinect扫描融合数据,图5(b)中的目标数据来自faust数据集,图5(c)中的目标数据来自shahu等人创建的人体数据集,图5(d)为mit多视角重建数据集。

从重建的结果来看,图5(a)、(b)为仅穿着内裤的模型,对人体形状的恢复较好,而目标数据的噪声较小时,重建结果的偏差也较小,当然,在目标本身为高精度扫描模型时,比如faust,则重建后精度有所损失,这是由于本发明方法更多依赖于模板模型的人体细节,从而侧重于应对粗糙数据。

图5(c)、(d)为着衣模型,对于着衣模型的重建,形状对齐中hrbf局部场必须使用较小的采样率,以及需要减小目标能量约束的权重,避免造成一些由衣物引入的畸变。但是单纯对比重建结果与目标数据的话,图5(c)、(d)中的网格误差会大一些,但是可以看出,图5(c)、(d)中具有不错的人体形状估计。由此可以看出,本发明对不同类型人体数据,尤其是粗糙的人体表面数据,可以重建出良好的人体形状模型。

本发明未详细阐述的技术内容属于本领域技术人员的公知技术。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

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