本发明涉及手机拍摄图像领域,更具体的说,其涉及用于一种移动端人脸图像面部实时变形调节方法。
背景技术:
目前移动端人脸变形算法大多都是局部变形,一种变形对应一次图像处理,多种变形效果的累加导致移植到手机端速度慢,延时和卡顿严重,甚至在低端手机无法运行。
技术实现要素:
本发明的目的在于提供一种移动端人脸图像面部实时变形调节方法,解决如何让用户在使用中低端手机也能运行流畅,帧率在每秒60帧以上。
为了解决上述技术问题,本发明的技术方案如下:
一种移动端人脸图像面部实时变形调节方法,具体步骤如下:
101)图像模板筛选步骤:选取五官端正的人脸图像进行关键点标记,形成人像模板图片;
102)图像预处理步骤:对人像模板图片进行人脸变形处理,该处理通过调用Photoshop2018中的液化功能进行,得到液化处理图MP1;根据液化处理图MP1得到变形处理后关键点标记的目标图片MP2;
103)获取变形数据步骤:由步骤102)获得液化处理图MP1到目标图片MP2对应的关键点标记的向量V,向量V即为变形效果预调整值,具体公式如下;
104)图像处理步骤:根据步骤103)获得的向量V进行图像相似度最佳匹配处理;根据图像帧数据获取101个关键点标记,得到101个人脸关键点点位数据SP;根据SP遍历不同图像帧数据中的关键点标记并记为MP1,获取对应相似度L,以得到向量V匹配的最佳变形后效果数据;其中最佳匹配的效果数据为L最小时,相似度L公式如下:
进一步的,人脸变形内容包括眉毛间距、眉毛上下调节、眼睛大小调节、眼睛间距调节、眼睛上下位置调节、眼睛高度调节、眼睛宽度调节、眼睛旋转角度调节、鼻梁高度调节、鼻梁宽度调节、微笑调节、嘴巴宽度调节、嘴巴高度调节、上嘴唇厚度调节、下嘴唇厚度调节、脸宽调节、收敛下巴调节和瘦脸调节。
进一步的,步骤104)中图像帧数据中的101个关键点标记进行点位扩展和三角剖分,得到面部剖分三角形队列A;点位扩展方法如下:
①计算101点的外接矩形框Rect0,计算方法如下:
遍历101点的x坐标,计算Left=Min(x),Right=Max(x)
遍历101点的y坐标,计算Top=Min(y),Bottom=Max(y)
Rect0=(x0,y0,w0,h0)=(Left,Top,Right-Left,Bottom-Top)
②以Rect0中心为原点,设置半径Radius,将Rect0向外扩展为新矩形Rect1(x1,y1,w1,h1),计算方法如下:
x1=x0-Radius/2
y1=y0-Radius/2
w1=w0+Radius
h1=h0+Radius
根据新矩形Rect1得到扩展点位(P0,P1,P2,P3,P4,P5,P6,P7)
P0=(x1,y1)
P1=(x1,y1+h1/2)
P2=(x1,y1+h1)
P3=(x1+w1/2,y1+h1)
P4=(x1+w1,y1+h1)
P5=(x1+w1,y1+h1/2)
P6=(x1+w1,y1)
P7=(x1+w1/2,y1)
根据101个关键点标记和8个扩展点位共109个点位,对人脸面部进行三角剖分,得到剖分三角形队列A,109点位及人脸脸部剖分部分;
根据人脸变形参数构建虚拟人脸F,对应的109个点位为FP,FP计算如下:
根据109点位FP进行三角剖分得到三角形队列B;根据三角形队列A和B,将图像帧数据进行仿射变换,得到最终效果图;其中仿射变换公式如下:
其中,(x,y)为原始坐标,(x',y')为变换后坐标,m为变换系数。
本发明相比现有技术优点在于:
本发明对人脸面部根据特征点进行面部全局三角剖分,一次图像处理达到最终效果;提出一种对人脸面部变形调节效果进行效果极值预置的方法,大大减少原本法处理的时间消耗。
附图说明
图1为本发明的处理流程图;
图2为本发明的关键点标记处理示意图。
具体实施方式
下面结合附图和具体实施方式对本发明进一步说明。
如图所示,一种移动端人脸图像面部实时变形调节方法,具体步骤如下:
101)图像筛选步骤:选取五官端正的人脸图像进行关键点标记,形成人像模板图片;
102)图像预处理步骤:对人像模板图片进行人脸变形处理,该处理通过调用Photoshop2018中的液化功能进行,得到液化处理图MP1;根据液化处理图MP1得到变形处理后关键点标记的目标图片MP2;人脸变形一共18种具体内容包括眉毛间距、眉毛上下调节、眼睛大小调节、眼睛间距调节、眼睛上下位置调节、眼睛高度调节、眼睛宽度调节、眼睛旋转角度调节、鼻梁高度调节、鼻梁宽度调节、微笑调节、嘴巴宽度调节、嘴巴高度调节、上嘴唇厚度调节、下嘴唇厚度调节、脸宽调节、收敛下巴调节和瘦脸调节。
103)获取变形数据步骤:由步骤102)获得液化处理图MP1到目标图片MP2对应的关键点标记的向量V,向量V即为变形效果预调整值,具体公式如下;
104)图像处理步骤:根据步骤103)获得的向量V进行图像相似度最佳匹配处理;根据图像帧数据获取101个关键点标记,得到101个人脸关键点点位数据SP;根据SP遍历不同图像帧数据中的关键点标记并记为MP1,获取对应相似度L,以得到向量V匹配的最佳变形后效果数据。其中最佳匹配的效果数据为L最小时,相似度L公式如下:
图像帧数据中的101个关键点标记进行点位扩展和三角剖分,得到面部剖分三角形队列A,这样做可以减少算法自动剖分带来的时间消耗与算法复杂度增加问题;点位扩展方法如下:
①计算101点的外接矩形框Rect0,计算方法如下:
遍历101点的x坐标,计算Left=Min(x),Right=Max(x)
遍历101点的y坐标,计算Top=Min(y),Bottom=Max(y)
Rect0=(x0,y0,w0,h0)=(Left,Top,Right-Left,Bottom-Top)
②以Rect0中心为原点,设置半径Radius,将Rect0向外扩展为新矩形Rect1(x1,y1,w1,h1),计算方法如下:
x1=x0-Radius/2
y1=y0-Radius/2
w1=w0+Radius
h1=h0+Radius
根据新矩形Rect1得到扩展点位(P0,P1,P2,P3,P4,P5,P6,P7)
P0=(x1,y1)
P1=(x1,y1+h1/2)
P2=(x1,y1+h1)
P3=(x1+w1/2,y1+h1)
P4=(x1+w1,y1+h1)
P5=(x1+w1,y1+h1/2)
P6=(x1+w1,y1)
P7=(x1+w1/2,y1)
根据101个关键点标记和8个扩展点位共109个点位,对人脸面部进行三角剖分,得到剖分三角形队列A,109点位及人脸脸部剖分部分。
根据用户实时调节参数和向量V,构建虚拟人脸F,对应的109个点位为FP,FP计算如下:
根据109点位FP进行三角剖分得到三角形队列M;根据三角形队列A和三角形队列M,将图像帧数据进行仿射变换,得到最终变形后效果图。其中仿射变换公式如下:
其中,(x,y)为三角形队列A即原始图像帧数据坐标,(x',y')为三角形队列M即变换后图像帧数据坐标,m为变换系数。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。