深度學習在圖像去噪方面最近有哪些進展,與傳統方法相比效果如何?


瀉藥。

深度學習依賴於數據,而在模擬圖像去噪上,數據(也就是乾淨圖像)是非常充足的。

與傳統方法相比,深度學習可以在固定模式的圖像去噪(比如高斯白雜訊)問題上取得更高的PSNR和SSIM,圖像質量上也會有一定的提升。

用深度學習做圖像去噪不是一下子就這麼成功的,這是一個緩慢不斷上升的過程。我給出基於我的認識的一個TimeTable,如下:

09年,有一篇文章Natural image denoising with convolutional networks,NIPS, 2009. 效果一般。只是比BLS-GSM, FoE的PSNR稍微好一點。

在2012年,出現了兩個用深度學習做去噪的工作。一篇是Image Denoising and Inpainting with Deep Neural Networks, NIPS, 2012. 另一篇是Image denoising: Can plain neural networks compete with BM3D?, CVPR, 2012. 後一篇比較出名一些,一般稱為MLP模型。

這時候的網路都不是很深,只有3層左右。效果也就是和BM3D差不多的水平。

在2014-2015年,出現了一些判別學習的方法出現,比如CSF和TNRD,這兩個方法雖然不是明確的深度學習方法,但也是學習幾層filter去去噪,可以放在深度學習的框架內。

CSF:Shrinkage Fields for Effective Image Restoration. CVPR,2014.

TNRD:On Learning Optimized Reaction Diffusion Processes for Effective Image Restoration. CVPR, 2015.

這些方法的PSNR/SSIM基本超過了BM3D,在速度上也不分伯仲。

2016年,Chunhua Shen老師組有一個工作發表在NIPS上,我覺得效果是非常不錯的。

Image restoration using very deep convolutional encoder-decoder networks with symmetric skip connections,NIPS, 2016.

在2017年,我們組有一個工作:.Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising. IEEE Transactions on Image Processing,2017。可以透露一點的是,這個方法用到了很多tricks,核心trick在batch normalization那一步。

不過我個人覺得,從研究的角度講,我不主張純刷「去高斯白雜訊」這個問題的performance,這也是Michael Elad的觀點。他很出名的一句話是「who cares PSNR?!」。因為高斯白雜訊在現實的相機里是基本不存在的,只是作為擬合的雜訊用來測試模型的效果。如果要刷performance,更應該去做真實雜訊的去噪問題,這樣才是做實際應用。單純用深度學習去刷高斯白雜訊去噪的performance就顯得非常尷尬。

雖然圖像去噪這個問題很小,但是還是有研究的意義的。因為圖像去噪是所有圖像修復模型的基礎,如果一個模型想在圖像修復領域裡得到認可,那麼這個模型首先要在圖像去噪這個問題上試一把。

我鼓勵大家把高斯白雜訊作為一個研究的問題,理解這個問題有助於提出新的圖像修復的模型。同時我鼓勵大家去刷真實去噪這個問題的performance,這才是真正有使用價值的演算法。

在真實圖像去噪上,數據(也就是真實雜訊圖像和相應的乾淨圖像)是非常不充足甚至是極度匱乏的。在真實雜訊去噪上,目前也有用深度學習的演算法,比如:

A Holistic Approach to Cross-Channel Image Noise Modeling and Its Application to Image Denoising, CVPR, 2016.

這個方法就是用之前提到的MLP訓練得到真實雜訊圖裡的雜訊分布情況,然後用Bayesian Nonlocal Means Filter演算法做去噪的。

後來我本人開始考慮真實雜訊圖裡R, G, B三個通道理的雜訊分布不一樣的情形,並基於傳統的低秩模型提出了一個新的模型(自己的文章加粗一下,不要見怪):

Multi-channel Weighted Nuclear Norm Minimization for Real Color Image Denoising. ICCV, 2017.

目前真實去噪的一大難點就在於如何得到Ground Truth。

目前一般採取多次拍攝固定場景再取平均的方法,比如A Holistic Approach to Cross-Channel Image Noise Modeling and Its Application to Image Denoising, CVPR, 2016.文章里就用這個方法做了一個小的資料庫,裡面一共有15張512x512的圖。

另外的辦法就是拍攝一張低ISO的圖片和一張高ISO的圖片,然後通過一系列後續處理使得這兩張圖看起來像是在同樣的條件下拍攝得到的。德國的Roth組就用這個想法建立了一個大的資料庫,一共有50張圖,每張圖截出20張512x512的小圖,一共1000張。文章:Benchmarking Denoising Algorithms with Real Photographs. CVPR, 2017.

另一大難點是真實圖像里的雜訊是信號相關的,沒有一個明確的分布可以模擬。

**這部分等待補充**

其實這真實圖像去噪問題還是有一定的前景。這個問題剛開始被正式地提出,關注的人應該不多,競爭不夠激烈。但是工業上對這方面的技術又有一定的需要,比如SONY, CANON, NIKON等相機廠商都需要這樣的技術使得他們的相機拍攝到更清晰的圖片。而中國的一些生產相機鏡頭的公司比如DJI也需要這樣的技術。未來人工智慧會越來越普及,鏡頭會越來越深入到人們生活的方方面面,對清晰圖片的需求會越來越大。

大家如果有興趣,或者不知道做什麼問題切入到人工智慧,計算機視覺領域,那麼進入到真實圖像去噪這個應用應該是一個性價比很高的選擇。

先寫到這裡,等有空我再更新。


慣例謝邀。@徐君 的答案總結得很好。我按著他的思路稍微補充一下。

  1. 我之前在做傳統方法(自從Deep Learning出來以後,其他的方法被都叫傳統方法了...)的降噪。降噪可以被當做最簡單的inverse problems來做,也是很多人用來驗證一些signal regularizer(比如常見的dictionary learning, GMM模型)的常用圖像應用。
  2. 跟其他被Deep Learning刷PSNR到新高的low-level vision領域,比如Super-resolution, Inpainting, Deblocking這些相比,在Denoising這個方向上,Deep Learning罕見地沒有大幅度地刷高baseline。包括 @徐君 提到的那兩篇文章,NIPS2012和CVPR2012,也有類似的結論,認為只能做到comparable的結果。我也一直在思考這個問題。個人的看法是,noise這種對信號處理領域的人來說最簡單的corruption,沒有和數據本身的相關性(這裡我只針對i.i.d.的additive noise的情況,noise完全uncorrelate with data)。而Deep Learning擅長overfit到數據結構,但這似乎對降噪的幫助不如其他的問題那麼明顯。
  3. 我贊同 @徐君 的一個觀點:除了刷PSNR這種objective metric以外,提高主觀的降噪效果也很重要。比如提高visual quality這類subjective metric。因為很多時候,專註於保留低頻信號的演算法,在過度在乎PSNR時候經常會導致圖像oversmooth。這樣雖然算出來的error小,但看起來並不好看。還有就是現在很多相機,或者在視頻製作的時候,其實刻意地希望保留一定的structure noise,這樣產生一種比較有質感的效果,反而有助於提高照片質量。
  4. 然後Shrinkage Field和TNRD這兩篇文章是屬於對sparse coding的傳統iterative method進行unfolding成為feed forward network的工作,我覺得做得很贊。我最近的工作也在follow這裡兩個工作。我覺得這種approach可以給更多的inverse problem提供一種principled approach,便於更好地更理智地設計網路結構來解決一切特殊的imaging問題。我近期的工作在擴展這個思路來解決一些高維度問題。
  5. 推薦一個對deep learning很好的總結:flyywh/Image-Denoising-State-of-the-art。這裡可以找到很全的各種state-of-the-art演算法的鏈接。
  6. 最後安利一波。基於(3)的觀察結論,我們組最近的一個工作嘗試用一些sematic information來指導單純意義上提高PSNR的降噪演算法。基本思路是串聯一個單純最大化PSNR的denoiser到一個有更高級information的視覺網路,比如做classification和segmentation的網路。這樣圖像類別和分割的信息,可以用來指導降噪:比如是動物類的圖片,在降噪時候對於毛髮就會更有效地保留高頻信息;比如有在降噪大海和天空的時候,海浪的水紋可以得到保留,但天空卻沒有這種fine texture。
  7. preprint已經放在arxiv上了:A Deep Learning Approach。正式版估計會近期submit到會議上。


推薦閱讀:

如何評價商湯科技CVPR2016新作DeepFashion?
商湯科技 SenseTime 有哪些牛人?
能通過一張照片(2D)得到3D的模型嗎?
單目視覺里程計演算法深度信息的提取?雙目的原理和單目的不同?
不用結構光,現在的雙目立體視覺有成熟的產品嗎?

TAG:圖像處理 | 計算機視覺 | 深度學習DeepLearning |