圖像降噪的一些總結
圖像降噪,是最簡單也是最基礎的圖像處理逆問題(inverse problem)。
大多數情況下,圖像降噪都是ill-posed的問題。因為通過有噪音的觀察,總是無法逆向求得唯一正確的干凈圖片。就好像讓你解一個超越方程一樣,不借助其他額外的條件信息,是沒有唯一解的。
降噪問題(這里只討論additive noise),用最簡單的數學語言一句話就可以描述清楚:
y = x + e
y是你觀察到的帶噪音的圖像,e是噪音,x是干凈無噪音的圖像。只已知y,外加e的概率分布,降噪問題需要你去尋找最接近真實值的x。
說起來降噪問題如此簡單明了,但自從信號處理開宗立派起,研究人員一直在孜孜不倦地提出各種降噪算法。我最早也沒搞懂,大家何必糾結於這么簡單的問題,而不去考慮更復雜,更貼近實際的花哨應用?
然而世間萬物的規律,萬變不離其中:不管多復雜問題,其本質往往都有簡單的起源。而看似簡單的問題,往往卻是高手一身修行的追求:就好像考察一個書法家功力,看他寫一個永字就好;看一個川菜廚師功力,看他做一道開水白菜就好。
科研之道和其他道也類似,簡單的任務見到的是這個approach的潛力:這僅僅是起點,而不是終點。一個好的科研者應該要着眼於起點,追求問題的本源,然后拓展到未來,此為道。只追求花哨的應用,拼湊堆疊,舍本求末甚至本末倒置,只能為術。
好吧,扯遠了。我就是想說,圖像降噪問題,最簡單也最困難。
那么要怎么解好這個逆問題呢?
降噪的本質,是要從觀測值中分離噪音,保留圖像。算法的關鍵,是要掌握並借助於圖像本身獨特的性質和結構。具體用什么性質,這個流派就多了,我在這里就先提供一個不完全總結,關於近期的一些好的圖像降噪算法。
根據算法利用了什么圖像性質,或者用到的手段,我大概把各種算法分成如下幾類:
- 濾波類
- 稀疏表達類
- 外部先驗
- 聚類低秩
- 深度學習
我根據我的了解,對於每一個類比總結了一個常見算法列表。
入選的算法要滿足:1.近期(05年以后)提出的算法,2.有可復現的代碼提供,3.可以得到很好,或者接近state-of-the-art的效果。
由於我的水平有限,希望同行高手來幫這個public repo添磚加瓦。
以下是可復現的圖像降噪算法列表,包含了簡要的算法介紹,若想了解算法詳情,可在該鏈接中查看:https://github.com/wenbihan/reproducible-image-denoising-state-of-the-art
Filter
- NLM
A non-local algorithm for e denoising (CVPR 05), Buades et al.
- BM3D
Image restoration by sparse 3D transform-domain collaborative filtering (SPIE Electronic Imaging 2008), Dabov et al.
- PID
Progressive Image Denoising (TIP 2014), C. Knaus et al.
Sparse Coding
- KSVD
Image Denoising Via Sparse and Redundant Representations Over Learned Dictionaries (TIP 2006), Elad et al.
- LSSC
Non-local Sparse Models for Image Restoration (ICCV 2009), Mairal et al.
- NCSR
Nonlocally Centralized Sparse Representation for Image Restoration (TIP 2012), Dong et al.
- OCTOBOS
Structured Overcomplete Sparsifying Transform Learning with Convergence Guarantees and Applications (IJCV 2015), Wen et al.
- GSR
Group-based Sparse Representation for Image Restoration (TIP 2014), Zhang et al.
Effective Prior
- EPLL
From Learning Models of Natural Image Patches to Whole Image Restoration (ICCV2011), Zoran et al.
- GHP
Texture Enhanced Image Denoising via Gradient Histogram Preservation (CVPR2013), Zuo et al.
- PGPD
Patch Group Based Nonlocal Self-Similarity Prior Learning for Image Denoising (ICCV 2015), Xu et al.
- PCLR
External Patch Prior Guided Internal Clustering for Image Denoising (ICCV 2015), Chen et al.
Low Rank
- SAIST
Nonlocal image restoration with bilateral variance estimation: a low-rank approach (TIP2013), Dong et al.
- WNNM
Weighted Nuclear Norm Minimization with Application to Image Denoising (CVPR2014), Gu et al.
- Multi-channel Weighted Nuclear Norm
Multi-channel Weighted Nuclear Norm Minimization for Real Color Image Denoising (ICCV 2017), Xu et al.
Deep Learning
- SF
Shrinkage Fields for Effective Image Restoration (CVPR 2014), Schmidt et al.
- TNRD
Trainable nonlinear reaction diffusion: A flexible framework for fast and effective image restoration (TPAMI 2016), Chen et al.
- DnCNN
Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising (TIP2017), Zhang et al.
Combined with High-Level Tasks
- Meets High-level Tasks
When Image Denoising Meets High-Level Vision Tasks: A Deep Learning Approach (Arxiv2017), Ding Liu, Bihan Wen, Xianming Liu, Thomas S. Huang.
Benchmark
- Darmstadt
Benchmarking Denoising Algorithms with Real Photographs (CVPR 2017), Tobias Plotz, Stefan Roth.
下面對於這幾類算法的一些簡略地解釋:
濾波類:相對比較傳統的一類算法,通過設計濾波器對圖像進行處理。特點是速度往往比較快,很多卷積濾波可以借助快速傅里葉變化來加速。近期的一些算法例如BM3D也結合了一些block matching來利用圖片的self-similarity,達到了很棒的效果。
稀疏表達類:自然圖片之所以看起來不同於隨機噪音/人造結構,是因為大家發現他們總會在某一個模型(synthesis model或者analysis model)下存在稀疏表達。而我們想排除的噪音往往無法被稀疏化。基於這個判別式模型(discriminative model),用稀疏性來約束自然圖像,在很多逆問題里取得了拔群的效果。
外部先驗(external prior):如果從有噪音的圖片本身無法找到規律,我們也可以借助其他類似但又沒有噪音的圖片,來總結圖片具有的固有屬性。這一類方法利用的外部圖片來創造先驗條件,然后用於約束需要預測的圖片。最有代表性的工作,就是混合高斯模型(Gaussian Mixture Model)。嚴格來說,基於深度學習的算法也可以歸於這個類。
聚類低秩(Low-Rankness):除了可稀疏性,低秩性也是自然圖片常見的一個特性。數學上,可稀疏表達的數據可以被認為是在Union of low-dimensional subspaces;而低秩數據則是直接存在於一個Low-dimensional subspace。這個更嚴格的限制往往也可以取得很好的降噪效果。
深度學習(Deep Learning):這類可以歸於外部先驗的子類,但由於近期大熱,我單獨拿出來說說。如果說解決逆問題的關鍵,是尋找一個好的圖像約束器(regularizer),那么我們為什么不用一個最好的約束器?深度學習方法的精髓,就在於通過大量的數據,學習得到一個高復雜度(多層網絡結構)的圖片約束器,從而將學習外部先驗條件這一途徑推到極限。近期的很多這類工作,都是沿着這一思路,取得了非常逆天的效果。
根據我的經驗,基本上主流的圖像降噪算法,都可以被放到這上面的5種類型中。
具體論文下載和代碼見:https://github.com/clxiao/Image-Denoising-State-of-the-art