文档章节

一种具有细节保留功能的磨皮算法。

abcijkxyz
 abcijkxyz
发布于 2016/11/22 16:38
字数 1230
阅读 25
收藏 0

     算法最近更新时间: 2014.7.19,  效果详见:http://files.cnblogs.com/Imageshop/FaceBeautification.rar

     话说女人的钱最好赚,所以现在各大流行的图像编辑软件基本上都有个磨皮的功能,这对那些脸上不小心长了小痘痘或者小斑点的美眉来说是在上传照片前的必要和必须步骤。加上现在自恋的人特多,没事有事来个自拍,然后挂到网上炫一把,当然也得把自己的皮肤处理好。 因此啊,国内出了不少这方面的软件,比如美图、可牛、美颜相机、美人相机、Camera360等加入了这个功能,当然还有很多小的手机软件业附带了此项目。

      不过在网络上找寻磨皮方面的算法时,能找到的有用的信息是非常少的,估计这于该算法具有较大的实用和经济价值不无关系,本人经过一番研究,也搞出了一个磨皮的功能,这里就能共享的一些技巧说来给有需要的朋友听听。

  1、磨皮算法的核心: 磨皮可以看成是去噪算法的应用。典型的去噪算法,比如均值模糊、高斯模糊、中值滤波都有很好的去噪效果,但是视觉效果太差。能有效的用于磨皮算法的去噪方式主要是那些能够边缘的算法,典型的比如双边滤波、Non-Local以及BM3D之类的。BM3D据说去噪效果最好。但是后两者到目前为止未看到具有实质意义的快速实现算法,反而是双边滤波,有多篇论文已经提出了可行的加速方案。其实Photoshop中的表面模糊也可以看成是一种双边滤波,因此不少用PS磨皮的过程也大量使用了表面模糊算法的。

      2、头发眼睛等细节部位的保护: 直接使用上述算法得到的结果,针对很多图像会出现头发和眼睛部位的模糊,这种效果对于一个好的磨皮结果来说是不需要的。特别是眼睛,眼睛是心灵的窗口,被模糊了,窗口就不透明了。因此,需要检测出需要磨皮的部分。这个很多人会想到皮肤检测技术。不过我试过了经典的七八种皮肤检测效果,都不能将不同场景的肤色部位全部提取出来。一种方式就是综合好几种肤色检测,取最大区域,这也是一种不错的想法,因为一般的肤色检测速度都是很快的。但是实际的效果表面,这样做对于一些比较极端的图像还是无效的。因此,我采取了一种宁愿错杀一千,也不可放过一个的措施,放松了某一种肤色检测模块里的一些约束条件,使得绝大多数场景下的肤色部分都能够被选中(鉴于某些方面的原因,这个不可详述)。

     3、边缘部分的融合:通过上述保护,得到的保护边缘处是硬边缘,即一个像素时要磨皮的部分,边上的可能就是不需要磨皮的,这样的话处理的效果在视觉会造成一定的僵硬,可能会有某个部分过度不自然,如下图所示(所有图片均来源自网络):

  

           原图                              硬边界磨皮                            软化后磨皮

      一种解决方案就是对得到的硬边界图进行羽化处理,也就是类似高斯模糊之类的算法,这样边缘处就会过渡的较为自然。

    4、处理后的增强:经过这样处理后的图像如果在进行一下边缘的增强,会得到更好的效果,比如在PS磨皮的最后一般喜欢加个USM锐化。

  按照上述思路,编程程序,我实现的磨皮效果如下所示:

    

    

    

    

    

   

                       原图                       本文的磨皮效果                        美图秀秀效果(智能磨皮,参数深)

    由以上几图可以看出,在磨皮质量基本差不多的情况,本文额磨皮的能尽量的保留了头发和眼睛处的细节,这样更自然。

    在算法实现的速度上,我采用了两种双边滤波,一种速度很快,在PC上如果加入多线程完全可以实现普通摄像头的实时磨皮,但是效果有一点瑕疵。另外一种速度稍慢,效果较为稳定。

      一个示例可以从这里下载: http://files.cnblogs.com/Imageshop/FaceBeautification.rar

 

 

 

****************************作者: laviewpbt   时间: 2013.8.23    联系QQ:  33184777转载请保留本行信息********************

本文转载自:http://www.cnblogs.com/Imageshop/p/3576818.html

共有 人打赏支持
abcijkxyz
粉丝 63
博文 6196
码字总数 1876
作品 0
深圳
项目经理
私信 提问
妹纸们的最爱 - 拓幻科技美颜SDK算法

现在各大手机制造商都在主推美颜效果,各种前后2000万像素,照亮你的美,各种逆光也清晰。其实这些看似神秘的美颜效果,除了依赖于手机像素之外,更重要的是攻城狮们对于美颜算法的构造。除了...

tillusory
01/31
0
0
CSDN日报1806012——《欠薪的公司,不要做任何犹豫》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/blogdevteam/article/details/80667708 程序人生 | 欠薪的公司,不要做任何犹豫! 作者:stormzhang 当一家公...

CSDN官方博客
06/12
0
0
美肤磨皮算法OpenCV3实现

参考一个大神的美肤公式: Dest =(Src (100 - Opacity) + (Src + 2 GuassBlur(EPFFilter(Src) - Src + 128) - 256) * Opacity) /100 OpenCV3实现算法如下: `python # -- coding: utf-8 -- ......

IOTService
2017/11/06
0
0
模拟油画和铅笔画的滤镜效果

油画效果 先上未经任何处理的原图 原图.png 然后使用油画风格的滤镜OilPaintFilter看看效果,OilPaintFilter的使用方式就一句话:) 油画效果.png OilPaintFilter在处理人物图片和风景图片时...

Tony沈哲
2017/05/12
0
0
CSDN日报1806011——《你的关注点在哪里,你的进步就在哪里》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/blogdevteam/article/details/80656667 程序人生 | 你的关注点在哪里,你的进步就在哪里 作者:张龙(风中叶)...

CSDN官方博客
06/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
24分钟前
2
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
41分钟前
2
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
41分钟前
7
0
MYSQL索引

索引的作用 索引类似书籍目录,查找数据,先查找目录,定位页码 性能影响 索引能大大减少查询数据时需要扫描的数据量,提高查询速度, 避免排序和使用临时表 将随机I/O变顺序I/O 降低写速度,占用磁...

关元
59分钟前
7
0
撬动世界的支点——《引爆点》读书笔记2900字优秀范文

撬动世界的支点——《引爆点》读书笔记2900字优秀范文: 作者:挽弓如月。因为加入火种协会的读书活动,最近我连续阅读了两本论述流行的大作,格拉德威尔的《引爆点》和乔纳伯杰的《疯传》。...

原创小博客
今天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部