張 騫, 陳紫強(qiáng), 姜弘岳, 趙玖龍
(桂林電子科技大學(xué)信息與通信學(xué)院,廣西 桂林 541004)
在霧、霾等惡劣的天氣條件下,室外拍攝設(shè)備獲得的圖片質(zhì)量會(huì)受到不同程度的影響,不利于室外視覺處理,如自動(dòng)駕駛,交通監(jiān)控等高級(jí)計(jì)算機(jī)視覺任務(wù)[1]。圖像去霧算法通常分為基于先驗(yàn)信息的去霧方法和基于深度學(xué)習(xí)的去霧方法?;谙闰?yàn)信息的去霧方法旨在利用先驗(yàn)知識(shí)對(duì)大氣散射模型中的介質(zhì)傳輸矩陣和大氣光值進(jìn)行求解,獲得去霧后的圖像[2]。He等[3]提出了一種基于暗通道先驗(yàn)原理(Dark Channel Prior,DCP)的去霧方法,通過引導(dǎo)濾波細(xì)化透射率恢復(fù)圖像。Zhu等[4]提出一種基于顏色衰減先驗(yàn)(Color Attenuation Prior,CAP)的圖像去霧算法。張競(jìng)陽(yáng)等[5]提出了一種采用暗態(tài)點(diǎn)光源模型的夜間去霧算法,結(jié)合改進(jìn)的大氣散射模型得到去霧圖像。何惜琴等[6]提出一種基于YUV顏色模型和導(dǎo)向?yàn)V波的圖像去霧算法。盡管基于先驗(yàn)信息的去霧方法取得了一定的成功,但不能適應(yīng)所有的實(shí)際場(chǎng)景,部分情況下甚至?xí)霈F(xiàn)顏色失真的情況[7]。
隨著人工智能領(lǐng)域的不斷發(fā)展,基于深度學(xué)習(xí)的圖像去霧算法引起了更多人的關(guān)注。Cai等[8]提出了Dehaze-Net去霧網(wǎng)絡(luò),該模型根據(jù)大氣散射模型輸出無(wú)霧圖像。Li等[9]提出了一個(gè)輕量級(jí)、多尺度融合的去霧網(wǎng)絡(luò)(All-in-One Network,AOD-Net),對(duì)變換的大氣模型參數(shù)進(jìn)行估計(jì),計(jì)算得到去霧后的圖像。Qin等[10]提出了一種結(jié)合注意力機(jī)制的殘差網(wǎng)絡(luò)(Fusion Feature Attention Network,F(xiàn)FA-Net),將提取的特征傳遞到重建部分和全局殘差學(xué)習(xí)部分,輸出去霧后的圖像。由于AOD-Net網(wǎng)絡(luò)本身的結(jié)構(gòu)設(shè)計(jì),無(wú)法充分提取圖像的特征進(jìn)行學(xué)習(xí),導(dǎo)致去霧后圖像的質(zhì)量偏低。
本文提出了一種改進(jìn)的AOD-Net去霧算法,在保持快速去霧的同時(shí),提高網(wǎng)絡(luò)整體的去霧能力。對(duì)部分卷積層的激活函數(shù)進(jìn)行位置歸一化(Positional Normalization,PONO),引入一種矩連接函數(shù)(Moment Shortcut,MS)[11]。在網(wǎng)絡(luò)的特征增強(qiáng)部分中加入注意力模塊,對(duì)不同的通道特征進(jìn)行加權(quán)操作,最終實(shí)現(xiàn)圖片的快速去霧。
大氣散射模型常被用來(lái)生成含霧圖像[12-13]:
式中:x表示圖像像素點(diǎn);I(x)表示含霧圖像;J(x)表示無(wú)霧圖像;A是全局大氣光值;t(x)表示介質(zhì)傳輸矩陣,
β表示大氣散射系數(shù);S(x)表示成像設(shè)備與物體之間的距離。
文獻(xiàn)[9]中使用具有單變量和偏差的非線性變化對(duì)大氣散射模型進(jìn)行描述,將介質(zhì)傳輸矩陣t(x)與全局大氣值A(chǔ)統(tǒng)一到一個(gè)方程中進(jìn)行求解,式(1)可重寫為
式中,b為常數(shù),默認(rèn)取1。通過聯(lián)合估算透射系數(shù)和大氣光值,可以避免由于白色區(qū)域或天空區(qū)域的影響而導(dǎo)致大氣光值估算較大的問題[14]。
AOD-Net由K值估計(jì)模塊和圖像復(fù)原模塊兩部分組成,如圖1所示。
圖1 AOD-Net算法流程圖
AOD-Net網(wǎng)絡(luò)將有霧圖像輸入K值估計(jì)模塊,即通過一系列的卷積層提取圖像中的特征信息,對(duì)式(4)中的K(x)進(jìn)行估計(jì);然后通過式(3)計(jì)算,得到無(wú)霧圖像J(x)。
AOD-Net根據(jù)大氣散射模型,采用基于卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)架構(gòu),設(shè)計(jì)多尺度的卷積層,并對(duì)圖像的特征信息進(jìn)行拼接融合,網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示[9]。
圖2 AOD-Net網(wǎng)絡(luò)結(jié)構(gòu)
圖2中:Input代表輸入圖像;Conv和k*k*N分別表示卷積層和卷積核的相關(guān)參數(shù),其中k表示卷積核的大小,N表示卷積核的個(gè)數(shù);Concat表示特征拼接操作,Output表示去霧后的圖像。AOD-Net分別使用5個(gè)大小不同的卷積核進(jìn)行卷積操作,提取多尺度的特征信息。Concat1連接了來(lái)自Conv1和和Conv2的特征,類似地,Concat2連接了Conv2和Conv3的特征,Concat3對(duì)Conv1,Conv2,Conv3和Conv4的特征進(jìn)行拼接。隨后,使用Conv5估計(jì)K值,代入式(4)中計(jì)算得到去霧后的圖像。
本文提出的改進(jìn)AOD-Net去霧網(wǎng)絡(luò)如圖3所示,該網(wǎng)絡(luò)包含特征提取模塊、特征增強(qiáng)模塊和圖像恢復(fù)模塊3個(gè)部分。輸入1張有霧圖像,依次經(jīng)過3個(gè)部分,獲得去霧后的清晰圖像。
圖3 改進(jìn)的AOD-Net網(wǎng)絡(luò)結(jié)構(gòu)
特征提取部分由多個(gè)卷積層和拼接層組成。由于歸一化操作可以提高網(wǎng)絡(luò)的收斂速度,改善數(shù)據(jù)分布不集中的問題[15],本文在Conv1和Conv2的位置進(jìn)行PONO-MS處理,對(duì)通道中每個(gè)位置上的激活函數(shù)進(jìn)行獨(dú)立的歸一化,并保留計(jì)算得到的統(tǒng)計(jì)信息,輸入到后續(xù)的網(wǎng)絡(luò)層Conv3和Conv4,作為重構(gòu)變換的參數(shù)進(jìn)行處理。特征增強(qiáng)部分由金字塔注意力(Pyramid Squeeze Attention,PSA)模塊[16]組成,在該模塊中,將輸入的特征圖分為4個(gè)分支,使用不同尺寸的卷積核進(jìn)行卷積操作,然后提取不同尺度比例的權(quán)重信息,計(jì)算得到加權(quán)融合特征圖。隨后,經(jīng)過圖像恢復(fù)部分,對(duì)K值進(jìn)行估計(jì),根據(jù)改進(jìn)的大氣散射模型恢復(fù)無(wú)霧圖像。
位置歸一化通過提取特征圖的平均值與標(biāo)準(zhǔn)差,對(duì)通道上每個(gè)位置的激活函數(shù)進(jìn)行獨(dú)立的歸一化,有利于提高網(wǎng)絡(luò)模型的魯棒性和收斂速度[11]。對(duì)神經(jīng)網(wǎng)絡(luò)中的特征圖X∈RB×C×H×W進(jìn)行歸一化,其中R為實(shí)數(shù)空間,B為圖像每個(gè)批次的數(shù)量,C為圖像通道數(shù),H為圖像高度,W為圖像寬度,則有:
式中:μ和σ分別表示該層圖像的均值和標(biāo)準(zhǔn)差;γ和β分別表示該層可學(xué)習(xí)的仿射變換參數(shù)縮放和偏移;ε是一個(gè)極小的常數(shù)(默認(rèn)ε=10-5)。
為避免網(wǎng)絡(luò)對(duì)通道矩信息的重復(fù)學(xué)習(xí),選擇保留提取的矩信息,并輸入到后續(xù)的網(wǎng)絡(luò)層,如圖4所示。由式(6)和(7)計(jì)算得到(μ,σ),輸入后續(xù)的網(wǎng)絡(luò)層F(x)作為重構(gòu)變換中的(γ,β),來(lái)重構(gòu)還原歸一化的分布,最后得到輸出
圖4 PONO-MS結(jié)構(gòu)圖
文獻(xiàn)[16]中提出一種輕量級(jí)、高效的注意力模塊PSANet,是基于SENet[17]的一種改進(jìn)模型,可用于抑制不太重要的特征信息,使得模型可以自適應(yīng)地關(guān)注上下文中的重要區(qū)域。PSA模塊的結(jié)構(gòu)信息如圖5所示。該模塊包括以下步驟:
圖5 PSA結(jié)構(gòu)圖
(1)采用多分支并行的方式提取特征信息。利用多尺度卷積核提取每個(gè)通道的空間信息
式中:n為分支個(gè)數(shù);ki為卷積核的尺寸;Gi為每個(gè)分支的通道數(shù);X為輸入的特征信息。
(2)計(jì)算通道的權(quán)重向量。利用SENet從空間信息Fi中提取不同尺度比例的特征信息,計(jì)算得到面向通道的注意力權(quán)重向量
(3)計(jì)算通道權(quán)值。利用Softmax函數(shù)對(duì)通道注意力向量進(jìn)行計(jì)算,獲得每個(gè)通道對(duì)應(yīng)權(quán)值A(chǔ)i,以串聯(lián)的方式拼接融合計(jì)算式如下:
(4)輸出加權(quán)特征信息。將權(quán)值與對(duì)應(yīng)的通道進(jìn)行點(diǎn)乘運(yùn)算,得到加權(quán)后的多尺度信息特征圖
(1)數(shù)據(jù)集。本文使用合成霧圖數(shù)據(jù)集RESIDE[18]中的OTS(Outdoor Training Set)數(shù)據(jù)集,SOTS(Synthetic Objective Training Set)數(shù)據(jù)集和HSTS(Hybrid Subjecive Testing Set)數(shù)據(jù)集。從OTS中隨機(jī)選取15000張有霧圖像,按照0.95∶0.05的比例劃分訓(xùn)練集和驗(yàn)證集。測(cè)試時(shí)使用SOTS數(shù)據(jù)集(Outdoor)和HSTS數(shù)據(jù)集。其中,Outdoor包含500張合成霧天圖像,HSTS包含10張真實(shí)霧天圖像。
(2)實(shí)驗(yàn)環(huán)境。實(shí)驗(yàn)在GPU為NVIDIA Quadro P2000環(huán)境,操作系統(tǒng)為Windows10,采用Pycharm編譯器,Pytorch深度學(xué)習(xí)框架。
(3)參數(shù)設(shè)置。使用隨機(jī)梯度下降和反向傳播算法,學(xué)習(xí)率初始化為1×10-4,使用批尺寸為4的Adam優(yōu)化器,其中動(dòng)量參數(shù)β1和β2分別設(shè)置為0.9和0.999,使用均方誤差(MSE)損失計(jì)算誤差,迭代次數(shù)為15次。
在實(shí)驗(yàn)部分,使用峰值信噪比[19](Peak Signal-to-Noise Ratio,PSNR)和結(jié)構(gòu)相似性[20](StructuralSIMilarity,SSIM)2個(gè)指標(biāo)來(lái)衡量結(jié)果的有效性。PSNR的值取決于原始霧圖與清晰圖像對(duì)應(yīng)像素的誤差,其值越大,代表恢復(fù)的無(wú)霧圖像清晰度越高。SSIM從亮度、對(duì)比度和結(jié)構(gòu)3個(gè)方面對(duì)圖像的相似度進(jìn)行評(píng)估,其值越大,代表圖像失真越小。
為了驗(yàn)證所提出模型的有效性,本文選擇一些具有代表性的DCP[3]、CAP[4]、Dehaze-Net[8]和AODNet[9]傳統(tǒng)圖像去霧方法和本文基于深度學(xué)習(xí)的輕量級(jí)去霧方法進(jìn)行比較。表1是各個(gè)算法在SOTS(Outdoor)數(shù)據(jù)集上的客觀評(píng)價(jià)結(jié)果。
表1 客觀評(píng)價(jià)結(jié)果
從表1可以看出,本文的算法相比于其他的算法在SOTS(Outdoor)測(cè)試集上的客觀評(píng)價(jià)指標(biāo)更優(yōu)異。DCP和CAP均為傳統(tǒng)去霧算法,去霧效果一般,本文算法嵌入了注意力模塊,增強(qiáng)了提取特征的能力,使得圖像更加還原。
從測(cè)試集SOTS和HSTS中選取部分室外含霧圖片進(jìn)行主觀質(zhì)量評(píng)價(jià)。由圖6可見:DCP算法的去霧結(jié)果中部分存在光暈現(xiàn)象,復(fù)原后的圖像更傾向于變暗;CAP算法去霧的過程中,出現(xiàn)了顏色不均勻的現(xiàn)象;AOD-Net去霧后的圖像有些許的煙霧殘留,不能很好地復(fù)原圖像;Dehaze-Net在霧較濃的條件下,會(huì)出現(xiàn)一定的顏色偏差;本文算法基于AOD-Net,部分圖片仍存在去霧不徹底的問題,但在亮度方面有所提高。
圖6 不同算法對(duì)去霧結(jié)果對(duì)比
圖7展示了真實(shí)霧天場(chǎng)景下的去霧效果圖,由圖可見:DCP算法去霧后的圖像仍有少許霧殘留,去霧效果不佳;CAP算法得到的圖片出現(xiàn)了色差的現(xiàn)象;AOD去霧后的圖片存在殘留的霧,無(wú)法徹底去霧;Dehaze-Net去霧后的圖片天空部分出現(xiàn)了光暈;本文算法去霧后的圖片整體清晰,沒有出現(xiàn)顏色失真等現(xiàn)象,相比于其他輕量級(jí)的去霧算法,整體的去霧效果較好,證明了本文方法的有效性。
圖7 不同算法對(duì)真實(shí)霧圖去霧效果對(duì)比
實(shí)驗(yàn)中,上述幾種算法與本文算法的模型大小和在測(cè)試集的平均處理時(shí)間進(jìn)行了統(tǒng)計(jì)和對(duì)比,結(jié)果如表2所示。表2中,不計(jì)算DCP和CAP傳統(tǒng)方法的模型大小,可見本文的方法由于加深了網(wǎng)絡(luò)結(jié)構(gòu),犧牲一定的內(nèi)存空間,模型相比于其他算法有所增加。在推理時(shí)間方面,本文方法略低于AOD-Net,平均推理時(shí)間為4.3 ms,優(yōu)于其他的算法,滿足實(shí)際應(yīng)用對(duì)去霧實(shí)時(shí)處理的需求。
表2 不同算法的耗時(shí)和模型大小對(duì)比
本文提出改進(jìn)AOD-Net的輕量級(jí)圖像去霧模型,在采用位置歸一化、矩連接函數(shù)和對(duì)不同的通道進(jìn)行加權(quán)操作方法,并在RESIDE數(shù)據(jù)集上的大量實(shí)驗(yàn)表明:本方法在單幅圖像去霧的平均時(shí)間為4.3 ms,PSNR和SSIM分別達(dá)到了25.955和0.950,均優(yōu)于對(duì)比方法。同時(shí),本模型的輕量級(jí)特性可以使其作為圖像預(yù)處理模塊嵌入到目標(biāo)檢測(cè)等神經(jīng)網(wǎng)絡(luò)中,從而更廣泛應(yīng)用于高級(jí)計(jì)算機(jī)視覺任務(wù)如:行人檢測(cè)、紅綠燈識(shí)別和車輛檢測(cè)等。