一种基于平面网格模型的虚拟试妆方法与流程

文档序号:15933753发布日期:2018-11-14 02:03阅读:185来源:国知局

本发明涉及虚拟现实技术领域,具体涉及一种基于平面网格模型的虚拟试妆方法。

背景技术

随着vr(虚拟现实)、ar(增强现实)等先进技术的迅速发展,利用虚拟现实技术可以给试妆者提供较好的化妆效果,在科研中成为一个有趣的研究问题。虚拟现实技术是指利用计算机系统辅助及其图像处理技术形象地展现人脸不同部位进行化妆时的效果。虚拟现实技术是20世纪60年代初首次提出的,通过用户各个器官(视觉、触觉、听觉、嗅觉等),可以带来更加真实和逼真的体验,该技术广泛应用于各个领域。近几年,不断有“虚拟试妆”的相关软件或应用被开发设计出来,并被广泛的推广,例如巴黎欧莱雅、lvmh旗下的美妆零售连锁店sephora(丝芙兰)等企业都纷纷与专业的vr软件开发公司合作,先后推出了“虚拟试妆”相关软件,但是,这些软件是动态地对图像进行处理,采用的是贴图的方式,因而受到环境影响比较大,并且局限于指定的产品,而最主要的问题在于只能适用于特征比较明显的脸部区域,例如嘴部、眼部等,不能适用于非特征区域,因此对试妆区域有较大的局限性。现有技术中,专利cn201710390963.0公开了一种试妆方法、系统及设备,该专利是对视频流中每一帧人脸图像需要上妆的部位进行计算、上妆,然后将上妆后的部位叠加到原始图像,此专利中提出通过上妆指令确定需要上妆的至少一个目标面部部位,并且对目标面部部位所对应的关键点的像素点,勾画出各个目标面部部位的轮廓,并不能实时得到上妆后的真实效果,也达不到对现有化妆品进行试妆的效果。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提供一种基于平面网格模型的虚拟试妆方法,该方法利用人脸识别与追踪、人脸特征点提取、图像处理等技术,可以有效地达到对视频中的人脸进行动态上妆效果,从而达到虚拟试妆的功能,试妆者可以灵活调整脸部每一个需要化妆的部位,只需要一台带有摄像头的电脑或一部手机即可,这样可以给试妆者带来较好的方便性和简洁性,降低化妆成本,具有较好的应用价值。

本发明的目的通过下述技术方案实现:

一种基于平面网格模型的虚拟试妆方法,包括下述步骤:

s1,导入化妆品效果照片,并进行平面网格模型的处理;

s1.1,平面网格模型的建立;平面网格模型采用的建模工具为3dsmax建模软件,其建模方式采用多边形建模,首先用线将平面网格模型的结构表现出来,然后进行面、片的拼接;为了保证平面网格模型的纹理与提取到的特征点进行映射,因此将平面网格模型制作成含有68个顶点的平面网格模型;将构建好的平面网格模型导出为obj的文件格式,然后导入unity3d引擎中并给平面网格模型赋予材质,为其设置两个纹理,即主纹理和掩膜纹理,其中主纹理为标准人脸图片,掩膜纹理用来控制主纹理在平面网格中的显示区域,则需要这两个纹理大小相同;掩膜纹理控制主纹理具体方法为:分别获取该两个纹理的r、g、b、a四个通道,然后通过掩膜纹理的四个通道与主纹理的a通道进行分层操作,采用单一的线性叠加模型如下述公式(1)所示,从而达到掩膜纹理控制主纹理显示的效果:

(1)式中,cd、cm分别为主纹理和掩膜纹理对应的颜色分量,cp为所生产化妆人脸图像的颜色分量,i为对应像素点的下标,k表示控制颜色分量的扰动参数,其默认值为1,d为掩膜纹理的像素区域;

s1.2,网格模型纹理的多边形填充;采用扫描线算法对主纹理进行多边形区域填充,根据s1.1中的平面网格模型的68个顶点纹理坐标,确定需要进行填充的多边形区域,然后从上到下对多边形区域进行扫描,在扫描过程中,先确定扫描线与填充区域边界的交点,并按x轴坐标排序,使其两两成对作为两个端点,然后将填充色应用于每一条扫描线的像素上;

s1.3,填充纹理的逻辑运算;对多边形纹理进行逻辑运算从而达到网格模型掩膜纹理控制模型主纹理的显示区域,多边形纹理的逻辑运算通常是处理二值图像,故在多边形填充时,为多边形填充的是白色,图像之间的逻辑运算主要采用异或运算,设a和b表示两幅多边形图像,像素之间保留a中不属于b的区域,即图像a中第m个区域中存在至少一个这样的像素,该像素也存在于图像b中,则将图像b中存在的像素只留下属于a但不属于b的区域;

s2,提取视频中的人脸特征点,并进行视频帧序列中人脸区域处理;

s2.1,视频帧序列中人脸的光照补偿;采用gamma函数对光照补偿,gamma函数矫正通常对γ值进行选取,图像中每个像素均以同一个γ值进行矫正,如下述公式(2)所示:

(2)式中,o(x,y)为输出图像,f(x,y)为源图像,通过伽马参数γ对图像的高光部分和暗调部分进行扩展和压缩;

利用光照分量在图片中的分布情况,选择性地调整伽马参数γ,对光照分量m(x,y)的提取采用高斯函数g(x)与源图像f(x,y)进行卷积,如下述公式(3)和(4)所示:

m(x,y)=f(x,y)×g(x),(4)

从而得到伽马参数γ,如下述公式(5)所示:

其中,高斯函数的卷积核选择13*13的卷积核;

s2.2,人脸特征点提取;采用opencv的harr级联分类检测器进行人脸定位和追踪,然后调用dlib的特征点检测方法进行提取和对齐;dlib开源库完成人脸特征点提取,获取人脸上的68个特征点,并根据已经提取到的68个特征点位置,进行对额头区域依据美学标准三庭五眼进行等比例估算;

s3,通过步骤s2.2中提取的人脸特征点与s1.3中的平面网格模型进行纹理坐标映射,从而得到对视频人脸的上妆合成图;

纹理坐标映射是指三维模型的顶点坐标在二维纹理中找到对应的纹理位置,只需确定模型68个顶点坐标和模型纹理坐标的对应关系即可;设v(d)为网格模型顶点坐标集,f(d)为获取视频中的人脸特征点坐标集,camerawidth为摄像头获取视频的宽度,cameraheigth为摄像头获取视频的高度,ε为映射时的扰动误差,则可得到f(d)映射到v(d)的计算公式如式(6)和式(7)所示:

v(d).x=f(d).x/camerawidth+ε,(6)

v(d).y=f(d).y/cameraheight+ε,(7)

而模型的纹理坐标则是获取标准人脸纹理中的特征点的坐标,设uv(d)为网格模型纹理坐标集,faceuv(d)为获取到的标准人脸纹理特征点坐标集,texwidth为纹理的宽度,texheigth为纹理的高度,则可得到f(d)映射到v(d)的计算公式如式(8)和式(9)所示:

uv(d).x=faceuv(d).x/texwidth,(8)

uv(d).y=(texheigth-faceuv(d).y)/texheigth;(9)

s4,上妆合成图的效果展示。

本发明与现有技术相比具有以下的有益效果:

(1)本发明利用人脸识别与追踪、人脸特征点提取、图像处理等技术,可以有效地达到对视频中的人脸进行动态上妆效果,从而达到虚拟试妆的功能,试妆者可以灵活调整脸部每一个需要化妆的部位,只需要一台带有摄像头的电脑或一部手机即可,这样可以给试妆者带来较好的方便性和简洁性,降低化妆成本,具有较好的应用价值;

(2)本发明在试妆应用过程中,试妆者可灵活调整脸部每一个需要化妆的部位,只需要一台带有摄像头的电脑或一部手机即可,具有方便性和简洁性;利用了gamma矫正对视频进行光照补偿,并且公开了平面网格纹理坐标与特征点坐标的映射关系;通过进行光照补偿,可以提高人脸识别准确率,同时也优化了试妆效果。

附图说明

图1为本发明的整体流程图;

图2为本发明平面网格模型的示意图;

图3为本发明赋予材质的平面网格模型示意图;

图4为本发明网格模型纹理的多边形填充效果图;

图5为本发明填充纹理的逻辑运算效果图;

图6为本发明的不同卷积核效果图;

图7为本发明的人脸特征点提取流程图;

图8为本发明的人脸特征点提取效果图;

图9为本发明的纹理坐标映射流程图;

图10为本发明的上妆合成图的效果展示图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

如图1~10所示,一种基于平面网格模型的虚拟试妆方法,导入化妆品效果照片作为网格模型的主纹理,记作d,根据模型主纹理坐标动态生成的掩膜纹理,记作m;通过提取到视频中的人脸特征点与网格模型进行纹理映射,从而得到对视频人脸的上妆合成图,记作s;其中为了消除环境光照的影响,对视频进行光照补偿;整体流程图如图1所示。

具体包括下述步骤:

s1,导入化妆品效果照片,并进行平面网格模型的处理;

s1.1,平面网格模型的建立;平面网格模型采用的建模工具为3dsmax建模软件,其建模方式有多种:多边形建模、曲面建模、合成建模、面片建模、nurbs建模等,在本发明中的建模方式采用多边形建模,首先用线将平面网格模型的结构表现出来,然后进行面、片的拼接;为了保证平面网格模型的纹理与提取到的特征点进行映射,因此将平面网格模型制作成含有68个顶点的平面网格模型;将构建好的平面网格模型导出为obj的文件格式,然后导入unity3d引擎中并给平面网格模型赋予材质,如图2平面网格模型的示意图和图3赋予材质的平面网格模型示意图所示,为其设置两个纹理,即主纹理和掩膜纹理,其中主纹理为标准人脸图片,掩膜纹理用来控制主纹理在平面网格中的显示区域,则需要这两个纹理大小相同;掩膜纹理控制主纹理具体方法为:分别获取该两个纹理的r、g、b、a四个通道,然后通过掩膜纹理的四个通道与主纹理的a通道进行分层操作,采用单一的线性叠加模型如下述公式(1)所示,从而达到掩膜纹理控制主纹理显示的效果:

(1)式中,cd、cm分别为主纹理和掩膜纹理对应的颜色分量,cp为所生产化妆人脸图像的颜色分量,i为对应像素点的下标,k表示控制颜色分量的扰动参数,其默认值为1,d为掩膜纹理的像素区域;

s1.2,网格模型纹理的多边形填充;对多边形的填充算法主要分为两大类:种子填充算法和扫描线算法,种子填充算法使用了递归,需要大量栈空间来存储相邻的点,因此效率不高,而扫描线算法只需要将每个水平像素的起始点位置压入一个特殊栈,而不需要将所有相邻的点都压入堆栈,从而可以节省堆栈空间,考虑到运行效率,本发明采用扫描线算法对主纹理进行多边形区域填充,根据s1.1中的平面网格模型的68个顶点纹理坐标,确定需要进行填充的多边形区域,然后从上到下对多边形区域进行扫描,在扫描过程中,先确定扫描线与填充区域边界的交点,并按x轴坐标排序,使其两两成对作为两个端点,然后将填充色应用于每一条扫描线的像素上,具体填充效果如图4所示;

s1.3,填充纹理的逻辑运算;对多边形纹理进行逻辑运算从而达到网格模型掩膜纹理控制模型主纹理的显示区域,多边形纹理的逻辑运算通常是处理二值图像,故在多边形填充时,为多边形填充的是白色,图像之间常用的逻辑运算主要包括与(and)、或(or)、非(not)、或非(ornot)、与非(andnot)、异或(xor),本发明图像之间的逻辑运算主要采用异或运算,设a和b表示两幅多边形图像,像素之间保留a中不属于b的区域,即图像a中第m个区域中存在至少一个这样的像素,该像素也存在于图像b中,则将图像b中存在的像素只留下属于a但不属于b的区域,具体填充效果如图5所示;

s2,提取视频中的人脸特征点,并进行视频帧序列中人脸区域处理;

s2.1,视频帧序列中人脸的光照补偿;在本发明中对光照进行补偿有两个主要作用,一是提高人脸识别精确度,二是优化试妆显示效果,本发明考虑对视频采集效率以及计算复杂度等因素,采用gamma函数对光照补偿,gamma函数矫正通常对γ值进行选取,图像中每个像素均以同一个γ值进行矫正,如下述公式(2)所示:

(2)式中,o(x,y)为输出图像,f(x,y)为源图像,通过伽马参数γ对图像的高光部分和暗调部分进行扩展和压缩;

利用光照分量在图片中的分布情况,选择性地调整伽马参数γ,对光照分量m(x,y)的提取采用高斯函数g(x)与源图像f(x,y)进行卷积,如下述公式(3)和(4)所示:

m(x,y)=f(x,y)xg(x),(4)

从而得到伽马参数γ,如下述公式(5)所示:

其中,高斯函数的卷积核选择13*13的卷积核;根据不同高斯函数的卷积核大小得到的光照分量图不同,如图6所示,当选择13*13大小的卷积核时对光照的补偿效果较好;

s2.2,人脸特征点提取;采用opencv的harr级联分类检测器进行人脸定位和追踪,然后调用dlib的特征点检测方法进行提取和对齐;dlib开源库完成人脸特征点提取,获取人脸上的68个特征点,dlib开源库里面包含许多常用的机器学习算法,例如:3d点云、surf特征、贝叶斯分类、svm、深度学习、多种回归等算法,它被广泛应用于工业界和学术界,本发明将harr级联分类检测器和dlib开源库两者一起使用可大大提高检测速度,从而实现较好的试妆效果,若只利用dlib进行人脸检测和特征点提取,则检测速度太慢,比如640*480分辨率的图像,需要0.15s左右的时间,而本发明将两者结合起来,对640*480分辨率的图片进行检测,时间消耗仅为70ms左右,极大地提高了运行效率,具体人脸特征点提取流程图如图7所示;根据已经提取到的68个特征点位置,并依据三庭五眼的美学标准对额头区域进行等比例估算,具体效果如图8所示;

s3,通过步骤s2.2中提取的人脸特征点与s1.3中的平面网格模型进行纹理坐标映射,从而得到对视频人脸的上妆合成图;

纹理坐标映射是指三维模型的顶点坐标在二维纹理中找到对应的纹理位置,只需确定模型68个顶点坐标和模型纹理坐标的对应关系即可;设v(d)为网格模型顶点坐标集,f(d)为获取视频中的人脸特征点坐标集,camerawidth为摄像头获取视频的宽度,cameraheigth为摄像头获取视频的高度,ε为映射时的扰动误差,则可得到f(d)映射到v(d)的计算公式如式(6)和式(7)所示:

v(d)·x=f(d)·x/camerawidth+ε,(6)

v(d)·y=f(d)·y/cameraheight+ε,(7)

而模型的纹理坐标则是获取标准人脸纹理中的特征点的坐标,设uv(d)为网格模型纹理坐标集,faceuv(d)为获取到的标准人脸纹理特征点坐标集,texwidth为纹理的宽度,texheigth为纹理的高度,则可得到f(d)映射到v(d)的计算公式如式(8)和式(9)所示:

uv(d).x=faceuv(d).x/texwidth,(8)

uv(d).y=(texheigth-faceuv(d).y)/texheigth;(9)

具体纹理坐标映射流程图如图9所示;

s4,上妆合成图的效果展示,如图10所示。

本发明利用人脸识别与追踪、人脸特征点提取、图像处理等技术,可以有效地达到对视频中的人脸进行动态上妆效果,从而达到虚拟试妆的功能,试妆者可以灵活调整脸部每一个需要化妆的部位,只需要一台带有摄像头的电脑或一部手机即可,这样可以给试妆者带来较好的方便性和简洁性,降低化妆成本,具有较好的应用价值;在试妆应用过程中,试妆者可灵活调整脸部每一个需要化妆的部位,只需要一台带有摄像头的电脑或一部手机即可,具有方便性和简洁性;利用了gamma矫正对视频进行光照补偿,并且公开了平面网格纹理坐标与特征点坐标的映射关系;通过进行光照补偿,可以提高人脸识别准确率,同时也优化了试妆效果。

上述为本发明较佳的实施方式,但本发明的实施方式并不受上述内容的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

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