写这篇博客,也是对自己这段时间关于磨皮算法内容研究做个小结。
目前,对于人脸磨皮算法,大家并不陌生,从PS到APP应用,可谓是层出不穷,这里我总结一下,具体流程如下:
1,保边滤波器
2,肤色检测
3,图像融合
4,锐化
对于保边滤波器:
此类滤波器主要作用是在平滑皮肤的同时,保留五官的细节。目前可以做磨皮的保边滤波主要有以下几种:
1,表面模糊
这个算法是PS中的一个功能,具有较好的保边作用,它的算法实现连接:点击打开链接
代码库连接:点击打开链接
效果如下:
原图 表面模糊
2,双边滤波
这个算法是由一个高斯分量+梯度分量组成权重信息来实现模糊平滑图像的同时,保留边缘的功能的,代码连接:点击打开链接
效果图如下:
原图 双边滤波r=15
3,导向滤波
导向滤波是基于导向图的一种保边滤波算法,最开始由He kai ming提出,用于基于暗通道去雾算法中,它的实现算法和代码DEMO连接:点击打开链接
效果图如下:
原图 导向滤波 快速导向滤波
3,基于均值滤波的保边滤波器算法
这个算法速度很快,单效果一般,参考论文《Lee Filter Digital Image Enhancement and Noise Filtering by Use of Local Statistics》
算法实现及程序DEMO连接:点击打开链接
效果图如下:
原图 效果图
4,选择性模糊算法
这个算法的具体实现及程序DEMO连接:点击打开链接
效果图如下:
原图 选择性滤波算法效果
5,基于高斯滤波的磨皮实现算法
这个算法不多说,大家可以直接看连接:点击打开链接
相关代码DEMO连接:点击打开链接
效果如图:
原图 磨皮效果图
以上就是我收集到的,目前可以用来做磨皮算法的滤波器,大家可以参考一下。
对于肤色检测:
肤色检测的相关资料比较多,主要可以分为两大类,基于颜色空间统计信息的方法,基于机器学习分类的方法。
这里给出一些链接:点击打开链接
一种基于RGB颜色空间的算法:
对于图像融合:
这个图像融合,主要是指将滤波图像和细节图像进行融合,得到一张具有较强细节真实感和磨皮效果的结果图。
一般基于alpha通道,或者使用羽化操作来进行融合,公式如下:
res = (basePixel * alpha + filterPixel * (255 - alpha)) >>8
注意,这里的alpha在0-255之间,这里举的是原图和滤波图的融合。
对于锐化算法:
在得到磨皮融合的效果图后,我们还需要进行一定的锐化算法,来进一步增强细节感,这里大家可以使用USM锐化或者经典的邻域锐化,laplace锐化等等,相关资料自行百度吧。
上述所有内容,都是磨皮算法相关的内容,跟大家分享一下,最后一个,就是算法的效率问题了,这个问题解决的核心,还在于滤波算法的选择,大家可以自行优化。本人基于Sobel算子和均值滤波实现了一种保边滤波器,只需进行一次均值滤波,一次sobel算子即可,速度很不错,这里给个效果图:
原图
此处图片涉嫌侵权,本人在这里表示道歉,已经删除,希望转载的网站也能自行删除,保护个人权益,谢谢!
效果图
此处图片涉嫌侵权,本人在这里表示道歉,已经删除,希望转载的网站也能自行删除,保护个人权益,谢谢!
注意,这里简单的进行了全图滤波呵呵。
我的QQ:1358009172,有问题可以交流