深度學習AI美顏系列---AI美顏磨皮演算法二
阿新 • • 發佈:2018-11-28
這裡先放兩張對比結果圖,原圖來自網路:
演算法的流程如下:
1,面板分割演算法;
目前主流的語義分割等都可以實現,準確度要求較高。本人使用U-net和PSPNet。
2,人臉關鍵點識別演算法;
這一步可以使用商湯/Face++/虹軟人臉SDK,這裡使用的是虹軟101點人臉SDK。
也可以自己訓練人臉SDK,推薦使用mtcnn或者opencv人臉檢測+cnn關鍵點網路;
3,基於面板區域的祛斑演算法;
這裡祛斑演算法如下:
①使用Sobel粗略提取斑點資訊;
②使用連通域判斷得到最終斑點區域;
③結合高斯濾波+泊松融合來實現祛斑效果;
4,基於面板區域的磨皮美白調色演算法;
磨皮部分:通過高反磨皮演算法對人像磨皮,結合面板區域得到精確磨皮效果;
美白調色部分:這一步通過PS中的曲線調節來得到美白調色的LUT,結合膚色區域進行Blend得到調色結果;
5,大眼瘦臉演算法;
基於人臉特徵點+MLS變形或IDW反距離加權變形來實現大眼瘦臉演算法;
6,五官立體+腮紅+脣彩+美瞳演算法;
這一步通過人臉關鍵點來得到嘴脣和腮紅區域,實現脣彩和腮紅;
通過美瞳模板來實現美瞳演算法;
通過雙曲線調色來實現五官立體演算法;
關鍵點:
1,精準的面板識別分割;
2,精準的人臉關鍵點;
本演算法使用opengl可在手機端實時處理;