趙嘉興,王夏黎,王麗紅,曹晨潔
(長安大學(xué) 信息工程學(xué)院,陜西 西安 710064)
圖像去雨屬于圖像去噪研究范疇,核心工作是從包含噪聲圖像或者殘缺圖像中復(fù)原相對干凈圖像,為后續(xù)的機器視覺處理工作提供一個干凈的數(shù)據(jù)源。在雨天拍攝的圖像包含有雨滴或者雨線,由于雨噪聲的存在使圖像模糊,會造成在戶外工作的計算機視覺系統(tǒng)工作異常。
近年來,圖像去雨引起了許多研究者的關(guān)注,已有多種圖像去雨方法被提出來,這些方法大致可分為兩類:基于視頻的圖像去雨方法和基于單幅圖像的去雨方法。其中基于視頻的圖像去雨算法在要求目標基本不變,通過大量時空冗余相關(guān)特征信息可以去除圖像雨噪聲,因而對雨噪聲的檢測和去除相對較為容易。與之相比,單幅圖像去雨算法的困難在,圖像只包含某一時刻的影像信息,缺少雨噪聲的時空特性,但相較于前者,單幅圖像去雨的應(yīng)用靈活性更高,也更具有挑戰(zhàn)性,成為當前研究的難點與熱點。
去雨,實際上是把圖像看成是雨水層和無雨層的疊加,然后在含雨噪聲圖像中提取無雨層。現(xiàn)如今,在單幅圖像去雨研究中,效果比較理想的主要有三種方法。
一種是基于稀疏編碼字典學(xué)習(xí)和分類器的去雨方法[1]。Kang等根據(jù)雨噪聲多分布于圖像高頻信息部分,首先通過雙邊濾波器分離圖像高低頻信息,然后在圖像高頻信息中通過字典學(xué)習(xí)雨噪聲圖和干凈圖像的映射關(guān)系,最后將保留的非雨成分和低頻部分綜合,得到去除雨噪聲后的圖像。Huang等[2]在此基礎(chǔ)上利用上下文相似信息親和傳播聚類的方法對雨噪聲進行判別,提升了算法去雨效果。Luo等[3]提出了一種判別性稀疏編碼,用于將雨條紋與圖像背景分開,不足的地方是該方法去完雨后的圖像上仍有雨條紋殘留。第二種是文獻[4]提出的基于圖像處理的去雨霧算法,適合在一些不包含天空的圖像中去霧、去少量雨條紋,但在包含天空或者大量雨條紋的圖像上存在去雨不完全、丟失圖像細節(jié)等問題。造成上述狀況的原因是,上述兩類算法只利用圖像的低級特征來分離圖像中的雨條紋和物體,當雨條紋與圖像物體結(jié)構(gòu)的顏色與方向區(qū)分度明顯時,效果很好,但是當雨條紋和背景圖像區(qū)分度不明顯時,雨噪聲在很難從圖像信息中分離出來的同時保留物體的結(jié)構(gòu)信息。
最后一種是基于卷積神經(jīng)網(wǎng)絡(luò)的去雨算法。近10年硬件發(fā)展很快,顯卡運算力也在快速增長,助推深度學(xué)習(xí)的快速發(fā)展,同時COCO,PASCAL VOC與ImageNet等大型圖像數(shù)據(jù)集也不斷出現(xiàn)。相比于其他方法,卷積網(wǎng)絡(luò)在復(fù)雜機器視覺任務(wù)上取得了優(yōu)異的效果,例如動作識別[5]、目標檢測[6]等。而應(yīng)用在圖像去噪[7-8]、圖像復(fù)原[9]、圖像去雨霧[10-14]等底層任務(wù)上,也取得了很好的效果。
CNN去噪方法[11-14]可以利用大量自主學(xué)習(xí)的卷積核針對不同情景提取圖像特征,但隨著網(wǎng)絡(luò)深度的加深,提取的特征越來越高級,從底層的顏色、邊緣特征等到紋理細節(jié)等特征,會逐層丟失大量的低級特征,導(dǎo)致雨條紋在圖像中區(qū)分不明顯時,網(wǎng)絡(luò)在去雨后會留下微小的雨痕。文中采用多尺度密集卷積網(wǎng)絡(luò)塊在網(wǎng)絡(luò)傳播過程中將低級特征與高級特征合并。每個密集網(wǎng)絡(luò)塊之間進行縱向連接,再用時間傳播序列將每一個密集網(wǎng)絡(luò)塊以橫向方式直接連接起來,使低級特征可以直接傳播到深層網(wǎng)絡(luò)中,提出了多尺度密集時間卷積(DenseTimeNet)網(wǎng)絡(luò)進行圖像去雨。
基于卷積網(wǎng)絡(luò)的單幅圖像去雨工作的核心在于設(shè)計出一個有雨圖像端到無雨圖像端的復(fù)雜映射模型。在深度學(xué)習(xí)中,越深的網(wǎng)絡(luò)越難訓(xùn)練,同時也會存在著梯度爆炸和消失的問題,最近的工作表明,如CNN(convolutional neural network)在輸入與輸出之間存在更多的連接時,底層特征便能夠直接傳播到深層,可減輕梯度彌散問題,也可以增強特征深度延展,提高特征利用率。ResNet[15]和DenseNet[16]都在網(wǎng)絡(luò)輸入輸出之間加入了連接,ResNet按殘差塊為單位添加網(wǎng)絡(luò)隱含層的連接,DenseNet在每層添加連接,從特征的角度考慮,通過特征重用和旁路(Bypass)設(shè)置,既大幅度減少了網(wǎng)絡(luò)的參數(shù)量,又在一定程度上緩解了梯度彌散問題的產(chǎn)生。但是帶來的問題是網(wǎng)絡(luò)對權(quán)重參數(shù)很敏感,易引發(fā)蝴蝶效應(yīng),通常權(quán)重一個微小的變化就能引起輸出的巨大變化,且DenseNet由于網(wǎng)絡(luò)結(jié)構(gòu)借助于反復(fù)的拼接(Concatenation)操作,將之前層的輸出與當前層的輸出拼接在一起,然后傳給下一層,內(nèi)存利用就很低。
基于ResNet與DenseNet網(wǎng)絡(luò),為了豐富卷積網(wǎng)絡(luò)在提取圖像特征信息的能力,降低權(quán)重參數(shù)靈敏度和提高內(nèi)存使用,文中設(shè)計一種基于DenseTimeNet網(wǎng)絡(luò)去雨方法,網(wǎng)絡(luò)模型如圖1所示。該方法主要包含HSV顏色空間變化、多尺度擴張卷積技術(shù)(Dilated Convolutions)、DenseTimeNetBlock、Neg-mapping、網(wǎng)絡(luò)訓(xùn)練5個部分。
圖1 DenseTimeNet網(wǎng)絡(luò)結(jié)構(gòu)模型
圖像去噪算法以顏色領(lǐng)域為視角來看,實際上是對一幅圖像的色彩表示,顏色深淺,色彩明暗進行分析、去噪的一個過程,RGB顏色模型適用于顯示器等發(fā)光體顯示,所有的顏色信息由不同明亮的三基色加色混合而來,HSV模型是針對用戶觀感的一種顏色模型,H通道代表色彩,S代表深淺,V代表明暗,相比于RGB模型,在圖像分割作用較大。如圖2所示,分別對比含有大量雨噪聲圖像和干凈圖像在兩個顏色模型的分布直方圖,由圖2(f,g,h)可發(fā)現(xiàn)RGB模型的3個通道直方圖分布規(guī)律相似,直觀的表現(xiàn)雨圖相比真實圖像更亮一些,而在HSV中,僅一個明暗分量(圖2(d))就能表現(xiàn)。更重要的是相比RGB模型,HSV可以直接表現(xiàn)出有雨圖像和無雨圖像之間色調(diào)(圖2(a))與顏色深淺差異(圖2(c))。因此,文中不直接對RGB顏色空間進行分析,為了貼合實際情況,對輸入圖像進行HSV空間轉(zhuǎn)化。
圖2 有雨和無雨圖像HSV與RGB顏色直方圖
圖像雨噪聲檢測和修復(fù)不僅需要雨區(qū)域的特征還需要鄰近區(qū)域特征。對圖像上下文信息的相關(guān)利用很高。擴張卷積與普通的卷積相比,除了卷積核的大小以外,還有一個擴張因子df(dilated factors),主要用來表示擴張的大小。擴張卷積與普通卷積在CNN中訓(xùn)練參數(shù)不變,但具有更大的感受視野RF(receptive field)(見圖3),計算公式如下:
RF=(2df+1-1)*(2df+1-1)
(1)
圖3 感受野范圍大小
如圖1可見,DenseTimeNet主要由多個不同尺度DenseTimeNetBlock組成,而每一個DenseTimeNet Block由多個構(gòu)件網(wǎng)絡(luò)(圖4)組成,每一個構(gòu)件網(wǎng)絡(luò)包含一個5層密集卷積網(wǎng)絡(luò)塊,一個時間序列層[17-18](TimeDistributed)和一個特征輸出層。
圖4 構(gòu)件網(wǎng)絡(luò)
1.3.1 密集網(wǎng)絡(luò)塊
密集卷積網(wǎng)絡(luò)塊比傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)需要更少的參數(shù),每一卷積層都有從前繼層額外輸入,傳遞自己的feature map的信息,因此,第n層有n個輸入,是所有前驅(qū)feature map塊組成,這樣的網(wǎng)絡(luò)參數(shù)利用效率很高,并且直接刺激了網(wǎng)絡(luò)的信息流動和梯度使其變得更容易訓(xùn)練。使得網(wǎng)絡(luò)可以得到更深的監(jiān)督,對更深網(wǎng)絡(luò)的訓(xùn)練有幫助。進一步說,密集連接具有正則作用,它減緩在更小的訓(xùn)練數(shù)據(jù)集上過擬合,使網(wǎng)絡(luò)的應(yīng)用拓展性更高。
1.3.2 時間傳播序列層
原始的高維空間中,深度地隱含大量冗余信息以及噪音信息,將在圖像檢測或者識別應(yīng)用中造成誤差,降低算法準確率。數(shù)據(jù)降維,不僅便于計算和可視化,更將數(shù)據(jù)以原始的組合向高維視角暴露,有利于篩選有效信息。在這一層中,將二維卷積轉(zhuǎn)化為時域卷積,將二維圖像數(shù)據(jù)轉(zhuǎn)為最基本的一維時間序列數(shù)據(jù),并在時域卷積上使用時間序列來進行張量操作。在多時域卷積特征進行共享參數(shù)。
1.3.3 降采樣層
尺寸特征圖越大,感受野越小,則適合檢測越大尺寸的目標。為適應(yīng)小雨、大雨等不同的天氣情況,文中設(shè)計了多尺度的DenseTimeNetBlock,主要在降采樣層進行尺度控制,3個DenseTimeNetBlock分別進行0次、1次、2次下采樣,卷積核分別使用如圖3(a)、圖3(b)、圖3(c)的膨脹卷積,分別輸出尺寸為輸入圖的1/1、1/2、1/4大小的特征圖。
主要受到ResNet與DenseNet的啟發(fā),圖像特征在經(jīng)過多尺度DenseTimeNetBlock后,已經(jīng)從圖像低級特征(如顏色特征、形狀特征等)中提取并組合了圖像高級紋理特征。但是傳播中也降低了圖像的基本特征信息,如色調(diào)信息、顏色深淺等,文中使用Neg-mapping(負映射):通過skip connection把輸入直接加到最后一個隱含卷積層,跳過中間的多尺度卷積時間序列層。通過無損傳播的方式將圖像基本特征與圖像高級紋理特征結(jié)合起來。Neg-mapping可以有效降低解空間,實現(xiàn)更好的從有雨圖像到無雨圖像的復(fù)原效果,使網(wǎng)絡(luò)更容易訓(xùn)練。
通過網(wǎng)絡(luò)重建得到的預(yù)測圖像和真實圖之間的代價來不斷調(diào)整網(wǎng)絡(luò)參數(shù)。對于一組不含雨滴的理想恢復(fù)圖像Y_P,Y_T和一組由網(wǎng)絡(luò)重建得到的無雨圖像,使用絕對值方差(mean absolute error,MAE)作為損失函數(shù)來估計網(wǎng)絡(luò)參數(shù)。MAE的形式如下:
MAE(θ)=E(|Y_P-Y_T|)
(2)
優(yōu)化器使用Adam[19]。
實驗環(huán)境為Intel core i7 CPU 8750H,64位的Windows 10,內(nèi)存16 G,顯卡為GTX1050Ti 4 G。
用于訓(xùn)練的數(shù)據(jù)是Fu等[10-11]在無雨圖像上進行人工合成生成的有雨圖像。該數(shù)據(jù)集包含14 000張合成的有雨圖像和1 000張真實的無雨圖像。每張無雨圖像合成14張不同方向、大小的雨條圖像。訓(xùn)練時,選取數(shù)據(jù)集中的12 600張有雨圖像作為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練集,而剩余的1 400張有雨圖像作為測試集,訓(xùn)練時隨機選取輸入圖像(有雨和無雨圖像),200×200像素大小的圖像塊作為一對樣本輸入到卷積神經(jīng)網(wǎng)絡(luò)中,batch_size為4,初始學(xué)習(xí)率大小設(shè)定為0.001,迭代64 000次。
為了研究網(wǎng)絡(luò)深度對圖像去雨效果的影響,在其他參數(shù)不變的情況下,設(shè)置模型構(gòu)件網(wǎng)絡(luò)數(shù)量為9、15、21,迭代次數(shù)為100 000,對比來自rainy_image_dataset下100張包含14種不同場景、不同方向、不同雨滴大小的圖像的處理效果,如表1所示,其中評價指標為PSNR(peak signal to noise ratio,平均峰值信噪比)、SSIM(structural similarity index metric,結(jié)構(gòu)相似性度量)和平均修復(fù)時間。
表1 不同深度條件下網(wǎng)絡(luò)去雨質(zhì)量評價對比結(jié)果
從表1可看出,在其他參數(shù)不變的條件下,網(wǎng)絡(luò)加深可提升去雨效果,9個構(gòu)件網(wǎng)絡(luò)到17個,提升明顯,且算法處理時間平均僅多了0.025 s,而25個相比于17個,去雨效果提升較小,處理時間幾乎增多一倍。出于算法實時性考慮,文中采用17個構(gòu)件網(wǎng)絡(luò)組成的多尺度DenseTimeNet卷積神經(jīng)網(wǎng)絡(luò)。具體網(wǎng)絡(luò)參數(shù)設(shè)置如圖5所示。
圖5 網(wǎng)絡(luò)參數(shù)設(shè)置
為了突出多尺度DenseTimeNet在去雨方面的優(yōu)勢,對單尺度DenseTimeNet和多尺度DenseTimeNet的網(wǎng)絡(luò)進行同等條件下的訓(xùn)練,發(fā)現(xiàn)網(wǎng)絡(luò)對在去除雨痕時,使用單尺度網(wǎng)絡(luò)相較于多尺度網(wǎng)絡(luò),圖像紋理細節(jié)稍微模糊一點。圖6是單尺度網(wǎng)絡(luò)與多尺度網(wǎng)絡(luò)的去雨效果對比。在表2中,測試了單尺度網(wǎng)絡(luò)與多尺度網(wǎng)絡(luò)在處理結(jié)果圖像的PSNR和SSIM對比。證明了多尺度網(wǎng)絡(luò)去除雨噪聲能力與圖像細節(jié)保留能力都強于單尺度網(wǎng)絡(luò)。
圖6 單尺度與多尺度網(wǎng)絡(luò)的去雨效果對比
表2 單尺度網(wǎng)絡(luò)與多尺度網(wǎng)絡(luò)性能對比
表3和表4列出了文中所提方法與暗通道的去雨霧算法[4]和Fu[10-11]方法在三個數(shù)據(jù)集的SSIM與PSNR的比較結(jié)果??梢钥闯觯闹蟹椒ㄔ趦煞N評價指標上都要略優(yōu)于暗通道去雨霧算法[4]和Fu[10-11]的方法。
表3 在3個數(shù)據(jù)集上的PSNR質(zhì)量評價對比
表4 在3個數(shù)據(jù)集上的SSIM質(zhì)量評價對比
圖7 不同方法在合成圖像的去雨效果對比
圖7中,展示了4種方法在3幅合成圖像上的去雨效果。從去雨的視覺效果來看,文獻[4]僅能去除少量的雨噪聲,圖像失真嚴重,文獻[10]保留了大量雨痕,文獻[11]則含有少量雨痕,而文中所提方法去雨能力更強,圖像細節(jié)保留更好。為了更清楚地對比不同方法的去雨效果,將圖7第一幅圖局部放大,如圖8所示(白色框為放大區(qū)域),可看出文中方法能夠干凈地去除圖像雨噪聲。
圖8 圖7第一幅圖像的局部放大效果圖
圖9是在真實雨天下拍攝的3組圖像的去雨結(jié)果圖,發(fā)現(xiàn)對第1,2幅雨量較少的雨景圖去雨后,文獻[11]方法在去除雨滴時,丟失圖像細節(jié),圖像紋理模糊,而在第3幅雨景圖中,文獻[11]方法的去雨能力表現(xiàn)不佳,模型去雨后,還有少量的雨線存在。而從文中方法的處理圖可見,從第1,2幅雨圖對比,該方法在有效去除雨噪聲的同時更好地保留了圖像細節(jié)。第3幅雨景圖,文中方法去雨能力更強。
圖9 真實場景的去雨效果圖
提出了一種基于多尺度DenseTimeNet卷積神經(jīng)網(wǎng)絡(luò)的單幅圖像去雨方法。首先將含有雨噪聲的圖像轉(zhuǎn)化為HSV顏色空間,借助多尺度密集時序卷積神經(jīng)網(wǎng)絡(luò)挖掘不同維度的特征信息關(guān)系進行去噪,最后將HSV顏色空間轉(zhuǎn)化為RGB顏色空間,得到對應(yīng)的無雨圖像。實驗結(jié)果表明,在合成雨圖和真實雨圖的測試中,模型在有效去除雨痕的同時防止了圖像過度平滑、圖像失真等情況,所提方法較現(xiàn)有方法去雨噪聲能力稍強,也能更好地修復(fù)圖像殘損部分。