論文閱讀:Depth-attentional Features for Single-image Rain Removal

2019 CVPR:DAF-Net

這是2019CVPR的一篇文章,主要創新點是引入了深度信息完成去雨。

在這裏插入圖片描述

本篇文章首先指出了現有的方法由於忽略了物理特性,導致去雨的有效性較低。同時分析了雨圖成像機理,指出遠處的物體更多地是被霧遮擋,近處的則是雨紋,分析了受場景深度影響的雨的視覺效果,並共同制定了一個帶有雨條紋和霧的雨成像模型;然後,並準備了一個新的數據集。然後設計了一個端到端的深度神經網絡,我們訓練它通過深度引導的注意力機制來學習深度注意力的特徵,並回歸剩餘映射來產生無雨的圖像輸出。

創新之處:
1、引入了深度信息,制定了基於場景深度的雨的視覺效果的雨成像過程,實現了雨條紋和霧的合成。
2、設計了一個端到端的神經網絡,形成深度指導的注意力機制學習深度注意特徵,根據注意權值對殘差圖進行迴歸,去除輸入雨圖像中的雨條紋和霧。
3、準備了一個新的雨去除數據集。

前人工作:
由於現有數據集的限制,雨圖數據都是通過清晰圖像加上雨紋合成的,因此這些方法主要關注雨紋圖像。
傳統方法:
1、最早期通過設計基於低水平圖像統計的手工先驗來去除圖像中的雨紋。
2、Barnum 結合條紋模型和雨的特徵,在頻域內檢測和去除雨紋。
3、Chen 通過一個低秩先驗去除雨紋,因爲雨紋通常具有相似和重複的模式。
4、Li 採用基於高斯混合模型的patch先驗對背景和雨層進行去除雨紋。
5、Zhu 估計主導降雨方向並提出了一種雙層聯合優化方法來迭代地將雨紋從背景中分離出來。
基於CNN:
1、Fu 從訓練數據中學習無雨層和雨層之間的映射函數。DerainNet
2、Yang 創建了一個多任務網絡,共同檢測和去除降雨。JORDER
3、Fu 利用先驗知識從輸入圖像中構造出基層和細節層,然後通過深度網絡從細節層學習殘差。DDN
4、Li 使用SE-Net建立了一個上下文擴展網絡,迭代地預測階段殘差。RESCAN
5、Zhang開發了一種殘差感知分類器來確定雨密度,並將幾個緊密相連的網絡堆疊起來,以此來估計殘差。DID-MDN
同時:
Garg和 Nayar 通過考慮場景深度和光源,開發了一種基於圖像的降雨生成算法。

網絡結構

在這裏插入圖片描述

其中,
藍色部分是:用於從輸入中提取多分辨率特徵的卷積神經網絡
綠色部分是:用於預測深度圖的解碼器分支
橙色部分是:學習注意權重的深度引導注意機制
黃色部分是:另一個解碼器分支,用於產生深度注意特徵和注意權重;
最後,我們使用一組組卷積對深度注意特徵(粉紅色部分)進行殘差預測,並將其加入到輸入中,生成輸出的無雨圖像。

成像具體工作:
1、雨成像模型
在這裏插入圖片描述

在自然界的成像中,造成視覺阻擋的不僅有雨紋,還有雨帶來的霧。一般情況下,認爲離相機近的受雨紋影響比較大,離相機較遠的受霧的影響比較大。
如圖所示,是雨紋強度隨深度影響的曲線,其中最大雨紋強度爲tr0.
1、相機附近的場景對象(d≤d1),其關聯的圖像區域以雨紋爲主,霧較小,即其中d1 = 2fa, f爲焦距,a爲雨滴半徑,雨紋強度爲最大雨紋強度tr0.
2、場景對象遠離相機(d≥d2≫d1),其相關的圖像區域將由霧與小雨紋組成,當d增加時,tr趨於0。
3、隨着d從d1增加到d2,雨條紋強度將下降,霧強度將上升。

2、雨圖像的公式:
在這裏插入圖片描述
其中,I(x)爲場景亮度清晰的無雨圖像;R(x)∈[0,1]表示降雨層;A0爲大氣光,假設爲一個全局常數;且A(x)∈[0,1]表示霧層;
具體表示如下圖:
在這裏插入圖片描述

雨層:
在這裏插入圖片描述
其中R pattern(x)∈[0,1]是圖像空間中均勻分佈的雨條紋的強度圖像;tr(x)爲依賴場景深度的雨條紋強度圖,*代表着像素乘法。
在這裏插入圖片描述
其中α是一個控制雨紋強度的衰減係數。此外,tr0(這是最大的雨條紋強度)= e−αd1,而tr (x)始於tr0並逐漸下降至零在d (x)超越d1後。

霧層:
在這裏插入圖片描述
其中β是一個衰減係數,控制霧的厚度,β越大,霧越厚。

3、新建數據集
拍攝一對真實的有雨和無雨的照片進行訓練幾乎是不可能的,因爲場景對象可能會移動,環境光線和相機曝光可能會改變。因此,現有的用於去雨的數據集通常是通過在照片上添加一個二維的雨紋層來製備。最近的深層網絡只是簡單地對其進行訓練以去除雨。顯然,物理雨模型被忽略了,所以現有的方法對真實的照片往往是失敗的;
因此,新建立一個新的數據集 RainCityscapes
數據集都是戶外照片,每一張都有一個深度圖,雨圖像顯示出不同程度的雨和霧。
從上面的公式來生成雨紋強度tr和霧層A。
參數分別設爲(α,β,a)={(0.02, 0.01, 0.005), (0.01, 0.005, 0.01),(0.03, 0.015, 0.002)}
選用陰天無陰影的圖片作爲深度圖,並使用深度去噪細化深度圖。

最後得到9432張訓練圖片和1188張測試圖片。

4、模擬成像的侷限性

模擬成象過程假設雨層和霧層是均勻分佈和相互獨立的。而在現實世界中,雨、霧的視覺效果與雨強相關;雨的外觀取決於相機參數(如曝光時間);而降雨強度變化更爲複雜。相機自身運動也會分散雨的分佈,造成圖像空間額外的運動模糊。雖然我們的降雨模型是近似的,缺乏光學模型,但是合成的圖像確實有助於改善與之前的工作和數據相比的結果,這些工作和數據忽略了我們所探索的降雨特性。

網絡具體工作:
DAF-Net網絡工作流程:
網絡首先利用卷積神經網絡(CNN)從輸入圖像中提取低層細節和高層語義,並生成不同分辨率的特徵圖。
然後使用兩個解碼器分支,每個分支逐步上採樣一個特徵圖,並將其與相同分辨率的CNN 特徵圖相結合,生成一個新的特徵圖。
在頂部的解碼器分支中,我們進一步迴歸深度圖,並通過深度引導注意力機制學習一組注意力權重。
在底部的解碼分支中,我們首先生成最終的(最高分辨率的)特徵圖,然後將其與頂部分支的注意力權重相結合,生成深度注意特徵。
最後,在這些特徵上應用一組羣卷積,預測殘差映射,並將其加入到輸入圖像中,得到無雨輸出圖像。

1、頂部解碼器分支迴歸深度圖

當上採樣特徵圖的寬度達到輸入的四分之一時,我們添加一個監控信號,並對輸入圖像進行深度映射。注意,較低分辨率的深度圖足以作爲學習注意權重的指導,因此我們退回四分之一寬度深度圖以減少計算和內存開銷。
然後,通過對監控信號(訓練數據集中的輸入深度圖)中的深度值進行轉換,對深度值的對數進行迴歸:
在這裏插入圖片描述
d(x) 是像素x上的場景深度。
D(x)是網絡中的監控信號。因此,網絡中的迴歸深度圖實際上是對數深度值的圖。

2、深度注意特徵

首先在我們的網絡中迴歸深度圖,並以此爲指導來學習一組注意力權重。然後,我們可以使用這些權值來集成來自我們網絡底部解碼器分支的特徵圖,從而形成雨條紋和霧的殘留圖。在此基礎上,將殘差映射加入到雨圖像中,得到輸出的無雨圖像。

圖爲深度指導注意力機制:從迴歸深度圖D(x)中學習權值.
在這裏插入圖片描述
如圖:
首先採用3個卷積塊對D(x)進行ReLU非線性運算,在每個3x3的卷積層之後。
最後一個卷積塊的輸出是一組未歸一化的注意權值{A1, A2,…}。一般來說,每一種權重都對應一種特定類型的雨紋和霧。
然後,應用Softmax函數對權重進行歸一化,生成注意權重{W1 W2,…,每一個都與一組雨紋和霧有關。
卷積和Softmax層用公式表達如下:
在這裏插入圖片描述

從底部解碼器分支產生的最高分辨率的特徵映射F b有256個特徵通道。
接下來,我們把它分成256個通道的n個子映射,每個子映射Fib (i =1、2、……, n)有256/n個通道,分辨率與原始特徵圖 F b相同;實際上,我們設n爲64。
然後,我們將Wc與cth子映射Fcb的每個特徵通道按元素順序相乘,生成深度注意特徵。

現在,我們準備了n個獨立部分的深度注意特徵。因此,我們可以在深度注意特徵的每個部分分別進行n組的組卷積,以增強特徵的表達性。通過採用組卷積,每個組中的特徵只負責刪除具有較小類內方差的某種雨條紋和霧。最後,我們使用1×1的卷積將來自不同組的所有特徵進行合併,得到殘差圖 Res(x),並將輸入的雨圖O(x)加入其中,得到輸出的無雨圖I(x).

3、訓練

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

其中,ωi和ωd權重、X和X4分別表示輸出圖像和深度圖的圖像域;
I(x)l和I¯(x)l分別表示像素的l-th RGB X中像素x的顏色通道中的預測值和真實值。
D(x)和D¯(x)分別表示像素x處的預測深度和真實深度;
I(x)l、I¯(x)l、D(x)和D¯(x)的值被歸一化爲[0,1]。
注意,無雨圖像I(x)的大小與輸入圖像相同,但深度圖D(x)的大小僅爲輸入的1/16。

4、參數

Adam優化
第一個動量值爲0.9,第二個動量值爲0.99,權值衰減爲5×10−4。
自適應地調整單個網絡參數的學習速率,即對頻繁更新的參數具有較高的學習速率,反之亦然。
基本學習率設爲0.00001,迭代70000次之後減少學習率
迭代100000次
mini-batchsize = 1

Titan Xp
CF-Caffe

分頁符

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