一种二维人脸图片变形方法及系统技术方案

技术编号:25551775 阅读:20 留言:0更新日期:2020-09-08 18:52
本发明专利技术提供了计算机图形学领域的一种二维人脸图片变形方法及系统,方法包括:步骤S10、获取二维人脸图片、三维人脸模型,将三维人脸模型转换为人脸区域二维网格后叠加于二维人脸图片上;步骤S20、选取二维人脸图片与人脸区域二维网格对应特征点,并基于特征点得到坐标映射关系;步骤S30、基于人脸区域二维网格创建非人脸区域二维网格;步骤S40、基于人脸区域二维网格、坐标映射关系、非人脸区域二维网格、非人脸区域过渡规则,对二维人脸图片的像素点进行像素映射,生成变形后的人脸图片。本发明专利技术的优点在于:极大的提升了人脸图片变形的灵活性、过渡平滑性,进而极大的提升了最终生成图片的显示效果。

【技术实现步骤摘要】
一种二维人脸图片变形方法及系统
本专利技术涉及计算机图形学领域,特别指一种二维人脸图片变形方法及系统。
技术介绍
随着网络技术和数字图像获取技术的方展,人们产生了将拍摄的图片或者视频传送到网络上进行分享的欲望,而为了获得更好的互动效果,时常需要对图片的人脸进行变形。针对二维人脸图片的变形,传统上采用机器学习,训练得到变化参数,进而通过变化参数对人脸进行变形的方法。但是传统的方法存在如下缺点:依赖于大量的训练结果,由于训练模型遍历不完全,容易使人脸变形的效果差强人意。因此,如何提供一种二维人脸图片变形方法及系统,实现提升人脸图片变形的灵活性、过渡平滑性,进而提升最终生成图片的显示效果,成为一个亟待解决的问题。
技术实现思路
本专利技术要解决的技术问题,在于提供一种二维人脸图片变形方法及系统,实现提升人脸图片变形的灵活性、过渡平滑性,进而提升最终生成图片的显示效果。一方面,本专利技术提供了一种二维人脸图片变形方法,包括如下步骤:步骤S10、获取待处理的二维人脸图片以及三维人脸模型,将所述三维人脸模型转换为由三角形组成的人脸区域二维网格后,叠加于所述二维人脸图片的上方;步骤S20、选取所述二维人脸图片与人脸区域二维网格一一对应的30个特征点,并基于30个所述特征点计算得到二维人脸图片与人脸区域二维网格的坐标映射关系;步骤S30、基于所述人脸区域二维网格创建一非人脸区域二维网格;步骤S40、基于所述人脸区域二维网格以及坐标映射关系对二维人脸图片的像素点进行像素映射,生成变形后的人脸区域图片;步骤S50、设定一非人脸区域过渡规则,基于所述非人脸区域二维网格、非人脸区域过渡规则以及坐标映射关系对二维人脸图片的像素点进行像素映射,生成变形后的非人脸区域图片,将所述人脸区域图片以及非人脸区域图片叠加生成变形后的人脸图片。进一步地,还包括:步骤S60、获取叠加图片,将所述叠加图片转换为由三角形组成的叠加区域二维网格后,与所述二维人脸图片进行叠加,并利用所述坐标映射关系以及叠加区域二维网格将位于下层图片的像素点进行像素映射到上层图片,生成叠加后的人脸图片。进一步地,所述步骤S20具体为:基于人脸轮廓选取所述二维人脸图片与人脸区域二维网格一一对应的30个特征点,获取30个所述特征点的二维坐标以及三维坐标,将30个所述特征点的二维坐标以及三维坐标带入如下公式:uv=pos*modelview*projectview*viewport;求解得到modelview、projectview以及viewport;其中uv表示二维坐标;pos表示三维坐标;modelview表示旋转矩阵;projectview表示缩放矩阵;viewport表示视图矩阵;设所述二维人脸图片左上方顶点的二维坐标为(0,0),所述二维人脸图片上任意一个像素点的二维坐标为uvp(x2,y2),像素点所在所述人脸区域二维网格的三角形的三维坐标为a(ax3,ay3),b(bx3,by3),c(cx3,cy3);基于质心坐标公式求解uvp(x2,y2)、a(ax3,ay3),b(bx3,by3),c(cx3,cy3)、modelview、projectview以及viewport,得到所述二维人脸图片与人脸区域二维网格的坐标映射关系:x2=ax3*u+bx3*v+cx3*w;y2=ay3*u+by3*v+cy3*w;其中u、v、w表示计算过程变量,且u+v+w=1;a、b、c表示坐标系数;x2表示二维人脸图片的横坐标;y2表示二维人脸图片的纵坐标;x3表示人脸区域二维网格的横坐标;y3表示人脸区域二维网格的纵坐标。进一步地,所述步骤S30具体为:以所述人脸区域二维网格的外边缘为中心,从内至外设置15个由三角形组成的网格圈,各网格圈的宽度均为1个三角形,进而生成非人脸区域二维网格。进一步地,所述像素映射具体为:设所述二维人脸图片坐标为(w,h)的像素为RGB(w,h)=(r,g,b),映射前的三角形网格点为origpos(ox,oy),映射后的三角形网格点为nowpos(nx,ny);设点(w,h)变形后的坐标为(w1,h1),像素为nowRGB(w1,h1)=(r1,g1,b1);基于所述坐标映射关系,得到:w1=nax*u+nbx*v+ncx*w;h1=nay*u+nby*v+ncy*w;进而得到变形后的坐标(w1,h1)的像素为:nowRGB(w1,h1)=RGB(oax*u+obx*v+ocx*w,oay*u+oby*v+ocy*w);其中o和n均表示坐标系数;所述非人脸区域过渡规则具体为:外层网格圈的位置偏移量=相邻内层网格圈的位置偏移量*0.9。另一方面,本专利技术提供了一种二维人脸图片变形系统,包括如下模块:初始化模块,用于获取待处理的二维人脸图片以及三维人脸模型,将所述三维人脸模型转换为由三角形组成的人脸区域二维网格后,叠加于所述二维人脸图片的上方;坐标映射关系计算模块,用于选取所述二维人脸图片与人脸区域二维网格一一对应的30个特征点,并基于30个所述特征点计算得到二维人脸图片与人脸区域二维网格的坐标映射关系;非人脸区域二维网格创建模块,用于基于所述人脸区域二维网格创建一非人脸区域二维网格;人脸区域变形模块,用于基于所述人脸区域二维网格以及坐标映射关系对二维人脸图片的像素点进行像素映射,生成变形后的人脸区域图片;变形图片生成模块,用于设定一非人脸区域过渡规则,基于所述非人脸区域二维网格、非人脸区域过渡规则以及坐标映射关系对二维人脸图片的像素点进行像素映射,生成变形后的非人脸区域图片,将所述人脸区域图片以及非人脸区域图片叠加生成变形后的人脸图片。进一步地,还包括:图片叠加模块,用于获取叠加图片,将所述叠加图片转换为由三角形组成的叠加区域二维网格后,与所述二维人脸图片进行叠加,并利用所述坐标映射关系以及叠加区域二维网格将位于下层图片的像素点进行像素映射到上层图片,生成叠加后的人脸图片。进一步地,所述坐标映射关系计算模块具体为:基于人脸轮廓选取所述二维人脸图片与人脸区域二维网格一一对应的30个特征点,获取30个所述特征点的二维坐标以及三维坐标,将30个所述特征点的二维坐标以及三维坐标带入如下公式:uv=pos*modelview*projectview*viewport;求解得到modelview、projectview以及viewport;其中uv表示二维坐标;pos表示三维坐标;modelview表示旋转矩阵;projectview表示缩放矩阵;viewport表示视图矩阵;设所述二维人脸图片左上方顶点的二维坐标为(0,0),所述二维人脸图片上任意一个像素点的二维坐标为uvp(x2,y2),像素点所在所述人脸区域二维网格的三角形的三维坐标为a(ax3,本文档来自技高网...

【技术保护点】
1.一种二维人脸图片变形方法,其特征在于:包括如下步骤:/n步骤S10、获取待处理的二维人脸图片以及三维人脸模型,将所述三维人脸模型转换为由三角形组成的人脸区域二维网格后,叠加于所述二维人脸图片的上方;/n步骤S20、选取所述二维人脸图片与人脸区域二维网格一一对应的30个特征点,并基于30个所述特征点计算得到二维人脸图片与人脸区域二维网格的坐标映射关系;/n步骤S30、基于所述人脸区域二维网格创建一非人脸区域二维网格;/n步骤S40、基于所述人脸区域二维网格以及坐标映射关系对二维人脸图片的像素点进行像素映射,生成变形后的人脸区域图片;/n步骤S50、设定一非人脸区域过渡规则,基于所述非人脸区域二维网格、非人脸区域过渡规则以及坐标映射关系对二维人脸图片的像素点进行像素映射,生成变形后的非人脸区域图片,将所述人脸区域图片以及非人脸区域图片叠加生成变形后的人脸图片。/n

【技术特征摘要】
1.一种二维人脸图片变形方法,其特征在于:包括如下步骤:
步骤S10、获取待处理的二维人脸图片以及三维人脸模型,将所述三维人脸模型转换为由三角形组成的人脸区域二维网格后,叠加于所述二维人脸图片的上方;
步骤S20、选取所述二维人脸图片与人脸区域二维网格一一对应的30个特征点,并基于30个所述特征点计算得到二维人脸图片与人脸区域二维网格的坐标映射关系;
步骤S30、基于所述人脸区域二维网格创建一非人脸区域二维网格;
步骤S40、基于所述人脸区域二维网格以及坐标映射关系对二维人脸图片的像素点进行像素映射,生成变形后的人脸区域图片;
步骤S50、设定一非人脸区域过渡规则,基于所述非人脸区域二维网格、非人脸区域过渡规则以及坐标映射关系对二维人脸图片的像素点进行像素映射,生成变形后的非人脸区域图片,将所述人脸区域图片以及非人脸区域图片叠加生成变形后的人脸图片。


2.如权利要求1所述的一种二维人脸图片变形方法,其特征在于:还包括:
步骤S60、获取叠加图片,将所述叠加图片转换为由三角形组成的叠加区域二维网格后,与所述二维人脸图片进行叠加,并利用所述坐标映射关系以及叠加区域二维网格将位于下层图片的像素点进行像素映射到上层图片,生成叠加后的人脸图片。


3.如权利要求1所述的一种二维人脸图片变形方法,其特征在于:所述步骤S20具体为:
基于人脸轮廓选取所述二维人脸图片与人脸区域二维网格一一对应的30个特征点,获取30个所述特征点的二维坐标以及三维坐标,将30个所述特征点的二维坐标以及三维坐标带入如下公式:
uv=pos*modelview*projectview*viewport;
求解得到modelview、projectview以及viewport;其中uv表示二维坐标;pos表示三维坐标;modelview表示旋转矩阵;projectview表示缩放矩阵;viewport表示视图矩阵;
设所述二维人脸图片左上方顶点的二维坐标为(0,0),所述二维人脸图片上任意一个像素点的二维坐标为uvp(x2,y2),像素点所在所述人脸区域二维网格的三角形的三维坐标为a(ax3,ay3),b(bx3,by3),c(cx3,cy3);
基于质心坐标公式求解uvp(x2,y2)、a(ax3,ay3),b(bx3,by3),c(cx3,cy3)、modelview、projectview以及viewport,得到所述二维人脸图片与人脸区域二维网格的坐标映射关系:
x2=ax3*u+bx3*v+cx3*w;
y2=ay3*u+by3*v+cy3*w;
其中u、v、w表示计算过程变量,且u+v+w=1;a、b、c表示坐标系数;x2表示二维人脸图片的横坐标;y2表示二维人脸图片的纵坐标;x3表示人脸区域二维网格的横坐标;y3表示人脸区域二维网格的纵坐标。


4.如权利要求1所述的一种二维人脸图片变形方法,其特征在于:所述步骤S30具体为:
以所述人脸区域二维网格的外边缘为中心,从内至外设置15个由三角形组成的网格圈,各网格圈的宽度均为1个三角形,进而生成非人脸区域二维网格。


5.如权利要求3或4所述的一种二维人脸图片变形方法,其特征在于:所述像素映射具体为:
设所述二维人脸图片坐标为(w,h)的像素为RGB(w,h)=(r,g,b),映射前的三角形网格点为origpos(ox,oy),映射后的三角形网格点为nowpos(nx,ny);
设点(w,h)变形后的坐标为(w1,h1),像素为nowRGB(w1,h1)=(r1,g1,b1);基于所述坐标映射关系,得到:
w1=nax*u+nbx*v+ncx*w;
h1=nay*u+nby*v+ncy*w;
进而得到变形后的坐标(w1,h1)的像素为:
nowRGB(w1,h1)=RGB(oax*u+obx*v+ocx*w,oay*u+oby*v+ocy*w);
其中o和n均表示坐标系数;
所述非人脸区域过渡规则具体为:
外层网格圈的位置偏移量=相邻内层网格圈的位置偏移量*0.9。


6.一种二维人脸图片变形系统,其特...

【专利技术属性】
技术研发人员:林文林郑泽彬张彬彬黄志超朱健卢雨晨项博文李多春
申请(专利权)人:构范厦门信息技术有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1