[論文導讀]Deep Multi-scale Convolutional Neural Network for Dynamic Scene Deblurring

Adam He
Sep 20, 2023

--

論文連結:https://openaccess.thecvf.com/content_cvpr_2017/papers/Nah_Deep_Multi-Scale_Convolutional_CVPR_2017_paper.pdf

1. Introduction

在這項工作中,我們提議了一種多尺度的卷積神經網絡,該網絡能夠端到端地恢復由於各種原因導致的模糊圖像。同時,我們提出了一種模仿傳統coarse-to-fine方法的多尺度損失函數。此外,我們還提出了一個新的大型數據集,該數據集提供了由高速攝影機獲得的真實模糊圖像和對應的清晰圖像配對。通過在此數據集上訓練的模型,我們通過實證展示了我們的方法在動態場景去模糊方面不僅在質的方面,而且在量的方面都達到了領先的水平。

2. Blur Dataset

我們使用GOPRO4 Hero Black相機來生成我們的數據集。我們用GOPRO相機拍攝了240 fps的影片,然後對連續的latent幀進行不同數量(7–13)的平均,以產生不同強度的模糊。例如,平均15幀模擬以1/16快門速度拍攝的照片,而相應的清晰圖像快門速度為1/240。此外,每個模糊圖像對應的清晰圖像被定義為用於製作模糊圖像的清晰幀中的中間幀。最後,我們的數據集由1280x720解析度的3214pairs模糊和清晰圖像組成。

3. Proposed Method

在我們的模型中,較細緻的圖像去模糊得到了較粗糙的尺度特徵的幫助。為了同時利用粗糙和中等級別的信息,同時保留細緻的信息,我們網絡的輸入和輸出採用Gaussian pyramids的形式。請注意,大多數其他的coarse-to-fine的網絡都只接受一張圖像作為輸入和輸出。

3.1. Model Architecture

除了multi-scale架構,我們使用了修改過的residual network架構來作為我們模型的buliding block架構。使用residual network架構可以擁有比一般CNN更深層的網路結構,除此之外,模糊圖像和清晰圖像大致來看是相似的,因此讓模型去學兩者之間的差異是有效且合理的。我們發現移除原本residual network在shortcut connection後的ReLu可以加速模型訓練時的收斂速度。我們稱修改過的buliding block為ResBlock。如下圖所示。

通過堆疊足夠數量的卷積層和ResBlocks,每個尺度的receptive field都會擴展。詳細內容將在下面的段落中描述。為了保持一致性,我們按照解析度遞減的順序定義尺度級別(即最精細的尺度為第1級)。除非另有註明,我們總共使用K = 3的尺度。在訓練時,我們將輸入和輸出Gaussian pyramids塊的解析度設置為{256 × 256, 128 × 128, 64 × 64}。連續尺度之間的比例為0.5。對於所有卷積層,我們將filter大小設置為5 × 5。。整體架構如下圖所示。

Coarsest level network

在network最粗糙level(最下方的sub-network)前方的第一層convolution layer將1/4 resolution,64x64大小的圖片轉成64個feature map。然後接著19層的ResBlock,以及最後一層conv來將feature map轉成輸入時的維度。這裡的每一個conv都有做zero padding來維持resolution,最後總共會有40層的conv(一個ResBlock裡面會有兩層conv)。因為一共有三個level,所以最後總共會有120層conv。因此在最粗糙的level(最下方的)就能有足夠大的receptive field來cover整個patch,在此level的最後會生成一張粗糙level的清晰圖片。除此之外,粗糙level的output會傳送給下一個level(較精細的level)。為了將下方level的輸出往上傳,需要經過一層upconvolution layer,來讓圖片的大小相同。由於清晰圖片和模糊圖片都擁有low frequency的資訊,所以透過upconvolution學習一個合適的features能夠幫助移除多餘的資訊。實驗表示這樣的作法對結果有更好的表現因此我們會將upconvolution的結果concate到上方level要input的模糊圖片來作為上方level的輸入。

Finer level network

Finer level network和下方的粗糙level的network架構是相同的,不同點在於精細level的network第一層除了接收模糊圖片當作輸入外,還會接收來自前一個level輸出的feature,並且將兩者concate起來。最後除了最上方那層,精細level的輸出同樣會做upconvolution並將結果傳給上方。

Multi-scale content loss

基本上,coarse-to-fine的方法希望每一個intermidiate的輸出結果都能成為對應scale的清晰圖片。因此我們對每一個level的輸出都去計算MSE來作為content Loss。具體公式如下:

Lk代表level k模型的輸出,Sk代表level k的ground truth,ck代表channel數量,wk代表寬度,hk代表長度。

Adversarial loss

我們建立了discriminator來分辯deblurred和ground truth哪一個是真正的清晰圖片,discriminator架構如下:

我們利用Discriminator來計算adversarial loss:

G代表generator,也就是我們的deblurring model,D就是前面建立的discriminator,G要設法去降低Ladv,而D要設法去提升Ladv。

最後將adversarial loss和content loss加總起來,如下:

這裡設定lambda為0.0001。

4. Experimental Results

5. Conclusion

在本文中,我們提出了一種去模糊神經網絡,用於清晰圖像估計。與先前的研究不同,我們的模型避免了與核估計相關的問題。所提出的模型遵循coarse-to-fine的方法,並在多尺度空間中進行訓練。我們還構建了一個真實的地面真值模糊數據集,使得有效的監督學習和嚴格的評估成為可能。實驗結果顯示,我們的方法在質量和數量上均優於當前最先進的方法,同時速度更快。

--

--