原文:深度学习AI美颜系列-------AI美颜磨皮算法
转自微信公众号:OpenCV学堂
原创作者:胡耀武
转载,以学习,记录,备忘.

这里先放对比结果图,原图来自网络:

1. 算法的流程

[1] - 皮肤分割算法
[2] - 人脸关键点识别算法
[3] - 基于皮肤区域的祛斑算法
[4] - 基于皮肤区域的磨皮美白调色算法
[5] - 大眼瘦脸算法
[6] - 五官立体+腮红+唇彩+美瞳算法

1.1 皮肤分割算法

目前主流的语义分割等都可以实现,准确度要求较高。本人使用 U-net 和 PSPNet.

UNet网络结构如下:

PSPNet网络结构如下:

1.2 人脸关键点识别算法

这一步可以使用商汤/Face++/虹软人脸SDK,这里使用的是虹软101点人脸SDK.
也可以自己训练人脸SDK,推荐使用mtcnn或者opencv人脸检测+CNN关键点网络.

[MTCNN人脸检测与OpenCV关键点提取]()

1.3 基于皮肤区域的祛斑算法

这里祛斑算法如下:
[1] - 使用Sobel粗略提取斑点信息;
主要是基于梯度信息进行候选
[2] - 使用连通域判断得到最终斑点区域;
对候选区域进行进一步筛选
[3] - 结合高斯滤波+泊松融合来实现祛斑效果;
进行高斯滤波与修复

1.4 基于皮肤区域的磨皮美白调色算法

磨皮部分:通过高反磨皮算法对人像磨皮,结合皮肤区域得到精确磨皮效果;
美白调色部分:这一步通过PS中的曲线调节来得到美白调色的LUT,结合肤色区域进行Blend得到调色结果;

1.5 大眼瘦脸算法

基于人脸特征点+MLS变形或IDW反距离加权变形来实现大眼瘦脸算法;

1.6 五官立体+腮红+唇彩+美瞳算法

这一步通过人脸关键点来得到嘴唇和腮红区域,实现唇彩和腮红;
通过美瞳模板来实现美瞳算法;
通过双曲线调色来实现五官立体算法;

彩妆部分可以看作者以前在公众号上发布的相关文章即可

2. 关键点

[1] - 精准的皮肤识别分割;
[2] - 精准的人脸关键点;

本算法使用opengl可在手机端实时处理.

3. Related

[1] - 深度学习AI美颜系列----AI美发算法(美妆相机/天天P图染发特效)

Last modification:January 14th, 2019 at 10:33 am