論文閱讀:Recurrent Squeeze-and-Excitation Context Aggregation Net for Single Image Deraining

2018 ECCV:RESCAN

本篇文章是2018年ECCV的一篇文章,也很出名,主要是提出了一種遞歸的SE上下文擴張網絡來完成單幅圖像的去雨。

在這裏插入圖片描述

(單欄排版屬實很…)

RESCAN: REcurrent SE Context Aggregation Net
網絡主要基於深度卷積和神經網絡,同時上下文信息對於去雨來說也很重要
採用擴張卷積神經網絡來獲得更大的感受野,獲取更多的上下文信息。
根據強度和透明度,通過SE模塊爲不同的雨紋層分配不同的α值。
並且,雨紋層會與其他層相互重疊,所以不能通過一個階段來去除雨紋。本文將去雨過程分爲多個階段,然後通過一個遞歸神經網絡來保存前一階段的有用信息,使之有益於下一階段的雨紋去除。每個階段使用具有多個卷積層的上下文擴張網絡,且每個通道對應一種雨紋。
擴張卷積指數增長-------->得到低深度的大感受野----------->獲得更多的上下文信息

創新之處:

1、提出了一種逐階段去除雨紋的統一的深度網絡RESCAN。每個階段使用上下文擴張網絡來去除雨紋。SE塊針對不同的雨紋層根據他們的屬性設定不同的α值。
2、考慮了不同階段之間的去雨的相關性。通過結合RNN結構和三種遞歸單元,得到前一階段的去雨的有效信息,用於指導後一階段的去雨。本網絡適合用於去除大雨天氣下複雜的雨紋。

前人工作:

1、傳統方法:判別稀疏編碼、低秩表示、高斯混合模型
2、現有方法存在的兩個限制約束:
一方面,空間上下文信息對去雨比較有用,現有的大部分方法都是基於圖像patch而忽略了大區域的上下文信息
另一方面,現有的方法都是單獨地每個階段去除雨紋,沒有考慮不同階段之間的相關性
3、 視頻去雨方法:
Garg and Nayar 提出一種基於光學特性和時間動力學來描述雨紋的外觀模型。
zhang 利用了視頻中雨的時間和色彩特性
Bossu等人基於雨紋的方向直方圖來檢測雨
4、單幅圖像去雨方法:
傳統方法主要包括:字典學習、高斯混合模型、低秩表示等。
Kang 基於字典學習將雨圖的高頻成分分解爲雨成分和無雨成分
Wang 定義了一個三層的層次結構
Luo 提出了一種基於圖像塊的判別稀疏編碼框架
Gu 等人將分析稀疏表示(ASR)和合成稀疏表示(SSR)結合,解決了多種圖像分解問題
而GMM是作爲一種先驗將雨圖分解爲背景層和雨紋層
Chang等人利用雨紋的低秩特性來完成分層
Zhu等人將三種不同的圖像先驗進行了組合
基於學習的方法:
DerainNet:首先將深度學習引入到去雨問題中來
DDN:將雨圖分解爲高頻和低頻成分,然後利用深度殘差網絡將高頻成分映射到雨紋層。
JORDER:設計一個深層遞歸擴張網絡,聯合檢測和去除雨紋。
ID-CGAN:使用生成對抗網絡防止從雨圖中提取背景圖像時背景圖像的退化,並使用感知損失進一步保證視覺質量。
SMRNet :設計了一種新型的多級卷積神經網絡,該網絡由多個並行的子網絡組成,每個子網絡可以感知不同尺度的雨條紋。
5、本篇文章靈感主要來自SMRNet:Single Image Deraining using Scale-Aware Multi-Stage Recurrent Network

具體工作:

1.雨圖建模
在這裏插入圖片描述---->在這裏插入圖片描述------>在這裏插入圖片描述
其中,A是全局大氣光,α0是場景傳輸圖,αi 表示雨紋層或霧層的亮度。

具體工作:

1、SE上下文聚合網絡(SCAN):
一個使用SE模塊實現的擴展上下文聚合網絡

網絡結構在這裏插入圖片描述

輸入一個含雨的圖像O,經過網絡的訓練,得到雨紋圖R,然後進行一個作差,得到去雨的背景圖B。
如圖,綠色塊是圖像(O是輸入的含雨圖像、R是雨紋圖像、B是無雨的背景圖),藍色塊是特徵圖,紅色塊是卷積核(通過擴張卷積擴大感受野,Dilation Factor代表卷積核中插入點的間隔數),黃色塊代表SE模塊獲得的通道權值。圖中,網絡深度depth爲6。
可以觀察到圖中,DF從1變爲2變爲4,逐步增加感受野。
第一層L0編碼將圖像轉換成特徵圖,最後兩層L4,L5進行解碼,所以不進行擴展操作。
L5之前的卷積核都是3x3的,最後一層L5爲了恢復RGB圖像的RGB通道或者灰度圖像的灰度通道,採用1x1的卷積核。除了最後一層外每一層的卷積操作增加一個非線性操作。
同時,感受野隨DF增大而增大,每使用一次擴張卷積,就往卷積核點間隔增加對應DF數。

具體參數:
在這裏插入圖片描述

同時,使用SE學習得到α值,對卷積計算得到的特徵圖進行重新加權。
特徵圖中,將每個通道看做一個雨紋層的一部分。
在這裏插入圖片描述
如上式,給不同的雨紋層Ri分配不同的αi,並不斷地更新這個權值。
卷積運算隱式地爲每個通道引入了權值,但是這些隱式權值並不是針對每個圖像的。
爲了顯式地爲每個圖像導入每個網絡層上的權值,使用SE塊擴展每個基本卷積層,爲每個項的每個通道計算標準化的alpha值。

SCAN不使用 BN(batch normalization)。
BN可以減少特徵圖的內部協變量轉變,使用BN對每個標量特徵進行歸一化,會使其均值和單位方差均爲零。使得這些特徵相互獨立同分布。
但是我們建過程中,不同層的雨紋在方向、顏色和形狀上的分佈是不同的。
不使用BN可以節省大約40% 的內存使用。

2、遞歸SE上下文聚合網絡(RESCAN):

在這裏插入圖片描述

因爲存在雨紋層的相互重疊問題,不能簡單的一個階段去除雨紋。
遞歸結構多階段去雨:(靈感來自JORDER和SMRNet)
在這裏插入圖片描述
每個階段雨紋不斷疊加。
與其他兩種方法不同的是,他們只使用最後階段的輸出圖像作爲當前階段的輸入,沒有考慮這些階段之間的特徵連接。
{O1,O2, · · · , Os}可以看作是雨紋干擾程度降低的雨圖像時間序列。
使用RNN結合存儲模塊更好地利用上一階段的信息指導後一階段的學習。

在這裏插入圖片描述----->在這裏插入圖片描述
其中R¯is是第s階段分解的第i個雨紋層,xs−1是第(s−1)個階段的隱藏狀態。
Rs的計算方法是將不同的alpha值的R¯i進行相加。

三種不同的遞歸單元變量:
ConvRNN 、ConvGRU 、ConvLSTM

ConvGRU:
門控遞歸單元GRU常用於序列模型,這裏採用卷積版本的ConvGRU。

在這裏插入圖片描述
其中,xjs代表第s階段第j層的特徵圖,可以通過同一層前一階段的xjs-1和同一階段前一層的xj-1s計算得出。
σ 是sigmoid函數,圈點代表點乘,W是擴張卷積核,U是3x3或者1x1的普通核。

3、遞歸框架:

對比了加性預測和全預測,都使用Os和之前階段作爲s-th階段的輸入。

加性預測:
在每個階段,網絡只預測前一個預測與真實圖像之間的殘差。它將以前的特徵圖和預測作爲輸入,可以表示爲:

在這裏插入圖片描述
其中,x s-1代表前一階段的預測。
損失函數爲:
在這裏插入圖片描述
Θ 表示網絡參數。

全預測:
在每個階段,都進行雨紋的預測。
在這裏插入圖片描述
其中,^Rs表示第s階段預測的全雨紋, ^Os+1 = B + 剩下的雨紋。

損失函數:
在這裏插入圖片描述

實驗:

合成數據集: Rain800、Rain100H
真實世界數據集:之前的 論文裏面JORDER、ID-CGAN

訓練參數
Nvidia 1080Ti GPU
Pytorch
batch-size= 64
SCAN的網絡深度d = 7 感受野35x35
非線性操作:leaky ReLU α = 0.2
ADAM優化
start learning rate = 0.005
15000和17500次迭代時除以10

對比方法:
ID、DSC、LP、DDN、JORDER

結果:
在這裏插入圖片描述

三種遞歸單元和兩種遞歸框架的對比:

在這裏插入圖片描述

靈感文章:

接着粗略看了一下靈感文章:《Single Image Deraining using Scale-Aware Multi-Stage Recurrent Network》
國立新加坡大學的 RuoTeng Li 在17年預發表的文章,兩篇很像。

網絡結構 SMRNet:

在這裏插入圖片描述

輸入含雨圖像,首先利用DenseNet提取出整體特徵,注意這裏的DenseNet去掉了轉換層(1Conv+ 1Pooling)所以不進行下采樣。
然後將提取到的特徵輸入到並行的子網絡中,遞歸的子網絡用於估計不同密度不同尺度的雨紋圖Ri,然後進行疊加求和得到這一階段的雨紋圖。再與輸入圖像進行作差,得到這一階段的去雨圖像。這些並行的子網絡是帶有ResNet捷徑連接的循環卷積層。
再將上一階段的預處理圖像輸入到下一階段,進行剩餘雨紋的預測估計,完成多階段去雨,得到乾淨的去雨圖像。

同時也討論了去除霧紗雨紋積累,SMR與子網絡的集成SMRNet-Veil。

雨的模型:

在這裏插入圖片描述

頁符

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