天天看點

均值濾波計算_從零學美顔算法保邊濾波

作者:天兒哥

有了前面的照片處理基礎,這一篇開始講美顔算法。

一、濾波為什麼要保邊?

人像美顔技術中,最重要的技術之一就是磨皮,沒有磨皮誰還敢自拍,誰還敢直播?

磨皮本質上就是對圖像進行濾波,比如前面講的均值濾波,或者高斯濾波,說直白點就是對整張圖檔進行一定程度的模糊。但是僅這麼處理是不夠的,整張圖檔都會模糊掉,是以需要在模糊的同時,保留人像面部的邊界特征,此處的“保留”就是保邊。

均值濾波計算_從零學美顔算法保邊濾波

二、保邊濾波算法

保邊濾波算法有很多種,我們不一一展開,這裡僅讨論有代表性的“雙邊濾波”,帶大家感性認識保邊濾波的實作思路。其他的保邊濾波算法列在文末,有興趣的讀者可自行研究。

2.1 雙邊濾波原理:參看下面示意圖。

左邊的輸入是一個表面粗糙并且有邊界的圖像,那個階梯表示邊界。

中間的濾波算法是一個高斯模糊 * 範圍的權重,即在高斯模糊的基礎上,保持階梯的突變。

右邊是濾波的結果,圖像的邊界依然存在,沒有被模糊,階梯兩側均進行了平滑的模糊。

均值濾波計算_從零學美顔算法保邊濾波

聰明的你會發現,其實就是在高斯模糊的同時,根據目前像素周圍的像素資訊,來計算不同的權重,結合權重來模糊。大多數空間濾波的本質都是如此,掌握雙邊濾波一種,其他的也更容易了解。

2.2 結合雙邊濾波的公式加深了解:

假設像素I(i, j)的鄰域半徑為R,鄰域⼤⼩為S,鄰域内的像素為I(k,l),那麼濾波後的像素值Id的計算公式如下,w(i, j, k,l )是權重函數

均值濾波計算_從零學美顔算法保邊濾波

其中權重w的計算如下:

均值濾波計算_從零學美顔算法保邊濾波

σd和σr分别是空間距離、顔色內插補點的方差,exp函數即自然數e的幂。

可以想象,當處理到邊界像素時,像素突變,I(i, j) - I(k,l) 值非常大,Wr ≈ 0,W(i,j,k,l)整體很小,即周圍的像素影響很小,幾乎保留了目前像素的原始值。這就是通過權重,實作了“保邊”。

同理,當I(i, j) - I(k,l) 接近,Wr ≈ 1,則主要展現了高斯模糊Wd的權重,該像素進行了平滑的模糊處理。

處理結果:

均值濾波計算_從零學美顔算法保邊濾波

三、其他濾波

算法比較枯燥,單篇不适宜大而全,這裡列舉其他常見保邊濾波算法,讀者可自行研究。

1. Surface Blur濾波

Surface Blur濾波又叫表⾯模糊濾波,是Photoshop中的⼀種常⽤濾波算法,也是⼀種空間域濾波算法。

2. Guided濾波算法,論文:

http://mmlab.ie.cuhk.edu.hk/pdf/pami12Guided%20Image%20Filtering.pdf

3. 局部均值濾波算法

局部均值濾波算法是 JONG-SEN LEE于 1980年在論⽂[8]中提出的⼀種基于局部均值⽅差的濾波算法。在普通的均值濾波基礎之上,增加了方差的權重,由于效率高被廣泛應用。

4. Anisotropic濾波

算法原理有點複雜,需要複習多元微積分,熟悉“散度”的定義

Anisotropic濾波也叫各向異性擴散濾波,由Pietro Perona和Jagannatch Malik在1990年發表的論⽂[9]中提出,在圖像去噪中效果明顯。此算法可以在去噪的同時,保留圖像的邊緣,是以,筆者認為此算法也可以作為美顔算法的可選算法之⼀

5. Smart Blur濾波算法

Smart Blur是Photoshop 2018(簡稱PS2018)中出現的⼀種保邊濾波器,具體參考論⽂不詳。

6. MeanShift濾波算法(均值飄移)

MeanShift即均值漂移,最早由Fukunaga在1975年提出,論⽂題⽬為“The Estimation of the Gradient of a density function”。MeanShift濾波算法是⽤MeanShift算法來實作的⼀種圖像保邊濾波算。了解起來有點複雜,算法複雜度較高,感覺不适合實際的應用,且當參考。

本篇沒有給出代碼,後面有時間,我寫一個demo,将算法内置到Android  iOS中供讀者參考。

參考:圖像視訊濾鏡與人像美顔