朱 鑒,劉培鈺,陳炳豐,蔡瑞初
廣東工業(yè)大學(xué) 計算機(jī)學(xué)院,廣州510006
室外鏡頭拍攝的圖像容易受到雨天氣的影響,雨線的遮擋導(dǎo)致圖像細(xì)節(jié)丟失或難以辨認(rèn),從而干擾室外視覺智能系統(tǒng)的判斷力,因此從被雨破壞的圖像中恢復(fù)出清晰圖像至關(guān)重要。
早在2012年,Kang等[1]利用雙邊濾波獲得圖像的低頻和高頻成分,并通過對高頻成分的字典學(xué)習(xí)及稀疏編碼提取圖像的結(jié)構(gòu)信息,最后與低頻成分結(jié)合得到去雨的圖像,但該方法在復(fù)雜結(jié)構(gòu)的圖像上處理效果不佳。2013 年Kim 等[2]提出了一種兩階段的圖像去雨方法。第一階段通過核回歸方法檢測雨,第二階段通過非局部均值濾波恢復(fù)被雨像素破壞的區(qū)域。然而,由于該方法中的雨檢測僅取決于區(qū)域的梯度方向,會錯誤地檢測到與雨方向一致的圖像邊界。此外,由于雨的存在,用于圖像修復(fù)的非局部均值濾波可能利用并不相似的塊來提供修復(fù)信息,所以通過非局部均值濾波去除雨線在視覺質(zhì)量方面仍有較大的改善空間。在文獻(xiàn)[3]中提出了與文獻(xiàn)[2]類似的方法,但同樣存在由于檢測模型的不準(zhǔn)確產(chǎn)生檢測不足或者過檢測,造成修補(bǔ)后的圖像出現(xiàn)雨痕殘留或圖像背景被模糊等問題,這也是本文改進(jìn)與完善的重點(diǎn)。
2015 年Luo 等[4]采用一種非線性雨模型,通過約束雨分量和無雨圖像之間的稀疏表示系數(shù)的相關(guān)性達(dá)到去雨的目的,但該算法去雨不徹底且處理后的圖像出現(xiàn)不自然偽影。2016年,Li等[5]基于圖像先驗(yàn)提出高斯混合模型(Gaussian Mixture Model,GMM),但該方法處理后的圖像由于過分平滑導(dǎo)致圖像細(xì)節(jié)的丟失,且對于大雨圖像處理并不理想。
近幾年,深度學(xué)習(xí)的快速發(fā)展延伸到圖像去雨領(lǐng)域。2017 年,F(xiàn)u 等[6]引入深度檢測網(wǎng)絡(luò),提出了一種基于圖像域先驗(yàn)的深度網(wǎng)絡(luò)架構(gòu),用于消除雨線。2018年,Zhang 等[7]提出了一種密度感知的多數(shù)據(jù)流稠密去雨網(wǎng)絡(luò)(Density-aware Image De-raining method using a Multi-stream Dense Network,DID-MDN),該網(wǎng)絡(luò)實(shí)現(xiàn)雨密度估算進(jìn)一步達(dá)到去雨目的。2019 年,文獻(xiàn)[8]提出了一種特征監(jiān)督的生成對抗網(wǎng)絡(luò)(Feature-Supervised Generative Adversarial Network,F(xiàn)S-GAN),用于單幅圖像去雨。基于深度學(xué)習(xí)的去雨算法利用復(fù)雜的神經(jīng)網(wǎng)絡(luò)通常能有效修復(fù)雨像素,但經(jīng)常面臨神經(jīng)網(wǎng)絡(luò)訓(xùn)練耗時以及繁雜的手動調(diào)參等問題。
基于上述分析,本文提出一種快速高效的兩步去雨算法,采用檢測加修補(bǔ)的策略,基于最小值濾波有效去除單幅圖像中的雨線,避免了非深度學(xué)習(xí)算法檢測不準(zhǔn)確或去雨不徹底問題和深度學(xué)習(xí)方法的繁瑣預(yù)訓(xùn)練和調(diào)參問題。檢測階段充分利用雨像素和非雨像素的特性,根據(jù)雨像素的亮度和方向信息建立雨檢測模型。修補(bǔ)階段先利用自然圖像塊的自相似性在全局匹配相似塊,再以相似塊的位置信息為先驗(yàn)設(shè)計最小值濾波修補(bǔ)模型,最終通過修正策略進(jìn)一步優(yōu)化去雨效果,達(dá)到高質(zhì)量去雨目的。
本文貢獻(xiàn)點(diǎn)主要包括:
(1)結(jié)合雨亮度和方向信息提出雨檢測模型,過濾被誤檢測的非雨像素,精確地標(biāo)記雨像素位置。
(2)提出粗細(xì)粒度相結(jié)合的相似塊匹配算法,提高匹配精度。
(3)利用相似塊建立基于最小值濾波的修補(bǔ)模型,并提出有效的修正策略優(yōu)化去雨效果。
首先介紹如何利用雨的強(qiáng)度信息和方向信息檢測標(biāo)記雨線位置。然后討論在已知雨線位置時如何利用相似塊設(shè)計最小值濾波進(jìn)行雨像素的修復(fù),再通過修正策略進(jìn)一步優(yōu)化去雨效果,最終將去雨后的圖像塊重構(gòu)為去雨的完整圖像。
雨檢測的準(zhǔn)確性影響下一步的修補(bǔ)模型,為盡可能準(zhǔn)確地標(biāo)記雨像素,本文利用雨的兩個先驗(yàn)信息。首先利用雨的亮度信息得到雨的標(biāo)記位圖ΩI,其次利用雨的方向性信息得到標(biāo)記位圖ΩO,而最終的標(biāo)記位圖Ω=ΩI·*ΩO,其中·*代表點(diǎn)積運(yùn)算,即取同時滿足亮度條件和方向條件的像素,從而實(shí)現(xiàn)雨像素精確檢測。
關(guān)于雨像素的一個常見假設(shè)是雨圖像由雨層和干凈背景層疊加組成[9-10],因此雨像素的亮度值通常大于其鄰居像素的亮度值。在本文中,首先將RGB 三通道轉(zhuǎn)化為YCBCR 的Y 通道檢測(即luma 通道),分別定義5 個大小為7×7 的窗口Wk(k=1,2,3,4,5) 用于卷積計算,使得被檢測像素(i,j) 分別位于窗口的中心、左上角、右上角、左下角、右下角位置。若被測像素的亮度值I( i,j )大于預(yù)定義的任意3 個窗口覆蓋的鄰域像素的平均值,則將其標(biāo)記為雨像素候選者,對應(yīng)標(biāo)記位圖的值為1。根據(jù)雨的亮度信息得到的雨標(biāo)記位圖ΩI定義如下:
亮度信息幾乎能檢測到所有的雨像素,但亮度與雨像素接近的背景像素可能會被誤標(biāo)記為雨像素,因此會產(chǎn)生過度檢測的現(xiàn)象。如圖1(b)中箭頭所示,一些背景像素被誤檢測標(biāo)記為雨像素,若多余的背景像素被當(dāng)作雨像素處理,處理后的結(jié)果因?yàn)檫^度去雨而導(dǎo)致細(xì)節(jié)模糊并降低客觀度量值。因此,第二步檢測利用雨線的方向信息過濾第一步誤檢測的非雨像素,進(jìn)一步提高修補(bǔ)的精度。
對于大多數(shù)的靜止雨圖,雨線的分布并非雜亂無章,通常存在明顯的方向性,因此在雨像素處沿雨方向的梯度應(yīng)為零或接近零[11-13]。受Luo 等[13]的啟發(fā),本文通過計算圖像中每個像素點(diǎn)沿雨方向的梯度提升雨檢測精度。對于每個像素(i,j),沿水平和垂直方向應(yīng)用一維濾波器進(jìn)行卷積計算,得到其方向梯度值[dy,dx] 。每個像素的梯度方向θi,j定義為arctan(dy dx),而整幅圖雨線的主方向θ則由圖像中所有像素局部方向的θi,j平均值決定。定義雨線方向差分算子?θ如下:
圖1 雨檢測模型的中間結(jié)果
利用上述差分算子,計算圖像沿雨線方向梯度:
其中*表示卷積運(yùn)算?;谏鲜龇治觯晗袼靥幯赜攴较虻奶荻戎祽?yīng)該為零或接近為零。因此,本文設(shè)定以下判斷條件:若像素(i,j)處e|gθ(i,j)|小于給定閾值β,即雨線方向梯度足夠小,則該像素被選為候選雨像素。根據(jù)雨線的方向信息得到的雨標(biāo)記位圖ΩO定義為:
其中·*為點(diǎn)積運(yùn)算。Ω表示只有當(dāng)亮度條件和方向條件均滿足時,該像素才被視為雨像素。圖1(b)為僅利用亮度先驗(yàn)檢測出的雨標(biāo)記位圖,可以看出部分非雨的背景輪廓被誤標(biāo)記為雨像素。經(jīng)過方向信息的過濾后,圖1(c)中許多誤檢測的像素被重新設(shè)置為非雨像素(見圖中用箭頭標(biāo)記的位置)。圖1(d)則展示了ΩI和最終檢測標(biāo)記矩陣Ω之間的差異。顯然,亮度和方向結(jié)合的兩步檢測方案保證了雨線檢測的準(zhǔn)確性。
本文雨修補(bǔ)模型分為相似塊匹配和最小值濾波處理兩部分。該修補(bǔ)模型基于以下事實(shí):自然圖像大部分是相似的,劃分為重疊的圖像塊后通常存在許多自相似塊,對任一圖像塊pi來說,利用精確的相似塊匹配算法可以在全局搜索得到最佳相似塊集合B。匹配得到的相似塊處于圖像中不同位置,因此對于圖像塊pi中被雨線遮擋的像素點(diǎn),存在其相似塊中對應(yīng)像素點(diǎn)不含雨線或受雨影響較弱的情況,因而雨像素可用相似塊中對應(yīng)位置的像素近似替換。
如圖2 所示,圖像塊pi匹配后對應(yīng)的相似塊集為Bi(i=1,2,…,m)。假設(shè)p1,1是被雨線影響的像素點(diǎn),則其對應(yīng)的每個相似塊Bi中對應(yīng)像素點(diǎn)b1,1極有可能沒有被雨線影響或影響較弱,影響越弱其亮度值相對越低。因此,可采用最小值濾波的方法對雨像素值進(jìn)行修復(fù),即將當(dāng)前圖像塊pi中檢測到的雨像素點(diǎn)p1,1的值用這m個對應(yīng)像素點(diǎn)b1,1中的最小值代替。對特殊情況(見1.2.2 小節(jié)分析),本文將進(jìn)一步提出修正策略優(yōu)化去雨結(jié)果,得到最終的干凈圖像塊。最后,將去雨后的圖像塊重構(gòu)為完整的去雨圖像。算法1 總結(jié)了整個修補(bǔ)過程。
圖2 修補(bǔ)模型示意圖
算法1基于相似塊匹配與最小值濾波的去雨修補(bǔ)算法
1.2.1 相似塊匹配
匹配相似圖像塊是運(yùn)動估計、跟蹤和視頻壓縮等視頻處理技術(shù)中的重要問題。目前相似塊匹配算法已有大量研究工作[14-16]。相似塊匹配的精準(zhǔn)度影響下一步最小值濾波修補(bǔ)方法的效果,因此本文致力于建立精確的相似塊匹配算法。
對雨圖像而言,雨線的存在會大大影響相似塊匹配算法的精確度,因此將相似塊匹配算法直接應(yīng)用于雨圖像數(shù)據(jù)是不合適的[17]。本文先采用以下預(yù)處理操作:利用高斯濾波處理后的結(jié)果替換被標(biāo)記的雨像素,同時確保非雨像素保持不變。
預(yù)處理后,對于任意圖像塊pi首先構(gòu)造基于直方圖的粗粒度塊匹配算法,利用余弦相似度初步選出一定數(shù)量的相似塊候選集合。在相似塊候選集中,再構(gòu)造基于距離的細(xì)粒度像素匹配算法,進(jìn)一步選出最佳相似塊集合。具體地,粗細(xì)粒度結(jié)合的匹配算法包含以下步驟:
假設(shè)輸入的雨圖像為J ,預(yù)處理后將其劃分為步長為s 的重疊的n×n 圖像塊。對于待比較的兩個圖像塊pi和pj,第一步基于直方圖初步獲取相似塊候選集。首先,分別獲得圖像塊pi和pj各自歸一化的直方圖分布,將直方圖劃分為64個區(qū),其中每個區(qū)為連續(xù)的4 個灰度等級。然后對每個區(qū)的4 個灰度值求和,將得到的64 個數(shù)據(jù)定義為pi和pj對應(yīng)的指紋向量X 和Y。其次,二者的相似度可利用指紋向量的余弦相似度計算:
其中,Xi和Yi分別代表向量X 和Y 的各分量。計算的余弦值越接近1,表明兩個向量的夾角越接近0°,即二者方向越一致,圖像塊在粗粒度上越相似。根據(jù)式(7)和預(yù)設(shè)的閾值λ,滿足cos θ >λ 的圖像塊pi和pj被視同互為相似塊。
第二步,利用基于距離的細(xì)粒度像素匹配算法,獲取最佳相似塊樣本集合。首先,定義圖像塊pi和pj之間的距離:
1.2.2 最小值濾波處理
其中,Ωpi表示pi對應(yīng)的雨像素索引集,pi,j和qi,j分別代表pi和qi中第j 個像素。
處理6、龍粳40,株行距為10cm*30cm。水整地時施入二胺6公斤、50%硫酸鉀3公斤、尿素2公斤。插秧時無側(cè)深施肥時加入。
圖3列出了8幅合成雨圖像和4幅真實(shí)雨圖像的測試原圖,相應(yīng)的去雨結(jié)果分別在圖4 和圖5 展示。如處理圖4(d)和圖5(d)所示,對所有圖像塊依照算法A 處理后,可取得較好去雨效果。然而,考慮到極端情況下,雨像素pi,j與其代替像素的值相等(即相似矩陣對應(yīng)行最小值為pi,j本身),造成該雨像素并未被處理,因此會有殘留雨痕?;诖藛栴},提出針對算法A的修正策略(此處用算法A+代指):沿著雨線的垂直方向設(shè)置高斯濾波器,將未處理的零星雨像素用該濾波器模糊后的值代替,得到最終的去雨圖像塊qfinal。具體實(shí)現(xiàn)中,通過判斷雨像素本身的值與其代替像素值是否相等得到未處理雨像素的索引集,然后僅對該索引集中的雨像素進(jìn)行上述修正處理,最終得到優(yōu)化后的去雨圖像塊。
圖3 部分實(shí)驗(yàn)數(shù)據(jù)
圖4 圖3中8幅合成雨圖的去雨結(jié)果對比
圖5 圖3中4幅真實(shí)雨圖的去雨結(jié)果對比
經(jīng)上述處理,通過修正殘留的零星點(diǎn)狀雨像素(如圖4(d)第一行中橢圓標(biāo)記的點(diǎn)狀雨像素),能夠獲得更優(yōu)的去雨效果(如圖4(e)第一行),同時也可提升部分客觀度量指標(biāo)值。
1.2.3 重構(gòu)去雨圖像塊
完成所有圖像塊的去雨操作后,最后將得到的去雨圖像塊重構(gòu)為去雨后的整幅干凈圖像。本文采用的重構(gòu)方法,與大多數(shù)基于圖像塊處理的方法類似[18-19],每個像素的強(qiáng)度值由所有覆蓋的像素塊的平均值決定。
本章介紹算法中涉及到的參數(shù)設(shè)置,并在合成雨圖和真實(shí)雨圖上測試本文的方法,分別與非深度學(xué)習(xí)的傳統(tǒng)經(jīng)典算法包括Li等[5]的高斯混合模型(GMM)方法和Luo 等[4]的判別性稀疏編碼(Discriminative Sparse Coding,DSC)方法,以及基于深度學(xué)習(xí)的多數(shù)據(jù)流稠密去雨網(wǎng)絡(luò)(DID-MDN)方法[7]對比。
實(shí)驗(yàn)中圖像塊大小n=10,取樣步長s=3 像素。λ取值介于0 和1 之間,λ值越大對相似性塊的判斷要求越高,越小則要求越低。本文考慮粗粒度條件下盡量保留較多候選相似塊以便細(xì)粒度篩選出最佳相似塊集,實(shí)驗(yàn)中取值λ=0.65。此外,由于修補(bǔ)模型基于最佳相似塊集因此盡可能選取最相似的圖像塊,取值m=12。
值得一提的是部分參數(shù)的取值依賴于具體待處理的圖像,并非取固定值。如公式(5)中的β,較大的β值適用于大雨圖像,此時會有較多的像素檢測為雨像素。反之,較小的β值則適用于小雨或細(xì)雨圖像,此時僅有少量被檢測為雨像素。采用固定的β值處理所有圖像并不合適,因此文中定義了根據(jù)圖像特征自適應(yīng)取值。經(jīng)實(shí)驗(yàn)結(jié)果驗(yàn)證,固定參數(shù)與自適應(yīng)參數(shù)結(jié)合的方案能夠取得良好的去雨效果,并保持算法穩(wěn)定。
本實(shí)驗(yàn)測試的合成圖數(shù)據(jù)選自Li 等[5]和Yang 等[20]的提供的數(shù)據(jù)集。實(shí)驗(yàn)結(jié)果由2 個常用的圖像指標(biāo)評估:峰值信噪比[21](Peak Signal to Noise Ratio,PSNR)和結(jié)構(gòu)相似性指標(biāo)[22](Structrual Similarity Index Metric,SSIM)。其中,PSNR衡量圖像整體相似性指標(biāo),重點(diǎn)評估圖像顏色和平滑區(qū)域的失真,其值越大,代表去雨后的圖像失真越小;SSIM 則用于評價兩幅圖像的結(jié)構(gòu)和細(xì)節(jié)相似度,其范圍是[0,1],值越接近1,則表示去雨前后的圖像在結(jié)構(gòu)和細(xì)節(jié)上相似度越高。表1、表2 分別列出了各對比算法應(yīng)用在圖3中8幅合成雨圖像后對應(yīng)的PSNR 和SSIM 指標(biāo)值,各算法運(yùn)行結(jié)果的最優(yōu)值以加粗黑體突出顯示,且最后一行展示了對應(yīng)列指標(biāo)值的平均值。
相比其他方法,本文方法和GMM 方法的PSNR 值顯然占優(yōu),且本文方法的整體平均PSNR 值最高(見表1 最后一行)。前4 幅合成圖選自GMM 方法提供的數(shù)據(jù)集,GMM 方法的PSNR 值比本文方法略高,后四幅圖本文算法的PSNR 值更占優(yōu)勢。由于去雨結(jié)果中出現(xiàn)偽影和變暗現(xiàn)象,DSC 方法和DID-MDN 方法的PSNR 值通常最低。從表2 看出,多數(shù)情況下本文方法在SSIM 指標(biāo)上表現(xiàn)最優(yōu),且整體平均值也是最優(yōu)的,主要原因是本文方法在檢測雨階段能夠篩選保留更多背景圖像的輪廓結(jié)構(gòu)細(xì)節(jié)。DSC 方法在SSIM 指標(biāo)上表現(xiàn)適中,DID-MND 方法由于整體圖像的變暗而表現(xiàn)得最不理想。
圖4 展示了8 幅合成雨圖去雨后的效果,并突顯部分區(qū)域以進(jìn)行詳細(xì)比較(參見每張圖右下角)。針對前4幅來自文獻(xiàn)[5]的合成雨圖,GMM方法的整體去雨效果與本文方法不相上下,但部分區(qū)域仍有殘留雨痕,而本文算法能表現(xiàn)出良好的效果。針對后4 幅來自Yang等[20]數(shù)據(jù)集的雨圖,明顯可以看出GMM方法表現(xiàn)欠佳,不少明顯的雨線并未去除,而本文算法的去雨效果良好。此外,DSC 方法會出現(xiàn)一些不自然的偽影,且在某些區(qū)域雨痕殘留明顯。盡管DID-MDN 表現(xiàn)出一定的去雨效果,但去雨后整體圖像色調(diào)變暗。綜上所述,與相關(guān)方法對比本文方法的去雨效果更有競爭力。
表1 各算法在合成圖的PSNR值對比 dB
表2 各算法在合成圖的SSIM值對比
本文也采用了真實(shí)雨圖進(jìn)行評估,圖5 展示了圖3中的4幅真實(shí)雨圖的去雨效果。如圖,右下角突出放大區(qū)域以便更好觀察(第一幅圖因特殊取樣位置,將放大區(qū)域放在左下角)。對于較亮較明顯的雨線,四種方法均有一定的去雨效果,但在GMM的結(jié)果中很容易發(fā)現(xiàn)一些殘留雨線,DSC由于過度去雨而導(dǎo)致結(jié)果中存在明顯的偽影,DID-MDN消除了大部分雨線,但如合成圖中一樣,整體圖像顯然變暗。對于雨線細(xì)小且顏色深的地方,本文方法的去雨效果相比其他三種方法表現(xiàn)更佳(參看藍(lán)框區(qū)域)。綜合對比,本文方法能在消除雨線的同時保持圖像細(xì)節(jié),在主觀視覺效果和客觀度量指標(biāo)上均展現(xiàn)出一定的優(yōu)勢。
本文提出了一種新穎的兩階段模型用于單幅圖像去雨。在雨檢測階段,先結(jié)合雨線的亮度和方向信息檢測雨線的位置,獲取精確的雨標(biāo)記位圖。在修復(fù)階段,利用精確的相似塊匹配算法在全局搜索得到最佳相似塊集合,再建立起相似塊矩陣,并通過最小值濾波將雨像素用相似塊中對應(yīng)位置的最小值代替,從而達(dá)到去雨的目的。最后,針對少部分散點(diǎn)雨像素,利用高斯濾波修補(bǔ)策略,進(jìn)一步優(yōu)化去雨效果。本方法解決了當(dāng)前非深度學(xué)習(xí)算法檢測不準(zhǔn)確或去雨不徹底問題,避免了深度學(xué)習(xí)方法的大量預(yù)訓(xùn)練和調(diào)參耗時問題。
本文在相似塊匹配算法中,為提高匹配精度選擇全局范圍匹配,因此耗時較高。未來將致力于優(yōu)化處理模型,提升計算效率。此外,算法對大雨如暴雨等情況下的雨圖處理效果不太理想,原因在于暴雨天氣獲取的圖像需要額外考慮霧的存在,未來將進(jìn)一步改進(jìn)以適用于此類圖像。