徐文晨 樊佳慶 宋慧慧
(1.南京信息工程大學自動化學院 南京 210044)(2.南京航空航天大學計算機科學與技術學院 南京 211106)
在夜間光照條件不理想的情況下,拍攝設備采集到的圖像會存在對比度低、噪聲強與細節(jié)模糊等問題,這類圖像一般稱之為低光照圖像。人們試圖尋求更先進的拍攝設備,來彌補不理想的拍攝條件所帶來的缺陷,但是在硬件上尋求突破,花費的代價會越來越高昂,使得通過軟件算法來改善圖像質量的方法成為重要的研究方向。低光照圖像增強屬于計算機視覺任務,旨在將低光照圖像增強到正常圖像,在圖像的對比度、可見度方面進行增強;在噪聲方面進行抑制,恢復暗光區(qū)域的細節(jié)信息。低光照圖像增強作為底層的計算機視覺任務,不僅僅帶來了視覺質量的提升,而且為高級視覺任務(例如目標檢測[1],目標識別[2],目標分割[3]等)提供了良好的基礎。
低光照圖像增強的方法大致可以分為兩類:基于傳統(tǒng)的方法和基于深度學習的方法。傳統(tǒng)方法常用直方圖均衡化[4]或伽馬校正[5]實現(xiàn)低光照圖像增強。近年來,基于深度學習的方法在圖像處理和視頻處理等計算機視覺的任務中取得重大進展,因此,基于深度學習的方法也成為低光照圖像增強的主流方法。最先應用深度學習的方法是LLNet[7],采用稀疏編碼的思想,來進行去噪任務和增強低光照圖像任務。在Retinex理論[6]的支撐下,將輸入的低光照圖像分解成反射圖和光照圖,再處理光照圖以增強圖像。產生了一系列工作,如RetinexNet[8],LightenNet[9],DeepUPE[10]等,這些方法往往會導致圖像過度曝光或是增強不足,也會出現(xiàn)色彩失真的情況。還有圖像曲線估計的方法,如ExCNet[13],Ze?ro-DCE[14],Zero-DCE++[15]等,但這類方法往往會導致圖像噪聲,增強效果不佳。
現(xiàn)有的低光照圖像增強方法往往只關注圖像的增強,忽略了圖像噪聲的影響,因此會出現(xiàn)圖像亮度和對比度不足、顏色失真、噪聲偽影等情況。本文提出了一種基于上下文Transformer 的圖像增強網(wǎng)絡,對減少噪聲影響,圖像亮度增強有顯著效果,特別是在圖像暗部區(qū)域的增強。本文貢獻包括:
1)將Transformer 模塊引入到低光照圖像增強領域,相比卷積神經(jīng)網(wǎng)絡,使用Transformer 能夠更好地提取圖像全局特征信息,此外本文使用改進的Transformer引入上下文信息,能更好地利用全局和局部特征信息。
2)使用金字塔池化模塊,融合圖像的多尺度特征并擴大全局的感受野,進而消除潛在的噪聲干擾,減少圖像偽影。
3)引入動態(tài)卷積來減輕計算負擔,減少參數(shù)量;另一方面添加瓶頸結構的卷積進而加深網(wǎng)絡深度,顯著提高模型性能。
基于深度學習的低光照圖像增強方法是目前的主流方法,本文主要介紹下面三類:基于Retinex理論的方法、基于曲線估計的方法與基于生成對抗網(wǎng)絡的方法。
1)基于Retinex理論的方法
在Retinex 理論的支撐下,加上不同的先驗正則優(yōu)化模型,將低光照圖像分解成照明圖和反射圖,出現(xiàn)了幾個方法。RetinexNet[8]提出將輸入圖像分割成反射圖和照明圖,用Enhance-Net 模塊來調整照度圖以實現(xiàn)低光增強。為了減少計算負擔,Li 等提出了一種用于弱光圖像增強的輕量級模型LightenNet[9],它只由四層網(wǎng)絡組成。LightenNet 將弱光圖像作為輸入,然后估算其照度圖。為了準確估計光照圖,Wang 等通過他們提出的DeepUPE 網(wǎng)絡[10]提取全局和局部特征來學習圖像到光照的映射關系。KinD[11]設計了一個多分支網(wǎng)絡,構建了三個子網(wǎng)絡,分別進行圖像分解、反射圖增強和亮度調整。RUAS[17]通過Retinex 理論引入先驗信息約束,使用神經(jīng)網(wǎng)絡結構搜索,在求最優(yōu)解的過程中建立輕量的增強網(wǎng)絡模型。
2)基于曲線估計的方法
Zhang等[13]提出了一種零次學習方法,稱為Ex?CNet,用于背光圖像修復。它首先使用一個網(wǎng)絡來估算最適合輸入圖像的S曲線。一旦S曲線被估算出來,輸入圖像就通過引導濾波器被分離成一個基礎層和一個細節(jié)層。然后通過估算的S 曲線來調整基礎層。Zero-DCE[14]提出一種深度曲線估算網(wǎng)絡。它將低光增強視為一項針對圖像的曲線估算任務,它將低光圖像輸入,輸出為高階曲線。此外,還提出了一個快速和輕量級的版本,稱為Ze?ro-DCE++[15]。這種基于曲線的方法在訓練期間不需要任何配對或非配對的數(shù)據(jù)。它們通過一組非參考損失函數(shù)實現(xiàn)零參考學習。
3)基于生成對抗網(wǎng)絡的方法
EnlightenGAN[12]采用注意力引導的U-Net 作為生成器,并使用全局-局部判別器來確保增強的結果看起來像真實的正常光線圖像,還提出了全局和局部自我特征保留損失,以保留增強前后的圖像內容。Yang[16]等提出了一種半監(jiān)督深度遞歸頻帶網(wǎng)絡(DRBN)。該算法首先在監(jiān)督學習下恢復增強圖像的線性頻帶表示,然后通過基于無監(jiān)督對抗學習的可學習線性變換對給定頻帶進行重組,獲得改進的波段表示。
本文設計了一種基于上下文Transformer[18]的網(wǎng)絡模型,如圖1 所示,首先將輸入的低光照圖像用動態(tài)卷積網(wǎng)絡進行特征提取,然后進行深層特征提取,包括3 個上下文Transformer 模塊(SCTB)和1個金字塔池化模塊(PPM)處理,最后通過瓶頸結構的卷積神經(jīng)網(wǎng)絡輸出增強后的圖像。
圖1 基于上下文Transformer的低光照圖像增強網(wǎng)絡圖
Transformer 最先在自然語言處理(NLP)中應用,是為序列模型而設計的,它能夠使用注意力機制來建模數(shù)據(jù)中的長距離依賴關系。Vision Trans?former(ViT)[19]首先將Transformer 應用到計算機視覺領域,在之后針對不同的計算機視覺任務產生了一系列的工作?;A的Transformer 模型需要大量的數(shù)據(jù)來進行訓練,同時,模型的參數(shù)量也比一般的CNN 網(wǎng)絡模型參數(shù)量大,Transformer 中的全局自注意力機制捕捉數(shù)據(jù)的長距離依賴關系,大大增強了編碼器-解碼器結構對圖像的視覺特征提取效果。
Swin Transformer[20]提出了在局部窗口內計算多頭自注意力(W-MSA),窗口以不重疊的方式進行分割圖像,全局共享參數(shù),這樣大大減少了計算參數(shù)量。其獨特的移動窗口分區(qū)的方法,保證了在非重疊窗口計算的同時也引入了窗口之間的連接,由此構建移動窗口多頭自注意力(SW-MSA)模塊??紤]到局部的上下文信息對圖像恢復類的視覺任務有重要作用,原先的Transformer架構中的前向網(wǎng)絡沒有充分利用局部的上下文信息,但是相鄰的像素是底層圖像處理任務的一個重要參考信息,因此CeiT[21]在前向網(wǎng)絡中添加一個深度可分離卷積塊,用卷積來捕獲有用的局部上下文信息,構建局部增強的上下文前向網(wǎng)絡(LeFF)模塊。
結合Swin Transformer 和CeiT 這兩個工作的改進,本文構建了移動窗口上下文Transformer 模塊。在Transformer 模塊內部使用局部位移窗口多頭自注意力模塊(SW-MSA),保證窗口不重疊的同時也共享全局參數(shù)權重以減少參數(shù)量。將改進的前向網(wǎng)絡模塊(LeFF)添加到Transformer 模塊中。使得CNN 的提取底層特征強的優(yōu)勢與Transformer 建立長距離依賴優(yōu)勢相結合,能夠有效地提取圖像特征信息。
在低光照圖像增強任務中,受模糊和噪聲的影響,導致增強之后的圖像容易出現(xiàn)原先沒有的偽影,造成效果變差。這一問題出現(xiàn)的原因是,在提取深層特征時,深層神經(jīng)網(wǎng)絡的感受野大小限制了上下文信息的提取,為解決這一問題,本文在Transformer模塊提取圖像特征之后,還盡可能地利用上下文先驗信息。
金字塔池化[22]模型采用大小不同的池化層,獲得圖像的多尺度信息,再將得到的多尺度特征圖融合,最后得到與原圖大小相等的特征圖。根據(jù)這類模型的特性,本文在搭建金字塔池化模塊的時候,選擇了一個六分支的池化層,大小分別是1×1,2×2,3×3,4×4,6×6,8×8,在每個池化分支后連接一個1×1的卷積,以方便進行通道之間的融合,如圖2所示。最后通過雙線性插值進行上采樣得到和圖像大小相同的特征。該模塊抑制了可能由模糊和噪聲的其他退化共存引起的偽影,對提高低光照圖像增強的最終效果至關重要。
圖2 金字塔池化模塊圖
為了擁有更好的網(wǎng)絡性能,在網(wǎng)絡中往往使用更多的卷積層數(shù),或者是使用更大的卷積核來提高感受野的大小。但這往往會帶來高額的計算負擔,使得性能的提升并不高效。Chen[23]提出的動態(tài)卷積,引入了注意力機制,針對輸入使用不同的卷積。常規(guī)的卷積輸入輸出的關系如式(1)所示:
式中W,b,g(*) 分別表示權重,偏置及激活函數(shù)。動態(tài)卷積的輸入輸出關系如式(2)所示:
式中πk表示注意力權值,根據(jù)輸入的變化而變化。因此,動態(tài)卷積比傳統(tǒng)的靜態(tài)卷積表征能力更強。在前期的特征提取階段,采用動態(tài)卷積的方法,將提取的特征送入到后續(xù)的Transformer 模塊中。
在圖像增強階段,采用瓶頸結構的卷積塊,有利于減少參數(shù),提高網(wǎng)絡深度。1×1 卷積可用于對通道間信息進行編碼,但無法捕獲空間信息,采用深度可分離卷積來捕獲空間信息,將1×1 的卷積添加在深度可分離卷積之間,前一個1×1 卷積用于通道上的降維,后一個用于升維。再加上一個反向殘差連接,以學習表達空間上下文信息。
本文損失函數(shù)包括L1 損失[36]、SSIM 損失[24]以及感知損失[25]。L1 損失函數(shù)在目標邊緣的對比度,均勻范圍內的平滑效果方面表現(xiàn)較好,同時SSIM 損失函數(shù)的結構約束能夠很好地還原圖像的結構信息和局部細節(jié)信息,感知損失函數(shù)是為了能夠減少增強圖像和現(xiàn)實圖像之間的差異,提高增強圖像觀感和減少細節(jié)方面的失真。
3.4.1 L1損失
在底層的計算機視覺任務中,L1 損失[36]被廣泛使用,采用L1損失相比L2損失會避免L2損失帶來的過度平滑,有助于刻畫目標的邊緣輪廓信息,對比度強。L1損失函數(shù)的表達式為
3.4.2 SSIM損失
在暗光環(huán)境下的拍攝的圖像,往往會出現(xiàn)內容模糊,細節(jié)丟失,噪聲偽影等問題。SSIM 評價指標關注的是生成圖像和真實圖像之間的結構信息差異,本文將SSIM 結構損失[24]引入進來,旨在提高增強圖像的輸出視覺效果。
SSIM結構相似性損失函數(shù)的表達式為
式(4)中μx,μy分別表示生成圖像和真實圖像的像素平均值,σxy表示兩個圖像的乘積標準差,和分別表示生成圖像和真實圖像的方差,N代表樣本總數(shù),C1,C2為常量。
3.4.3 感知損失
L1 損失和SSIM 損失用于捕捉圖像的底層信息,在增強低光照圖像的過程中,還需要使用圖像的高層信息來提高視覺感受質量。感知損失[25]是針對底層視覺任務提出的,其思想是使用預訓練模型提取圖像特征信息,在本任務中用于獲取真實圖像信息和增強后的圖像信息,再逐像素地計算兩者差異。感知損失函數(shù)的表達式為
式(5)中,?()?代表預訓練模型處理后圖像的第j個特征圖,C代表通道數(shù),H和W分別代表特征圖的高度和寬度。
總體的損失函數(shù)表達式為
式(6)中λ1,λSSIM和λper分別為權重系數(shù)。
本實驗在NVIDIA GTX 2080Ti GPU 上進行訓練,操作系統(tǒng)為Ubuntu 16.04。使用Pytorch 1.5 深度學習架構來進行訓練和測試。
為了客觀比較,本文實驗均在公開數(shù)據(jù)集上進行。選擇在低光照圖像數(shù)據(jù)集:NPE[26]、LIME[27]、MEF[28]、DICM[29]上進行測試,由于這些數(shù)據(jù)集沒有對應的參照圖,只有低光照情況下的圖像,選擇使用主觀評價以及量化的圖像測試指標進行圖像質量評價。
為了更直觀地體現(xiàn)本任務的研究效果,選取目前針對超暗光場景的低光照圖像數(shù)據(jù)集LOL[30]。
為了展示本文模型的優(yōu)越性,本文進行了大量實驗分析,并與當前的主流工作:LLNet[7],Retinex[8],EnglightenGAN[12],KinD[11],KinD++[31],Zero-DCE[14],DeepLPF[10],Zero-DCE++[15],DRBN[16],Retinex-Net[32]進行比較。本文從主觀層面以及多個客觀評價指標,進行了多方位的實驗分析。
4.2.1 無參考數(shù)據(jù)集評價
本文在數(shù)據(jù)集NPE[26]、LIME[27]、MEF[28]、DICM[29]上進行測試。邀請15 位測試官進行打分,增強效果由低到高對應打分的數(shù)值從0到5。在無參考圖像的數(shù)據(jù)集指標評價上,選擇圖像視覺保真度(VIF)[33],該指標是基于自然場景統(tǒng)計和由人類視覺系統(tǒng)提取的影像信號的概念的圖像質量評估參數(shù),數(shù)值越高說明圖像的細節(jié)信息越好。各方法在各個數(shù)據(jù)集上的測試結果,如表1 所示,前一個數(shù)值代表測試官的打分,后一個數(shù)值代表評價指標VIF的得分。
從表1 中可以看到,本文結果在大部分數(shù)據(jù)集上指標均能達到最優(yōu),同時,在數(shù)據(jù)集LIME 和MEF 中,在指標VIF 上達到次優(yōu)。在數(shù)據(jù)集LIME上,方法KinD++取得VIF 指標最優(yōu),它引入多尺度亮度注意力模塊,對圖像亮度有更好的提升。在數(shù)據(jù)集MEF 上,方法DRBN 取得指標VIF 最優(yōu)。本文方法雖然在這兩個結果上沒有取得最優(yōu),但是在剩余結果上均取得最優(yōu),整體表現(xiàn)上,本文結果占較大優(yōu)勢。本文取得優(yōu)勢的原因在于引入Transform?er來進行特征提取,充分發(fā)揮了Transformer在長距離依賴的優(yōu)勢,并結合局部上下文信息,很好地輸出增強圖像。
表1 無參考數(shù)據(jù)集上的測試結果對比表
為更加直觀地呈現(xiàn)實驗結果,圖3 展示了不同方法在數(shù)據(jù)集DICM 上的測試結果,大多數(shù)方法均能提高低光照圖像的亮度,但有些方法上會存在陰影、顏色失真等情況,有嚴重的視覺信息缺陷。本文方法得益于引入金字塔池化模塊,在偽影消除方面具有良好的表現(xiàn);通過損失函數(shù)的約束,刻畫了圖像的邊緣信息,在光線的調節(jié)方面有好的表現(xiàn),擁有更自然的顏色和良好的亮度和對比度,具有優(yōu)秀的視覺效果。
圖3 數(shù)據(jù)集DICM上的測試結果圖
4.2.2 有參考數(shù)據(jù)集評價
在LOL 數(shù)據(jù)集上,采用峰值信噪比(PSNR)[34]和結構相似性(SSIM)[35]這兩個指標來評價實驗結果。PSNR 指標用來評價圖像的失真程度,值越大失真程度越小,圖像的質量越高。SSIM 用來評價圖像的結構信息,值越大結構信息越完善。
從表2中可以看出本文方法在PSNR 指標上超過其他方法取得了最優(yōu),達到20.74 的結果;在SSIM 指標上取得了次優(yōu),達到了0.822 的結果,且與最優(yōu)方法DRBN 的0.831 結果差距不大。圖4 中展示了各個方法在LOL 數(shù)據(jù)集上的測試結果對比圖,從參照圖可以看出,本文生成的增強圖像具有顯著優(yōu)勢。本文得益于引入Transformer架構,充分發(fā)揮Transformer 在計算機視覺領域的優(yōu)點。此外還彌補Transformer在局部信息使用不充分的缺點,針對圖像增強領域這個任務特點,加強了對局部上下文信息的使用。引入金字塔池化模塊對噪聲抑制有好的表現(xiàn),選擇的損失函數(shù)針對圖像顏色自然過渡,邊緣紋理信息恢復有好的表現(xiàn)。
表2 數(shù)據(jù)集LOL上的測試結果對比表
圖4 LOL數(shù)據(jù)集上的測試結果對比圖
為確定各個部分在模型中的作用,進行以下消融實驗。實驗1 去除金字塔池化模塊,全部替換成普通的卷積模塊;實驗2 去除LeFF 模塊去除,換成傳統(tǒng)Transformer 模塊的前向傳播模塊;實驗3 去除L1 損失;實驗4 去除SSIM 損失;實驗5 去除感知損失。每個實驗的目的為了確定各個模塊在本模型中的重要地位和不同的目的性。
分析圖5的消融實驗對比圖和表3的消融實驗結果對比表,可以發(fā)現(xiàn),實驗1 中去除金字塔池化模塊,結果圖產生了模糊和偽影的情況,噪聲未能去除,兩個指標均下降嚴重;實驗2 去除LeFF 模塊。
圖5 消融實驗結果對比圖
表3 消融實驗結果對比表
有部分的暗區(qū)沒有得到有效增強,整體的增強效果差,兩個指標也是下降明顯;實驗3和實驗4出現(xiàn)了整體顏色偏暗淡,結構信息變差,兩者分別是沒有使用L1 損失和SSIM 損失,從指標上分析,指標均有不同程度的降低;實驗5 減少了感知損失,結果圖在視覺效果上,還不足夠好,細節(jié)紋理信息有所欠缺,兩個指標也均有下降。
本文提出了一種全新的低光照圖像增強的方法,并且相比本領域內當前先進工作,具有一定的優(yōu)勢。本文設計了一種基于上下文Transformer 的網(wǎng)絡模型,結合金字塔池化模塊、動態(tài)卷積以及多個損失函數(shù),完成了端到端的網(wǎng)絡訓練。在不同數(shù)據(jù)集上取得了良好的結果,對圖像的亮度、對比度提升,紋理特征細節(jié)恢復,顏色信息自然過渡和偽影噪聲抑制等方面有了很好的效果。在無參照圖像和有參照圖像的數(shù)據(jù)集上的各項指標表明本文的結果相比當前主流算法有一定優(yōu)勢。此外,本文的方法適用性更加廣泛,后續(xù)的工作計劃是在更多數(shù)據(jù)集上實驗和優(yōu)化模型。