Joint Bilateral Filter ─ difference weighting from guide source (noiseless image)

bilaterslide from ECCV10 "Guided Image Filtering" Kaiming He et al.

Distance weighting &  difference weighting

我們都知道bilateral filter是一種edge preserving smooth filter,其原理在上圖中可以看知;將weighting分為兩大類distance weightingdifference weighting

Edge preserving by difference weighting

這邊關於distance weighting的想法就如同普通的blur algorithm不贅述,而difference weighting則是控制edge preserving的關鍵,若參考值與pivot(通常是中央點)值相差太多,則降低weighting;這裡交由一個threshold去決定什麼叫做差太多(epsilon filter),或是再造一個difference 的Gaussian model根據與pivot的差值來weighting(bilateral filter)。如此一來就可以在edge處造成一個權重的斷層,保護smooth不會參考到edge外的值。

Super-noisy case: Joint Bilateral filter

但是在很多時候,當noise的大小超過edge的差時,difference weighting的效果就出不來了。這時候我們需要一個穩定的結構影像來得到可靠的difference weighting─甚至不是同一張影像也沒關係。這裡就點出了joint bilateral filter的核心,參考一個穩定的guide image得到difference weighting。

bilater2

 

Guide Image

Guide image怎麼來? 舉幾個例子

  • 以denoise的例子來說,guide image從短曝的低ISO影像來,通常是打閃燈。(Digital Photography with Flash and No-Flash Image Pairs, Petschnigg et al.)
  • 以stereo matching產生depth來說,會有很多depth破洞,guide image從彩色影像來! (HTC M8你聽到了嗎?) (Weighted Joint Bilateral Filter with Slope Depth Compensation Filter for Depth Map Refinement, T. Matsuo et al.)
  • 以deblur來說,會有很多ringing artifact,guide image從upsampled image來 (Progressive Inter-scale and Intra-scale Non-blind Image Deconvolution, Lu Yuan et al.)
  • 以screen space ambient occlusion(SSAO)來說,為了少sampling一些點使用random pattern kernel產生的shading noise,guide image從z-buffer來。(Screen Space Ambient Occlusion (SSAO) - Nvidia)
  • 你們看看光是把bilateral filter加一個joint就可以產生兩倍的論文拉!!

 

2 Replies to “Joint Bilateral Filter ─ difference weighting from guide source (noiseless image)”

Leave a Reply

Your email address will not be published. Required fields are marked *