李碩士,劉洪瑞,甘永東,朱新山?,張軍
(1.天津大學(xué) 電氣自動化與信息工程學(xué)院,天津 300072;2.數(shù)字出版技術(shù)國家重點實驗室,北京 100871)
在霧、霾等天氣下,霧氣中懸浮顆粒會對光線的散射造成影響,導(dǎo)致圖像傳感器所捕捉到的圖像出現(xiàn)對比度下降等圖像質(zhì)量退化問題.這些退化的圖像無法真實反應(yīng)場景中所存在物體的結(jié)構(gòu)、顏色等信息,降低了其在圖像分類[1]、目標(biāo)檢測[2]等計算機視覺任務(wù)中的應(yīng)用價值.因此,圖像去霧是目前計算機視覺研究中的一個重要問題.
目前已有的圖像去霧方法主要可以分為兩類,一類是基于先驗知識的去霧方法,另一類是基于深度學(xué)習(xí)的去霧方法.基于先驗知識的去霧方法通常對有霧圖像進行統(tǒng)計以獲取先驗知識,然后利用先驗知識對大氣散射模型[3-4]中的傳輸圖與大氣光值這兩個未知參數(shù)進行求解以實現(xiàn)圖像去霧.該類方法中最具有代表性的是He 等[5]提出的暗通道先驗(Dark Channel Prior,DCP)去霧方法,該方法利用其統(tǒng)計得到的暗通道先驗,對大氣散射模型中的傳輸圖進行了估計,在不引入額外參數(shù)的情況下較好地達(dá)到了圖像去霧的目的,但是當(dāng)有霧圖像整體趨于白色時,該方法將不能取得良好的去霧效果,并且該方法有著相對較大的計算量.Zhu 等[6]通過對大量有霧圖像的遠(yuǎn)景、中景、近景進行分析發(fā)現(xiàn)霧的濃度與圖像的亮度和飽和度之差呈正比,并利用這一規(guī)律提出了一個簡單但有效的線性去霧模型.Tan[7]發(fā)現(xiàn)無霧圖像相比于有霧圖像有著更高的局部對比度,于是使用了馬爾可夫隨機場對有霧圖像的局部對比度進行了最大化以實現(xiàn)圖像的去霧.Berman 等[8]指出無霧圖像中的像素點的顏色在RGB 空間上可以聚類成幾百個緊致的團簇,并提出了基于該先驗知識的去霧算法.基于先驗知識的去霧方法近年來取得了一定的進展,并比較好地完成了基本的圖像去霧任務(wù),但是這些方法提出的先驗知識并不是在所有的場景都成立的,所以基于先驗知識的去霧方法具有很大的局限性.
隨著深度學(xué)習(xí)的不斷發(fā)展與大型去霧數(shù)據(jù)集[9]的建立,研究人員開始采用基于深度學(xué)習(xí)的方法對單幅圖像進行去霧.最初,研究人員主要通過構(gòu)建神經(jīng)網(wǎng)絡(luò)對大氣散射模型中的未知參數(shù)進行估計,然后利用估計的參數(shù)實現(xiàn)圖像的去霧.Cai 等[10]提出的DehazeNet 去霧模型,通過特征提取、多尺度特征映射、局部極值求取與非線性回歸四個步驟實現(xiàn)了對大氣散射模型中傳輸圖的估計.Ren 等[11]提出了多尺度深度去霧網(wǎng)絡(luò)(Multi-Scale CNN,MSCNN),使用多尺度神經(jīng)網(wǎng)絡(luò)實現(xiàn)了傳輸圖由粗到細(xì)的估計.Li 等[12]將大氣散射模型進行了轉(zhuǎn)化,將大氣光值與傳輸圖這兩個未知參數(shù)合并為了一個未知參數(shù),并設(shè)計了一種輕量的具有多尺度融合的一體化網(wǎng)絡(luò)(All-in-One Network,AOD-Net),對該未知參數(shù)進行了估計.Zhang 等[13]提出的密集金字塔去霧網(wǎng)絡(luò)(Densely Connected Pyramid Dehazing Network,DCPDN)將大氣散射模型的公式嵌入到了其所構(gòu)建的神經(jīng)網(wǎng)絡(luò)之中,在網(wǎng)絡(luò)中分別對大氣光值與傳輸圖兩個參數(shù)進行了估計.由于在現(xiàn)實中,霧的形成并不是嚴(yán)格符合大氣散射模型,所以有一些研究人員脫離物理模型,使用卷積神經(jīng)網(wǎng)絡(luò)直接學(xué)習(xí)有霧圖像與無霧圖像中的映射關(guān)系.Ren 等[14]首先對有霧圖像分別進行了白平衡操作、對比度增強與伽馬變換,得到了三幅增強后的有霧圖像,然后使用其所提出的門控融合網(wǎng)絡(luò)(Gated Fusion Network,GFN)對這三幅圖像進行融合,恢復(fù)出了最終的去霧圖像.Liu 等[15]設(shè)計了一種基于注意力機制的多尺度神經(jīng)網(wǎng)絡(luò)GridDehazeNet,實現(xiàn)了多尺度的特征融合,進一步提升了單幅圖像去霧的效果.
目前,基于深度學(xué)習(xí)的去霧方法在公開數(shù)據(jù)集上取得了良好的效果,但是仍有一些不足之處.作為一個低級視覺任務(wù),圖像去霧網(wǎng)絡(luò)除了要對圖像中的霧進行去除之外,還需要保留原始圖像的色彩與細(xì)節(jié)等信息.這就要求網(wǎng)絡(luò)在設(shè)計時綜合利用各個尺度的特征信息,使用深層次的特征恢復(fù)出無霧圖像的主體,并結(jié)合底層的特征對圖像的細(xì)節(jié)信息進行豐富.在對深層次的特征進行提取時,若使用下采樣操作,則會在一定程度上丟失圖像的特征信息,若不使用下采樣操作,則有著較低的特征提取效率與較高的運算復(fù)雜度.如何高效率地進行特征提取與多尺度特征融合是目前需要解決的一個重要問題.針對這個問題,本文基于注意力機制,提出了一個端到端的單幅圖像去霧網(wǎng)絡(luò).該網(wǎng)絡(luò)使用帶有注意力機制的殘差密集塊(Residual Dense Block with Attention,RDBA)作為模型的基本模塊,有效地提升了網(wǎng)絡(luò)的特征提取能力.此外,本文基于注意力機制設(shè)計了一種自適應(yīng)跳躍連接(Adaptive Skip Connection,ASC),有側(cè)重地從編碼器中提取特征信息以對圖像的細(xì)節(jié)進行補充.RDBA 模塊與ASC 模塊的使用,有效提升了網(wǎng)絡(luò)的恢復(fù)能力,使得網(wǎng)絡(luò)取得了良好的去霧效果.
由于編碼-解碼結(jié)構(gòu)在圖像超分辨率[16-17]等低級視覺任務(wù)中取得了極大的成功,所以本文采用了U-net[18]這一被廣泛使用的編碼-解碼結(jié)構(gòu)作為了模型的基本框架.如圖1 所示,模型由編碼器、特征恢復(fù)模塊與解碼器三部分組成.模型的輸入是一張有霧圖像,該圖像依次經(jīng)過3 個模塊,得到最終的去霧圖像.
圖1 整體網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Architecture of the network
編碼器由卷積層、帶有注意力機制的殘差密集塊、下采樣模塊組成.殘差密集塊[19](Residual Dense Block,RDB)與普通的卷積層相比,在同等參數(shù)下具有更復(fù)雜的結(jié)構(gòu)和更好的特征提取能力,所以本文使用改進的帶有注意力機制的殘差密集塊作為網(wǎng)絡(luò)的基本塊.下采樣模塊的作用是降低特征圖的尺寸以增大感受野,同時減少后續(xù)計算的復(fù)雜度,在本文中,下采樣模塊是通過卷積核大小為3、步長為2 的卷積操作實現(xiàn)的.特征恢復(fù)模塊由多個帶有注意力機制的殘差密集塊串聯(lián)組成,其作用是對編碼器得到的特征進行進一步的處理,以便于更好地恢復(fù)出無霧圖像的內(nèi)容信息.在本文中,殘差塊的數(shù)量為9.解碼器與編碼器的結(jié)構(gòu)對稱,由卷積層、帶有注意力機制的殘差密集塊、上采樣模塊組成.上采樣模塊的作用是在空間上將特征恢復(fù)到輸入圖像的大小,在該模塊中,本文首先將輸入的特征圖進行雙線性插值,然后使用卷積核大小為3、步長為1 的卷積層對插值后的特征進行進一步轉(zhuǎn)化.卷積層的作用是從特征圖中恢復(fù)出無霧的圖像,得到網(wǎng)絡(luò)的輸出.
由于高級特征更關(guān)注圖像的整體風(fēng)格而不是圖像的紋理等內(nèi)容信息,為了使得模型所恢復(fù)的圖像具有豐富的細(xì)節(jié)信息,本文在編碼器與解碼器之間使用了本文所設(shè)計的自適應(yīng)跳躍連接.此外,在超分辨率等以峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)和結(jié)構(gòu)相似性(Structural Similarity Index,SSIM)為主要評價指標(biāo)的低級視覺任務(wù)中,去除批量歸一化(Batch Normalization,BN)層[20]已經(jīng)被證明有助于增強網(wǎng)絡(luò)的性能和減少計算的復(fù)雜度,同時也對生成圖像偽影的去除有一定的幫助,因此在本文所提出的網(wǎng)絡(luò)中,所有的模塊都沒有使用BN 層.
卷積神經(jīng)網(wǎng)絡(luò)的核心在于使用卷積算子對特征圖所包含的特征信息進行提取,在這里,將特征圖記為F,F(xiàn)∈RC×H×W,其中,H 與W 分別為特征圖的高度與寬度,C 為特征圖的通道數(shù).由于特征圖的各個通道往往具有不同的重要程度,所以如果平等地對各個通道的特征信息進行利用,難免會造成計算資源的浪費,限制網(wǎng)絡(luò)的特征表達(dá)能力.因此,本文引入了通道注意力機制[21],有區(qū)別地對待特征圖中不同通道的特征信息.通道注意力機制的計算過程表示為:
式中:β 為特征圖中各個通道的權(quán)重,β∈RC×1×1;FA為經(jīng)過通道注意力操作后,得到的加權(quán)后的特征圖;?表示元素相乘.為了通過F 得到β,首先對F 進行全局池化,然后使用卷積等操作,對β 進行求取,該過程可以表示為:
式中:G 是對F 全局池化得到的結(jié)果,G∈RC×1×1;Conv 表示卷積操作;δ 為ReLu 激活函數(shù);σ 表示sigmoid 激活函數(shù),用來將權(quán)重限制到0~1.
殘差密集塊同時使用了殘差連接[22]與密集連接[23]兩種網(wǎng)絡(luò)設(shè)計方式,其中,密集連接部分充分使用了各個層級的卷積所提取的特征,有較高的特征提取能力,并且可以防止因網(wǎng)絡(luò)過深而出現(xiàn)梯度消失的現(xiàn)象.殘差連接使得正向傳播的特征得以保留,即每一層的結(jié)果都是在之前的結(jié)果的基礎(chǔ)上得到的,這樣的連接方式不僅可以防止網(wǎng)絡(luò)梯度的消失,還有益于網(wǎng)絡(luò)的收斂.本文在殘差密集塊的基礎(chǔ)上增加了注意力機制,在本文中,每個RDBA 包括4 個卷積核大小為3 的卷積層,1 個卷積核大小為1 的卷積層與1 個通道注意力模塊.如圖2 所示,RDBA 的前四層卷積層采用了密集連接的方式以獲取更多的特征信息,最后一層卷積層將這些特征信息進行融合,融合后的特征通過通道注意力模塊對不同的通道進行加權(quán),加權(quán)后的特征作為殘差與RDBA 的輸入以對應(yīng)通道相加的形式進行融合.和大多數(shù)文獻一樣,本文將密集連接部分的增長率設(shè)置為16.在不同尺度下,RDBA 輸入的特征圖的通道數(shù)是不同的,特征圖的大小越大,其通道數(shù)越少.在本文中,RDBA 在輸入圖像尺度、1/2 輸入圖像尺度與1/4 輸入圖像尺度下輸入輸出的特征圖的通道數(shù)分別為16、32、64.
圖2 帶有注意力機制的殘差密集塊結(jié)構(gòu)Fig.2 Architecture of the RDBA
為了獲得足夠大的感受野,獲取更多的上下文信息,編碼器中常常使用下采樣操作,但是下采樣操作常常會帶來特征圖的細(xì)節(jié)信息丟失的問題.在U-net 等編碼解碼結(jié)構(gòu)中,編碼器與解碼器之間往往采用跳躍連接的方式對解碼器中的特征進行增強.一般來講,跳躍連接主要有兩種形式,一種是將編碼器中的特征信息與對應(yīng)的解碼器中的特征信息以通道相加的方式進行融合;另一種是將編碼器中的特征信息與對應(yīng)的解碼器中的特征信息進行堆疊,然后使用堆疊的特征進行后續(xù)處理.這兩種跳躍連接的方式均起到了細(xì)節(jié)補充的效果,但是同時也引入了許多的無用信息.針對這一問題,本文設(shè)計了一種自適應(yīng)跳躍連接方式,如圖3 所示,該方式主要包括以下4 個步驟.
圖3 自適應(yīng)跳躍連接結(jié)構(gòu)Fig.3 Architecture of the ASC
1)特征的初步融合.將編碼器中的特征信息FE與對應(yīng)的解碼器中的特征信息FD以通道相加的方式進行初步融合.
2)特征提取.使用卷積核大小為3 的卷積層對融合后的特征進行提取.
3)通道加權(quán).使用通道注意力機制對提取的特征各個通道進行加權(quán),進一步提取出有用的特征信息.
4)特征增強.將通道加權(quán)后的特征與步驟1 中的解碼器中的特征信息FD以通道相加的方式融合,得到增強后的特征FS.
自適應(yīng)跳躍連接可以有側(cè)重地進行特征融合,使得解碼器獲取到其所需要的增強信息,取得更好的特征融合效果.
為了得到一個好的模型,需要設(shè)計合適的損失函數(shù)來衡量模型所預(yù)測的結(jié)果與訓(xùn)練數(shù)據(jù)中的真實值的吻合程度.由于目前圖像去霧的評價指標(biāo)主要為客觀評價指標(biāo)PSNR,所以大多數(shù)去霧網(wǎng)絡(luò)采用均方差(Mean Square Error,MSE)損失或MSE 損失與感知損失[24]、生成對抗損失[25]相結(jié)合的方式作為模型的損失函數(shù)以取得更好的客觀評價質(zhì)量.為了減少計算量,提升模型的訓(xùn)練速度,本文采用了簡單的均方差損失對輸出圖像的各個像素點進行監(jiān)督,模型的損失函數(shù)為:
式中:Ji(x)與Ii(x)分別表示去霧圖像與真實無霧圖像中像素x 的第i 個顏色通道的像素值;N 為單個通道內(nèi)像素的總個數(shù).
為了與其他的模型進行對比,模型的訓(xùn)練是在公開數(shù)據(jù)集RESIDE[9]上進行的,該數(shù)據(jù)集由合成的室內(nèi)有霧圖像集與合成的室外有霧圖像集組成.對于室內(nèi)圖像去霧,本文直接使用了RESIDE 中的室內(nèi)訓(xùn)練集(Indoor Training Set,ITS)作為訓(xùn)練集,該數(shù)據(jù)集由1 339 張原始的圖像與13 990 張有霧圖像組成,有霧圖像是由原始圖像使用大氣散射模型合成的,其中,全局大氣光值的取值范圍為0.8~1.0,大氣散射參數(shù)的取值范圍為0.04~0.2.對于室外圖像去霧,RESIDE 中的室外訓(xùn)練集(Outdoor Training Set,OTS)中有部分原始圖像與測試集的標(biāo)簽是一致的,這些圖像可能影響實驗結(jié)果,不能真實體現(xiàn)模型的性能,所以本文采用了文獻[15]對OTS 清洗后的數(shù)據(jù)集進行了訓(xùn)練,該數(shù)據(jù)集共包含296 695 張合成有霧圖像與8 447 張原始圖像.本文以RESIDE 中的合成客觀測試集(Synthetic Objective Testing Set,SOTS)為測試集對所提出的模型進行了客觀與主觀評價,該測試數(shù)據(jù)共包括500 張室內(nèi)合成圖像與500 張室外合成圖像.在評價指標(biāo)的選擇上,本文采取了兩種最常用的圖像客觀質(zhì)量評價指標(biāo)PSNR 與SSIM.此外,本文還在文獻[14]所提供的真實有霧圖像上對提出的模型進行了主觀評價.
本文方法使用pytorch 實現(xiàn),運行環(huán)境為Ubuntu,模型訓(xùn)練是在NVIDIA 1080Ti GPU 上完成的.訓(xùn)練時,對圖像以隨機裁剪方式進行處理,模型輸入的圖像塊大小為240×240.使用批尺寸為24 的ADAM 優(yōu)化器對模型進行訓(xùn)練,其中,動量參數(shù)β1與β2分別采用默認(rèn)值0.9 和0.999.模型的初始學(xué)習(xí)率為0.001,對于ITS 的訓(xùn)練,進行了100 次迭代,每20 個迭代學(xué)習(xí)率衰減為之前的一半;對于OTS 的訓(xùn)練,進行了10 次迭代,每2 個迭代學(xué)習(xí)率衰減為之前的一半.選取了具有代表性的去霧方法進行了對比,包括經(jīng)典的去霧方法DCP[5]以及基于深度學(xué)習(xí)去霧方法AOD-Net[12]和GridDehazeNet[15].其中,AOD-Net 和GridDehazeNet 采取了和本文相同的訓(xùn)練方式.
從SOTS 中選取了4 張有霧圖像以進行主觀質(zhì)量評價,圖4 展示了使用上述幾種去霧方法所得到的去霧結(jié)果,其中,第1 行和第2 行為室內(nèi)圖像的去霧結(jié)果,第3 行和第4 行為室外圖像的去霧結(jié)果.由圖4(b)與圖4(f)可以看到,DCP 方法所生成的去霧圖像相較于真實無霧圖像有時會出現(xiàn)色彩的失真(如圖4(b)第1 幅圖像的地板)與邊緣的模糊(如圖4(b)第1 幅圖像的標(biāo)記區(qū)域),這是因為該方法的去霧是依賴于其所提出的先驗知識的,當(dāng)先驗知識不滿足時,該方法便會出現(xiàn)較差的去霧效果.由圖4(c)可以看到,AOD-Net 也取得了一定的去霧效果,但是該方法生成的去霧圖像在物體的邊緣處有時會出現(xiàn)一些明顯的偽影(如圖4(c)第1 幅圖像的標(biāo)記區(qū)域).由圖4(d)和圖4(e)可以看到,GridDehazeNet 和本文提出的方法都取得了相對較好的去霧效果,但是GridDehazeNet 所生成的去霧圖像有時會出現(xiàn)一些比較小的偽影(如圖4(d)第2 幅圖像的墻面與第3 幅圖像的路面),而本文所提出的去霧方法所生成的去霧圖像在各個方面均比較接近真實的無霧圖像.
圖4 合成有霧圖的實驗結(jié)果(SOTS)Fig.4 Experimental results of the synthetic hazy images(SOTS)
此外,表1 給出了各方法在SOTS 上的客觀評價結(jié)果.可以看到,在室內(nèi)測試集ITS 上,本文所提出的方法取得了最高的PSNR 值與次高的SSIM 值,其中,PSNR 值相較于GridDehazeNet 有著0.5 dB 的提升.在室外測試集OTS 上,本文提出的方法在PSNR 與SSIM 上均優(yōu)于其他方法,其中,PSNR 值為33.21 dB,比排在第2 名的去霧方法高將近2.5 dB.
表1 在合成數(shù)據(jù)集上比較去霧網(wǎng)絡(luò)的PSNR 和SSIM 指標(biāo)Tab.1 Comparison of PSNR and SSIM tested on synthetic hazy images for different dehazing methods
圖5 展示了各去霧模型在真實數(shù)據(jù)集中的測試結(jié)果.可以看到,上述幾種去霧方法基本完成了去霧任務(wù),最終生成的圖像相較于有霧圖像有著更高的清晰度,但是各個方法也存在一些不足之處.由圖5(b)可以看到,DCP 方法在處理天空等區(qū)域時,容易出現(xiàn)顏色的失真.由圖5(c)可以看到,AOD-Net 方法所生成的去霧圖像有著較低的亮度,并且在物體的邊緣處會出現(xiàn)偽影(如圖5(c)的第1 幅去霧圖像的屋頂區(qū)域).由圖5(d)可以看到,GridDehazeNet 的主要缺點是經(jīng)常會產(chǎn)生一些小的、暗的偽影(見圖5(d)第2 幅圖像的路面與第3 幅圖像的標(biāo)記區(qū)域).相比之下,本文提出的方法在恢復(fù)圖像清晰度的同時,具有更真實的色彩效果和更少的偽影,但是本網(wǎng)絡(luò)仍存在去霧不徹底的問題,對于場景中遠(yuǎn)處的霧以及濃霧不能很好地去除.
圖5 真實有霧圖的實驗結(jié)果Fig.5 Experimental results of the real hazy images
本文設(shè)計了4 個消融實驗對所提出模型各個模塊的有效性進行驗證:1)以RDB 為基本模塊的網(wǎng)絡(luò)模型(模型Ⅰ);2)以RDBA 為基本模塊的網(wǎng)絡(luò)模型(模型Ⅱ);3)以RDB 為基本模塊并帶有自適應(yīng)跳躍連接的網(wǎng)絡(luò)模型(模型Ⅲ);4)以RDBA 為基本模塊并帶有自適應(yīng)跳躍連接的網(wǎng)絡(luò)模型(模型Ⅳ).4 種模型在SOTS 中室內(nèi)數(shù)據(jù)集的表現(xiàn)如表2 所示,可以看到,相較于模型Ⅰ,單獨使用RDBA 模塊的模型Ⅱ和單獨使用ASC 模塊的模型Ⅲ在PSNR 指標(biāo)上都有著超過1 dB 的提升,在SSIM 指標(biāo)上也有著一定的改進.綜合使用RDBA 模塊與ASC 模塊的模型Ⅳ相較于模型Ⅰ則有著更大的提升,在PSNR 指標(biāo)上有著將近2 dB 的提升,在SSIM 指標(biāo)上也有著明顯的提升.綜上所述,RDBA 模塊與ASC 模塊的引入,有效地提升了模型的去霧性能.
表2 在SOTS 上得到的消融實驗結(jié)果Tab.2 Ablation results on SOTS
本文提出了一種基于注意力機制的多尺度單幅圖像去霧網(wǎng)絡(luò),該網(wǎng)絡(luò)不依賴于大氣散射模型,可以直接對無霧圖像進行預(yù)測.為了充分發(fā)揮網(wǎng)絡(luò)的性能,本文分別設(shè)計了RDBA 模塊和ASC 模塊,其中,RDBA 模塊有效提升了網(wǎng)絡(luò)的特征提取性能,在一定程度上避免了特征信息的冗余;ASC 模塊的引入實現(xiàn)了解碼器中細(xì)節(jié)信息的針對性補充,在引入少量參數(shù)的情況下提升了模型的精度.實驗結(jié)果表明,在公開數(shù)據(jù)集上,本文提出的去霧網(wǎng)絡(luò)相對于所比較的方法有著更高的客觀評價指標(biāo)與更好的視覺效果.但是,本文提出的網(wǎng)絡(luò)也具有一定的局限性,當(dāng)霧的濃度過大時,本文的模型同樣會出現(xiàn)去霧不徹底的問題.