一种基于网格变形的眼妆贴图方法与流程

文档序号:15350313发布日期:2018-09-04 23:15阅读:334来源:国知局

本发明涉及图像处理技术领域,尤其涉及一种基于网格变形的眼妆贴图方法。



背景技术:

近年来,人像美颜美妆类应用深受年轻女性用户的喜爱。眼睛作为人“心灵的窗户”,眼妆是最容易被用户感知的部分。在美颜美妆类应用中,眼妆效果的好坏除了眼妆素材本身的真实度和创意性外,最重要的一个技术指标就是眼妆素材在眼部局部贴合的准确度,即,如何将一种眼妆素材应用局部变形技术(localwarp)后能够准确并自然地贴合各种不同的眼形。

现有的眼妆贴图法主要采用眼部变形的方法,即根据标准人脸的眼部轮廓控制点和待检测人脸的眼部轮廓控制点计算得到一个变换矩阵,通过该变换矩阵进行眼妆贴图。目前常用的眼部变形方法有:基于最小二乘法(leastsquares)得到变换矩阵(例如,仿射变换),基于光流法(opticalflow)得到变换矩阵,基于两组眼部轮廓控制点的单应性变换方法得到变换矩阵等。由于上述方法均属于对眼部的全局变换,没有考虑局部变换问题,因此,在眼妆的贴合过程中,容易产生比例和形状的失真,美妆效果较差。并且,现有方法会针对眼部区域的每个像素点进行变形计算,而且会针对不同的眼部贴合功能对同一个变形位置进行重复计算,因此,性能开销明显,不能达到实时贴合的目的,美妆效率不尽人意。



技术实现要素:

本发明旨在提供一种基于网格变形的眼妆贴图方法,能够使眼妆素材更加准确、自然地贴合各种眼形,改善美妆效果。

为达到上述目的,本发明采用的技术方案如下:

一种基于网格变形的眼妆贴图方法,包括:获取预存的标准人脸图,对所述标准人脸图进行眼部图像处理,得到第一眼部轮廓控制点;获取待检测人脸图,对所述待检测人脸图进行所述眼部图像处理,得到第二眼部轮廓控制点;对所述标准人脸图的眼部进行区域划分,并在划分的区域中生成网格顶点;所述网格顶点的属性包括:顶点位置,标准图纹理采样坐标,眼妆素材纹理采样坐标;根据所述第一眼部轮廓控制点、所述第二眼部轮廓控制点和所述网格顶点,采用最小方差法计算变形函数;采用所述变形函数对所述眼妆素材纹理采样坐标进行局部变形,获取变形后网格顶点;根据所述变形后网格顶点生成三角形网格面;采用所述变形后网格顶点创建opengl顶点缓存;采用所述三角形网格面创建opengl索引缓存;根据所述顶点缓存和所述索引缓存,将预存的美妆素材贴合到所述待检测人脸图上。

优选地,所述对所述标准人脸图进行眼部图像处理,得到第一眼部轮廓控制点包括:对所述标准人脸图进行眼部关键点定位,获取标准人脸图的眼部轮廓控制点;对所述标准人脸图的眼部轮廓控制点进行曲线拟合,得到拟合控制点;将所述拟合控制点加入所述标准人脸图的眼部轮廓控制点中,得到所述第一眼部轮廓控制点。

优选地,采用拉格朗日插值法对所述标准人脸图的眼部轮廓控制点进行曲线拟合,得到拟合控制点;或者,采用贝塞尔曲线拟合法对所述标准人脸图的眼部轮廓控制点进行曲线拟合,得到拟合控制点;或者,采用多项式曲线拟合法对所述标准人脸图的眼部轮廓控制点进行曲线拟合,得到拟合控制点。

优选地,所述对所述标准人脸图的眼部进行区域划分,并在划分的区域中生成网格顶点的方法为:根据所述标准人脸图的眼部轮廓边缘,将所述标准人脸图的眼部划分为内轮廓区域和外轮廓区域;所述内轮廓区域包括瞳孔部分,所述外轮廓区域包括眼皮部分;在所述内轮廓区域中生成网格顶点;在所述外轮廓区域中生成网格顶点。

优选地,所述根据所述第一眼部轮廓控制点、所述第二眼部轮廓控制点和所述网格顶点,采用最小方差法计算变形函数的方法为:

fcp(x)=xm+t

其中,fcp(x)为变形函数,scp(i)为所述第一眼部轮廓控制点中第i个控制点,dcp(i)为所述第二眼部轮廓控制点中第i个控制点,v为所述网格顶点。

优选地,根据所述顶点缓存和所述索引缓存,采用opengl三角形绘制技术将预存的美妆素材贴合到所述待检测人脸图上。

优选地,所述根据所述顶点缓存和所述索引缓存,采用opengl三角形绘制技术将预存的美妆素材贴合到所述待检测人脸图上的方法为:加载预存的美妆素材,根据所述预存的美妆素材创建眼妆纹理资源;根据所述顶点缓存和所述索引缓存,将所述眼妆纹理资源绘制到所述待检测人脸图上。

优选地,所述眼妆纹理资源包括:眼影纹理,眼线纹理,睫毛纹理。

优选地,根据所述变形后网格顶点,采用delaunay三角剖分算法生成三角形网格面。

本发明实施例提供的基于网格变形的眼妆贴图方法,由于对标准人脸图的眼部进行了区域划分,并在划分的区域中生成网格顶点,使网格顶点分散在眼部的各个区域,从而使眼部的各个区域都具有约束,因此在后续绘制眼妆素材的过程中,不易产生不自然拉伸问题,使得眼妆素材在待测人脸上贴合更准确、更自然。同时,本发明中的网格顶点只针对眼部区域,且网格顶点较为稀疏,变形计算仅作用网格顶点,因此cpu计算负担显著降低,从而提高了计算速率。又由于本发明中的网格顶点数据和眼妆纹理资源是相互分离的,这样就避免了后续的其它眼部贴合功能重复cpu的计算过程,从而避免了眼部美妆多个功能造成的时间叠加,进一步降低了性能开销、提高了计算速率。可见,本发明提供的技术方案,能够使眼妆素材更加准确、自然地贴合各种眼形,改善美妆效果,同时,能够缩短美妆时间。

附图说明

图1为本发明实施例的方法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。

步骤101,获取预存的标准人脸图,对所述标准人脸图进行眼部图像处理,得到第一眼部轮廓控制点;

步骤102,获取待检测人脸图,对所述待检测人脸图进行所述眼部图像处理,得到第二眼部轮廓控制点;

本发明实施例中,步骤101和步骤102没有严格的执行顺序,可先后执行,也可同时执行。但是,对标准人脸图和待测人脸图进行的眼部图像处理过程应该是相同的。

具体地,获取第一眼部轮廓控制点和第二眼部轮廓控制点的方法为:对所述标准人脸图进行眼部关键点定位,获取标准人脸图的眼部轮廓控制点scp(x,y);对所述待测人脸图进行眼部关键点定位,获取待测人脸图的眼部轮廓控制点dcp(x,y);为了使轮廓贴合度更紧密,使用拉格朗日插值法,对上述标准人脸图的眼部轮廓控制点scp(x,y)和待测人脸图的眼部轮廓控制点dcp(x,y)分别进行曲线拟合,分别得到拟合控制点;将上述两组拟合控制点分别加入对应的标准人脸图的眼部轮廓控制点scp(x,y)和待测人脸图的眼部轮廓控制点dcp(x,y)中,分别得到所述第一眼部轮廓控制点s(x,y)和第二眼部轮廓控制点d(x,y)。其中,拉格朗日插值法的计算公式如下:

当然,也可采用贝塞尔曲线拟合法对所述标准人脸图的眼部轮廓控制点和待检测人脸图的眼部轮廓控制点进行曲线拟合,分别得到两组拟合控制点;或者,采用多项式曲线拟合法对所述标准人脸图的眼部轮廓控制点和待检测人脸图的眼部轮廓控制点进行曲线拟合,分别得到两组拟合控制点。

步骤103,对所述标准人脸图的眼部进行区域划分,并在划分的区域中生成网格顶点;所述网格顶点的属性包括:顶点位置,标准图纹理采样坐标,眼妆素材纹理采样坐标;

本步骤中,根据所述标准人脸图的眼部轮廓边缘,将所述标准人脸图的眼部划分为内轮廓区域、外轮廓区域和轮廓边缘;所述内轮廓区域包括瞳孔部分,所述外轮廓区域包括眼皮部分;根据标准人脸图实际的眼部形状,在轮廓边缘、内轮廓区域和外轮廓区域中分别生成网格顶点。

初始化上述网格顶点数据,并将网格顶点记为v(s,t0,t1),其中,s为顶点位置,t0为标准图纹理采样坐标,t1为眼妆素材纹理采样坐标。

步骤104,根据所述第一眼部轮廓控制点s(x,y)、所述第二眼部轮廓控制点d(x,y)和所述网格顶点v(s,t0,t1),采用最小方差法计算变形函数fcp(x);

具体方法为:

fcp(x)=xm+t

其中,fcp(x)为变形函数,scp(i)为所述第一眼部轮廓控制点s(x,y)中第i个控制点,dcp(i)为所述第二眼部轮廓控制点d(x,y)中第i个控制点,v为所述网格顶点。

步骤105,采用所述变形函数对所述眼妆素材纹理采样坐标t1进行局部变形,获取变形后网格顶点v(s,t0,t1warp);

步骤106,根据所述变形后网格顶点v(s,t0,t1warp)生成三角形网格面meshindex;采用所述变形后网格顶点v(s,t0,t1warp)创建opengl顶点缓存;采用所述三角形网格面meshindex创建opengl索引缓存;

本步骤中,根据所述变形后网格顶点v(s,t0,t1warp),采用delaunay三角剖分算法生成三角形网格面meshindex。

步骤107,根据所述顶点缓存和所述索引缓存,将预存的美妆素材贴合到所述待检测人脸图上。

本步骤中,根据所述顶点缓存和所述索引缓存,采用opengl三角形绘制技术将预存的美妆素材贴合到所述待检测人脸图上。具体方法为:

步骤一:加载预存的美妆素材,根据所述预存的美妆素材创建眼妆纹理资源;所述眼妆纹理资源包括:眼影纹理,眼线纹理,睫毛纹理;

步骤二:设置当前网格采样纹理单元为眼影纹理;

步骤三:设置图层混合模式;

步骤四:根据上述顶点缓存和索引缓存,将眼影纹理绘制到待测人脸图上;

步骤五:设置当前网格采样纹理单元为眼线纹理;

步骤六:设置图层混合模式;

步骤七:根据上述顶点缓存和索引缓存,将眼线纹理绘制到待测人脸图上;

步骤八:设置当前网格采样纹理单元为睫毛纹理;

步骤九:设置图层混合模式;

步骤十:根据上述顶点缓存和索引缓存,将睫毛纹理绘制到待测人脸图上。

本发明实施例提供的基于网格变形的眼妆贴图方法,由于对标准人脸图的眼部进行了区域划分,并在划分的区域中生成网格顶点,使网格顶点分散在眼部的各个区域,从而使眼部的各个区域都具有约束,因此在后续绘制眼妆素材的过程中,不易产生不自然拉伸问题,使得眼妆素材在待测人脸上贴合更准确、更自然。同时,本发明中的网格顶点只针对眼部区域,且网格顶点较为稀疏,变形计算仅作用网格顶点,因此cpu计算负担显著降低。在后续绘制眼妆素材的过程中,又充分利用了gpu(graphicsprocessingunit,图形处理器)的渲染优势,即将眼妆素材的绘制工作交于gpu处理,进一步减轻cpu的计算负担,使得cpu能同时处理其它眼妆任务,从而提高了计算速率。又由于本发明中的网格顶点数据和眼妆纹理资源是相互分离的,顶点缓存和索引缓存重复利用,这样就避免了后续的其它眼部贴合功能重复cpu的计算过程,从而避免了眼部美妆多个功能造成的时间叠加,进一步降低了性能开销、提高了计算速率。可见,本发明提供的技术方案,能够使眼妆素材更加准确、自然地贴合各种眼形,改善美妆效果,同时,能够缩短美妆时间。本发明非常契合移动端实际使用场景,特别是安卓系统中低端设备表现良好。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

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