朱利安,張 鴻
(1.武漢科技大學 計算機科學與技術學院,武漢 430065;2.智能信息處理與實時工業系統湖北省重點實驗室(武漢科技大學),武漢 430065)
在霧天情況下,由于大氣中存在大量的懸浮顆粒和小水滴等介質,導致拍攝照片的質量大幅下降。有霧圖像通常會出現對比度和飽和度損失、顏色失真、邊緣信息丟失等現象,降低人們的視覺對場景信息的感知能力;同時,有霧圖像也會嚴重影響圖像分類、自動駕駛、交通監控等計算機視覺領域。所以,圖像去霧是一項重要的任務。霧天成像過程經常會用大氣散射模型[1]來表示,模型公式如下:
其中:x是圖像的像素坐標位置,I(x)是有霧圖像,J(x)是無霧圖像,t(x)是透射率,A是全球大氣光值。透射率t(x)可由如下公式表示:
其中:β是散射系數,d(x)是場景深度。
近年來,圖像去霧一直是非常具有挑戰性的任務。去霧的方法主要有基于先驗的方法和基于學習的方法兩種?;谙闰灥姆椒ㄖ饕鶕髿馍⑸淠P停ㄟ^手工制作的先驗來計算透射率t(x) 和全球大氣值A,如暗通道先驗(Dark Channel Prior,DCP)[2];然而,這些方法的性能取決于先驗的準確性,在特殊的場景中很難估計透射率和大氣光值。特別在非均勻去霧數據集中,霧霾分布非常復雜,霧霾密度與圖像深度的相關性不強,手工制作先驗的方法會出現比較大的誤差,因此,基于先驗的方法已不是好的選擇。基于學習的方法也分為兩種:一種通過神經網絡[3]來估計中間參數,然后再用大氣散射模型來恢復有霧圖像,由于缺乏真實的數據和準確的先驗,可能會導致性能降低;另一種基于學習的方法[4-5]是通過神經網絡來學習有霧圖像和無霧圖像之間的映射,以端到端的方式直接恢復有霧圖像。但是,這些網絡都只采用編碼-解碼型的結構,單一的網絡結構需要大量的訓練數據,當數據規模很小時,去霧的效果會顯著降低;同時,由于霧霾分布不規律,這些神經網絡結構很難提取出細致的紋理特征。
最近,生成對抗網絡(Generative Adversarial Network,GAN)[6]在圖像翻譯、超分辨率等領域表現出了很好的性能。為了處理非均勻去霧數據集,在受到多分支網絡[7]的啟發后,本文在原始生成對抗網絡的基礎上進行更改,提出了一個雙分支生成器的條件生成對抗網絡(Conditional GAN with Dual-Branch generators,DB-CGAN),輸入有霧圖像,能直接輸出無霧圖像。該網絡的生成器包含兩個分支:第一個是增強的U-net[8]網絡分支,使用了同層級連接的增強策略SOS(Strengthen-Operate-Subtract)模塊[5]和用于非相鄰層級連接的深度特征融合(Dense Feature Fusion,DFF)模塊[5]來作為網絡的一部分,增強圖像的特征恢復,同時保存特征提取時的空間信息。實驗結果表明,在小規模非均勻數據集上具有較好的性能。另一個分支是由多個殘差通道注意力塊組成的注意力網絡,使網絡能夠專注于更有用的通道,旨在最大限度地提取更多的高頻細節特征。并且,第一個分支起到一定的泛化作用,防止第二個分支網絡過擬合。最后,通過一個簡單有效的融合子網來進行特征融合,使生成的圖像更加接近于目標圖像。
概括地來說,本文的主要工作包括以下3 個方面:
1)提出了一種雙分支生成器的GAN 去霧網絡,生成器中,一個分支基于U-net 架構,另一個分支基于通道注意力模塊來增強網絡的特征學習能力。
2)在原U-net 上,加入了用于同層級連接的SOS 模塊和用于非相鄰層級連接的DFF 模塊來增強圖像的特征恢復,同時保存特征提取時的空間信息。
3)考慮到生成器中的兩個分支不同的特征表達,設計了一個簡單有效的融合子網來融合這兩個分支。
近年來,圖像去霧任務引起了計算機視覺界的廣泛關注。研究人員提出了多種圖像去霧的方法,這些方法大致可以分為基于先驗統計的傳統方法和基于數據驅動的深度學習方法兩類。
基于先驗的方法利用先驗統計知識,并利用手工制作的特征進行圖像去霧。He 等[2]提出的暗通道先驗(DCP)假設在大部分非天空區域,至少有一個通道的數值趨近于零,從此可以估計透射率和全球大氣光。Zhu 等[9]提出的顏色衰減先驗(Color Attenuation Prior,CAP)基于有霧圖像的亮度和飽和度之差,創建一個線性模型來估計場景深度。雖然基于先驗的方法在一定條件下對去霧有良好的效果,但是當先驗不成立時,這些去霧方法的效果較差。
Cai 等[3]提出的DehazeNet 是第一個基于深度學習的去霧模型。它采用卷積神經網絡(Convolutional Neural Network,CNN)來估計透射率,然后利用大氣散射模型生成去霧圖像。Li 等[10]提出了一種一體化去霧網絡(All-in-One Dehazing Network,AODNet),與DehazeNet 不同,AODNet 將透射率和大氣光整合在一個公式中,并以端到端的方式直接生成清晰圖像。最近,許多方法可以不使用大氣散射模型來恢復無霧圖像。Chen 等[4]提出了門控上下文聚合網絡(Gated Context Aggregation Network,GCANet),采用平滑擴張卷積層來消除網格偽影,并通過門控子網來融合不同層級的特征。Qin 等[11]提出了特征融合注意力網絡(Feature Fusion Attention Network,FFA-Net),網絡中包含大量的像素注意模塊和通道注意模塊,在合成霧霾數據集上取得了較高的性能。Dong 等[12]提出了融合鑒別器生成對抗網絡(Generative Adversarial Networks with Fusion-Discriminator,FD-GAN),融合鑒別器將訓練階段的頻率信息作為額外的先驗進行集成。Dong 等[5]提出的多尺度增強去霧網絡(Multi-Scale Boosted Dehazing Network,MSBDN),同樣也采取增強解碼器的方法來增強特征的恢復,并使用了大量的密集連接塊。然而,由于NTIRE(New Trends in Image Restoration and Enhancement)挑戰賽[13]中引入的真實數據集規模小且霧霾分布復雜,以往大多數方法在使用此數據集時都表現不佳。其中,楊坤等[14]提出的多補丁和多尺度層級聚合網絡(Multi-Patch and multi-Scale Hierarchical Aggregation Network,MPSHAN)通過級聯大量的編碼-解碼器來融合多補丁的局部化信息和多尺度的全局化信息,在非均勻去霧數據集上表現了較高的性能。
生成對抗網絡(GAN)由生成器和鑒別器兩部分組成:生成器通過學習來生成更逼近真實數據的樣本;鑒別器通過學習對生成樣本和真實樣本進行真假判斷。生成器和鑒別器互相博弈學習直到生成良好的輸出。由于最基本的GAN 生成器輸入的是隨機數據,無法對生成數據進行控制,即如果有兩種以上類別的訓練數據,那么GAN 的生成器無法指定生成的數據。為了解決上述問題,條件生成對抗網絡(Conditional Generative Adversarial Network,CGAN)[15]被 提出。許多研究人員利用CGAN 來完成各種低水平的視覺任務,如圖像轉換[16]、超分辨率[17]和圖像去噪[18]。
本章將詳細介紹雙分支條件生成對抗網絡的各個組成部分。本網絡由生成器和鑒別器兩部分組成,圖1 是生成器網絡,由增強U-net 子網和注意力子網兩個分支構成,通過尾部簡單的融合子網進行融合來生成去霧圖像;鑒別器網絡是一種編碼器結構,對生成圖像和目標圖像進行真假判斷。生成器和鑒別器不斷地進行對抗訓練,直到損失達到穩定平衡的狀態。
如圖1(a)所示,生成器網絡由兩個分支組成,每個分支都有自己的信息處理過程,從相同的輸入中提取不同的特征表示:一個分支是增強的U-net 子網,它能從輸入圖像中提取魯棒的特征信息,并在本文使用的數據集上起到一定的泛化效果;另一個分支是注意力子網,能夠很好地擬合小規模非均勻有霧圖像這一特定的數據集,并提取更多的高頻細節特征。最后通過簡單的融合子網進行特征融合。

圖1 生成器的結構Fig.1 Structure of generator
2.1.1 增強U-net子網
生成器的第一個分支,即增強的U-net 子網,旨在直接學習從有霧圖像到無霧圖像的映射。它以U-net 為基礎架構,由編碼器、增強解碼器、特征恢復模塊Gres三個部分組成。編碼器由卷積層、殘差組、DFF 模塊組成,進行4 次下采樣操作,通道數分別為16、32、64、128、256。解碼器由反卷積層、SOS 增強模塊、DFF 模塊組成,進行4 次上采樣操作,逐步恢復通道數和分辨率。特征恢復模塊Gres由18 個殘差組構成,每個殘差組包含3 個如圖1(c)所示的殘差塊,激活函數使用參數化的矯正線性單元(Parametric Rectified Linear Unit,PReLU),能夠自適應學習在負值域下的斜率參數。如表1所示為殘差塊在通道數為256 時的網絡結構信息,矩陣在向后傳播的過程中始終保持75×100×256 的大小,參數量稍大。

表1 殘差塊的結構信息Tab.1 Structure information of residual block
為了從特征恢復模塊Gres中逐步恢復特征,本文將SOS增強模塊加入解碼器中,SOS 增強模塊的結構如圖1(b)所示。在n層級的SOS 增強模塊中,本文從上一層級的特征jn+1進行上采樣,通過編碼器的潛在特征in對jn+1進行加強,并通過恢復單元生成增強特征jn,如式(2)所示:
其中:↑2表示比例因子為2 的上采樣算子,in+(jn+1) ↑2表示被增強的特征表示在第n層級由θn參數化的可訓練恢復單元。本文使用由三層殘差塊組成的殘差組來作為恢復單元。
原始U-net 架構在編碼器的下采樣過程中會損失空間信息,并且非相鄰層級的特征之間缺乏足夠的連接。本文使用了如圖2 所示的DFF 模塊,連接非相鄰層級的特征,有效地修復缺失的信息。如圖1(a)所示,每個層級都引入了兩個DFF 模塊,一個在編碼器中的殘差組之前,另一個在解碼器中的SOS 增強模塊之后。編碼器中DFF 模塊的輸出直接連接到編碼器中此模塊之后的所有DFF 模塊,用于特征融合,解碼器亦如此。然而,由于非均勻去霧任務中的數據有限,并且增強U-net 分支的下采樣和上采樣過程會丟失一些恢復圖像過程中的信息,很難實現更好的性能。為了在小規模數據集上獲得更好的性能,本文引入了全分辨率特征傳播的分支來最大限度地提取更多的信息。

圖2 DFF模塊結構Fig.2 Structure of DFF module
2.1.2 注意力子網
注意力子網采用的是殘差中的殘差(Residual In Residual,RIR)結構來構造深層網絡,該網絡由5 個殘差通道注意力組(Residual Channel Attention Group,RCAG)和長跳躍連接所組成,每個RCAG 則包含10 個殘差通道注意力塊(Residual Channel Attention Block,RCAB)[19]和1 個短跳躍連接。RIR 結構允許輸入圖像的低頻信息直接通過恒等映射向后傳播,加速網絡的訓練,大量的通道注意力模塊則專注于學習高頻信息。RCAB 的結構如圖1(d)所示,輸入一個大小為H×W×C的特征矩陣,其中H和W分別表示高和寬,C表示通道數。經過卷積操作后保持尺寸不變,再進行全局平均池化得到一個1×1 ×C的通道值,使用1×1 的卷積核降低通道數后再恢復為原通道數,得到的通道權重系數與全局池化前的特征矩陣進行乘積,通過短跳躍連接與輸入矩陣相加,最終得到了不同通道特征重新加權分配后的新特征矩陣。RCAB 的輸出矩陣大小和參數量如表2 所示,由于卷積次數和每層通道數不多,參數量并不大。為了充分擬合訓練的數據集,沒有采用下采樣和上采樣操作,從頭至尾輸出的都是1 200×1 600 的全分辨率形式的特征矩陣。為了防止過擬合問題,增強的U-net 子網同時能夠起到泛化作用,是不可或缺的一部分。

表2 RCAB的結構信息Tab.2 Structure information of RCAB
2.1.3 融合子網
使用了一個簡單的融合子網來對增強U-net 子網和注意力子網兩個分支進行特征融合。第一層網絡使用ReflectionPad 來對輸入邊界進行反射填充,擴大圖像的分辨率,然后使用7×7 的卷積層進行特征融合,最后通過Tanh激活函數輸出去霧后的圖像。
本實驗使用了pix2pix[20]網絡中的鑒別器來判斷生成圖像的真假性。鑒別器是輸出矩陣為30×30 的PatchGAN,輸出矩陣的每個單元對應于輸入圖像70×70 的感受野大小。PatchGAN 對每一個塊感受野做真假判別,將輸出矩陣的結果取平均作為最終的鑒別器輸出。與用一個值衡量整幅圖相比,用一個矩陣來評價整幅圖,可以關注到更多的區域,實現局部圖像的特征表達,有利于生成高分辨率的圖像。
該網絡結構如圖3 所示,采用了卷積(Conv2d)、歸一化(BatchNorm2d)、LeakyReLU 激活函數所組成的模塊。與其他鑒別器直接輸入生成圖像或目標圖片不同,本實驗將有霧圖像和輸出生成圖像或目標圖片進行通道相加,相當于輸入一張通道數為6 的圖片,來形成有霧圖像和無霧圖像的數據對,使鑒別器學習到更多特征。鑒別器訓練的過程中不斷將生成圖像為真的概率變小,使目標圖像為真的概率變大。

圖3 鑒別器的結構Fig.3 Structure of discriminator
本實驗的損失函數由多個部分組成,分別是平滑L1 損失Lsmooth?L1、感知損失Lper、多尺度結構相似性損失LMS?SSIM和對抗損失LG?CGAN和LD?CGAN。本文定義輸入的有霧圖像為I,生成的無霧圖像為G(I),目標圖像為J。
平滑L1 損失 平滑L1 損失較L2 損失魯棒性更強,在訓練初期,輸出圖像與目標圖像差值過大,L2 損失擁有較大的梯度值,導致訓練不穩定,容易陷入局部最優解。而平滑L1損失擁有穩定的梯度,訓練更加平穩。其中,在后文所提到的L1 損失均為平滑L1 損失。平滑L1 損失定義如下:
感知損失 采用了VGG 感知損失[21],將目標圖像卷積得到的高級特征與生成圖像卷積得到的高級特征作比較,使得高層信息更接近,能夠更好地重建細節。損失網絡?是在ImageNet 上預先訓練的VGG-16,當對VGG 網絡輸入z時,對應的特征映射表示為?(z),損失函數定義為:
多尺度結構相似性損失 結構相似性(Structural SIMilarity,SSIM)用來測量兩幅圖像之間的相似度,對圖像的亮度、對比度和結構信息進行比較,能夠保留更多的高頻信息。G(I)和J之間的SSIM 可定義為:
其中:l(G(I),J)是亮度對比因子,c(G(I),J)是對比度因子,s(G(I),J)是結構對比因子;α、β、γ為三項的重要程度。
由于SSIM 只是針對原始圖像進行相似性的比較,為了能夠在不同分辨率尺度上對圖像的質量進行評價,提出了多尺度結構相似性方法[22],可以表示為:
其中指數αM、βj、γj為每項的重要程度。M表示縮放因子,圖像寬高以2M-1因子進行縮小。當M=1 時,表示原始圖像大??;當M=2 時,表示原始圖像縮小一半,以此類推。
因此,MS-SSIM 損失函數可以定義為:
對抗損失 使用了標準的CGAN 的損失函數來訓練生成器和鑒別器,生成器損失函數定義如下:
其中:D(G(I))表示生成圖像是無霧圖像的概率,生成器嘗試最小化結果。另外,鑒別器的損失函數定義為:
其中:D(G(I))表示生成圖像是無霧圖像的概率,D(J)表示目標圖像是無霧圖像的概率,鑒別器嘗試最小化結果。
總損失 綜合以上損失函數,對于生成器,總的損失函數為最小化:
其中:λ1、λ2、λ3分別為相應損失函數的權重,根據經驗[23],本實驗中分別設置為0.001、0.2、0.005。另一方面,鑒別器被訓練最小化目標函數LD?CGAN。
本文采用了兩種真實場景下的有霧數據集,即NH-HAZE[24]和NH-HAZE2[13]。這些都是極具挑戰性的小規模非均勻有霧數據集,包含真實的戶外場景,使用專業的霧霾設置器產生的非均勻霧霾,每張圖片的分辨率為1 200 ×1 600。NH-HAZE 由55 對有霧圖像和同一場景對應無霧圖像組成,本實驗將45 對圖像用于訓練,5 對用于驗證,5 對用于測試;NH-HAZE2 包含25 對訓練集,5 對驗證集,5 對測試集,但是由于驗證集和測試集官方還沒有公開,本文使用20對圖像用于訓練,剩下的5 對用于測試。
在本實驗中,每張原始圖片的分辨率為1 200×1 600,隨機裁剪大小為256×256 的圖像塊作為輸入。由于訓練數據規模比較小,為了增加訓練數據,對圖像進行了隨機旋轉(90°、180°或270°)和隨機水平翻轉。在訓練過程中,初始學習率設置為1E-4,每訓練2 000 個周期學習率以衰減率β=0.5 遞減,總共訓練8 000 個周期,并使用Adam 優化器(β1=0.9,β2=0.999)。鑒別器使用相同的優化器和訓練策略。實驗在一塊NVIDIA 2080 GPU 上進行。
選用幾種典型的去霧模型與本文模型進行對比,這些模型包括:
1)DCP[2]:根據先驗統計知識,使用手工提取特征的方法進行去霧。
2)AODNet[10]:采用輕量級的卷積神經網絡,只使用了5層卷積,并進行多尺度的融合。
3)GCANet[4]:以編碼-解碼結構為基礎,中間加入多層平滑空洞卷積,尾部加入門控融合子網來融合多尺度特征。
4)MSBDN[5]:以U-net 為基礎架構,對同層級的特征進行加強策略,并使用大量的密集連接塊。
5)MPSHAN[14]:通過級聯大量的編碼器-解碼器來融合多補丁的局部化信息和多尺度的全局化信息。
圖像去霧性能的好壞可由評價指標峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)和結構相似度SSIM 來衡量。PSNR 是基于對應像素點間的誤差,SSIM 從亮度、對比度、結構三方面度量圖像相似性,兩個指標的數值越高表示去霧性能越好。同時,還對網絡模型的參數大小和單張圖像的處理時間進行了對比。
3.4.1 模塊結構消融實驗結果分析
本文在NH-HAZE 和NH-HAZE2 兩個最新的非均勻去霧數據集上進行了實驗,通過定量評估來比較各方法的性能。實驗結果由表3 所示,數值后面的括號中表示的是以最差的效果為基準(100%),其他方法的效果與基準的百分比。不同子網的簡稱表示如下:

表3 在NH-HAZE和NH-HAZE2數據集上各方法的對比Tab.3 Comparison of different methods on NH-HAZE and NH-HAZE2 datasets
1)OUN(Original U-net):原始的U-net 子網。
2)EUN(Enhanced U-net):增強的U-net 子網。
3)AN(Attention Net):注意力子網。
4)EUN+AN:增強U-net 子網和注意力子網。
5)DB-CGAN:增強U-net 子網、注意力子網和融合子網,使用完整的雙分支生成器的GAN,即本文方法。
由實驗結果可以看出,與原始U-net 相比,增強U-net 策略在PSNR 和SSIM 兩個指標上都會有一定的提升,在NH-HAZE2 數據集上PSNR 和SSIM 分別提升了約0.7 和0.03。但參數量遠大于原始U-net 的原因是Gres模塊包含大量的殘差塊,每個殘差塊的通道數為256,導致需要大量的卷積核,并且密集特征連接也需要大量的卷積操作;同時,運行時間延長了33%(0.006 s)。可以看出,注意力子網的性能優越,甚至在NH-HAZE2 數據集上,兩個指標均超過增強Unet 子網的性能,而且兩種數據集上SSIM 指標均有所提升,因為采用了大量的殘差通道注意力塊結構,并且沒有下采樣操作,擁有強大的擬合能力,保留了更多的高頻信息。但也可能在小數據集上產生過擬合,所以兩個子網協同在一起,從同一輸入學習到不同的信息,通過尾部簡單的融合子網進行有效融合,能夠達到最好的效果。
3.4.2 損失函數消融實驗結果分析
首先探究了獨立使用GAN 損失函數和L1 損失函數的去霧效果,如圖4 所示,當單獨使用GAN 對抗損失時,發現訓練效果較差,在有限的數據集上只能學習到有限的紋理特征,而L1 損失訓練的效果更能接近目標圖像。在本實驗的混合損失函數中,L1 損失函數作為主要成分來保證輸入圖像和輸出圖像之間的相似度,GAN損失用來補充一些高頻細節。

圖4 GAN損失函數和L1損失函數的去霧效果Fig.4 Dehazing performance of GAN loss function and L1 loss function
混合損失函數各個部分消融實驗結果如表4 所示:單獨使用GAN 損失,則并不能有效地霧,只能學習一些高頻的紋理特征;而單獨使用L1 損失,則能基本清除霧霾,因為對于圖像去霧來說,生成器的輸入和輸出共享了大部分信息,L1損失能夠有效保證輸入圖像和輸出圖像之間的相似度。像素級的損失函數一般不能提供足夠的監督信息來訓練網絡以恢復逼真的細節特征,在L1 損失中加入GAN 損失能夠更好地修復逼真的圖像[17];同樣,在混合損失函數中加入了感知損失,使高層信息更加接近,指標PSNR 和SSIM 在數值上分別提高了0.09 和0.001;在加入多尺度SSIM 損失函數時,SSIM 指標能夠提升1%(0.008)。最后,對比了平滑L1 損失和L2 損失的性能,在輸出圖像和目標圖像差異較大時,L1 損失在更新權重時,有更穩定的梯度,而L2 損失容易陷入局部最優解。

表4 損失函數消融實驗結果對比Tab.4 Comparison of experimental results of loss function ablation
混合函數各部分的權重主要參考Fu 等[23]提出的DW-GAN 中使用的損失函數權重。在式(12)中,λ1、λ2、λ3分別為感知損失Lper、結構化損失LMS?SSIM、對抗損失LG?CGAN的權重,分別設置為0.001、0.2、0.005。如表5 所示,本實驗將感知損失Lper和對抗損失LG?CGAN的權重都擴大為初始值的10倍。在指標PSNR 和SSIM 上并沒有得到提升。我們猜測,在使用GAN 實現圖像對之間轉換的任務時(沒有加入隨機噪聲),L1 損失占據主導地位,已經能夠完成主要的圖像去霧任務,對于高頻細節的修復,所占權重并不需要太大。

表5 混合損失函數權重的實驗結果Tab.5 Experimental results of weight of mixed loss function
3.4.3 各模型對比實驗分析
本文方法與其他方法的比較如表6 所示,對于這兩個真實數據集,本文方法在指標PSNR 和SSIM 上基本領先。在NH-HAZE2 數據集上能夠達到19.33 dB 和0.791,DCP 這種手工制作特征的方法在非均勻去霧數據集上表現出比較差的性能,先驗統計知識已經失效,并且此方法只能在CPU 上進行測試,處理單張圖像的速度比較慢。AODNet 采用的輕量級網絡,只用到極少的參數,但難以在復雜霧霾情況下提取細節特征。GCANet、MSBDN、MPSHAN 都采用編碼-解碼型的網絡架構,并適當地增加門控融合、密集連接塊、多補丁和多尺度等優化策略,在兩種數據集上表現出比較好的效果。本文方法在DFF 模塊和Gres模塊中包含大量的卷積核,會導致參數量較大,運行時間相較其他方法長,在減少殘差組的數量后,去霧效果有所降低,本文方法在去霧效果和去霧時間上達到了良好的平衡。在NH-HAZE數據集上,各種方法的性能較在NH-HAZE2 數據集上相對較低,因為NH-HAZE 和NH-HAZE2 的圖像在亮度方面有很大的差異。NH-HAZE 圖像的視覺效果更深,而NH-HAZE2圖像的視覺效果更亮。

表6 在NH-HAZE和NH-HAZE2數據集上各種方法的定量比較Tab.6 Quantitative comparison of different methods on NH-HAZE and NH-HAZE2 datasets
視覺效果的定性比較如圖5 和圖6 所示??梢钥闯觯珼CP 這種手工制作先驗特征的方法在非均勻去霧數據集上已經失效,輸出圖片含有大塊的藍色區域。AODNet 是輕量級的神經網絡,網絡的學習能力有限,輸出結果在數據集上經常出現嚴重的顏色失真和大量的霧霾未被去除。雖然GCANet 和MSBDN 的表現優于上述兩種方法,但它們仍然不能很好地處理模糊區域。MPSHAN 在多補丁和多尺度上進行融合,能夠更加接近目標圖像。在NH-HAZE 上,GCANet會產生色彩扭曲的圖像,輸出圖片偏暗,并有少量綠色陰影;在NH-HAZE2 上,由于此數據集圖像的視覺效果更深,GCANet 產生的圖片會更加昏暗。MSBDN 輸出的圖片在兩種數據集上都更加接近于目標圖片,但是一些霧霾濃度高的地方去霧效果不明顯且會產生部分顏色失真。本文方法在測試上效果最好,比如在NH-HAZE2 數據集的測試上,第1、3、4 張圖片的去霧效果更加明顯,顏色更加接近目標圖像,特別是第3 張圖片中的道路,顏色失真的現象降到了最低,但是第5 張圖片的道路出現了顏色過暗的現象??傮w上來說,本文方法能夠產生更好的效果。

圖5 NH-HAZE2數據集上的定性對比Fig.5 Qualitative comparison on NH-HAZE2 dataset

圖6 NH-HAZE數據集上的定性對比Fig.6 Qualitative comparison on NH-HAZE dataset
本文提出了一個雙分支生成器的條件生成對抗去霧網絡(DB-CGAN)。生成器中,一條分支以U-net 架構為基礎,使用了增強策略,在恢復特征時避免信息損失,并采用密集特征融合的方式對非相鄰層建立足夠的連接。另一個分支以殘差通道注意力模塊為基礎,避免下采樣操作從而最大限度地擬合當前數據集,提取更多高頻細節特征。最后兩個分支通過簡單的融合子網進行特征融合。在最新的小規模非均勻去霧數據集上進行了實驗,相較于手工提取特征、輕量級網絡、傳統編碼-解碼型網絡等方法,具有更好的去霧視覺效果。但是,本文算法的參數量和時間復雜度并不是最優,在未來的工作中,我們會嘗試縮減圖像分辨率后進行特征提取,來擬合一個雙邊網格再進行上采樣操作,進而優化時間復雜度的問題,實現更高效的圖像去霧算法。