直播美颜sdk中的人脸磨皮其实就是图像滤波的过程。滤波的过程需要尽可能地保留人脸五官的细节。因此整个磨皮算法的流程比较精细,包括以下几个步骤:图像滤波,图像融合,图像锐化。
由于滤波会损伤一些图像细节,因此滤波后会对图像进行融合和锐化操作,这样可以保留一些图像细节,以增加图像的真实感。
磨皮的过程尽量保留图像的边缘,因此印版会选用双边滤波算法,因为它是由一个高斯分量和梯度分量组成权重信息来实现模糊平滑图像并保留边缘的。
一般来讲,在进行一次磨皮之后,图像会变得模糊,虽然脸上的细纹和斑点消失了,但是图像变得朦胧了。接下来进行图像融合。图像融合主要是指将滤波图像进行融合,得到一张细节真实感较强、磨皮效果较好的结果图,在OpenCV中,具体的函数可以表示为:
Dst=src1xalpha+src2xbeta+gamma;
其中,src1是叠加的第一幅图像,src2是叠加的第二幅图像,dst是输出图像。
由参数说明可以看出,被叠加的两幅图像必须尺寸相同且造型相同;并且当输出图像array的深度为CV_32S时,这个函数就不能适用了,这时候就会内存溢出或者算出的结果不对。如果输入的两幅图像尺寸不一致,需要先调用OpenCV的resize()函数对尺寸进行修正。
图像在进行叠加处理后,保留了一部分滤波的特性,图像的细节也有所保留。接下来进行图像的锐化处理,以进一步增强细节感。这里可以使用USM锐化或者经典的邻域锐化和laplace锐化等。通过输入的参数自动调节图像的锐度和对比度。
在锐度和对比度增强后,图像显得更加真实,接近真实世界的图像输入。跟输入的原图对比,人脸出现了磨皮处理,处理后的皮肤贴近了真实感。
以上,就是直播美颜sdk中,关于人脸磨皮算法的总概,如果你对直播美颜sdk开发感兴趣,欢迎咨询官方客服。
声明:本文由美狐原创,未经允许禁止转载,谢谢合作。