李天宇,吳 浩,毛艷玲,陳明舉*,石 柱
(1.四川輕化工大學 人工智能四川省重點實驗室,四川 宜賓 644005;2.四川輕化工大學 自動化與信息工程學院,四川 宜賓 644005)
可見光圖像的成像過程中,周圍環境的光照強度往往影響著圖像的質量。因此,低照度條件下獲取的圖像往往不清晰且識別率低,缺乏可用性,給后續的圖像識別、目標檢測以及分割帶來很大的困難[1]。因此,低照度圖像增強是今后一個非常重要的研究方向。
傳統的低照度圖像增強的主流方法如Pizer等人[2]提出的直方圖增強法(Histogram Equalization,HE),該方法計算簡單、速度快,但是存在顏色失真和局部過曝光的現象[3]。同時,Land[4]提出了Retinex理論,通過模仿人體的視覺系統,利用反射分量來進行低照度圖像增強。基于此理論,Jobson等人[5-7]進一步提出了單尺度Retinex方法(SSR)、多尺度Retinex方法(MSR)以及帶顏色恢復的Retinex方法(MSRCR);Fu等人[8]提出了一種基于融合的低照度圖像增強方法;Guo等人[9]提出了通過圖像照度區域估計來實現低照度圖像的增強;Dong等人[10]結合圖像去霧方法提出了一種新的低照度圖像增強方法。Ying等人[11]設計了一個多曝光融合框架,并基于此提出了一種雙曝光融合算法來提高圖片的對比度。Wang等人[12]提出了一種基于非均勻光照的低光照算法,使得增強后的圖像能夠在很大程度上保持圖像細節和自然度。雖然上述傳統的低照度圖像增強方法能夠在一定程度上提高光照效果,但是往往伴隨著顏色失真、像素扭曲等現象,增強后的圖像往往質量不高。
隨著深度學習算法的快速發展,許多學者開始探索將神經網絡應用到低照度增強任務中,利用神經網絡來學習低照度圖像到正常光照圖像的映射關系。如Lore等人[13]首次提出了使用深度自編碼網絡來實現低照度圖像增強;Li等人[14]提出了利用4層卷積網絡LightenNet來估計照度圖,并結合Retinex理論實現低照度圖像增強;文獻[15]提出了全卷積網絡RetinexNet,通過分解網絡將低照度圖片分解為反射圖像和照度圖像,并在此基礎上利用增強網絡進行后續的低照度增強操作。而Jiang等人[16]利用生成對抗網絡提出了EnlightenGAN,通過全局—局部鑒別器以及自正則注意力機制使該網絡在訓練時不需要成對數據也能獲得良好的增強效果。
目前,雖然基于深度學習的方法對低照度圖像增強效果較好,但是仍存在整體主觀效果不佳以及一些細節恢復不夠充分的問題。因此,針對當前的低照度增強算法,仍有較大的提升空間。本文考慮到現有方法的不足,利用循環一致性對抗網絡的學習方式,提出了一種改進CycleGAN的低照度增強網絡。該方法以多尺度卷積、殘差空洞卷積構建基于U-Net結構的低光照增強模塊,然后引入基于全卷積的照度均衡處理模塊來共同組成生成器網絡,同時使用了PatchGAN作為判別器網絡來構成新的循環一致性對抗網絡,實現低照度圖像到正常光照圖像的轉換。
近年來,生成式對抗網絡成為了計算機視覺領域的研究熱點。傳統的GAN網絡[17]如pix2pix[18]等都需要成對的數據集來進行模型訓練,而Zhu等人[19]于2017年提出了循環一致性對抗網絡CycleGAN,解決了傳統風格遷移算法需要成對數據集才能實現網絡訓練的問題。CycleGAN基于pix2pix網絡架構,設計了2個相互對稱的GAN網絡,利用2個生成器和2個判別器來實現原圖像和生成圖像之間的相互映射,實現了非配對數據集也能夠實現數據的相互轉化。CycleGAN結構示意如圖1所示。

圖1 CycleGAN結構示意Fig.1 Schematic of CycleGAN structure
由圖1可知,CycleGAN擁有G和F兩個生成器,針對2個樣本空間A,B包含2個映射關系:A-B和B-A。生成器G將圖像樣本A轉化成近似圖像樣本B的Generated_B,再利用判別器DB判斷Generated_B是否為真實圖像;同時,利用生成器F將生成圖像Generated_B轉化為類似樣本圖像A的Generated_A。為了確保最終生成的Generated_A與原本的樣本圖像盡可能地相似,在此引入了一個循環一致性損失,來保證網絡在不斷訓練過程中Generated_A與樣本圖像A能夠越來越相似,此過程為前向循環過程。由于生成器F的輸入均由生成器G傳輸過來,為了保證生成器F的學習效果,CycleGAN通過設置一個對偶反向循環過程,實現樣本圖像B的循環過程。
如果直接將CycleGAN用于低照度增強,由于其生成器結構較為單一,針對一些細節信息恢復能力不足,且可能會造成增強后的圖像亮度不均衡。同時,傳統的判別器處理較為簡單,對增強后圖像細節問題判斷不足,造成網絡收斂困難。因此針對CycleGAN的生成器和判別器結構進行改進,使其更適合于低照度增強任務。
一般,生成器網絡都需要經過編碼—解碼過程,但是一般的編解碼操作經常會導致特征信息的丟失,使得最后生成的圖片和原圖有較大差異。為了降低這種信息的損失,構建了以U-Net為框架的生成器模型,利用U-Net的跳躍連接結構來避免這種現象的發生。該生成網絡主要由低光照增強模塊和照度處理模塊組成,其中低光照增強模塊為改進的U-Net結構,主要包含編碼器、轉換器和解碼器3部分,用以增強低照度圖像,提高對低照度圖像細節的恢復能力;照度處理模塊為一個全卷積網絡,用以平衡不同區域的亮度,增強整體直覺質量。生成器網絡結構如圖2所示。

圖2 生成器網絡結構Fig.2 Generator network structure
① 低照度增強模塊
編碼器為下采樣過程,用于低照度圖像特征信息的壓縮與提取。首先采用了一個多尺度卷積模塊對輸入的原圖進行特征提取。一般,低照度圖像會呈現大面積暗黑,導致局部特征較為單一,使用不同大小卷積核有利于生成器獲取更多的特征信息。本文分別使用了1×1,3×3,5×5以及7×7的卷積核來構成多尺度卷積模塊,每個卷積核通道數為16,并且將卷積后的結果進行通道間的拼接,最后使用1×1的卷積將通道數調整至64。隨后,編碼器進行3次下采樣操作,將256×256的特征圖壓縮至32×32的大小,每個下采樣模塊由3×3卷積核(步長為2)、實例歸一化(Instance Normalization)以及激活函數ReLU組成。由于在低照度圖像增強任務中,增強后的結果依賴某個圖像實例,使用批歸一化(Batch Normalization)對整個batch做歸一化會影響到最后圖片增強的質量。因此本文在卷積操作后使用了實例歸一化(Instance Normalization)層,分別對特征圖的寬高做歸一化,可以加快模型的收斂速度并保持每個圖像的獨立性[20]。
轉換器主要用來整合編碼器所提取的圖像特征,本文的轉換器共使用6個殘差塊來完成低照度圖像特征到正常光照圖像特征的轉換。轉換器中的殘差塊由2個卷積層組成,2個卷積層都使用了卷積層+實例歸一化+非線性激活函數ReLU的結構,第1個卷積塊中使用了3×3大小的標準卷積,第2個卷積塊中使用了3×3的空洞卷積,空洞率依次為2,2,2,4,4,4。引入空洞卷積主要是為了在擴大生成網絡感受野的同時,還能保留特征圖的許多細節信息,提高低照度圖像增強的性能??斩礆埐罹矸e如圖3所示。

圖3 空洞殘差卷積Fig.3 Hollow residual convolution
解碼器為上采樣部分,主要是將轉換器得到正常光照圖像特征進一步還原出淺層特征,得到正常光照圖像。上采樣模塊由一個反卷積層+實例歸一化層+非線性激活函數ReLU組合而成,用于將圖像大小恢復至和輸入一樣。最后一個解碼塊中取消了實例歸一化層,使用了7×7的卷積,并將激活函數調整為tanh。該激活函數能夠保持輸入輸出呈非線性單調上升和下降的關系,同時也能夠在一定程度上減少梯度消失的現象發生。
② 照度均衡處理模塊
一般的低照度增強算法都是對暗光圖片進行整體的亮度恢復,因此增強后的圖像容易出現亮度不均等問題,使得低亮度區域欠曝光,高亮度區域過曝光。本文設計了一個由全卷積網絡構成的亮度注意模塊作為分支網絡,對低照度圖像中的弱光區域進行定位,使得整個生成器最后增強的圖像亮度分布均勻,提高網絡的增強效果。
該照度均衡處理模塊為增強網絡的輔助分支,其結果與增強網絡輸出結果相乘,使得增強后圖片不同光照區域亮度均衡,進一步提高了對低光照圖像的增強效果。其結構如圖2中的照度均衡處理分支所示。首先使用一個9×9的大卷積來獲取輸入圖片較為全局的特征信息,隨后經過5個3×3的卷積來提取弱光區域位置信息,輸出弱光位置注意圖。亮度注意力分支網絡中除最后一層使用卷積+Sigmoid激活函數結構外,其余各層均是卷積+LeakyReLU的結構,并且網絡中通道數均為32。
GAN網絡基于博弈的概念來學習生成圖像和真實圖像之間的誤差,利用生成器和判別器不斷博弈的過程提升生成圖像的質量,其中判別器的作用是確定生成器的生成結果是否滿足數據分布,從而區分生成圖像的真假。傳統GAN網絡判別器的輸出結果是該樣本為真的概率,該值代表的是圖像整體的一個值,無法體現圖像的局部特征。因此,對于一些對細節特征要求較高的任務存在一定的缺陷。
因此,本文的判別器是建立在Patch-GAN結構上的全卷積網絡,將判別器的輸出映射為一個N×N的矩陣,該矩陣中的每一個值都代表著其所屬感受野區域為真的概率。相比于傳統的判別器,使用一個矩陣作為輸出能夠更為充分考慮圖像不同區域的細節特征,同時小尺寸的特征圖計算也能夠加快網絡的收斂速度[21],使網絡更容易訓練。本文設計了5層全卷積的判別器模型,前4個卷積塊包含一個卷積層、一個實例歸一化層和一個非線性激活函數LeakyReLU,并且卷積步長設置為2。此外,最后一個卷積塊只包含卷積層和激活函數層,卷積步長為1,通道數為1。激活函數不再使用LeakyReLU,而采用值域為(0,1)的Sigmoid函數代替。最后判別器網絡輸出一個通道數為1的矩陣,該矩陣上的每個數值代表所屬感受野區域的概率值,以此來判斷生成圖像的真假。

圖4 判別器網絡結構Fig.4 Discriminator network structure
CycleGAN能夠使用非成對數據集訓練得到與成對數據集相同的效果,因此,本文仍使用CycleGAN中的對抗損失函數和循環一致性損失函數進行訓練。假設低照度圖像為X,正常光照圖像為Y,則CycleGAN中存在2個映射關系,即生成器G:X→Y與生成器F:Y→X。于是針對判別器DY的對抗損失函數為:
LGAN(G,DY,X,Y)=Ey~Pdata(y)[ln(1-DY(G)(x))]+
Ey~Pdata(y)[lnDY(y)],
(1)
循環一致性損失函數為:
Lcyc(G,F)=Ex~Pdata(x)[‖F(G(x))-x‖1]+
Ey~Pdata(y)[‖G(F(y))-y‖1]。
(2)
一般,對抗損失用來判斷低照度圖像增強后與正常光照圖像的相似度,并通過不斷對抗訓練來使得生成的正常光照圖像的質量越來越好。循環一致性損失用來約束原始數據集中的圖像和生成圖像的相似程度,使得第2個生成器轉換回來的圖像更為接近原始圖像。CycleGAN中擁有2個映射關系,于是總的損失函數為:
L(G,F,DX,DY)=LGAN(G,DY,X,Y)+LGAN(F,DX,Y,X)+
λLcyc(G,F)。
(3)
本文增強算法的實驗在工作站上搭建環境并進行訓練,工作站硬件配置CPU(Inter XeonE5-2695),GPU(NvidiaTITAN XP),主板(超微X10DRGQ);操作系統為Windows10專業版;軟件配置為Anaconda,Pycharm;編程語言為python,深度學習框架為keras。
在LOL數據集上進行網絡訓練,以485對圖像作為訓練集,15對圖像作為測試集。圖像統一歸一化至416 pixel×416 pixel大小輸入網絡訓練,網絡Batchsize=1,一共訓練200輪(epoch),優化器為Adam,前一百輪學習率為0.000 5,后一百輪學習率為0.000 1。
實驗采用了峰值信噪比(PSNR)、結構相似性(SSIM)、信息熵(EN)以及自然圖像質量評價指標(NIQE)作為圖像質量評價指標。
① PSNR:能夠反映增強后的圖像結構信息的完整程度,其值越高,表示受到的噪聲影響越小,增強后的圖像質量越高,失真程度也越小;
② SSIM:用來衡量2幅圖像的相似程度,其值越大,表示增強后的圖像與正常光照圖像越相似;
③ EN:能夠很好地反映增強后的圖像中紋理信息的豐富程度,其值越大,表明圖像的紋理信息越豐富,越接近于真實光照圖像;
④ NIQE:是一種基于無監督學習無參考的圖像質量評價指標,其值越低,表示增強后的圖像質量越高,越符合真實圖像。
為了驗證本文低光照增強算法的優越性,選取了MSRCR[7],SRIE[8],LIME[9],DONG[10],MF[11],NPE[12]和RetinexNet[15]等算法在LOL的測試集中進行對比實驗。從LOL數據集中隨機選取了3張圖片,使用上述低照度算法和本文算法進行處理,分別從整體主觀效果和細節恢復情況2方面進行分析。
(1) 圖像整體增強效果
本文算法與其余對比算法的實驗結果整體增強效果對比如圖5所示。

圖5 實驗結果對比Fig.5 Comparison of experimental results
由圖5可以看出,MSRCR算法與SRIE算法相比,前者增強后的圖像曝光嚴重,后者增強后的圖像整體偏暗,二者增強后的圖像本身的顏色細節信息缺失,導致圖像整體不真實,增強效果距離真實清晰圖像都有很大的差距。DONG算法圖像整體色彩較SRIE算法有所提高,但是增強后的圖像存在一些噪聲以及偽影出現,細節恢復不到位。LIME算法相較于前3種算法對圖像的整體處理效果更好,增強后的圖像的局部亮度與真實圖像相比存在一定差距,并且存在一定的細節信息丟失。MF算法以及NPE算法增強后圖像整體色彩與真實圖像較為接近,但是對偏暗區域亮度的增強效果偏弱,同時增強圖中各物體之間色彩層次不太明顯,圖像中也有一定的噪聲存在。RetinexNet算法增強后圖像中各物體顏色分明,但是過于增強,相較于真實圖像存在較多噪聲,導致出現失真現象。本文增強算法的主觀視覺效果要優于前面的各種算法,圖像整體亮度接近真實圖像,圖中各物體的顏色分明,色彩信息得到了較好的恢復,并且細節丟失較少,圖像更加自然。
(2) 細節對比分析
更詳細的細節信息對比效果如圖6所示,分別展示了3幅測試圖的2處細節信息,實驗對比算法仍然是上述7種低照度增強算法。由圖6可以看出,每幅圖對比2處細節信息。

(a) 測試圖1細節對比

(b) 測試圖2細節對比

(c) 測試圖3細節對比圖6 實驗結果細節對比Fig.6 Detailed comparison of experimental results
圖6(a)第1幅測試圖分別對衣柜中衣物顏色還原度和玩偶頭部細節恢復程度進行了比較,本文算法增強后的衣物顏色分明,顏色層次更貼近真實的圖片;同時玩偶頭部細節信息豐富,輪廓明顯,紋理清晰。其余幾種算法,增強后的衣物顏色均存在顏色層次不夠分明的問題,同時增強后的衣物邊緣信息模糊,存在大量的噪聲;針對玩偶頭部細節恢復,幾種對比算法都有較好的表現,玩偶的顏色以及邊緣細節信息較為接近真實圖片。在圖6(b)第2幅測試圖中,首先針對電飯煲上字體信息,本文算法與各對比算法增強后的字體清晰可辨認,但本文算法增強后圖像中電飯煲的顏色層次較其余增強算法與真實圖像更為接近;其次,本文算法增強圖像的筷筒金屬反光真實,邊緣輪廓更為清晰。在圖6(c)第3幅測試圖中,首先,本文算法、MSRCR、NPE以及RetinexNet算法增強后圖片中的暗處保齡球擺放較為清晰,余下算法未能體現完整的保齡球個數;其次,針對地板倒影,本文算法能夠得到更為光滑和清晰的影像。
為了進一步說明本文的低照度增強方法的優越性,在實驗過程中計算了各增強算法的PSNR,SSIM,NIQE和EN這4個圖像評價指標來對本實驗中的對比算法進行定量評價,如表1所示。由表1可知,3個測試圖片中本文算法的PSNR值在3幅測試圖片中最高,同時本文算法的SSIM值(結構相似性)也為最大,說明本文算法增強后的圖片受噪聲影響小、失真程度小且質量高,增強后的圖像與真實圖像最為接近,相較于其他算法圖像的質量更為可靠。其次,針對NIQE值,本文算法最低,表明本文算法增強后的圖像較其他算法視覺質量更高,處理出來的圖像最接近于真實圖像。最后,本文算法在第1幅圖獲得最高EN值,其余2幅圖中略低于LIME算法,說明本文算法在一定程度上能夠較好地保留原始圖像中的細節信息??傮w來看,本文的低照度增強算法的客觀評價指標最好。

表1 圖像評價指標對比Tab.1 Comparison of image evaluation index
為解決低照度圖像的亮度恢復問題,提出了一種基于改進CycleGAN的低照度圖像增強方法。該方法利用多尺度卷積和殘差空洞卷積來構建基于U-Net結構的低光照增強模塊,并結合基于全卷積的照度均衡處理模塊共同構成生成器網絡,能夠保留特征圖的許多細節信息,增強暗光區域色彩恢復,提高低照度圖像增強的性能。同時,利用Patch-GAN作為判別器網絡,能夠充分考慮圖像不同區域的細節特征,提高對增強后圖像的鑒別能力,進一步增強網絡的收斂能力。經過對比實驗驗證,本文的增強方法具有更好的增強效果,增強后的圖像亮度均勻且細節損失較少、噪聲較小,圖像質量更高。同時其客觀評價指標PSNR,SSIM,NIQE以及EN的值也表明本文算法較其他對比算法更優。因此,本文的低照度增強方法具有一定的學術參考價值和工程應用價值。隨后的研究內容將針對對抗損失的問題,引入光照等因素的影響進一步優化增強網絡,獲得更好的增強效果。