蒙佳浩,王東驥,帥天平
(1. 北京郵電大學 理學院,北京 100876;2. 中國科學院大學 人工智能學院,北京 100876)
附著在擋風玻璃,相機鏡頭或者玻璃窗上的雨滴會妨礙圖像背景場景的可見性,降低了圖像的質(zhì)量。主要是因為雨滴區(qū)域所包含的圖像與沒有雨滴的圖像不同,從而發(fā)生了圖像的退化。與非雨滴區(qū)域不同,由于雨滴的形狀類似于魚眼鏡頭,雨滴區(qū)域來自更寬環(huán)境的反射光線形成。此外,在大多數(shù)情況下,相機的焦點位于背景場景上,使雨滴的外觀模糊不清。
給定帶有雨滴的退化圖像,模型的目標是去除雨滴并產(chǎn)生干凈的背景圖像。這將有益于圖像處理和計算機視覺應用,特別是對于那些正在遭受雨滴,污垢或類似偽影的影響的人。為了解決類似退化問題[1-2],已經(jīng)提出了一些方法來解決雨滴檢測[3-4]問題,但這些方法并不能去除雨滴。部分學者采用視頻[5]和專門設計的光學快門檢測和探測雨滴,但這種方法并不適用于由普通相機拍攝的單個輸入圖像。
目前卷積神經(jīng)網(wǎng)絡在圖像處理領(lǐng)域[6-8]表現(xiàn)出卓越的表現(xiàn)。Eigen等人[9]通過深度學習的方法去除單張圖像上的雨滴或者污垢,然而該方法只能處理含有少量雨滴和污垢的圖像,并且產(chǎn)生相對模糊的輸出。Qian等人[10]在同樣采用相似的深度學習方法,提出了注意力生成對抗網(wǎng)絡,即Attentive GAN。該方法使得圖像的還原效果更加出色,并且能夠處理帶有更多雨滴的退化圖像,然而其生成的圖像細節(jié)不夠飽滿。受到 Ledig等人[11]在圖像超分辨工作上的啟發(fā),他們使用生成對抗網(wǎng)絡進行自然圖像的超分辨工作,提出感知損失,使得生成圖像具有飽滿的細節(jié)和紋理。由于去除圖像中雨滴的工作與單張圖像的超分辨工作具有類似的特點,那么感知損失同樣能在去除雨滴的工作中產(chǎn)生優(yōu)秀的結(jié)果。正如圖1所展示出來的,分別是將我們的方法與目前最好的 Attentive GAN相比較,雖然兩種方法都能夠很好的去除圖像中的雨滴,不過通過圖像中樹木的放大效果來看,我們的方法更好的對樹木的色彩以及細節(jié)紋理更好的進行了還原,視覺很明顯的可以感知到生成的樹木顏色更加逼真,細節(jié)更加豐滿。
圖1 我們的方法與目前最好的Attentive GAN的效果對比Fig.1 Comparison of our method with the best attentive GAN
目前,眾多工作表明網(wǎng)絡在圖像生成,圖像分類和特征提取等工作中表現(xiàn)出優(yōu)秀品質(zhì),那么該網(wǎng)絡在去霧去雨方面同樣能有優(yōu)秀的表現(xiàn)。其中,生成對抗網(wǎng)絡[12]和殘差網(wǎng)絡[13]可以成功的應用于去霧去雨[14]的工作。
參考GoodFellow等人的工作,本文定義一個判別器網(wǎng)絡 DθD,它與生成器網(wǎng)絡 GθG交替優(yōu)化,用來解決對抗最小最大問題:
其中θG和θD分別代表生成器和判別器的參數(shù),IGT和Irain分別代表不帶有雨滴的原始自然圖像和帶有雨滴的退化圖像。該方法的總體思想是,它允許人們訓練生成模型 G,其目的是欺騙能夠區(qū)分真實圖像和生成圖像的鑒別器D。通過這種方法,生成器可以學習創(chuàng)建與真實圖像高度相似的圖像。這促使生成圖像具有更高的視覺感知效果。
該網(wǎng)絡的主要思想是使用殘差學習框架來緩解非常深層的網(wǎng)絡的訓練壓力。令單個圖像 x0穿過一個L層的卷積網(wǎng)絡。每一層對應著一個非線性變換Hl(?),其中l(wèi)代表層數(shù)的索引。令 xl作為第l層的輸出。傳統(tǒng)的神經(jīng)網(wǎng)絡通常將第l層的輸出 xl作為第 l +1層的輸入,可以表示為 xl+1= Hl+1(xl)。與傳統(tǒng)的卷積神經(jīng)網(wǎng)絡不同,殘差網(wǎng)絡實現(xiàn)了一個殘差塊,該殘差塊將輸入與該卷積層的輸出進行加和,其中輸出可表示為: xl+1= Hl+1(xl)+ xl。此過程可緩解訓練過程中的收斂問題。殘差網(wǎng)絡的結(jié)構(gòu)如圖 2所示。
圖2 殘差塊結(jié)構(gòu)示意圖Fig.2 Example of residual block
視覺注意力模型已經(jīng)被應用于圖像定位目標區(qū)域,從而捕獲目標區(qū)域的區(qū)域特征,該想法被應用于視覺識別和圖像分類[15-16]。該網(wǎng)絡主要由殘差塊,卷積長短期記憶單元以及卷積層構(gòu)成。其中殘差塊主要用來提取輸入圖像的特征,而卷積長短期記憶單元和卷積層則用來生成一張2維的注意力圖像。殘差塊的主要思想和構(gòu)成正如 1.2中所介紹的,卷積長短期記憶單元包括一個輸入門tI,一個遺忘門tF,一個輸出門tO以及一個狀態(tài)單元tS。沿著時間維度,狀態(tài)和每個門在時刻 t的交互可用下面的公式進行表示:
其中 Xt是經(jīng)過殘差網(wǎng)絡提取得到的特征圖,St將被輸入到下一層的長短期記憶單元中, Ht則表示長短期記憶單元的輸出。Si× Wi× Hi和b表示相應的權(quán)重和誤差。運算符*表示卷積操作,運算符⊙表示逐像素點相乘。最終 Ht經(jīng)過卷積操作,便得到了一張2維注意力圖像。該網(wǎng)絡可幫助模型捕捉圖像中更加需要關(guān)注的信息。注意力網(wǎng)絡的結(jié)構(gòu)如圖 4生成器左邊部分所示。
本文將生成對抗網(wǎng)絡作為主要的模型架構(gòu),殘差網(wǎng)絡和卷積的長短期記憶單元作為基本組成模塊。生成器主要由兩個子網(wǎng)絡構(gòu)成:帶有注意力機制的遞歸網(wǎng)絡和殘差U-Net[17]網(wǎng)絡。帶有注意力機制的遞歸網(wǎng)絡的主要目的是在輸入圖像中尋找需要引起注意的區(qū)域,在實驗中我們將遞歸的次數(shù)設置為4次。這里我們主要參考了Qian等人的工作,在每一次遞歸模型中學習得到一個Mask,這是一個注意力圖,它是一個值在 0-1之間的矩陣,值越大,對應著更大的注意力,它表示從非雨滴區(qū)域到雨滴區(qū)域遞增的注意力,遞增的注意力是非常有意義的,這些區(qū)域主要是雨滴覆蓋的區(qū)域,以及雨滴覆蓋區(qū)域周圍的圖像結(jié)構(gòu),這些區(qū)域是接下來殘差 U-Net網(wǎng)絡要去關(guān)注的區(qū)域。
在Qian等人的工作中,已經(jīng)通過豐富的實驗表明,注意力圖對于去除雨滴具有相當重要的作用。然而,Qian等人在后續(xù)構(gòu)造的自編碼器僅通過卷積和反卷積的方式去除注意力圖所標記出的雨滴區(qū)域,生成無雨滴圖像。僅通過這種方式進行處理所達到的效果有限。U-Net被廣泛應用于目標檢測,圖形分割等工作,取得了當前最好的效果。受到U-net模型的啟發(fā),我們構(gòu)造了殘差U-Net模型用于生成無雨滴的圖像并取得了很好的效果。殘差U-Net模型如圖4(a)所示,構(gòu)成殘差U-Net模型的殘差塊如圖4(b)所示。殘差U-Net模型由兩部分構(gòu)成,一部分為下采樣過程,另一部分為上采樣過程。與之前U-Net模型不同,在上采樣和下采樣的過程中,我們不再只使用卷積網(wǎng)絡作為基本單元,而是構(gòu)造了殘差塊來加深網(wǎng)絡結(jié)構(gòu),從而使得模型效果更加出色。為了防止模型出現(xiàn)過擬合情況,我們在殘差塊中加入Dropout[18]和BatchNorm[19],同時使用(1,1)的卷積核在跳躍連接處進行降維,這可以大大減少模型的參數(shù)防止模型過擬合,并加快了訓練過程的收斂。在我們的實驗中,進行了 3次下采樣和 3次上采樣,下采樣方式使用步長為2的卷積,上采樣方式是采用雙線性插值。
圖3 (a)殘差U-Net結(jié)構(gòu)(b)殘差塊Fig.3 (a) Residual U-Net (b) Residual block
判別器網(wǎng)絡是由一些基本的卷積塊,1024個神經(jīng)元構(gòu)成的全連接層和1個帶有Sigmoid激活函數(shù)的神經(jīng)元構(gòu)造而成。其中每一個卷積塊包含1個卷積層,1個BatchNorm層以及Leaky ReLU函數(shù)[20]。更加詳細的模型細節(jié)可以從圖3中看到,包括我們整個的生成器網(wǎng)絡以及判別器網(wǎng)絡。這個生成器模型可以接收帶有雨滴的圖畫圖像作為輸入,并且通過不斷優(yōu)化生成器和判別器來提升圖像質(zhì)量。
本文使用新的感知損失作為模型的損失函數(shù),新的感知損失由L1損失,基于從預先訓練的19層VGG網(wǎng)絡[21]中提取高級特征的vgg19損失和對抗損失加權(quán)組成。當同時獲得不帶有雨滴的原始自然圖像 IGT,與之相對應的退化圖像 Irain,以及由生成器網(wǎng)絡生成的預測圖像 Ipre,此時感知損失可以定義如下:
圖4 生成器網(wǎng)絡和判別器網(wǎng)絡的架構(gòu)Fig.4 Architecture of generator and discriminator network
其中,L (IGT,Ipre)是L1損失,L(IGT,Ipre)是MVvgg19損失, L(IGT,Irain)是對抗損失。λ ,λGANMV和是λGAN超參數(shù)。在我們的工作中,將λM設為1,λV設為0.006,λGAN設為0.001。
L1損失是生成圖像 Ipre和不帶雨滴的原始自然圖像IGT之間的絕對值距離。L1損失可以用公式表示如下:
其中SWH表示目標圖像的大小。這個損失可以使生成圖像獲得更加平滑的紋理效果。
Vgg19損失是損失網(wǎng)絡生成的特征圖之間的歐幾里得距離。當給定預訓練的網(wǎng)絡φ和一系列的卷積層C,并且C的每個卷積層上的特征圖大小為Si× Wi× Hi,那么就可以定義vgg19損失函數(shù)如下:
其中, Si× Wi× Hi表示VGG網(wǎng)絡中各個特征圖的大小。
除了上述損失外,新的感知損失還將對抗損失添加到損失函數(shù)中。這有利于生成器生成的自然圖像保留更多的紋理細節(jié)。它通過最小化基于D (G (Irain))定義的生成損失 L 來優(yōu)化參數(shù),θDθGGAN這意味著判別器可以區(qū)分出重建圖像 G(Irain)是θG自然目標圖像的概率:
通過一系列損失函數(shù)的加權(quán)求和,最終得到了新的感知損失函數(shù)。它可以幫助訓練模型得到細節(jié)更加飽滿,紋理更加清晰的圖像。
本文的訓練數(shù)據(jù)集來源于 Qian等人公開的雨滴數(shù)據(jù)集。該數(shù)據(jù)集中包含帶有雨滴的圖像以及相對應的不含雨滴的圖像對,該圖像對具有完全相同的背景資料。他們通過兩塊完全相同的玻璃,一塊噴上水,另外一塊是干凈的,并且通過一系列專業(yè)的技術(shù)得到的這些匹配的成對圖像。數(shù)據(jù)集總共包含1119組圖像對,除去部分尺寸不符合的圖像對,最終實驗使用 860組圖像對作為訓練集,其余 200組圖像對作為測試集。這與Qian等人分類數(shù)目和分類方法相同,因此具有相同的訓練集和測試集,方便后面進行實驗結(jié)果的比較。
模型的仿真實驗是在帶有 NVIDIA Tesla P100 GPU的機器上進行的,使用版本號為3.7的python和Pytorch[22]訓練完成的。為了便于訓練,我們將輸入圖像隨機裁剪為96×96的圖像小塊,批訓練的大小設為 4。注意,生成器模型可以應用于任意大小的圖像,因為它是完全卷積的。使用ADAM優(yōu)化器[23]來訓練模型,并且將β1設置為0.9。學習率最初設置為0.0001,并在每50次訓練后降低10倍。并不斷地交替更新生成器網(wǎng)絡和判別器網(wǎng)絡,作用等同于Goodfellow等人使用的k=1。模型總共訓練300個epoch,所需的時間大約為36 h,從而完成整個模型的訓練過程。
在表1中,本文提出的方法與最新的方法進行了比較,例如 Eigen13,Pix2Pix[24]以及 Attentive GAN。為了便于比較,同樣采用峰值信噪比[25](PSNR)和結(jié)構(gòu)相似性[26](SSIM)作為數(shù)值評價指標。我們提出的模型與其他模型相比在 SSIM數(shù)值上有了比較明顯的提升。在圖5中展示出了直觀的視覺效果圖像。從左往右,依次是原始的干凈圖像、對應的雨滴圖像、Eigen方法的預測圖、Pix2Pix方法的預測圖、Attentive GAN方法的預測圖以及我們的結(jié)果,從圖像上可以直觀感受到采用我們的方法不但成功去除了附著在背景圖像中雨滴,并且清晰的還原了雨滴覆蓋區(qū)域的背景圖像的顏色和紋理細節(jié),使得預測圖像與最左側(cè)的干凈圖像保持了高度的還原,表明我們的模型產(chǎn)生了十分優(yōu)秀的預測結(jié)果。
表1 質(zhì)量評估結(jié)果Tab.1 Quantitative evaluation results
圖5 比較幾種不同方法的結(jié)果。從左到右:干凈圖像,雨滴圖像(輸入),Eigen13,Pix2Pix,Attentive GAN和我們的方法。Fig.5 Results of comparing a few different methods. From left to right: clean image, raindrop image(input), Eigen13[1], Pix2Pix, Attentive GAN and our method
為了進一步驗證我們在圖像背景的可見性方面進行了增強,以及我們所做的工作對于計算機視覺應用中有幫助,我們使用目前最好的目標檢測算法Mask R-cnn[27]來測試我們的輸出是否可以提高識別性能。與沒有通過我們的網(wǎng)絡處理的原始雨滴圖像相比,使用我們的輸出,圖像的一般識別效果顯著增強,并且在圖像背景目標物體的檢測過程中,不會出現(xiàn)漏檢、多檢、錯檢的情況,目標物的檢測更加準確和有效。
正如圖6所示,在第一行圖像檢測中,由于車輛被雨滴遮蓋,出現(xiàn)車輛的漏檢,而處理之后的圖像則以80%的概率值檢測到了漏檢的車輛;在第二行圖像中則出現(xiàn)對雨滴和欄桿的誤檢和錯檢,將圖像中的雨滴檢測成球,將右側(cè)欄桿則檢測為水槽,而處理后的圖像這避免了這些誤檢。這表明我們的結(jié)果不僅僅使圖像變得更易觀察,也同樣會在實際問題中,比如車輛檢測、行人檢測、物體檢測等實際問題中具有重要的實際應用價值。
圖6 左側(cè)為雨滴圖像的目標檢測結(jié)果,右側(cè)為我們的方法去除雨滴之后的檢測結(jié)果Fig.6 The left side is the target detection result of the raindrop image, and the right side is the detection result after removing raindrops by our method
本文提出了一個非常深的帶有注意力機制的遞歸生成對抗網(wǎng)絡用于去除圖像上的雨滴。該方法使用了生成對抗網(wǎng)絡體系結(jié)構(gòu),其中生成器是一個深度遞歸網(wǎng)絡以及一個U-Net網(wǎng)絡,用來生成無雨滴圖像。然后,判別器網(wǎng)絡會在全局和局部評估生成器網(wǎng)絡輸出圖像的真實性。通過兩者不斷地對抗,從而保持去除雨滴后圖像的視覺質(zhì)量,保持重構(gòu)圖像的準確性和在視覺感知方面真實性。通過在大量數(shù)據(jù)集上對該方法進行評估,結(jié)果表明我們提出的模型可以在單張圖像去除雨滴方面中取得良好的效果。