郭 嘉,蔣 旻*,劉雙元,江佳俊
(1.武漢科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430065;2.智能信息處理與實(shí)時(shí)工業(yè)系統(tǒng)湖北省重點(diǎn)實(shí)驗(yàn)室(武漢科技大學(xué)),湖北 武漢 430065)
圖像去雨滴屬于圖像去噪[1-4](圖像去雨[5]、去霧[6]、除雪[7]、超分辨[8])范疇,它的最終目的是改善給定的圖像,解決實(shí)際圖像由于雨滴干擾而導(dǎo)致圖像質(zhì)量下降的問(wèn)題,給戶(hù)外視覺(jué)應(yīng)用(如目標(biāo)追蹤[9]、物體識(shí)別[10]、動(dòng)作識(shí)別[11]、目標(biāo)檢測(cè)[12])提供幫助。通過(guò)去雨滴可以有效地提高圖像質(zhì)量,更好地體現(xiàn)原來(lái)圖像所攜帶的信息。作為一種重要的預(yù)處理手段,人們對(duì)圖像去雨滴[13]算法進(jìn)行了廣泛的研究。由于雨滴的透鏡效果,在現(xiàn)有的去雨滴算法中,雨滴去除效果較好,卻丟失部分圖像邊緣信息,或者有的致力于研究檢測(cè)圖像邊緣信息,保留圖像細(xì)節(jié),雨滴消除的就不完全。同時(shí)由于網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜,還可能面臨參數(shù)量巨大的問(wèn)題。如何在消除雨滴和保留細(xì)節(jié)上找到一個(gè)較好的平衡點(diǎn),同時(shí)如何在保持去雨效果的同時(shí)控制參數(shù)量,都成為近年來(lái)研究的重點(diǎn)。
注意力機(jī)制由于其可以從眾多信息中選擇出對(duì)當(dāng)前任務(wù)目標(biāo)更關(guān)鍵的信息的特點(diǎn),在深度學(xué)習(xí)領(lǐng)域(如語(yǔ)音識(shí)別、機(jī)器翻譯等)上得到廣泛的應(yīng)用。最近提出的新的注意力機(jī)制——非局部神經(jīng)網(wǎng)絡(luò)(non-local neural networks)[14]可以很好地解決圖像中長(zhǎng)距離約束。在去雨應(yīng)用中,該算法可以通過(guò)非局部神經(jīng)網(wǎng)絡(luò)[14]的逐像素相乘的方式,得到每個(gè)像素間的一個(gè)權(quán)重矩陣,該矩陣可以表達(dá)雨滴覆蓋下的背景像素與其他背景像素的相關(guān)性,將輸入特征映射為上面每個(gè)位置的特征值賦給對(duì)應(yīng)的位置,其他位置全部清零,從而實(shí)現(xiàn)自注意地由其他背景信息來(lái)預(yù)測(cè)當(dāng)前位置的背景信息。所以,該文認(rèn)為可以將該自注意力機(jī)制[14]運(yùn)用到去雨滴應(yīng)用中。
為了消除數(shù)字圖像中的雨滴,恢復(fù)圖像質(zhì)量,同時(shí)減小參數(shù)量,將非局部神經(jīng)網(wǎng)絡(luò)[14]加入圖像的特征提取部分,以獲取雨滴部分與其他無(wú)雨部分的長(zhǎng)范圍依賴(lài);同時(shí)為了消除不同尺度大小的雨滴,在網(wǎng)絡(luò)中加入擴(kuò)張卷積[15]來(lái)擴(kuò)大感受野;整個(gè)網(wǎng)絡(luò)設(shè)計(jì)為五個(gè)由淺入深的模塊(block)結(jié)構(gòu),block內(nèi)部采用循環(huán)計(jì)算,加深模塊并減小參數(shù)量,block之間采用稠密的殘差連接[16],將不同block的負(fù)殘差concatenate在一起,充分利用低級(jí)特征來(lái)實(shí)現(xiàn)雨滴的去除。另外,對(duì)所有負(fù)殘差都進(jìn)行損失約束,使預(yù)測(cè)圖像更接近真實(shí)圖像。
近年來(lái),研究人員針對(duì)單幅圖像的雨滴去除問(wèn)題提出了許多方法。該文將這些方法分為兩類(lèi):基于模型的方法和基于深度學(xué)習(xí)的方法。
從2009年到2017年間,針對(duì)雨滴去除問(wèn)題的解決方案大部分是采用基于模型的方法。該類(lèi)方法基于雨滴的物理成像過(guò)程或者模擬它們的幾何外觀(guān)來(lái)消除雨滴。Roser等[17]提出了一種采用球體截面對(duì)雨滴進(jìn)行建模的方法來(lái)檢測(cè)雨滴。在文獻(xiàn)[18]中,貝塞爾曲線(xiàn)被用于雨滴建模,獲得了比文獻(xiàn)[17]更高的建模精度。但是,雨滴具有各種形狀和大小,上述模型只能去除已進(jìn)行參數(shù)建模的那一部分雨滴。You等[19]研究并模擬了附著液滴邊緣的暗帶,以恢復(fù)雨滴的3D形狀,并利用立體聲來(lái)計(jì)算深度來(lái)恢復(fù)雨滴下的背景信息。龐彥偉等[20]首先將一幅帶雨滴圖像通過(guò)一個(gè)雙邊濾波器分解為低頻和高頻兩個(gè)部分,對(duì)于低頻部分,即背景部分保持不變,然后通過(guò)字典學(xué)習(xí)區(qū)分高頻中的雨成分和非雨成分,最后,組合低頻成分和高頻無(wú)雨成分,從而獲得雨滴去除后的圖像。
相比于其他方法,深度學(xué)習(xí)在復(fù)雜機(jī)器視覺(jué)任務(wù)上取得了優(yōu)異的效果,例如動(dòng)作識(shí)別、目標(biāo)檢測(cè)等。而應(yīng)用在圖像去噪、圖像復(fù)原等底層任務(wù)上,也取得了很好的效果。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,許多研究開(kāi)始利用深度學(xué)習(xí)的方法來(lái)去除圖像中的雨滴。Eigen等[21]建立了一個(gè)三層的網(wǎng)絡(luò),從合成的圖像中學(xué)習(xí)靜態(tài)雨滴和污點(diǎn)的特征以預(yù)測(cè)無(wú)雨圖像的輸出。但該方法無(wú)法消除大而密的雨滴。石曉晴[22]將雨滴檢測(cè)問(wèn)題轉(zhuǎn)化為圖像分類(lèi)問(wèn)題,訓(xùn)練一個(gè)可以區(qū)分雨滴與非雨滴的算法模型,進(jìn)行雨滴定位,根據(jù)雨滴定位信息,結(jié)合圖像補(bǔ)全方法去除雨滴,該方法對(duì)稀疏的雨滴有效,無(wú)法處理較密集的雨滴。曾坤等[23]提出了一種基于GAN的雨滴去除方法,該方法主要通過(guò)生成對(duì)抗網(wǎng)絡(luò),利用深度去雨算法來(lái)達(dá)到雨滴去除的效果,主要對(duì)較小雨滴有用。
Qian等[24]提出了AttentiveGAN來(lái)同時(shí)檢測(cè)和去除雨滴并生成相應(yīng)的注意力圖。該算法將視覺(jué)注意力注入生成對(duì)抗網(wǎng)絡(luò)。在訓(xùn)練階段,算法利用注意力機(jī)制專(zhuān)注于雨滴區(qū)域及其周?chē)沫h(huán)境的輸入。他們用0,1分別表示圖像中的無(wú)雨覆蓋的像素以及有雨覆蓋的像素,由此來(lái)生成雨滴圖像的掩碼,由于無(wú)雨圖像的二進(jìn)制形式過(guò)于簡(jiǎn)單,結(jié)果在許多情況下預(yù)測(cè)的圖像可能包含明顯的偽像。Quan等[25]在Qian的基礎(chǔ)上加入了形狀驅(qū)動(dòng)模塊來(lái)幫助確定注意蒙版,局部圖像強(qiáng)度的變化容易對(duì)形狀驅(qū)動(dòng)模塊中的邊緣檢測(cè)器的檢測(cè)性能產(chǎn)生影響,從而降低生成圖像的準(zhǔn)確性。Hao等[26]結(jié)合現(xiàn)實(shí)中雨滴的折射性來(lái)獲得圖像的注意掩碼,模型復(fù)雜且參數(shù)量巨大,不適用于小型嵌入式系統(tǒng)。Lin等[27]建立了A2Net,使用功能聚合操作,將注意力集中在亮度(Y通道)上,而不是色度(UV通道)上,融合相鄰要素來(lái)實(shí)現(xiàn)雨滴去除。對(duì)于亮度較差的圖像,效果會(huì)變差。
該文采用稠密的殘差連接[16]在每個(gè)模塊間引導(dǎo)去雨圖像的生成;并通過(guò)加入非局部神經(jīng)網(wǎng)絡(luò)[14]解決了雨滴的自注意力問(wèn)題;算法還在非局部神經(jīng)網(wǎng)絡(luò)前加入擴(kuò)張卷積[15]來(lái)擴(kuò)大感受野,以此來(lái)獲得不同尺度大小的雨滴;另外還使用遞歸策略[28]以達(dá)到參數(shù)數(shù)量與模型性能之間的折衷;最后,每一個(gè)模塊的輸出都有原圖像的疊加,更加保證圖像結(jié)構(gòu)的清晰。
基于深度學(xué)習(xí)的單幅圖像的去雨滴工作重點(diǎn)在于設(shè)計(jì)出一個(gè)帶雨滴圖像端與不帶雨滴圖像端的復(fù)雜映射模型。
由于雨滴分布的不確定性以及雨滴狀態(tài)的復(fù)雜性,想要在網(wǎng)絡(luò)中準(zhǔn)確找出雨滴位置并進(jìn)行消除一直是單幅圖像去雨滴任務(wù)中的重點(diǎn)和難點(diǎn)。最初人們大多根據(jù)雨滴外形特征來(lái)區(qū)分雨滴部分和非雨滴部分,后來(lái)基于深度學(xué)習(xí)的模型中雖利用到了雨滴像素和非雨滴像素的不同的因素,但依然結(jié)合了雨滴的外形特征來(lái)設(shè)計(jì)模型,具有一定的局限性。非局部神經(jīng)網(wǎng)絡(luò)[14],作為一個(gè)高效、簡(jiǎn)單和通用的模塊,用于獲取深度神經(jīng)網(wǎng)絡(luò)的長(zhǎng)時(shí)記憶,是計(jì)算機(jī)視覺(jué)中經(jīng)典的非局部均值運(yùn)算的一種泛化結(jié)果。即非局部運(yùn)算將某一處位置的響應(yīng)作為輸入特征映射中所有位置的特征的加權(quán)和來(lái)進(jìn)行計(jì)算。以此將其運(yùn)用在文中的去雨網(wǎng)絡(luò)中,來(lái)獲取雨滴像素與非雨滴像素之間特征的聯(lián)系,達(dá)到雨滴像素與非雨滴像素之間的特征自注意。
文中算法的目標(biāo)是:給定一幅雨滴圖像X,經(jīng)過(guò)網(wǎng)絡(luò)處理得到去除雨滴后的結(jié)果圖像Y。
文中借鑒文獻(xiàn)[28]的模塊間級(jí)聯(lián)和模塊內(nèi)遞歸,建立了一個(gè)基于自注意機(jī)制的級(jí)聯(lián)稠密殘差網(wǎng)絡(luò),如圖1所示。整個(gè)網(wǎng)絡(luò)由n個(gè)子模塊B1,B2,…,Bn級(jí)聯(lián)組成。每個(gè)子模塊的結(jié)構(gòu)如圖1所示??梢钥吹?,Blocki的輸入是Blocki-1模塊輸出的去雨滴圖和殘差連接。每個(gè)模塊由特征提取模塊和遞歸消除模塊組成。特征提取模塊由擴(kuò)張卷積和非局部神經(jīng)網(wǎng)絡(luò)組成;遞歸消除模塊由兩個(gè)卷積遞歸5次得到。
圖1 級(jí)聯(lián)的密集殘差網(wǎng)絡(luò)
殘差連接[29]是為了解決反向傳播中的梯度消失問(wèn)題而提出的。該殘差網(wǎng)絡(luò)可以同時(shí)解決計(jì)算機(jī)資源的消耗以及深層模型容易過(guò)擬合的問(wèn)題。之后,Huang等[16]提出從淺層到深層密集的連接特征圖方法,ResNet[29]和 DenseNet[16]都在網(wǎng)絡(luò)輸入輸出之間加入了連接,ResNet[29]按殘差塊為單位添加網(wǎng)絡(luò)隱含層的連接,DenseNet[16]在每層添加連接,從特征的角度考慮,通過(guò)特征重用和旁路(Bypass)設(shè)置,減輕了反向傳播中梯度消失的問(wèn)題并減少模型參數(shù)的數(shù)量。Tai等[30]在回歸任務(wù)中也引用了稠密的殘差連接來(lái)處理圖像的修復(fù)問(wèn)題,這表明稠密的殘差連接可能對(duì)網(wǎng)絡(luò)的長(zhǎng)期記憶和網(wǎng)絡(luò)中高層信息的恢復(fù)有益。
在文中的網(wǎng)絡(luò)中,如圖1所示,在模塊間使用稠密的殘差連接[16],并在每個(gè)塊中使用長(zhǎng)捷徑[31]來(lái)簡(jiǎn)化學(xué)習(xí)過(guò)程。使用這樣的框架的原因:第一,高層卷積特別是過(guò)深的網(wǎng)絡(luò)會(huì)丟失一些底層細(xì)節(jié)信息,而去雨任務(wù)更注重的細(xì)節(jié)信息往往包含在網(wǎng)絡(luò)底層;第二,低層的特征語(yǔ)義信息比較少,但是包含了對(duì)象空間信息,有助于提供結(jié)構(gòu)及內(nèi)容信息;而高層的特征語(yǔ)義信息比較豐富,但是丟失了對(duì)象空間信息。所以文中網(wǎng)絡(luò)通過(guò)長(zhǎng)捷徑[31]來(lái)強(qiáng)化低層信息。
每個(gè)模塊由自注意特征模塊和遞歸消除模塊構(gòu)成,在每個(gè)自注意特征模塊之后以及遞歸消除模塊之中都加入concat連接,減少網(wǎng)絡(luò)層數(shù),并在開(kāi)始和最后加入卷積進(jìn)行提取和組合特征。每個(gè)模塊輸出之后,將其與原圖相加,即可得到一次預(yù)測(cè)圖,隨著塊的深入,預(yù)測(cè)圖更加接近真實(shí)圖。
使用級(jí)聯(lián)的密集殘差網(wǎng)絡(luò)逐步消除的效果如圖2所示??梢钥闯觯敵鰣D像的SSIM(structural similarity index,結(jié)構(gòu)相似性)值[32]以及PSNR(peak signal to noise ratio,峰值信噪比)值隨著塊的深入逐漸增加。
圖2 網(wǎng)絡(luò)中模塊1、模塊3、模塊5的輸出
自注意特征提取模塊由四個(gè)擴(kuò)張卷積[15]和一個(gè)非局部神經(jīng)網(wǎng)絡(luò)[14]構(gòu)成。擴(kuò)張卷積[15]用來(lái)擴(kuò)大感受野,非局部神經(jīng)網(wǎng)絡(luò)[14]用來(lái)獲取需要修復(fù)的雨滴的位置。
2.2.1 特征自注意
注意力研究方面,至關(guān)重要的是在深度神經(jīng)網(wǎng)絡(luò)中獲取長(zhǎng)時(shí)記憶(long-range dependency)。而將非局部計(jì)算作為獲取長(zhǎng)時(shí)記憶的通用模塊加入神經(jīng)網(wǎng)絡(luò)中,是提高神經(jīng)網(wǎng)絡(luò)性能的一個(gè)重要方法。卷積和遞歸運(yùn)算都是在一個(gè)局部特征鄰域進(jìn)行處理,可以是空間局部特征鄰域,也可以是時(shí)間局部特征鄰域,因此只有不斷重復(fù)這些運(yùn)算,逐步在數(shù)據(jù)中傳播信號(hào),才能獲取長(zhǎng)時(shí)記憶。而不斷重復(fù)局部計(jì)算有幾個(gè)限制。首先,計(jì)算效率低下。其次,會(huì)產(chǎn)生一些優(yōu)化問(wèn)題,需要仔細(xì)解決。最后,這些問(wèn)題使multihop dependency建模十分困難,multihop dependency建模就是在很長(zhǎng)的時(shí)間/空間位置之間來(lái)回傳送信息。非局部神經(jīng)網(wǎng)絡(luò)[14]首先被提出用于實(shí)現(xiàn)視頻分類(lèi)任務(wù)的遠(yuǎn)程依賴(lài)性的計(jì)算。在每個(gè)2D非局部操作中,位置處的響應(yīng)被計(jì)算為所有空間位置處的特征的加權(quán)和。這種非本地操作主要還是受到傳統(tǒng)的非本地均值濾波的啟發(fā),而傳統(tǒng)的非本地均值濾波也被早期的單圖像去雨方法[30]所利用。
該文將非局部神經(jīng)網(wǎng)絡(luò)[14]引入文中的雨滴去除網(wǎng)絡(luò)模塊中,如圖1所示。因?yàn)槿コ甑位謴?fù)背景信息需要細(xì)節(jié)信息,而深層網(wǎng)絡(luò)會(huì)丟失細(xì)節(jié)信息,所以文中將特征自注意模塊[14]放置在淺層卷積層之后,以捕獲圖像中的雨滴。通過(guò)非局部神經(jīng)網(wǎng)絡(luò)[14]的逐像素相乘的方式,得到每個(gè)像素間的一個(gè)權(quán)重矩陣,之后將輸入特征映射為上面每個(gè)位置的特征值賦給對(duì)應(yīng)的位置,由其他背景信息來(lái)預(yù)測(cè)當(dāng)前位置的背景信息。
2.2.2 擴(kuò)大感受野
雨滴形狀和尺寸都不同,單純的1*1或3*3的卷積并不能涵蓋各種各樣的雨滴,為了解決這個(gè)問(wèn)題,在每個(gè)塊的第一個(gè)卷積之后加入4個(gè)擴(kuò)張卷積[15]來(lái)系統(tǒng)地聚合上下文信息,如圖1所示,文中設(shè)置的膨脹系數(shù)分別為2,4,8,16。這樣設(shè)計(jì)的擴(kuò)張卷積[15]不會(huì)丟失大量的分辨率,同時(shí)增加了感受野,使細(xì)節(jié)更顯著。
遞歸神經(jīng)網(wǎng)絡(luò)具有可變的拓?fù)浣Y(jié)構(gòu)且權(quán)重共享,被用于包含結(jié)構(gòu)關(guān)系的機(jī)器學(xué)習(xí)任務(wù)。同時(shí)因遞歸網(wǎng)絡(luò)的可拆卸性和可拓展性,使得文中網(wǎng)絡(luò)可根據(jù)任務(wù)的難度大小增減網(wǎng)絡(luò)規(guī)模。文中使用遞歸策略[26]達(dá)到參數(shù)數(shù)量與模型性能之間的折衷。如圖1所示,在該任務(wù)中,將自注意特征提取模塊的輸出特征圖X0饋送到遞歸塊的所有后續(xù)輸出中,用于逐步消除圖像中的雨滴。
Xt=g(Xt-1)+X0
(1)
其中,g表示一個(gè)塊內(nèi)的每個(gè)遞歸單元,Xt表示每個(gè)模塊輸出的圖像,Xt-1表示前一模塊的輸出。
對(duì)于每個(gè)塊,采用L2+SSIM損失[32],它可以更好地保證結(jié)構(gòu)的完整性以及每個(gè)像素的相似性。
塊n的總損失函數(shù)LBn由MSE損失LMSEn和SSIM[32]損失LSSIMn組成。它們的計(jì)算分別如式(2)~式(4)所示。
LBn=LMSEn+αLSSIMn
(2)
(3)
LSSIMn=log(1.0/S(fn(Xi,W,b),Y)+1e-4)
(4)
式(3)和式(4)中,X,Y和Xi分別表示帶雨滴的圖像,相應(yīng)的干凈圖像和Bi的輸入;M表示投入訓(xùn)練的雨滴圖像的數(shù)量;W和b是文中模型需要調(diào)整的參數(shù);f(·)表示相應(yīng)塊的功能映射,即每個(gè)塊的輸出;S(·)表示SSIM(結(jié)構(gòu)相似性)函數(shù),該函數(shù)用來(lái)計(jì)算每個(gè)輸入圖像對(duì)對(duì)應(yīng)像素間的亮度、對(duì)比度以及結(jié)構(gòu)的相似性。該函數(shù)輸入為該模塊預(yù)測(cè)的輸出圖像以及干凈無(wú)雨圖像對(duì),輸出為0到1間的數(shù)值。SSIM具體算法參見(jiàn)文獻(xiàn)[32]。α是平衡MSE損失和SSIM損失的超參數(shù),文中實(shí)驗(yàn)設(shè)置為1。
我們這些學(xué)生的學(xué)習(xí)水準(zhǔn)都很差勁兒,一問(wèn)三不知是我們的家常便飯。如果市政府不組建這所學(xué)校,讓這些少年散放到社會(huì)上——毫無(wú)疑問(wèn),我們當(dāng)中得有很多人會(huì)成為少年犯。市政府正是基于這樣的擔(dān)心才成立了這所非驢非馬的學(xué)校,把這些天性難馴的頑劣學(xué)生圈在這兒讀書(shū),讓他們學(xué)習(xí)將來(lái)到社會(huì)上生存的手藝,成為自食其力的、無(wú)害的人??傊?,這家學(xué)校不是培養(yǎng)國(guó)家的棟梁和大用之材的地方。
所以整個(gè)網(wǎng)絡(luò)的總損失函數(shù)為:
(5)
本節(jié)將文中方法與三種深度學(xué)習(xí)方法進(jìn)行了比較:pix2pix[33]、AttentiveGAN[24]和A2Net[27]。為了公平地比較,使用文獻(xiàn)[24]中的deraindrop雨滴數(shù)據(jù)集來(lái)重新訓(xùn)練所有這些方法。
使用deraindrop[24]數(shù)據(jù)集,該數(shù)據(jù)集包含一個(gè)訓(xùn)練集TrainData,兩個(gè)測(cè)試集TestA和TestB。TrainData包含861組(帶雨滴圖像,不帶雨滴的圖像)圖像對(duì),將這861組包含各種大小尺度不同的雨滴的圖像,生成tfrecords文件,90%做訓(xùn)練集,10%做驗(yàn)證集,訓(xùn)練時(shí)隨機(jī)生成一個(gè)batch大小的裁剪為128*128像素的訓(xùn)練對(duì)投入訓(xùn)練網(wǎng)絡(luò)以進(jìn)行雨滴消除的訓(xùn)練。TestA包含58對(duì)精確對(duì)照的圖像,TestB包含249對(duì)圖像,這些圖像可以更好地反映雨滴分布的復(fù)雜性,但其中一小部分質(zhì)量不高。文中在TestA和TestB上測(cè)試上述方法,以便更準(zhǔn)確地比較上述方法的性能。
實(shí)驗(yàn)采用SSIM[32]和PSNR兩個(gè)評(píng)價(jià)指標(biāo)來(lái)對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行數(shù)值比對(duì)。峰值信噪比(PSNR),單位是dB,數(shù)值越大表示失真越小。結(jié)構(gòu)相似性(SSIM),也是一種全參考的圖像質(zhì)量評(píng)價(jià)指標(biāo),它分別從亮度、對(duì)比度、結(jié)構(gòu)三方面度量圖像相似性。SSIM取值范圍[0,1],值越大,表示圖像失真越小。SSIM在圖像去噪、圖像相似度評(píng)價(jià)上是優(yōu)于PSNR的。
使用TensorFlow在具有10 GB GPU內(nèi)存的NVIDIA GeForce GTX 1080上的Python環(huán)境中訓(xùn)練和測(cè)試該算法。采用RMSProp優(yōu)化器進(jìn)行參數(shù)學(xué)習(xí)。初始學(xué)習(xí)率為0.001。batchsize的大小設(shè)置為12。衰減率為0.1,衰減次數(shù)為10 000。訓(xùn)練網(wǎng)絡(luò)總迭代次數(shù)為60 000。對(duì)于所有實(shí)驗(yàn),將non-local模塊的卷積核大小設(shè)為1×1,其余部分卷積核大小設(shè)置為3×3,4個(gè)空洞卷積的采樣間隔分別為2、4、8和16,除了合并卷積,每個(gè)卷積層都有16個(gè)特征圖。
圖3顯示了用于測(cè)試的三個(gè)雨滴去除圖像的視覺(jué)比較,可以看出,pix2pix[33]可以去除雨滴,但背景效果很模糊,AttentiveGAN[24]算法的去除效果比pix2pix[33]好,但是有些去雨后的區(qū)域比較模糊;文中方法具有與A2Net[27]相似的去雨效果,優(yōu)于其他兩種方法。
圖3 不同去雨算法在deraindrop數(shù)據(jù)集上得到的結(jié)果比較
3.3.1 不同去雨算法之間的定量評(píng)估
文中還采用SSIM[32]和PSNR測(cè)度對(duì)算法去雨效果進(jìn)行了定量評(píng)估。SSIM取值范圍[0,1],值越大,表示圖像失真越小。PSNR值越大,就表示失真越小。如表1所示,所有表中評(píng)價(jià)指標(biāo)格式為SSIM/PSNR值,對(duì)于TestA,文中SSIM測(cè)度上優(yōu)于其他方法。這表明文中方法可以產(chǎn)生與無(wú)雨圖像更相似的結(jié)果。在TestB上,文中方法在PSNR測(cè)度上的結(jié)果與A2Net[27]方法也差不多。這是因?yàn)閿?shù)據(jù)集TestB中雨滴的分布(雨滴的大小,樣式)更加復(fù)雜,對(duì)去雨方法能處理現(xiàn)實(shí)中復(fù)雜雨滴環(huán)境的要求更高。PSNR是基于均方誤差(MSE)計(jì)算的,由于均方誤差無(wú)需考慮局部圖像質(zhì)量即可測(cè)量全局像素誤差,所以相對(duì)SSIM,PSNR稍差些對(duì)最終效果影響不大。文中在Testa和Testb上SSIM指標(biāo)優(yōu)于其他算法,PSNR指標(biāo)和A2Net[27]相當(dāng),且優(yōu)于其他算法。此外,文中模型包含的參數(shù)要少得多,計(jì)算成本更低。
表1 不同去雨算法在deraindrop數(shù)據(jù)集上的評(píng)價(jià)指標(biāo)比較
3.3.2 去雨網(wǎng)絡(luò)模型研究
文中將只有稠密殘差引導(dǎo)的網(wǎng)絡(luò)作為基線(xiàn)模型,然后依次加入non-local模塊[11]和擴(kuò)張卷積[29]去測(cè)評(píng)文中模型。如圖4和表2所示,實(shí)驗(yàn)表明,文中模型在該數(shù)據(jù)集上得到了良好的效果。只使用基線(xiàn)模型時(shí)圖中雨滴位置會(huì)被深色像素替代,加入non-local模塊之后,發(fā)現(xiàn)雨滴位置的像素會(huì)接近旁邊區(qū)域的像素,但是大片的雨滴的地方還會(huì)有一些模糊像素,加入擴(kuò)張卷積之后,一些大的雨滴也會(huì)被處理得更清晰了。
圖4 文中模型增加或減少其中一部分模塊的結(jié)果對(duì)比
表2 不同模塊下網(wǎng)絡(luò)模型的評(píng)價(jià)指標(biāo)比較
Pix2pix[33]以及AttentiveGAN[24]都是在GAN(generative adversarial network)的基礎(chǔ)上來(lái)對(duì)圖像進(jìn)行處理的,該模型特點(diǎn)包括生成器以及鑒別器,兩個(gè)模型單獨(dú)交替訓(xùn)練,因此需要很大的參數(shù)量來(lái)實(shí)現(xiàn)其功能。A2Net[27]采用了一個(gè)相鄰聚合網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)雨滴的去除,可以將復(fù)雜的圖像到圖像映射問(wèn)題轉(zhuǎn)換為亮度(Y通道)和色度(UV通道)處理問(wèn)題,減少了一定的參數(shù)量,但依然需要一個(gè)編碼器和兩個(gè)解碼器來(lái)學(xué)習(xí)。而文中方法采用端到端的處理方式,以及殘差和非局部連接,將參數(shù)量減少到0.22 M(如表1所示),依然具有良好的性能。
在本節(jié)中,對(duì)不同的損失函數(shù)對(duì)模型性能的影響進(jìn)行實(shí)驗(yàn)。傳統(tǒng)基于MSE的損失不足以表達(dá)人的視覺(jué)系統(tǒng)對(duì)圖片的直觀(guān)感受。例如有時(shí)候兩張圖片只是亮度不同,但是之間的MSE loss相差很大。而一幅很模糊與另一幅很清晰的圖,它們的MSE loss可能反而相差很小。人類(lèi)衡量?jī)煞鶊D的距離時(shí),更偏重于兩圖的結(jié)構(gòu)相似性,而不是逐像素計(jì)算兩圖的差異。SSIM loss是按三個(gè)維度進(jìn)行比較:亮度,對(duì)比度,結(jié)構(gòu)。其效果將更符合人類(lèi)視覺(jué)系統(tǒng)。文中使用MSE+SSIM loss將同時(shí)對(duì)逐像素以及亮度,對(duì)比度和像素進(jìn)行比較,得到的圖像將更符合所期望的視覺(jué)效果。圖5顯示了使用不同損失函數(shù)的結(jié)果比較??梢钥闯觯瑑H使用MSE損失會(huì)產(chǎn)生過(guò)于平滑的結(jié)果,而使用SSIM損失則可以更好地保留細(xì)節(jié)。此外,如圖5所示,將SSIM[32]和MSE損失結(jié)合起來(lái)可以生成具有更好全局結(jié)構(gòu)和更清晰細(xì)節(jié)的圖像。表3還表明,使用SSIM[32]和MSE損失結(jié)合可以進(jìn)一步改善性能,使雨滴下恢復(fù)的背景細(xì)節(jié)更加清晰。
圖5 使用不同損失函數(shù)的雨滴去除結(jié)果比較
表3 不同損失函數(shù)的SSIM/PSNR比較
為了驗(yàn)證文中算法的可行性,用手機(jī)透過(guò)帶水滴的玻璃片拍攝了78張小區(qū)的照片,并對(duì)圖片上的水滴進(jìn)行去除,由于手機(jī)無(wú)法固定導(dǎo)致像素?zé)o法對(duì)齊,僅展示雨滴去除的視覺(jué)效果,如圖6所示。
圖6 在擴(kuò)充數(shù)據(jù)集上的效果
提出了一種基于自注意力的單幅圖像去雨滴的網(wǎng)絡(luò)。首先對(duì)雨滴圖像進(jìn)行特征提取,特征提取時(shí),先經(jīng)過(guò)4個(gè)擴(kuò)張卷積來(lái)擴(kuò)大感受野,之后進(jìn)入non-local局部神經(jīng)網(wǎng)絡(luò)獲取雨滴部分與周?chē)c(diǎn)的特征映射關(guān)系,接著投入遞歸卷積網(wǎng)絡(luò)進(jìn)行雨滴的去除,最后遞歸5個(gè)相同的模塊,同時(shí)在模塊間加入稠密的殘差映射,由低級(jí)特征結(jié)合高級(jí)特征來(lái)引導(dǎo)最終輸出,以得到更細(xì)致的輸出。每個(gè)模塊的輸出都是與原圖相加的結(jié)果,更保證了圖像細(xì)節(jié)的良好處理。實(shí)驗(yàn)結(jié)果表明,模型在有效去除雨滴的情況下防止了圖像的過(guò)渡平滑和失真,所提方法較現(xiàn)有方法去雨滴能力稍強(qiáng),同時(shí)含有較少參數(shù)量,對(duì)小型去雨滴設(shè)備友好。