本发明属于计算机视觉
技术领域:
,具体地涉及一种面向移动端虚拟试衣的人体模型脸部分区域建模方法。
背景技术:
:随着移动互联网的发展和电商的繁荣,在线的虚拟试衣为消费者和商家降低了时间和经济成本,消费者通过移动端提交人体和人脸特征信息,搭配挑选的服装,实现快捷方便的个性化虚拟试衣。其中,二维图像人体特征的获取和三维人体模型的重建模型是虚拟试衣的前提,精确的人体形状估计又是三维人体重建的基础,丰富的脸部细节表达则能增强重建人体模型的真实性。目前研究存在的缺点是,基于统计人体模型的三维人体重建无法捕捉二维图像中的面部特征,重建的模型面部形状和表情为中性,且缺少面部纹理,其模型仅能为虚拟试衣提供身材参考;基于统计人脸模型的三维人脸重建,重建的范围最大仅能延伸到耳部和颈部,缺少真实的人体支撑,仅能增加消费者对虚拟试衣模型的认同感;将面部特征集成到统计人体模型面临数据集缺失的问题,相对于仅具有清晰的人体结构或者面部特征,同时具备两者的二维图像数据集相对缺失;目前的三维人脸界标定位算法由于缺少足够的三维人脸训练集,算法的鲁棒性和计算速度有待提升;非刚性配准在人脸方面的应用依赖于刚度集等初始值的选择,无法鲁棒的应对存在缺失结构和结构不匹配的情形。技术实现要素:针对现有技术中存在的问题,本发明提出了一种面向移动端的虚拟试衣的人体模型脸部分区域建模方法,对三维人体和人脸模型进行局部非匹配弱刚性配准,移除两者的干涉区域,缝合插值生成填充环,生成具有细致面部特征和精准人体形状的三维人体模型,其能够精准的表达人体形状和人脸特征,为虚拟试衣提供身材参考和人脸认同。为实现上述目的,本发明采用的技术方案是:一种面向移动端虚拟试衣的人体模型脸部分区域建模方法,具体包括如下步骤:(1)消费者在移动端分别提交真实人体图像和真实人脸图像,将所述人体图像经三维人体重建模块处理后生成三维人体模型,将所述人脸图像经人脸重建模块处理生成三维人脸模型;(2)将步骤(1)获得的三维人体模型的脸部区域进行渲染降维检测,得到二维渲染人体图像,构建三维人体模型中人脸区域与二维渲染人体图像的参考点对,根据所述参考点对求解两者坐标变换,实现在三维人体模型的脸部区域扩充三维点云界标;对齐扩充的三维点云界标,约束惩罚整体性形状,对三维人体模型与三维人脸模型进行局部非匹配弱刚性配准;(3)将三维人体模型的头部区域切割,移除脸部区域,获取切割后三维人体模型与三维人脸模型的匹配边界点对。在三维人体模型头部区域切割形成的空白区域进行贝塞尔曲线插值,并三角网格化插值点生成拓扑结构,基于格栅化边界和面片法向量,删除生成拓扑结构的鼓面结构以构建填充环,组合填充环、切割的三维人体模型和三维人脸模型生成具有真实人脸的三维人体模型。进一步地,步骤(2)具体包含以下子步骤:(2.1)在人体模型正交投影过程中,保持相机的z轴与三维人体模型的z轴平行,同时,满足所述三维人体模型的前景颜色与背景颜色的灰度差超过0.6,渲染生成二维人体图像;分割裁切二维人体图像的脸部区域,利用人脸目标检测,提取所述二维人体图像的脸部区域界标;(2.2)三维人体模型的点云三维直角坐标系被降维为二维直角坐标系其中,o1为原点,为二维直角坐标系的x轴基向量,为二维直角坐标系的y轴基向量,将降维的二维直角坐标系与二维人体图像的直角坐标系i2进行转换,具体为:选取降维的二维直角坐标系与二维人体图像的直角坐标系i2对应的左耳点对右耳点对和头点对作为参考点,以鼻点作为生成对应参考点的基准点,为二维人体图像的二维界标,为筛选出三维人体模型脸部区域ωh-head中z值的最大点;遍历比较二维人体图像的的像素浮点灰度值n=0.3r+0.59g+0.11b,其中,r为红色通道值,g为绿色通道值,b为蓝色通道值,为与同x值的左侧像素突变点,为与同x值的右侧像素突变点,为与同y值的上边像素突变点;再以为基准点,根据三维人脸模型上的坐标值筛选误差位于δ范围内的点,取筛选点云中的极值即为三维人体模型点云的参考点(2.3)在完成二维人体图像的直角坐标系i2到降维二维直角坐标系转换后,在头部区域ωh-head中寻找距离二维界标的多义最近点,选择深度位于前半头范围的最近点作为脸部区域扩充的三维点云界标;(2.4)求解从三维人脸模型的直角坐标系i3到三维人体模型的直角坐标系i1的变换α2=f(a,b,c)=c(αα3+b),其中,α3为三维人脸模型中的界标,α2为三维人体模型的界标,a为第一配准系数,b为第二配准系数,c为对角矩阵;该变换实现对人脸模型的旋转、平移和整体性形状缩放,变换顺序具体如下:对齐三维人体模型的脸部区域和人脸模型的三维点云界标,迭代优化第一配准系数a和第二配准系数b,当三维点云界标间的距离误差梯度小于设定阈值或者达到最大迭代步数时,停止优化迭代;之后根据约束人脸的宽度缩放系数和约束人脸的高度缩放系数惩罚头部区域,完成三维人体模型与三维人脸模型的局部非匹配弱刚性配准。进一步地,步骤(3)具体包含以下子步骤:(3.1)在完成三维人体模型与三维人脸模型的局部非匹配弱刚性配准后,根据三维人体模型点云的z值移除脸部区域的点云,并对切割后三维人体模型的三角网格结构进行更新;切割的人体模型与配准后人脸模型间仍存在区域空缺ωf-bound,以切割后的三维人体模型和三维人脸模型的边界点对作为插值曲线的首末端,利用点云插值填充空缺区域;对于切割后的三维人体模型,三维人体模型的边界点集ωh-bound为删除三角面片包含的顶点集ωh-fcp与删除的顶点集ωh-face的差集;对于变换后的人脸模型,根据每个顶点所构成三角面片的数量判定三维人脸模型的边界点集ωf-bound;将三维人脸模型的边界点集ωf-bound与三维人体模型的边界点集ωh-bound进行边界点配对,对于三维人脸模型的边界点集中的每个点pfi,取对应配对点集即为稠密边界点集中的每个点寻找稀疏边界点集中与该点距离最小的前n个对应点;(3.2)以边界点对{(pfi,phk)}作为插值曲线的首末端点,基于三维贝塞尔曲线,通过添加控制点方式在空白区域生成插值点;选取头部区域ωh-head中所有顶点的质心作为相对坐标系的原点,通过变半径插值方式生成控制点,计算pfi和phk与坐标轴<ex,ey,ez〉构成的角度差,计算pfi和phk与构成的半径差,并在两者角度差二分之一处插入控制点pc,并调整α控制贝塞尔曲线的形状;贝塞尔曲线在u∈[0,1]等间隔取值,得到配准后空白区域的插值顶点集{p(u)},其中,u为插值参数;(3.3)对插值顶点集{p(u)}和边界点对{(pfi,phk)}进行三角网格化处理,取三维德劳内剖分最外层的边界构成三维凸包面集{fch};鼓面仍可能干涉人脸模型原有的拓扑结构,将三维人脸模型的边界点集ωf-bound格栅化以拟合逼近生成人脸不规则外形,将ωf-bound的y值范围细分为等间隔δy的区间{[y0,y1],[y1,y2],...,[yn-1,yn]},将人脸模型的边界点集ωf-bound中的边界点pfi按格栅区间进行分类;取每个格栅区间中的{pfi}的平均值计算每个格栅区间的左右边界点和对于顶点位于不规则外形内的计算其法向量根据法向量与y,z轴夹角的大小判断的鼓面或者填充环属性,移除三维凸包面集{fch}中的鼓面特征,将填充环与切割头部的人体模型以及变换后的人脸模型进行合并,生成完整无干涉无缝隙的具有真实人脸的人体模型;(3.4)根据阈值条件对三维人脸模型的纹理进行肤色分类,对人脸颜色求平均值,并将其迁移至三维人体模型和填充环中。与现有技术相比,本发明的有益效果是:本发明将三维人体模型和三维人脸模型进行装配缝合,通过降维检测,升维扩充的方式添加三维人体模型的人脸区域的界标。对人脸扩充的三维界标对齐和整体性形状进行约束实现人体和人脸的非匹配弱刚性局部配准。为移除干涉,切割三维人体模型的脸部区域,并对形成的空白区域进行贝塞尔曲线插值,生成填充环,缝合生成具有脸部细节的人体模型。本发明为移动端虚拟试衣提供了人体模型脸部分区域建模方法,为虚拟试衣提供基本的身材参考,同时增强了模型的真实感,进一步促进虚拟试衣的推广。附图说明图1是本发明面向移动端虚拟试衣的人体模型脸部分区域建模方法流程图;图2是人体头部区域三维界标补充与弱刚性局部配准图;图3是头部切割和填充环构建图。具体实施方式为了更清楚地说明本发明,下面结合附图对本发明作进一步说明。本领域技术人员应该了解,下面所具体描述的内容是说明性而非限制性的,不应该限制本发明的保护范围。如图1为本发明面向移动端虚拟试衣的人体模型脸部分区域建模方法流程图,消费者在移动端提交清晰的人体和人脸图像,经过三维人体人脸重建模块产生三维人体和人脸模型组件,在三维人体模型的人脸区域补充三维点云界标后,对两者进行弱刚性局部配准,为去除配准后产生的干涉,切割三维人体模型的头部区域并构建填充环,最终合并各个组件生成应用于虚拟试衣具有详细面部细节的三维人体模型。本发明的具体过程包括如下步骤:(1)消费者在移动端分别提交真实人体图像和真实人脸图像,将所述人体图像经三维人体重建模块处理后生成三维人体模型,将所述人脸图像经人脸重建模块处理生成三维人脸模型;(2)将步骤(1)获得的三维人体模型的脸部区域进行渲染降维检测,得到二维渲染人体图像,构建三维人体模型中人脸区域与二维渲染人体图像的参考点对,根据所述参考点对求解两者坐标变换,实现在三维人体模型的脸部区域扩充三维点云界标;对齐扩充的三维点云界标,约束惩罚整体性形状,对三维人体模型与三维人脸模型进行局部非匹配弱刚性配准;具体包括如下子步骤:(2.1)人体模型人脸区域三维界标扩充。在人体模型的人脸区域扩充三维点云坐标和弱刚性局部配准过程如图2所示。在人体模型正交投影过程中,保持相机z轴与人体模型z轴平行以及人体模型前景与背景的灰度差超过0.6,渲染生成二维人体图像。利用人脸目标检测,提取渲染图像的人脸区域界标,并裁切生成人体模型图像的脸部区域,对裁切的人脸图像进行二维标注。(2.2)在以上渲染过程中,人体模型的点云三维直角坐标系被降维为二维直角坐标系同时存在降维直角坐标系i'1与二维人体图像的直角坐标系i2的转换,其转换如下:α'1=sα2+w式中,[x'1,y'1]t为二维直角坐标系i'1中点α'1的界标,[x2,y2]t为二维人体图像直角坐标系i2中α2的界标,s为二维直角坐标系i'1与二维人体图像的直角坐标系转换的过渡矩阵,w为原点o2相对于o'1在二维直角坐标系i'1下的偏移矩阵。由于相机的y轴与人体模型的y轴保持平行,i'1与i2的坐标系变换只有原点的平移和坐标轴的缩放,即过渡矩阵s中a2,a3=0。给定两个对应参考点在i'1与i2坐标系中的坐标值,可求解过渡矩阵s与原点偏移矩阵w。选取二维直角坐标系与二维人体图像的直角坐标系i2对应的左耳点对右耳点对和头点对作为参考点。其中,鼻点作为生成对应参考点的基准点,为二维人体图像的二维界标,为三维人体模型筛选出头部区域ωh-head:{(xi,yi,zi)|yi>0.5(ykp-12+ykp-15)}中z值的最大点。遍历比较二维人体图像的像素浮点灰度值n=0.3r+0.59g+0.11b,界标点满足以下条件:式中,n(xbg,ybg)为二维人体图像背景灰度值,α为接近1的阈值系数,为与同x值的左侧像素突变点,为与同x值的右侧像素突变点,为与同y值的上边像素突变点。在ωh-head点云中,以为基准点,根据坐标值筛选误差位于δ范围内的点,取筛选点云中的极值即为人体模型三维点云的参考点满足以下条件:(2.3)在完成二维人体图像的直角坐标系i2到二维直角坐标系转换后,需要恢复三维人体模型脸部区域三维界标的z值。对于二维界标,在区域ωh-head中寻找距离最近点,同时满足如下条件:s.t.z2-zmin>δ(zmax-zmin)从而得到脸部区域扩充三维点云界标。经过坐标转换和恢复z值后,由于三维人体模型的脸部区域表情为中性,形状位移小,三维人体模型的人脸区域三维界标扩充算法的鲁棒性高。但其网格密度小,在恢复z值时,候选点集小,会导致算法精度部分损失,尤其在需要密集界标的唇部,界标精度相对较低,可在配准时降低其权重。(2.4)人体和人脸模型的弱刚性局部配准。根据人体和人脸的三维界标,求解从三维人脸模型的直角坐标系i3到二维人体图像的直角坐标系i2的变换:α2=f(a,b,c)=c(αα3+b),其中,α3为三维人脸模型中的界标,a为第一配准系数,b为第二配准系数,c为对角矩阵;该变换实现对人脸模型的旋转、平移和整体性形状缩放,变换顺序具体如下:基于深度学习连接层概念,首先对扩充的人脸三维点云界标对齐施加约束,迭代优化第一配准系数a和第二配准系数b,之后惩罚整体性脸部形状,完成配准。迭代优化第一配准系数a和第二配准系数b,可转化为对全连接层的权重矩阵w和偏置向量m的更新,通过正向传播和误差逆向传播迭代优化全连接层系数,迭代优化目标如和梯度下降更新方法如下:式中,η为学习率,设定误差梯度小于某阈值或者达到最大迭代步数时,停止优化迭代,n为三维界标的数量,λi为界标的权重系数。之后根据约束人脸的宽度缩放系数和约束人脸的高度缩放系数惩罚头部区域,完成三维人体模型与三维人脸模型的局部非匹配弱刚性配准。整体性人脸形状惩罚如下:式中,c为对角矩阵,cw,ch分别约束人脸的宽度和高度的缩放系数,fw(α)i,fh(α)i为对应三维界标描述的整体性脸宽和脸长特征。在完成人脸扩充的三维界标对齐配准后,对人脸的整体性特征进行惩罚约束能够保证在戴面具过程中面具不会出现过大,过小的情况。(3)随后将三维人体模型的脸部区域进行切割,移除脸部区域,获取切割后三维人体模型与三维人脸模型的匹配边界点对,在三维人体模型脸部区域切割形成的空白区域进行贝塞尔曲线插值,并三角网格化插值点生成拓扑结构,基于格栅化边界和面片法向量,删除生成拓扑结构的鼓面结构以构建填充环,组合填充环、切割的三维人体模型和三维人脸模型生成具有真实人脸的三维人体模型;如图3,具体包括如下子步骤:(3.1)人体模型头部切割及边界点对构建。由于配准并不改变人脸内部的拓扑结构,并不能保证的人体与人脸模型的边界无缝贴合,可能存在边界翘曲现象。在完成人体和人脸的弱刚性局部配准后,仍存在结构干涉和边界缝隙问题,需要对三维人体模型的头部进行切割,根据三维人体模型点云的z值移除人脸区域的点云,如下:ωh-face:{(xi,yi,zi)∈ωh-head|yi-ykp∈[α2δykp,α1δykp],zi-zmin>βδz)}式中,δykp、δz分别为所有三维界标的y值范围和所有ωh-head区域内点云的z值范围,α1,α2,β分别为第一比例系数、第二比例系数和第三比例系数。移除三维人体模型人脸区域ωh-face后,并对切割后三维人体模型的三角网格结构进行更新:切割三维人体模型的脸部区域后形成脸部区域空缺,以切割后的三维人体模型和三维人脸模型的边界点对作为插值曲线的首末端,对空缺的区域进行点云插值;对于切割后的三维人体模型,其边界点集ωh-bound为删除三角面片包含的顶点集ωh-fcp与删除顶点集ωh-face的差集,如下:ωh-bound=ωh-fcp-ωh-face1-ωh-face2对于变换后的人脸模型,根据每个顶点所构成三角面片的数量nfi判定边界点集ωf-bound:ωf-bound:{(xi,yi,zi)∈ωf|nfimod4≠0}将三维人脸模型的边界点集ωf-bound与三维人体模型的边界点集ωh-bound进行边界点配对,对于三维人脸模型的边界点集ωf-bound中的每个点pfi,取对应配对点集满足:dist(pfi,ph1)=dist(pfi,ωh-bound)dist(pfi,ph2)=dist(pfi,ωh-bound|{ph1})...式中,n与dist(pfi,ph1)呈正比例关系,dist()函数为点到点集的最小二范式距离,即对于稠密边界点集中的每个点寻找稀疏边界点集中与该点距离最小的前n个对应点。(3.2)变半径贝塞尔曲线缝合插值。以边界点对{(pfi,phk)}作为插值曲线的首末端点,基于三维贝塞尔曲线,通过添加控制点方式在空白区域生成插值点。选取区域ωh-head所有顶点的质心作为相对坐标系的原点,如下:式中,n(ωh-head)为区域ωh-head的包含顶点的数量。通过变半径插值方式生成控制点:式中,计算pfi和phk与坐标轴<ex,ey,ez>构成的角度差,计算pfi和phk与构成的半径差,并在两者角度差二分之一处插入控制点pc,并调整α控制贝塞尔曲线的形状:最终计算控制点的顶点坐标如下:贝塞尔曲线在u∈[0,1]等间隔取值,u为插值参数,得到配准后空白区域的插值顶点集{p(u)}:式中,p(u)为虚线上的点,fi(u)为bernstein基函数,pi为首末端点和控制点,对u∈[0,1]等间隔取值,取值数量与dist(pfi,ph1)成正比例关系,得到配准后空白区域的插值顶点集{p(u)}。(3.3)鼓面结构移除与填充环构建。基于贝塞尔曲线生成插值点后,需要对插值顶点集{p(u)}和边界点对{(pfi,phk)}进行三角网格化处理,取三维德劳内剖分最外层的边界构成三维凸包面集{fch}。由于鼓面仍可能干涉人脸模型的拓扑结构,将三维人脸模型的边界点集ωf-bound格栅化以拟合逼近生成人脸不规则外形,将其y值范围格栅为等间隔δy区间{[y0,y1],[y1,y2],...,[yn-1,yn]},将ωf-bound中的边界点pfi按格栅区间进行分类。取每个格栅区间中{pfi}的平均值计算每个格栅区间的左右边界点和如下:式中,avg()为均值函数,(xfi,yfi,zfi)为边界点pfi的坐标。对于顶点位于不规则外形内的计算其法向量如下:式中,p1、p2和p3为构成三角形的顶点,γy、γz为法向量与y,、z轴构成的夹角阈值,根据法向量与y,z轴夹角的大小判断的鼓面或者填充环属性。移除三维凸包面集{fch}的鼓面特征,将填充环与切割头部的人体模型以及变换后的人脸模型进行合并,生成完整无干涉无缝隙的具有真实人脸的人体模型。(3.4)人体模型,人脸模型和填充环肤色迁移统一。为了保证视觉上人体模型,人脸模型和填充环的统一,需保证纹理上的协调,因此,将人脸模型的整体性肤色迁移到其他两者以保持整体纹理的统一性。其rgb与cmy颜色空间的转换如下:k=min(255-r,255-g,255-b)c=(255-r-k)/(255-k)m=(255-g-k)/(255-k)y=(255-b-k)/(255-k)根据阈值条件对人脸模型的纹理进行肤色分类,对求均值并将其迁移至人体模型和填充环,如下:实施例消费者在移动端提交清晰的人体和人脸图像,经过三维人体人脸重建模块产生三维人体和人脸模型,在三维人体模型的人脸区域补充三维点云界标后,对两者进行弱刚性局部配准,为去除配准后产生的干涉,切割三维人体模型的头部区域并构建填充环,最终合并各个组件生成应用于虚拟试衣具有详细面部细节的三维人体模型。利用人脸目标检测对渲染人体模型图像界标人脸区域,剪裁出人脸区域。基于现有的人脸图像界标模型方法,标志渲染图像的68个界标,包括眼睛、眉毛、鼻子、嘴巴、牙齿和外轮廓。以图像的鼻点界标为基准点,基于像素的灰度值,分别构建渲染图像的参考点:头点、左耳点和右耳点。利用人体的关节点界标,筛选出脖子以上的点云,以鼻点为基准点,在误差范围内分别构建参考点:头点、左耳点和右耳点。经过坐标转换和恢复z值后,由于人体模型的脸部区域表情为中性,形状位移小,人体模型的人脸区域三维界标扩充算法的鲁棒性高。但其网格密度小,在恢复z值时,候选点集小,会导致算法精度部分损失,尤其在需要密集界标的唇部,界标精度相对较低,可在配准时降低其权重。在弱刚性局部配准中,设定优化器为adadelta,其学习率为0.1,梯度下降的早停阈值为,迭代最大步数为3k,在测试集上,稀疏界标位置约束迭代耗时和早停步数统计信息如表1所示:表1:配准耗时和早停步数耗时早停步数126.2±33.8s1118.5±313.1s早停步数的平均值在1100左右,在1000步后,迭代梯度明显下降,同时三维界标的位置精度已经达到10-3,仅为初始迭代误差的1%,同时训练时间成本不高,平均迭代训练时间仅为126.2s,由此证明稀疏界标位置迭代优化的收敛性和适用性。由于配准并不改变人脸内部的拓扑结构,并不能保证的人体与人脸模型的边界无缝贴合,可能存在边界翘曲现象。从头部深度一半处切割人体模型的头部,并去除脸部区域。将切割后的人体模型与人脸进行配准组合,寻找人脸和切合人体模型的边界点,并对边界点配对,其对应关系为一对多或者一对一,一对多的目的在于,防止由于稀疏边界点集中奇点的存在,造成大量稠密边界点只与该奇点配对,影响缝合三角面片分布的均衡性。然后对两者构成的空缺部分基于贝塞尔曲线进行点云插值,对插值点网格化。基于格栅化边界和面片法向量生成填充环,最终合并生成具有脸部细节的人体模型,模型对人体的形状和人脸的形状、纹理、表情都做了详细完整的表达,在虚拟试衣过程中,为测试者提供了身材参照和自我认同感。本发明人体模型脸部区域的构建方法通过降维渲染、建立参考对和恢复z值的方式补充人体模型的脸部区域的三维界标,利用全连接层对稀疏的三维界标位置进行迭代优化,进一步惩罚约束整体性形状以完成配准转换。将基于贝塞尔曲线的人体模型头部切割和拼接缝合,切割人体模型的头部区域消除对配准后人脸模型的干涉,利用三维贝塞尔曲线插值填充切割导致的空白区域,根据近似边界和法向量移除鼓面结构以创建填充环。与非刚性迭代最近点配准相比,本发明的弱刚性局部配准可以实现全局配准,而不会引起内部结构的变化。与传统的人体模型构建方法相比,本发明的人体模型脸部区域构建方法具有详细的面部表情和准确的人体形状估计,更适合于移动端虚拟试衣。当前第1页12