本发明具体涉及一种基于欧拉场形变约束的人体几何重建方法。
背景技术:
近年来,虚拟场景中对象的三维建模,尤其是人体三维建模,不仅可以应用于影视、游戏等中所需的角色创造,且在虚拟试衣、医学辅助、职业教育等方面具有广泛的应用,但是人体建模的方法具有一定的局限性,对特定人体模型进行精确、迅速、逼真的重建还存在一些困难并且计算繁琐。近年来,满足工程和科研要求的三维人体重建备受国内外学者和科研机构的关注。基于计算机图形学相关技术的三维人体重建研究对于从事流体相关的科研工作者和计算机图形学的研究者来说无疑面临着巨大的挑战,也具有巨大的吸引力。
三维人体重建的方法主要分为两种:无模板的人体表面重建方法与基于模板的人体结构化重建方法。为进行三维人体的结构化重建,一般方法是建立人体形状空间或进行内部解剖学仿真,都相对复杂且具有一定局限性。
技术实现要素:
针对上述情况,为克服现有技术的缺陷,本发明提供了一种基于欧拉场形变约束的人体几何重建方法,改善了三维人体重建中网格形变的效果,提升了三维人体结构化重建的鲁棒性与效率,满足了对粗糙数据进行人体重建的需要。
为了实现上述目的,本发明采用以下技术方案:
一种基于欧拉场形变约束的人体几何重建方法,包括以下三个步骤:
(1)基于特征点驱动骨架变形的人体姿态粗略对齐:以目标人体网格为数据源,使用随机森林回归方法提取人体特征点,再通过这些特征点计算得到目标人体骨架节点;用特征点驱动骨架变形,并用线性混合蒙皮lbs方法驱动网格变形,使模板模型与目标模型的姿态粗略对齐;
(2)基于hrbf局部场约束的姿态调整与区域变形:以hrbf生成的局部场为基础,进行局部形状差异驱动的刚性变换;并进行基于局部形状驱动的区域膨胀与收缩;
(3)基于欧拉场目标能量函数驱动演化的人体重建:以姿态对齐的模板网格生成的sdf为基础,优化欧拉场中以目标数据约束、人体形变约束、水平集特性约束为基础的目标能量函数,计算形变向量场并得到sdf形变结果,依此驱动模板网格与目标模型的形状对齐,实现三维人体重建。
进一步地,步骤(1)中,模板模型为t型的静止姿态。
进一步地,步骤(2)具体过程为:局部的姿态调整采用估计局部hrbf场的刚性变换,为估计目标人体局部表面,对目标数据进行空间离散化,得到目标数据的符号距离场φtar,并得到场的梯度
其中,φtar(vc)表示在点vc处的场函数值,nc表示vc处的场梯度方向,这里使用空间节点值的三线性插值得到中心点处的具体场函数值;用u(vc)对vc进行驱动,通过迭代,使中心点最终落在目标数据表面;在中心点到达终点位置
tp表示模板骨架旋转的变化量,使用中心点运动集合关于局部节点的旋转变换估计旋转轴时,同样利用四元数表达平均,而进行旋转角度的估计时,用局部线性化方法迭代求解;这里添加了目标表面的法线能量约束
利用hrbf场的膨胀与收缩,提供一个局部尺度的状态,作为拟合阶段的初始化输入;利用局部场进行姿态调整时,使用hrbf场作为局部形状的估计,故将中心点集合驱动至目标曲面;首先预先估计hrbf的形变终点状态,再通过每次迭代后的中心点驱动拟合,估计出合适的局部场膨胀收缩的γ值;在得知hrbf中心点运动终点集合
由于未知数仅是一个常量,因此该目标能量函数的解可以直接写作
其中nc表示除额外附加点外,中心点的个数,在将γ作为膨胀收缩系数应用于局部场时,中心点通过运动到达新的位置,再在中心点到达的新位置处得到欧拉向量场的状态,通过此状态下的欧拉场驱动,使中心点运动到目标表面,得到新的终点集合;通过迭代,即可得到区域的膨胀收缩系数。
进一步地,步骤(3)具体过程为:使用空间离散化的欧拉场目标能量函数驱动演化,进行形状的重建;将模板与目标人体网格所在空间离散化生成sdf,再使用目标数据约束、人体形变约束及水平集约束,建立基于欧拉空间的目标能量函数,并使用梯度下降的方法估计对齐模板与目标sdf的向量场;sdf对齐后,再利用sdf驱动模板网格至目标形状,完成目标数据的结构化人体重建。
进一步地,假设模板模型sdf为φtmp,目标模型sdf为φtar,受向量场驱动后的sdf为φtmp(ψ),则约束模板模型向量场向目标模型向量场对齐的能量表示为
这里的求和运算表示对sdf中所有参与运算节点的结果进行求和;
借助该hrbf场的形变驱动,为向量场ψ提供基于人体形变的平滑能量约束,写为:
其中,jψ即ψ的雅克比矩阵,而
为确保sdf场的水平集特性,在每次迭代后满足
即确保其等值面尺度为1。
进一步地,在生成sdf的同时,记录三角网格点对应于φtmp真实值ψ0,在φtmp于向量场下进行驱动变形时,也将网格点随着sdf变化进行如下驱动
其中,vi表示网格点,
进一步地,sdf驱动过程中,使用局部的切向弛豫方法,每次迭代中将网格点依权重向其1环邻域点的加权中心移动;在初始状态下,对网格使用均值坐标方法,求出网格点的1环邻域点在其切平面上的投影集合qij,而质心坐标为bij,则初始状态下满足v=∑jbijqij,而在迭代中用如下公式进行修正:
其中,
进一步地,当有些区域产生尖锐的畸变时,在相应的区域点处使用拉普拉斯平滑(laplaciansmoothing)处理。
本发明的有益效果是:
(1)本发明采用自顶向下的模板形变方法,先进行姿态对齐,再实现局部形状对齐,提升了算法的效率。
(2)本发明中空间离散节点的目标能量函数可以并行同时进行运算,从而提升优化对齐过程中的运算速度。
(3)本发明使用hrbf拟合局部人体的形变特性,使用构造局部场的方式实现人体重建,减小了形变的计算复杂度。
(4)本发明采用包含局部场形变约束的欧拉场能量函数优化驱动人体模板模型与目标数据对齐的方法,一方面用平滑隐式表面驱动模板网格,确保重建质量,另一方面利用欧拉场驱动可并行化的特点,提升计算效率,从而解决粗糙人体数据的重建问题,可以重建出符合目标形状姿态的三维人体结构化几何模型。
附图说明
图1为基于欧拉场形变约束的人体几何重建方法过程示意图。
图2为人体特征点示意图。
图3为人体骨架示意图。
图4为人体hrbf局部场示意图。
图5为不同数据输入时三维人体重建结果示意图。
具体实施方式
图1给出了基于欧拉场形变约束的人体几何重建的总体处理流程,下面结合附图进一步说明本发明。
本发明提供一种基于欧拉场形变约束的人体几何重建方法,具体为特征点驱动的骨架变形、hrbf驱动的局部变形及欧拉场驱动的形状变形,包括以下步骤:
(1)基于特征点驱动骨架变形的人体姿态粗略对齐:以目标人体网格为数据源,使用随机森林回归方法提取预定义的人体特征点,再通过这些特征点计算得到目标人体骨架节点;用特征点驱动骨架变形,并用线性混合蒙皮linearblendskinning(lbs)方法,先获得模板模型网格点上的骨架骨骼权重分布,再通过驱动骨架变形,使用相应权重驱动网格同时变形,使模板模型与目标模型的姿态粗略对齐;
本发明使用目标函数非线性优化方式进行骨架对齐与姿态对齐;人体特征点分布如图2所示,骨架结构如图3所示,图3中显示出了骨架节点;使用
通过使用目标人体网格上的特征点集合
将伸缩比例的集合赋给模板骨架,将骨架伸缩变换首先应用于模板网格,则得到与目标局部尺度一致的模板模型;尺度一致后,再进行以扭曲表示为基础的骨骼旋转变换估计。不同于动画或运动估计场景中所使用的连续帧数据,这里模板与目标的姿态差异一般具有较大的幅度;为进行旋转角的迭代估计,首先需要运用所得到的目标骨架节点信息,将模板骨架进行初始化,缩小模板与目标的姿态差异;为此,对模板骨架进行自顶向下,由父到子的旋转角预估计。
人体的刚性变换用根节点空间中状态估计,而对于某一骨骼,其旋转角可由模板和目标骨骼分别对应的向量旋转角估计出它的扭转信息,旋转角度θ和旋转轴ω可以分别表示为:
根据
为进行细节调整,需进行特征点驱动的骨架旋转调整;其中不同位置的特征点约束所属局部,并使用相应骨骼权重,则对于整个骨架,两者差异能量可表示为
其中,δθ表示骨骼的旋转参数,而δθk表示骨架k的变化量,ξj表示初始化骨架变换向量
其中i表示单位阵,因此可以求解线性化的方程:
h·δθ=b
该线性方程中h与b分别表示由能量约束的目标函数计算生成的系数矩阵与目标值向量。为最小化能量函数,则对该线性方程进行求解,且在每次迭代结果附近进行新的线性化,再进行新的迭代,最终得到局部调整的δθ。
(2)基于hrbf局部场约束的姿态调整与区域变形:以hrbf生成的局部场为基础,进行局部形状差异驱动的刚性变换;并进行基于局部形状驱动的区域膨胀与收缩;
a)hermiteradialbasisfunction(hrbf)局部场姿态调整算法如下:
人体hrbf局部场如图4所示;局部的姿态调整采用估计局部hrbf场的刚性变换使其尽可能接近目标人体局部姿态的方式进行;为估计目标人体局部表面,对目标数据进行空间离散化,得到目标数据的符号距离场(signeddistancefield,sdf)φtar,并得到场的梯度
其中,φtar(vc)表示在点vc处的场函数值,nc表示vc处的场梯度方向,这里使用空间节点值的三线性插值得到中心点处的具体场函数值;用u(vc)对vc进行驱动,通过适当的迭代次数,可以使中心点最终落在目标数据表面;在中心点到达终点位置
这里tp与上文中的ta类似,表示模板骨架旋转的变化量,使用中心点运动集合关于局部节点的旋转变换估计旋转轴时,同样利用四元数表达平均,而进行旋转角度的估计时,可以用类似的局部线性化方法迭代求解。这里添加了目标表面的法线能量约束
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ψ即ψ的雅克比矩阵,而
此外,为确保sdf场的水平集特性,还需在每次迭代后满足
即确保其等值面尺度为1。
这里使用梯度下降的方法,通过一阶迭代更新,寻找可以最小化能量函数的解。由于优化对象是三维空间中的函数,因此需要使用变分法,用欧拉-拉格朗日方程对能量函数进行求导;各能量项的导数表达形式如下:
其中,
在得到各自的导数表达式后,在梯度下降框架下进行对向量场的迭代,递推表达式
ψnew=ψ-τe′shape(ψ)
这里π表示梯度下降迭代的步长大小,e′shape表示一次更新中总能量的导数表达,ψnew表示向量场一次迭代后的新状态;当ψ的更新尺度小于0.01时,更新停止。
经过向量场的驱动,模板模型对应的φtmp可以和目标数据产生的φtar局部形状对齐;然而,仍需要将模板模型的三角网格也与目标形状对齐,一方面使依赖于骨架驱动的模板模型具有完整的重建形式,另一方面由于sdf对应的空间离散化可能会使局部丢失一些人体的局部形状细节,这需要用三角网格的变形来将细节迁移至重建结果。
首先,由于φtmp仅是三角网格的一个形状估计,这意味着三角网格的顶点所在空间位置对应的sdf值并不一定是0;因此在生成sdf的同时,需要记录三角网格点对应于φtmp真实值ψ0,在φtmp于向量场下进行驱动变形时,也将网格点随着sdf变化进行如下驱动
其中,vi表示网格点,
需要注意,在全局的sdf中,容易出现身体不同区域相互间隔较小的区域,如胳膊和身体之间的空隙;此时应该依据场梯度的变化,及时停止网格点的迭代,避免可能产生的自相交的问题。
其次,在网格点无约束状态下受sdf驱动时,还有可能造成切向的畸变,引入不必要的噪声,甚至降低了原本的网格质量;为此,使用局部的切向弛豫方法,每次迭代中将网格点依权重向其1环邻域点的加权中心移动;为实现这一目的,在初始状态下,对网格使用均值坐标(meanvaluecoordinate)方法,求出网格点的1环邻域点在其切平面上的投影集合qij,而质心坐标为bij,则初始状态下满足v=∑jbijqij,而在迭代中用如下公式进行修正:
这里
此外,因为该驱动过程并非全局能量约束,因此有些区域可能会产生尖锐的畸变,这种情况下将在相应的区域点处使用拉普拉斯平滑(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)中具有不错的人体形状估计。由此可以看出,本发明对不同类型人体数据,尤其是粗糙的人体表面数据,可以重建出良好的人体形状模型。
本发明未详细阐述的技术内容属于本领域技术人员的公知技术。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。