李江華,王坤
(江西理工大學(xué)信息工程學(xué)院,江西 贛州341000)
隨著專業(yè)數(shù)字成像設(shè)備的普及,數(shù)字圖像處理[1]被廣泛應(yīng)用于工業(yè)生產(chǎn)、視頻監(jiān)控、智能交通、遙感與監(jiān)控等諸多領(lǐng)域,且在其中發(fā)揮著重要的作用。但是,在圖像采集過程中,由于各種不可控因素的影響,特別是在室內(nèi)照明、夜間照明、陰天等不利條件下,獲取的圖像往往會出現(xiàn)對比度比較低、動態(tài)范圍強度低、圖像暗區(qū)和亮區(qū)的細節(jié)消失等各種缺陷。因此,如何在低光照條件下獲得清晰的靜止或移動圖像已成為一個需要解決的問題。為此,圖像增強技術(shù)引起了工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注和重視,圖像增強不僅滿足了人們對視覺體驗的需求,而且提高了戶外視覺系統(tǒng)的可靠性和魯棒性,使圖像處理系統(tǒng)更容易對圖像進行分析和處理。
低光照圖像增強作為數(shù)字圖像處理領(lǐng)域的一個經(jīng)典課題,長期以來一直有著源源不斷的研究,這些研究成果也已被廣泛應(yīng)用于各種領(lǐng)域。如Du等提出了一種將對比度增強和邊緣增強(EdgeE)結(jié)合起來基于區(qū)域圖像預(yù)處理方案用于人臉識別任務(wù)[2];Li等提出了一種新的醫(yī)學(xué)圖像增強算法,采用對比度限制自適應(yīng)直方圖均衡(CLAHE)來改善全局對比度,并利用低頻分量和幾個高頻分量來增強邊緣細節(jié)[3];Shi等提出了一種用于單個夜間圖像的低光照圖像增強方法,該方法利用亮通道獲得初始傳輸值,然后使用暗通道作為補充通道來校正從亮通道獲得的潛在的錯誤傳輸估計[4];Zhi等提出了一種基于照明調(diào)整、引導(dǎo)濾波和“S曲線”功能用于煤礦環(huán)境新的非均勻圖像增強算法[5];羅會蘭等提出了基于三流卷積神經(jīng)網(wǎng)絡(luò)模型的圖像分類方法[6]。雖然這些圖像增強算法在圖像質(zhì)量上有一定的提高,但是仍沒能很好地解決一些問題,如:對比度增強算法在處理圖像時可能會出現(xiàn)圖像過度增強或效果不自然的現(xiàn)象;HE算法增強之后的圖像會出現(xiàn)偽像和強飽和度等不好的效果;SSR、MSR、MSRCR等方法在圖像像素變化劇烈的邊緣處普遍存在會出現(xiàn)光暈偽影的缺點,且都伴隨著色彩失真。如何自適應(yīng)地增強低光照或不均勻照明的圖像,還需要進一步研究。
針對上述常見的當(dāng)前低光照圖像增強算法出現(xiàn)的過度增強、偽影等缺陷,本文提出了一種結(jié)合CNN[7]與Retinex算法[8]的自適應(yīng)低光照圖像增強方法,并對日常出現(xiàn)的低光照條件下圖像難以辨識的問題進行了研究。
Retinex是一個合成詞,它的構(gòu)成是Retina(視網(wǎng)膜)+Cortex(大腦皮層)。美國物理學(xué)家Edwin Land認為人類的視覺系統(tǒng)在視覺信息的傳導(dǎo)過程中對接收到的信息進行了某種處理,所以提出了把光照不均勻問題和光源強度等多個不確定的成分分離的方法,只保留了反映物體本質(zhì)特征的信息。其表達式如式(1)所示:
其中,x 表示像素;S(x)是人眼觀察到的圖像;R(x)是圖像的反射分量;L(x)是光照分量;點“·”表示按像素相乘。其物理意義可以簡單地描述為:人類觀察到的低光照圖像可以分解為圖像R(x)的反射分量和光照分量L(x)的乘積,即物體本身顏色因素與光照分量是無關(guān)的,只由物體表面的反射屬性來決定的。意味著從輸入圖像中去除低光照分量可實現(xiàn)低光照圖像增強。本文的目標(biāo)是通過預(yù)測圖像 S(x)的光照分量 L(x)來求得反射分量 R(x)。 其原理圖如圖1所示。
圖1 Retinex理論中圖像的構(gòu)成
針對Retinex算法對圖像進行增強過程中有時會出現(xiàn)圖像偏色等缺陷,本文提出了結(jié)合CNN和Retinex算法對低照度圖像進行增強的方法。該方法以低光照圖像為輸入,利用CNN學(xué)習(xí)預(yù)測低光照圖像與相應(yīng)亮度圖像之間的映射關(guān)系并輸出其光照圖,然后通過Gamma校正[9]調(diào)整優(yōu)化估計的光照圖,最后利用得到的光照圖結(jié)合經(jīng)典的Retinex算法從而對低光照圖像進行增強。
本文CNN包含4個具有特定任務(wù)的卷積層,不同的卷積層對最終的光照圖有不同的影響。例如,前兩層主要是針對高光區(qū)域,第三層主要是針對低光區(qū)域,而最后一層則是重構(gòu)光照圖。對卷積層的具體描述如下:
Step1:特征提取。為了學(xué)習(xí)低光圖像和其光照圖之間的關(guān)系,首先從低光圖像中提取重疊的像素塊,并通過n1個濾波器用高維向量表示每個像素點,其表示為:
其中,p是大小為n×n的輸入圖像塊;W1和B1是濾波器的權(quán)重和偏置。 W1的大小為 f1×f1×n1,其中 f1是濾波器的空間支撐度,n1是濾波器的個數(shù)。B1是一個n1維向量,其每個元素都與一個濾波器相關(guān)聯(lián),“*”表示卷積運算。Max(0,x)是一種修正線性單元(RELU),用于加速訓(xùn)練收斂并且提高網(wǎng)絡(luò)性能。
Step2:特征增強。受減少壓縮偽影中使用的特征增強層的啟發(fā)[3],采用特征增強層將“噪聲”特征映射到相對“干凈”的特征空間,因為弱光照圖像通常會受到噪聲的影響。表示為:
其中,W2包含大小為 f2×f2×n2的 n2個濾波器, 并且B2是n2維向量。
Step3:非線性映射。將每個高維向量映射到另一個高維向量,即將 F2(p)轉(zhuǎn)換為 F3(p):
其中,W3包含大小為 f3×f3×n3的 n3個濾波器, 并且B3是n3維向量。
Step4:圖像重建,最后,設(shè)計一個卷積層來聚合圖像塊表示,以生成學(xué)習(xí)的光照圖。F3(p)被變換成 F4(p),表達式為:
其中,W4包含大小為 f4×f4×n4的 n4個濾波器, 并且B4是n4維向量。
這些未知的網(wǎng)絡(luò)參數(shù) Θ={W1,W2,W3,W4,B1,B2,B3,B4}是通過監(jiān)督學(xué)習(xí)方式,以最小化均方誤差(MSE)[10]損失函數(shù)實現(xiàn)的。MSE損失函數(shù)表示為:
其中,N是訓(xùn)練批次中的圖像塊個數(shù);Pi表示低光照圖像塊;u是對應(yīng)于Pi的光照圖的圖像塊;F是學(xué)習(xí)的映射函數(shù)。
通過Gamma校正來調(diào)整估計的光照圖,以更清晰地展現(xiàn)圖像中的低光照區(qū)域,表示為:
其中,L(x)′是估計的光照圖;L(x)γ是經(jīng)過 Gamma校正的光照圖。γ=1.7是一個啟發(fā)式的值。在優(yōu)化映射時,假設(shè)輸入的圖像中大小的局部區(qū)域具有相同的光照強度。在經(jīng)過Gamma校正后,需要通過引導(dǎo)圖像濾波來細化光照圖,以消除光照遮擋的影響。在引導(dǎo)圖像濾波中,將輸入圖像的紅色通道作為引導(dǎo)圖像,濾波窗口大小為16×16。增強圖像以通過公式獲得:
其中,x 表示像素;S(x)表示低光照圖像;Lr(x)表示細化的光照圖。
圖2為圖像的細化處理過程,從圖2所示的效果可以看出,此方法準(zhǔn)確地估計了圖像中代表光照強度的光照圖部分。本文方法產(chǎn)生的結(jié)果自然且真實,其中暗區(qū)域被增強,而亮區(qū)域(例如光源)被保留。
圖2 細化的處理過程
本文的參數(shù)設(shè)置如表1所示。在CNN訓(xùn)練階段,各層的濾波權(quán)重由高斯分布隨機初始化,偏置值設(shè)置為 0,初始學(xué)習(xí)率為 0.05,每 1,000,000 迭代一次,學(xué)習(xí)率遞減0.5,動量參數(shù)設(shè)置為0.9。采用批處理模式的學(xué)習(xí)方法,批處理量為128個。網(wǎng)絡(luò)訓(xùn)練是在裝有 Intel(R) Core(TM)CPU i5-8300H@2.60 GHz的CPU和NVIDIA GeForce GTX 1050Ti的個人電腦上進行的。
深度學(xué)習(xí)系統(tǒng)通常需要大量的帶標(biāo)簽數(shù)據(jù)來進行訓(xùn)練。遺憾的是,現(xiàn)如今沒有足夠的標(biāo)記數(shù)據(jù)可用。為了獲得更合理、更可靠的性能的增強,因此利用式(1)中Retinex算法綜合訓(xùn)練數(shù)據(jù)。此外,為了使用合成訓(xùn)練數(shù)據(jù),本文遵循圖像內(nèi)容獨立于光照圖,且圖像塊中的光照圖局部恒定 (即局部區(qū)域具有相同的光照強度)的假設(shè)。為此從互聯(lián)網(wǎng)收集了300個具有不同內(nèi)容的清晰照明圖像,用于合成樣本對(即低光照圖像及其照明圖)。清晰的照明圖像即表示圖像具有良好的照明和對比度,且沒有噪音和模糊,參閱圖3中的示例。這300個清晰照明的圖像具有不同的尺寸,并且是常見的JPG、PNG或BMP格式。基于Retinex算法,給定清晰照明的圖像R(x)和隨機照明值 L,即可以合成為低光照圖像 S(x)=R(x)·L。其中,R(x),L 和 S(x)是標(biāo)準(zhǔn)化的。 基于這些合成圖像,本文通過重疊裁剪獲得訓(xùn)練圖像塊,重疊像素是10。 最后,共收集了 2,052,864 個大小為 n×n=16×16的訓(xùn)練圖像塊。其中,假設(shè)局部區(qū)域(即16×16)具有相同的照明強度,當(dāng)圖像塊足夠小時,該假設(shè)在現(xiàn)實世界中是合理的。圖3給出了3個清晰照明圖像和相應(yīng)的合成弱照明圖像的例子,自上而下是清晰的照明圖像和相應(yīng)的合成弱照明圖像,其中從左到右,照明值L分別為0.5159、0.0088和0.2328。
表1 CNN的參數(shù)設(shè)置
圖3 合成弱照明圖像示例
基于表1所列的基本網(wǎng)絡(luò)參數(shù)設(shè)置,表2總結(jié)了不同MSE值的設(shè)置結(jié)果,其中基本網(wǎng)絡(luò)參數(shù)設(shè)置的MSE用黑體標(biāo)記。
如表2所列,隨著濾波器數(shù)量的增加,MSE性能隨之變得更好。然而,這種改進是有限的,同時也會花費更多的訓(xùn)練時間和處理時間。因此,基于性能和復(fù)雜度之間的權(quán)衡,需要選擇一個中間的網(wǎng)絡(luò)過濾器數(shù)作為本部分的基本過濾器數(shù)設(shè)置。上面實驗還表明,合理的濾波器大小設(shè)置可以獲得更好的性能。通過對濾波器的對比發(fā)現(xiàn)打破1×1的濾波器大小這一約束帶來的改善有限,且比較費時。因此,本文的網(wǎng)絡(luò)中保留了1×1的約束,因為該約束對于本文的網(wǎng)絡(luò)設(shè)計帶來更高的效率。最后,隨著層數(shù)的增加,并沒有獲得更好的MSE性能。究其原因,可能是:①梯度擴散的影響;②簡單的原始架構(gòu)重復(fù)導(dǎo)致網(wǎng)絡(luò)架構(gòu)不合理。
表2 不同網(wǎng)絡(luò)參數(shù)設(shè)置的平均MSE值
將本文方法與經(jīng)典的HE[11](直方圖均衡化)方法、MSR[12](多尺度視網(wǎng)膜法)方法,以及最近的AWVM[13](自適應(yīng)權(quán)向量法)方法分別對合成的和真實的低光照圖像進行定性處理和定量比較。
本文對合成的弱光圖像進行定性比較。圖4中的圖像是基于Retinex算法合成的,圖5中展示了不同算法對真實低光照圖像處理結(jié)果對比。
從圖5中可以看出,對于真實的低光照圖像,其對比結(jié)果與合成圖像的對比結(jié)果有相同的趨勢。具體表現(xiàn)為,對于圖像內(nèi)部照度不均勻的圖像(即暗區(qū)域和亮區(qū)域共存的圖像)“鹿”“小孩”“岸邊”和“房子”,HE算法產(chǎn)生的結(jié)果都是過度增強和不真實的結(jié)果(如HE算法的結(jié)果中“小孩”圖像的手和“岸邊”圖像的沖浪板)。本文所提出的方法能夠產(chǎn)生較為自然的效果,沒有出現(xiàn)增強過度或不足的現(xiàn)象,這主要因為對照度圖的準(zhǔn)確估計,而照度圖便是用來增強暗區(qū)和保持亮區(qū)的。對于光照度極低的圖像(即圖像“鹿”),HE方法能展示出更多的場景細節(jié),但也同時產(chǎn)生了偽影和過飽和現(xiàn)象。對于非均勻光照的圖像和背光圖像,MSR方法都表現(xiàn)出偏灰色的結(jié)果,而且因為完全去掉了光照度,所以圖像顯得很不真實。AWVM算法的結(jié)果看起來與原圖較為貼近,看起來較為自然,但對比度和亮度的增強仍然稍有不足??偟膩碚f,本文所提出的方法對不同環(huán)境下拍攝的低光照圖像產(chǎn)生了自然合適的視覺效果,場景和物體的細節(jié)都得到了很好的還原。
圖4 合成圖像的定性比較
圖5 不同算法對真實低光照圖像處理結(jié)果對比
目前還沒有為低光照圖像增強方法設(shè)計的專有定量評價指標(biāo),因此,不同的研究者利用不同的方法來評價其成果,以往的方法大多采用無參考或全參考的圖像質(zhì)量評估指標(biāo)。為了公平地比較,本文使用 MSE(均方誤差)、PSNR[14](峰值信噪比)和SSIM[15](結(jié)構(gòu)相似度)來衡量結(jié)果與原始圖像的差異,如表3所列。
表3 定量比較
從表3中可以看出,在對比的方法中,本文提出的方法在MSE、PSNR和SSIM值上都比較突出。本文方法的結(jié)果最接近于真實情況,證明了該方法的有效性。此外,有趣的是,盡管本文方法通過MSE損失函數(shù)進行優(yōu)化的,但是該方法在SSIM評估度量上獲得了最好的性能。
針對經(jīng)典Retinex算法對圖像增強有時會出現(xiàn)圖像偏色等缺陷,本文提出了結(jié)合CNN和Retinex算法對低照度圖像進行增強的方法。以低光照圖像為輸入,利用CNN學(xué)習(xí)預(yù)測低光照圖像與相應(yīng)亮度圖像之間的映射關(guān)系并輸出其光照圖,然后通過Gamma校正調(diào)整優(yōu)化估計的光照圖,最后利用得到的光照圖結(jié)合經(jīng)典的Retinex算法從而對低光照圖像進行增強。通過實驗對比結(jié)果表明,所提出的方法在定性和定量比較上取得了較好的表現(xiàn)。