Guided Filter is a kind of Edge-preserving smoothing filter. Same as Bilateral Filter, this image Filter can also filter out noise or texture while retaining sharp edges. [1]
Unlike the bilateral filter, the guided image filter has two advantages: first, Bilateral filters have very high computation complexity
,雙邊濾波器有非常大的計算複雜度,但引導影像濾波器因為並未用到過於複雜的數學計算,[1]有線性的計算複雜度。再來,雙邊濾波器因為數學模型的緣故,在某些時候會發生梯度反轉(gradient reverse)的狀況,出現影像失真;而在引導影像濾波器,因為這個濾波器在數學上以線性組合為基礎出發,輸出圖片(Output Image)必與引導圖片(Guidance Image)的梯度方向一致,並不會出現梯度反轉的問題。
http://kaiminghe.com/eccv10/
原理
為了達到將影像平滑化、即去除雜訊的效果,首先定義輸出的結果圖片是輸入圖片減去雜訊後的結果;同時,為了讓輸出的圖片符合引導圖片的影像邊界,將輸出圖片定為引導圖片的線性組合。
以下為引導影像濾波器的基礎模型:
(1)
(2)
在上述公式中,
是第i個輸出的像素,
是第i個輸入的像素,
是第i個輸入像素的雜訊成分,
是第i個引導圖片的像素,
則是用來衡量輸入權重的參數。
定義為線性組合(Linear Combination)的原因在於,一物件的邊界與其梯度(Gradient)相關,而在線性組合的定義下,輸出圖片之梯度必與引導圖片之梯度成對比(微分時高冪次系數保留而常數項則被去除),故可以達到保留梯度的效果、保留影像邊界的目的。
為了導出上述線性組合的參數,將(1)及(2)相減得到公式(3);同時,定義一個代價方程式(cost function)(4):
(3)
(4)
在上式中,
是一用來懲罰(penalize)過大的
的參數,
是以第
個像素為中心點的窗格(window)。
在這個方程式中可以看到,希望同時讓最終的輸出圖片做到讓雜訊減少以及讓引導圖片在輸出圖片的影響減小(引導圖片的系數項)兩件事,遂定義每個像素雜訊和系數項的平方總合為最後須付出的價值項(cost)。並且,基於讓價值項最小化的原則,可以將(4)以線性回歸(linear regression)的方法找出它的線性模型,從而求得、使得出它的價值方程式有最小解的到以下兩參數
和
:
(5)
(6)
在這裏,
和
分別是引導圖片
在窗格
的平均數(mean)和標準差(variance),而
是在窗格
中像素的平均值;這兩項系數,換句話說,即是一以輸入圖片為考慮計算權重之平均濾波器(weighted mean)。
演算法
依據上式,可以列出此濾波器之演算法:
Algorithm 1. 引導圖片濾波器
輸入: 輸入圖片
,引導圖片
,窗格半徑
,修正項
輸出: 輸出圖片
第一部分
=
=
=
=
第二部分
=
=
第三部分
=
=
第四部分
=
=
第五部分
=
/*
是一個有線性計算複雜度的平均濾波器(mean filter)*/
特性
引導圖片濾波器保留邊界的特性,其實也可以被理解為是保留梯度的特性。由下圖可以看到,可以將一張圖分為細節圖層和基底圖層兩層,基底圖層的能量並無小幅度的升降,只有大幅度諸入梯度的能量升降;而細節圖層,只有雜訊式的小幅度能量升降。而引導圖片濾波器所作的,其實就是將細節層和基底層分離並保留基底層,也就是保留梯度而去除雜訊,達到平滑效果。
延伸功能
由引導圖片濾波器的特性,可以延伸出除了原先的平滑化外的幾項功能
細節加強
當一影像圖同時為輸出圖片和引導圖片時,可知最終得到的會是以該圖片的邊界為依據的基底層和細節層;因此,若要加強依影像之細節,可以將細節層的能量放大n倍後再次疊加回基底層,以達到增強細節的效果。
深度圖修整
無論是利用光場(light field)技術或是焦點合成(focal-stack)所製作的深度圖(depth map),在出製作完成時往往都會有一些坑洞(holo);而這時若使用引導影像濾波器,以原始影像為引導圖片、以深度圖為輸入圖片,便可得到一完整、無坑洞的深度圖。
參考文獻