本发明属于图像处理技术领域,特别是涉及一种适合移动设备拍摄图像的磨皮算法。
背景技术:
近年来,随着科技的进步,智能手机、平板等移动设备已经成为人们必不可少的数字娱乐工具。伴随着智能设备的兴起,美颜自拍的需求也不断增长,其中磨皮功能受到广大女性用户的追捧,磨皮的质量和速度决定了用户的体验。
但是现有的磨皮方法无法实现自动磨皮功能,并且存在磨皮方法复杂、稳定性差、磨皮效果不自然和在移动设备上的运行不流畅等问题。
技术实现要素:
为了解决上述问题,本发明提出了一种适合移动设备拍摄图像的磨皮算法,能够实现自动磨皮,使用户能一键完成磨皮;且方法简单稳定,磨皮效果自然,在移动设备上运行流畅。
为达到上述目的,本发明采用的技术方案是:一种适合移动设备拍摄图像的磨皮算法,包括步骤:
s100获取原始图像;
s200对原始图像进行肤色检测,生成肤色概率图的高斯金字塔;
利用原始图像,生成灰度图像的高斯金字塔;
对灰度图像估算全局磨皮强度,并计算出磨皮强度的拉伸系数表;
s300通过肤色概率图的高斯金字塔、灰度图像的高斯金字塔和磨皮强度的拉伸系数表计算出相似度矩阵;
s400利用相似度矩阵对原始图像进行磨皮操作,合成最终图像。
进一步的是,步骤s200中所述的对原始图像进行肤色检测,生成肤色概率图的高斯金字塔,具体包括步骤:
对原始图像进行肤色检测,得到肤色概率图;
利用肤色概率图,生成肤色概率图的高斯金字塔;
其中,肤色概率图的高斯金字塔slevel为{slevel|level=0,1,2,3},其中s0=skinmap,level为层数,skinmap是肤色概率图。
进一步的是,步骤s200中所述的利用原始图像,生成灰度图像的高斯金字塔,具体包括步骤:
将原始图像转换成灰度图像;
生成灰度图像的高斯金字塔;
其中,灰度图像的高斯金字塔ilevel为{ilevel|level=0,1,2,3},其中i0=i,i是灰度图像,level为层数。
进一步的是,步骤s200中所述的对灰度图像估算全局磨皮强度,具体包括步骤:
进行人脸关键点检测,得到人脸关键点;
通过人脸关键点定位脸颊区域;
计算全局磨皮强度。
进一步的是,对脸颊区域进行区域处理:
1)计算脸颊区域面积area以及灰度图像中对应脸颊区域的图像方差var;
2)对area和var进行范围截断,得到处理后的颊区域面积area′以及灰度图像中对应脸颊区域区域的图像方差var′:
area′=clip(area,64,360)
var′=clip(var,10,40);
其中,clip(x,a,b)表示将x限制在[a,b]范围内。
进一步的是,计算全局磨皮强度sigma:
其中strength=area*0.303+var*19.81+237.5。
进一步的是,计算磨皮强度的拉伸系数表nlut,计算方式为
进一步的是,计算相似度矩阵simmatrixlevel,dx,dy,包括步骤:
1)利用灰度图像的高斯金字塔,计算绝对差值图:
1.1)令dx={x|x∈z,x∈[-sr,sr]},dy={x|x∈z,x∈[0,sr]},其中z代表整数集;令集合a={(dx,dy)|(dy>0)∨(dy=0∧dx>0)};
1.2)对于a中任意dx和dy,计算绝对差值图i_adlevel,dx,dy=|ilevel(y,x)-ilevel(y+dy,x+dx)|,
其中,x、y表示图像坐标;sr常整数,范围为[1,9];
2)通过积分运算计算i_adlevel,dx,dy的积分图i_ad_integrallevel,dx,dy;
3)利用i_ad_integrallevel,dx,dy计算相似度矩阵simmatrixlevel,dx,dy:
其中,
进一步的是,所述磨皮操作是对原始图像的三个颜色分量ir,ig,ib分别进行滤波,所述滤波过程包括步骤:
a)对ir进行laplace金字塔分解得到图像集{llevel|level=0,1,2,3};
b)计算level=3时的磨皮结果:定义权值矩阵为weightsum以及加权像素图为weightedsum,并初始化为0;令dx={x|x∈z,x∈[-sr,sr]},dy={x|x∈z,x∈[0,sr]},其中z代表整数集,令集合a={(dx,dy)|(dy>0)∨(dy=0∧dx>0)};
b.1)对于a中任意dx、dy,计算坐标(y,x)处的权重
b.2)计算加权像素图:
计算总的权重:
b.3)最后计算level=3的磨皮结果并更新,llevel(y,x)=(weightedsum(y,x)+llevel(y,x))/(weightsum(y,x)+1);
c)计算level=2的磨皮结果:更新当前图像集:llevel(y,x)+=upsample(llevel+1(y,x)),其中upsample表示上采样操作;然后按照步骤b)同理进行计算;
d)计算level=1的磨皮结果:更新当前图像集:llevel(y,x)+=upsample(llevel+1(y,x)),其中upsample表示上采样操作;然后按照步骤b)同理进行计算;
e)计算level=0的磨皮结果:更新当前图像集:llevel(y,x)+=upsample(llevel+1(y,x)),其中upsample表示上采样操作;然后按照步骤b)同理进行计算;
同理,依次计算ig和ib分量的磨皮结果。
进一步的是,所述合成最终图像是将三个颜色分量的磨皮结果进行组合得到最终图像。
采用本技术方案的有益效果:
本发明能够实现自动磨皮,使用户能一键完成磨皮;且方法简单稳定,磨皮效果自然,在移动设备上运行流畅;
通过评估脸颊区域的面积以及方差,自适应地确认全局磨皮的强度,实现自动磨皮功能,能够提高磨皮精度,提高磨皮效果;
通过肤色概率图自适应地确定图像各个像素的局部磨皮强度,使磨皮效果自然且方法鲁棒;
通过灰度图计算一系列相似度矩阵,并用于rgb三个通道的运算,能够加快运算速度快,适合移动设备。
附图说明
图1为本发明的一种适合移动设备拍摄图像的磨皮算法流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步阐述。
在本实施例中,参见图1所示,本发明提出了一种适合移动设备拍摄图像的磨皮算法,包括步骤:
s100获取原始图像;
s200对原始图像进行肤色检测,生成肤色概率图的高斯金字塔;
利用原始图像,生成灰度图像的高斯金字塔;
对灰度图像估算全局磨皮强度,并计算出磨皮强度的拉伸系数表;
s300通过肤色概率图的高斯金字塔、灰度图像的高斯金字塔和磨皮强度的拉伸系数表计算出相似度矩阵;
s400利用相似度矩阵对原始图像进行磨皮操作,合成最终图像。
作为上述实施例的优化方案,步骤s200中所述的对原始图像进行肤色检测,生成肤色概率图的高斯金字塔,具体包括步骤:
对原始图像进行肤色检测,得到肤色概率图;
利用肤色概率图,生成肤色概率图的高斯金字塔;
其中,肤色概率图的高斯金字塔slevel为{slevel|level=0,1,2,3},其中s0=skinmap,level为层数,skinmap是肤色概率图。
步骤s200中所述的利用原始图像,生成灰度图像的高斯金字塔,具体包括步骤:
将原始图像转换成灰度图像;
生成灰度图像的高斯金字塔;
其中,灰度图像的高斯金字塔ilevel为{ilevel|level=0,1,2,3},其中i0=i,i是灰度图像,level为层数。
步骤s200中所述的对灰度图像估算全局磨皮强度,具体包括步骤:
进行人脸关键点检测,得到人脸关键点;
通过人脸关键点定位脸颊区域;
计算全局磨皮强度。
对脸颊区域进行区域处理:
1)计算脸颊区域面积area以及灰度图像中对应脸颊区域的图像方差var;
2)对area和var进行范围截断,得到处理后的颊区域面积area′以及灰度图像中对应脸颊区域区域的图像方差var′:
area′=clip(area,64,360)
var′=clip(var,10,40);
其中,clip(x,a,b)表示将x限制在[a,b]范围内。
计算全局磨皮强度sigma:
其中strength=area*0.303+var*19.81+237.5。
计算磨皮强度的拉伸系数表nlut,计算方式为
计算相似度矩阵simmatrixlevel,dx,dy,包括步骤:
1)利用灰度图像的高斯金字塔,计算绝对差值图:
1.1)令dx={x|x∈z,x∈[-sr,sr]},dy={x|x∈z,x∈[0,sr]},其中z代表整数集;令集合a={(dx,dy)|(dy>0)∨(dy=0∧dx>0)};
1.2)对于a中任意dx和dy,计算绝对差值图i_adlevel,dx,dy=|ilevel(y,x)-ilevel(y+dy,x+dx)|,
其中,x、y表示图像坐标;sr常整数,范围为[1,9];
2)通过积分运算计算i_adlevel,dx,dy的积分图i_ad_integrallevel,dx,dy;
3)利用i_ad_integrallevel,dx,dy计算相似度矩阵simmatrixlevel,dx,dy:
其中,
作为上述实施例的优化方案,所述磨皮操作是对原始图像的三个颜色分量ir,ig,ib分别进行滤波,所述滤波过程包括步骤:
a)对ir进行laplace金字塔分解得到图像集{llevel|level=0,1,2,3};
b)计算level=3时的磨皮结果:定义权值矩阵为weightsum以及加权像素图为weightedsum,并初始化为0;令dx={x|x∈z,x∈[-sr,sr]},dy={x|x∈z,x∈[0,sr]},其中z代表整数集,令集合a={(dx,dy)|(dy>0)∨(dy=0∧dx>0)};
b.1)对于a中任意dx、dy,计算坐标(y,x)处的权重
b.2)计算加权像素图:
计算总的权重:
b.3)最后计算level=3的磨皮结果并更新,llevel(y,x)=(weightedsum(y,x)+llevel(y,x))/(weightsum(y,x)+1);
c)计算level=2的磨皮结果:更新当前图像集:llevel(y,x)+=upsample(llevel+1(y,x)),其中upsample表示上采样操作;然后按照步骤b)同理进行计算;
d)计算level=1的磨皮结果:更新当前图像集:llevel(y,x)+=upsample(llevel+1(y,x)),其中upsample表示上采样操作;然后按照步骤b)同理进行计算;
e)计算level=0的磨皮结果:更新当前图像集:llevel(y,x)+=upsample(llevel+1(y,x)),其中upsample表示上采样操作;然后按照步骤b)同理进行计算;
同理,依次计算ig和ib分量的磨皮结果。
所述合成最终图像是将三个颜色分量的磨皮结果进行组合得到最终图像。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。