美妝演算法---磨皮演算法研究彙總
寫這篇部落格,也是對自己這段時間關於磨皮演算法內容研究做個小結。
目前,對於人臉磨皮演算法,大家並不陌生,從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運算元即可,速度很不錯,這裡給個效果圖:
注意,這裡簡單的進行了全圖濾波呵呵。
本文轉自:http://www.zealfilter.com/article-138-1.html