論文閱讀:Density-aware Single Image De-raining using a Multi-stream Dense Network

2018 CVPR : DID-MDN

本篇文章是2018年CVPR的一篇文章,也比較出名,很多文章都會進行對比,主要提出了一種基於密度感知的多流密集網絡完成單幅圖像去雨。
在這裏插入圖片描述
DID-MDN:a density-aware multi-stream densely connected convolutional neural network . 用於聯合雨的密度估計和去雨。
該方法使網絡本身能夠自動確定雨密度信息,並根據估計的雨密度標籤有效地去除相應的雨條紋。
利用不同尺度特徵的多流密集連接的去雨網絡用於更好地描述不同尺度和形狀的雨紋。
同時創建了一個新的帶有雨密度標籤的圖像數據集。

殘差感知分類器------>估計出雨密度級別------>輸入到多流密集連接網絡
兩個主要階段:雨密度分類和雨條紋去除。
殘差感知分類器利用雨圖中的殘差分量進行密度分類來準確估計雨密度水平(大,中,小)。
將估計得到的雨密度信息融合到最終的多流密集連接網絡,該網絡考慮雨紋的尺度和形狀信息,然後完成雨紋去除。

創新之處:

1、提出了一種新的DID-MDN方法,該方法能夠自動確定雨密度信息,並根據估計的雨密度標籤有效地去除相應的雨條紋。
2、觀察到殘差可以作爲一種更好地表徵雨密度信息的特徵表示,提出了一種基於殘差感知的分類器,用於有效地確定給定雨圖像的密度級別。
3、同時合成了一個新的包含雨密度標籤信息合成數據集,該數據集由12,000張帶有雨密度標籤的訓練圖像和1,200張測試圖像組成。

前人工作:

1、現有的去雨方法通常被設計來完成特定的雨圖,卻沒有考慮到雨滴的不同形狀、尺度和密度。導致去雨通常會出現過度或者不足。即可能會出現去除圖像的一些重要信息,或者仍然存在一些清晰的雨紋。
2、解決方案之一,就是建立足夠大的數據集,涵蓋了雨紋的不同密度強度、不同方向、不同尺度。
3、另一種方法便是學習一種密度特定的模型。然而,這種解決方案在實際的去雨過程中缺乏靈活性,因爲對於給定的雨圖,需要密度標籤信息來決定選擇哪個網絡進行去雨。
4、對於視頻去雨,可以利用空間信息去除雨成分。其中,層先驗方法主要包括基於稀疏編碼的方法、基於低秩表示的方法、基於高斯混合模型GMM的方法。但是,層先驗方法的侷限是會過度平滑圖像細節。
5、基於卷積神經網絡的方法,則是通過一個CNN結構來學習一個從輸入的雨圖到對應的ground truth之間的映射。
6、結合不同級別(尺度)的卷積特徵可以更好地表示圖像及其周圍環境中的對象。
7、FCN:全卷積網絡。使用跳躍連接並在中間層添加高級預測層,有效利用不同尺度獲得的特徵,來生成多分辨率像素級預測結果。
8、U-Net:整體結構由一個捕獲上下文的收縮路徑和一個對稱的精確定位的擴展路徑組成。
9、HED模型:採用深度監督結構,並自動學習豐富的層次表示,用於融合解決邊緣和對象邊界檢測中具有挑戰性的模糊問題。
10、多尺度特徵。類似JORDER,利用一個多流網絡來捕獲具有不同尺度和形狀的雨紋成分。不同的是,JORDER使用了兩個具有不同擴張因子的卷積層來組合來自不同尺度的特徵,這篇文章則是使用密集連接的塊作爲構建模塊,然後將每個塊的特徵連接在一起,最終去除雨紋。

網絡結構:

在這裏插入圖片描述

主要由一個殘差感知的雨密度分類器和一個多流密集連接的去雨網絡組成。
殘差感知雨的密度分類器用於確定給定雨圖的雨的密度級別,得到一個密度標籤。
多流密集連接的去雨網絡在估計得到的雨密度信息的指導下有效去除雨紋。

具體工作:

1、殘差感知的雨密度分類器
《Video desnowing and deraining based on matrix decomposition 》分別使用兩種不同的先驗來描述小雨和大雨。
不同的是,使用CNN分類器估計得到的雨密度標籤被用於指導去雨過程。
使用12000張帶有雨密度標籤的雨圖訓練分類器,雨密度分爲小、中、大三類。

通常,訓練一個新的分類器的策略是在一個先前定義好的模型上進行微調,可以加速訓練,同時可以更好地泛化模型。
但是,直接微調一個深的模型不太有效。因爲CNN高級特徵更傾向於在輸入圖像中定位識別圖像,導致相對較小的雨紋信息不能很好的在高級特徵中被定位到,即在高級特徵中可能會丟失雨紋信息。

分類器網絡由特徵提取分類兩部分組成。
爲了從觀測y中估計殘差分量(^r),使用新數據集訓練了一個多流密集網絡,沒有標籤融合部分。
然後將估計出的殘差作爲訓練最終分類器的輸入。這樣,殘差估計部分就可以看作是特徵提取過程,等同去雨網絡裏面的特徵提取過程。
分類部分主要由三個3x3的卷積層、一個9x9的平均池化層和兩個全連接層組成。
即Conv(3,24)-Conv(24,64)-Conv(64,24)-AP-FC(127896,512)-FC(512,3)
前後數字分別代表輸入輸出的通道數,且最後一層由3個神經元組成,表示輸入圖像的雨密度等級(即低、中、高)。

**損失函數:**分爲特徵提取部分和分類部分兩部分的損失。
在這裏插入圖片描述
前者表示估計殘差分量的每像素歐氏損失,後者表示雨密度分類的交叉熵損失。

2、多流密集網絡

雨紋包含不同的尺度和形狀,小感受野捕獲小的尺度特徵小的雨紋,大感受野捕獲大的尺度特徵長的雨紋,因此組合多個尺度可以更好地捕獲雨紋成分。
每個stream都構建在引入的密集塊上,它們具有不同內核大小(不同的感受野)。Dense1 (7 × 7),Dense2 (5 × 5), Dense3 (3 × 3)
爲了進一步改善不同block之間的信息流,並利用每個dense-block的特徵來估計雨紋成分,提出了一種改進的連通性,將每個block的所有特徵連接起來進行雨紋估計。
並且不是像JORDER在每個stream中只利用兩個卷積層,而是在不同尺度的特徵之間創建短路徑,以增強特徵聚合並獲得更好的收斂性。
並且利用雨密度信息來指導去雨過程,向上採樣的標籤圖與來自所有三個流的雨條紋特徵連接起來。就是將標籤上採樣到與每個stream的輸出特徵相同的維度。
然後使用連接的特徵來估計出殘差雨紋信息,從輸入的雨圖像中減去殘差,得到粗糙的去雨圖像。再使用兩個Conv+ReLU層細化粗糙的去雨圖,進而得到最終的去雨圖像。

每個stream有6個dense-block:
在這裏插入圖片描述
其中,cat代表連接,DBi代表第 i 個密集塊,Sj代表第 j 個stream。
在每個流中採用不同的過渡層組合和內核大小。
Dense1:三個下采樣過渡層、三個上採樣過渡層,內核大小爲7x7
Dense2:兩個下采樣過渡層、兩個無採樣過渡層、兩個上採樣過渡層,內核大小爲5x5
Dense3:一個下采樣過渡層、四個無採樣過渡層、一個上採樣過渡層,內核大小爲3x3
在這裏插入圖片描述

損失函數:

基於CNN特徵的損失可以更好地改善語義邊緣信息,並進一步提高去雨圖像的視覺質量。
所以使用加權組合的三部分損失函數來訓練去雨網絡:
在這裏插入圖片描述
前兩部分是構建殘差圖像和生成去雨圖像像素級別的歐幾里得損失,LF去雨圖像的特徵損失定義爲:
在這裏插入圖片描述
其中,F爲非線性CNN變換,x^爲恢復後的去雨圖像。
這裏我們假設特徵尺寸爲w×h,通道爲c。計算了來自VGG-16模型的層relu1_2的特徵損失.

實驗:

對比方法:

DSC、GMM、Derain-Net、JORDER、DDN、JBO

合成數據集:

使用PhotoShop進行雨紋的添加,5%~35%、35% ~65%、 65% ~ 95%分別對應小、中、大三種標籤。
添加進雨密度標籤信息,生成一個新的數據集Train1:共4000x3張圖片對應小、中、大三種不同的雨密度標籤。
同樣合成了一個驗證數據集,Test1:共有1200張圖片
爲了驗證泛化能力,從DDN數據集中隨機挑選1000張圖片作爲驗證數據集Test2

訓練細節:

從輸入的586x586圖像中隨機裁剪得到512x512的圖像。
Adam優化算法
mini-batch size = 1
learning rate 從0.001開始,20個epoch之後除以10
訓練80x12000個迭代次數
使用權重衰減爲0.0001,momentum爲0.9
使用Pytorch框架
權重入F = 1
交叉驗證優化參數

分頁符

發佈了26 篇原創文章 · 獲贊 4 · 訪問量 4447
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章