陳茹霞,強振平,邵小鋒,何麗波
(1.西南林業(yè)大學大數(shù)據(jù)與智能工程學院,云南 昆明 650224;2.云南警官學院信息網(wǎng)絡安全學院,云南 昆明 650223)
人的眼睛在對物體顏色進行感知時,無論外界光照環(huán)境怎樣變化,都能保持相對不變,這種現(xiàn)象稱為色彩恒常性[1]。例如:紅色在強光下表現(xiàn)為鮮紅,在弱光下表現(xiàn)為暗紅,但不能表現(xiàn)為黃或者綠。對于色彩恒常性,Land等人[2]經(jīng)過多年的研究,提出了著名的視網(wǎng)膜大腦皮層理論——Retinex理論。Retinex是由單詞Retina(視網(wǎng)膜)和單詞Cortex(大腦皮層)的縮寫組合而成的。該理論認為物體的性質是由它的反射能力決定的,而不是反射的強度[3,4]。Retinex理論形成的基礎是顏色恒常性理論,目前Retinex算法普遍應用于圖像處理,包括圖像增強和圖像恢復[5,6]。該算法主要研究如何增強外界物體的入射光的照射分量L(x,y),從而獲得圖像的本質特性。
Retinex理論的基本假設是人的眼睛所觀察到的圖像I(x,y)是由入射光L(x,y)(外界物體表面入射光)和反射圖像R(x,y)(物體表面的反射性質)所決定,其數(shù)學表達為:
I(x,y)=L(x,y)R(x,y)
(1)
圖像增強技術的目的在于獲取圖像中的重要部分,抑制非重要的部分,從而改善圖像的視覺效果,達到目標需求[7]。目前圖像增強主要包括空間域增強和頻率域增強。例如,直方圖均衡化、Gamma校正、線性拉伸、小波變換等,對于不同的圖像,使用不同的圖像增強算法在取得一定效果的同時,也會出現(xiàn)各種問題[8 - 10]。比如,拉普拉斯算子可以增強圖像灰度發(fā)生突變的部分,弱化灰度變化緩慢的部分,從而提取圖像的高頻信息,使輪廓更加清晰。但是,拉普拉斯算子在處理過程中也會增加圖像的噪聲,因此經(jīng)常需要將拉普拉斯圖像疊加到原始圖像,以達到最終的銳化效果[11,12]。各向異性擴散濾波在計算機視覺和圖像處理中有著廣泛的應用。通過把圖像當作一個熱場來模擬傳熱過程,把每個像素都看作一個熱流,用當前像素和周圍像素進行擴散[13],但迭代次數(shù)過多或者過少都會影響最終的結果。單尺度Retinex算法在圖像處理中可以保持原始圖像的亮度,但不能同時提高圖像的對比度。經(jīng)過增強后的圖像會產(chǎn)生光暈現(xiàn)象,輸出色彩失真[14]。多尺度Retinex算法可以兼顧圖像的局部和全局的動態(tài)范圍壓縮,實現(xiàn)圖像色彩增強,保持圖像的本質特性,但與此同時會出現(xiàn)圖像邊緣銳化不足,紋理不清晰,高頻區(qū)域突出不明顯等問題[15 - 17]。
本文通過分析Retinex算法的特點,結合L0范數(shù)圖像處理算子,提出一種新穎的圖像增強算法RIEALN(Retinex Image Enhancement Algorithm based onL0norm),在提取圖像邊緣信息的同時減少圖像噪聲,實現(xiàn)圖像增強。
Retinex理論旨在從人眼觀察到的圖像I(x,y)中求得從物體表面的反射性質R(x,y),從而將物體的本質還原出來[18]。采用對數(shù)運算,如式(1)所示:
LogR(x,y)=LogI(x,y)-LogL(x,y)
(2)
在文獻[14]中,L(x,y)由原始圖像I(x,y)與高斯函數(shù)卷積而得,目的是為了獲得圖像的低頻成分。L(x,y)的不同計算方法就成為了Retinex相關算法研究的重點。直接應用高斯函數(shù)卷積方法,就是單尺度Retinex SSR(Single Scale Retinex)算法,由式(2)可得:
RSSR(x,y)=logI(x,y)-log[F(x,y)*I(x,y)]
F(x,y)=λe-(x2+y2)/σ2
F(x,y)dxdy=1
(3)
其中,RSSR(x,y)為輸出圖像;I(x,y)為人眼所觀察到的圖像;F(x,y)為高斯函數(shù)(中心-環(huán)繞函數(shù));*為卷積;λ由歸一化常量;常量σ表示高斯環(huán)繞尺度。采用高斯函數(shù)估算入射光照,獲取原始圖像的低頻信息,從原始圖像中減去低頻信息,得到的就是圖像的高頻信息,可以很好地抑制圖像的噪聲[19],但同時會導致圖像色彩失真,對高頻區(qū)域強化不明顯。
多尺度Retinex算法MSR(Multi Scale Retinex)由不同尺度的SSR算法結果進行加權平均而得,其公式為:
(4)
其中,RMSR(x,y)是MSR算法下光照估計后的輸出圖像;I(x,y)是原始圖像;N是高斯中心環(huán)繞函數(shù)的個數(shù),當N為1時,MSR則會退化為SSR,一般來說,為了保證同時兼有SSR算法具有高、中、低3個尺度的優(yōu)點,所以N取3;wn表示權重,一般為1/N,n表示尺度(即wn=1/3)。MSR容易導致邊緣銳化不足,局部的色彩會出現(xiàn)失真的現(xiàn)象。
多尺度Retinex色彩恢復算法MSRCR(MSR Color Recovery)是在多尺度Retinex算法中考慮到不同顏色通道的影響,加入色彩恢復因子Ci(x,y)得到的,計算公式為:
RMSRCRi(x,y)=Ci(x,y)RMSRi(x,y)
(5)
其中:
(6)
(7)
其中,Ii(x,y)表示圖像第i個色彩通道的像素值,j∈{R,G,B}表示j屬于RGB顏色通道。
本文分別對傳統(tǒng)的Retinex算法和基于雙邊濾波的Retinex算法進行了分析,提出了基于L0范數(shù)的Retinex圖像增強算法。
傳統(tǒng)的Retinex算法采用高斯濾波函數(shù)估計圖像的光照信息。高斯函數(shù)是一種中心-環(huán)繞圖像濾波函數(shù),高斯函數(shù)采用低通濾波,增強后的圖像可獲得圖像的高頻分量,雖然可以實現(xiàn)圖像增強,但也會導致圖像邊緣模糊,整體亮度過高等問題[20]。
雙邊濾波Retinex算法實際上是一種各向異性的圖像處理算法,它同時考慮了圖像的空間鄰近性和像素值的相似性,然后折衷處理,它的加權系數(shù)取決于空間核和距離核,可以很好地實現(xiàn)圖像平滑與輪廓保持[21,22]。基于雙邊濾波的多尺度Retinex算法,從不同方向的尺度計算圖像像素值,即將傳統(tǒng)的高斯函數(shù)F(x,y)算子替換成雙邊濾波算子G(i,j)[21],如式(8)所示:
RSSR(x,y)=logI(x,y)-log[G(i,j)*I(x,y)]
(8)
該算法可以很好地兼顧圖像平滑與輪廓保持,但同時也容易造成圖像細節(jié)丟失[21]。
Xu等人[23]于2011年提出了基于L0的梯度最小化模型,此后其廣泛應用在圖像處理領域中。L0范數(shù)是基于稀疏的圖像平滑算子,通過計算全局小幅度的方法實現(xiàn)L0平滑,增加過渡的陡峭度,消除低振幅結構來強化主要邊緣[24,25]。Retinex算法存在邊緣模糊與紋理不清晰等問題,與L0范數(shù)的圖像平滑算子結合實現(xiàn)圖像增強將是本文研究的重點。
光照圖像估計是Retinex圖像增強算法的核心步驟[26],也是本文重點改進的地方。光照圖像估計方法的選擇會直接影響圖像的增強效果。本文采用基于L0范數(shù)的圖像平滑算子來估計光照圖像。
傳統(tǒng)的Retinex算法采用高斯濾波在基于光照一致性的基礎上估計圖像光照,而在實際應用中,圖像的光照強度并不是一致的,因此存在增強后的圖像容易產(chǎn)生邊緣模糊等問題。L0范數(shù)圖像平滑算子主要通過控制產(chǎn)生非零梯度的數(shù)目,計算梯度的稀疏性以增強邊緣,使輪廓可以更好地保留下來,同時以圖像全局的方式平滑非重要的細節(jié),實現(xiàn)圖像平滑[27]。
L0范數(shù)是指在向量中不等于零的元素的數(shù)目。圖像梯度L0范數(shù)可以表示為:
c(f):=#{p||fp-fp+1|≠0}
(9)
其中,p和p+1是相鄰的元素,f表示輸出信號,fp表示元素p的信號值,|fp-fp+1|為圖像梯度,#{}表示計數(shù),輸出滿足|fp-fp+1|≠0的個數(shù),即c(f)。本質上c(f)是圖像中非零梯度個數(shù)的函數(shù),與圖像的梯度的大小無關,只是一個約束條件,并不是目標函數(shù)。要實現(xiàn)圖像梯度的最小化,需要同時考慮圖像的一維信號和二維信號[28]。
對于一維信號,輸入信號為g,輸出信號為f,目標函數(shù)為:
(10)
式(10)可以很好地提取信號的顯著的結構信息。目標函數(shù)是為了使輸入信號和目標函數(shù)盡可能地接近,k′為非零梯度的個數(shù)約束,對于一幅圖,k′的個數(shù)可能會取上千上萬個。為了控制k′的數(shù)量,將式(10)轉化為:
(11)
其中,λ′為權重,也是一個平滑參數(shù),控制兩者之間的比重,當權重的值越大時,就說明圖像越平滑,而且圖像中的c(f)(非零梯度個數(shù))與1/λ′呈現(xiàn)出單調遞增的關系。
梯度的度量表示為:
C(S)=#{p||?xSp|+|?ySp|≠0}
(12)
它計算了p的幅值|?xSp|+|?ySp|不為零的個數(shù)。
根據(jù)這個定義,S便可通過式(13)求解得到:
(13)
與一維信號相比,式(13)也能增強圖像顯著的結構信息,它的優(yōu)勢是無論k′怎么改變,圖像的邊緣都不會模糊。
基于L0范數(shù)的Retinex圖像增強算法實質上是以L0范數(shù)圖像平滑算子提取圖像的輪廓,并通過與原始圖像融合實現(xiàn)圖像增強。全局L0梯度最小化方法限制非零梯度的數(shù)量,以提取圖像的邊緣信息。
基于L0范數(shù)的Retinex圖像增強算法實現(xiàn)流程可以概括為:讀取原始圖像I(x,y),對彩色圖像中的rgb三通道分別進行L0范數(shù)圖像平滑算子處理,權重(λ)對應高斯濾波函數(shù)中的高斯環(huán)繞尺度(σ),通過增加不同的L0梯度最小化因子,在迭代的過程中確保不同尺度輪廓成分的均勻增強,實驗中主要通過3個不同的通道來確保不同的尺度,分別做高、中、低尺度計算,值分別為0.01,0.005,0.001(均為經(jīng)驗值)[14]。提取出圖像的輪廓,并與原始圖像進行融合,以突出重要細節(jié),抑制不重要細節(jié),實現(xiàn)原始圖像的增強。
圖1為基于L0范數(shù)的圖像輪廓提取效果。
Figure 1 Image contour extraction based onL0-norm圖1 基于L0范數(shù)的圖像輪廓提取
結合Retinex算法,通過3個不同的通道來確保不同的尺度,如圖2所示。
Figure 2 Image contours extracted at different scales圖2 不同尺度提取的圖像輪廓
本文算法是基于L0范數(shù)的Retinex圖像增強算法,致力于克服傳統(tǒng)算法的缺陷,以便更好地實現(xiàn)圖像增強。RIEALN算法流程如算法1所示。
算法1RIEALN
輸入:原始圖像I(x,y),
σ={0.01,0.005,0.001},//尺度
S1=2,//低值裁剪像素的百分比
S2=2,//高值裁剪像素的百分比
p=0.2。//圖像融合中的經(jīng)驗值
輸出:增強圖像。
步驟1提取圖像信息(尺寸:M′*N′,通道數(shù):C),初始化參數(shù)(a,i=1)。
步驟2估計光照圖像,每個通道進行循環(huán):
初始化參數(shù)σ_list=[],L=length(σ_list),j=1;
使用L0范數(shù)梯度算子計算光照圖像Lij;
使用SSR算法(式3)獲得RSSR,輸出圖像平滑結果Ri。
步驟3使用MSR(式(4))提取圖像增強成分。
步驟4圖像融合:參數(shù)P*MSR+I。
該算法對應的流程圖如圖3所示。
Figure 3 Flow chart of RIEALN圖3 RIEALN的流程圖
本文采用2組實驗作對比進行主觀評價。第1組分別對傳統(tǒng)的Retinex算法(高斯濾波)、基于雙邊濾波的Retinex算法以及本文算法進行對比,圖4為第1組不同算法的圖像增強對比圖。圖5為圖4所對應的直方圖。
通過以上對比分析可知,傳統(tǒng)的Retinex算法(高斯濾波)在圖像增強中會導致圖像亮度過高、邊緣模糊、紋理不清楚等問題;基于雙邊濾波的Retinex算法,雖然有不錯的效果,但是圖像亮度集中的區(qū)間太小,導致對比度低,同時也增強了整個圖像的噪聲,沒有達到最佳效果。
Figure 4 Image enhancement comparison among of the first group of different algorithms圖4 第1組不同算法圖像增強對比圖
Figure 5 Corresponding histograms of images in figure 4圖5 圖4圖像對應的直方圖
本文基于L0范數(shù)的Retinex圖像增強算法在圖像處理中通過提取圖像的高頻信息,并與原始圖像融合。通過直方圖對比分析可以看出,該算法的直方圖分布均勻,高頻突出,同時增強后圖像的直方圖更接近于原始圖像,很好地突出了主要細節(jié),抑制了非重要細節(jié)。
為了進一步說明本文算法的優(yōu)點,對于圖4中的4組實驗,對各種算法增強后的局部區(qū)域進行了比較,如圖6所示。從圖6中可明顯看出,本文算法的圖像增強效果最好,在實現(xiàn)圖像增強的同時更好地體現(xiàn)了圖像的輪廓信息,并且與原始圖像整體特性更加一致,很大程度上提高了增強后圖像的可用性。
Figure 6 Detail comparison圖6 細節(jié)對比圖
Figure 7 Image enhancement comparison among the second group of different algorithms圖7 第2組不同算法圖像增強對比圖
第2組實驗分別用基于高斯濾波、雙邊濾波、L0范數(shù)的Retinex算法提取原始圖像的高頻信息,并與原始圖像進行融合,比較結果如圖7所示,圖8為圖7所對應的直方圖。
Figure 8 Histogram of the corresponding image in Figure 7圖8 圖7對應圖像的直方圖
直觀地比較增強后的圖像很難看出差異,但是通過以上直方圖對比分析可以看出,本文算法增強后的圖像直方圖分布更加均勻,保持了整體亮度值的一致,對比度明顯,可以更好地突出主要細節(jié)。
本文采用圖像對比度、信噪比和信息熵來客觀評價圖像增強后的質量[29]。
圖像的對比度公式為:
(14)
其中,Ii′,j′為圖像像素的灰度值,k為圖像局部塊內像素數(shù),k定義圖像塊的大小(2*k+1)。圖像中所有局部塊對比度的平均值即是圖像的對比度。
圖像的信噪比公式為:
(15)
其中,Gi為目標圖像的最大灰度值,Gb為圖像背景的灰度均值,σ′為圖像背景像素灰度值的標準差。
圖像的信息熵公式為:
(16)
其中,p(g)為灰度級g的概率密度,T為最大的灰度級,i″表示像素的灰度級。
本文分別計算了第1組和第2組不同算法的對比度、信噪比和信息熵,結果如表1和表2所示。
Table 1 Objective evaluation of image qualities obtained by the first group of different algorithms
由表1可以看出,Retinex算法和基于雙邊濾波的Retinex算法有較高的對比度值,但二者都導致了圖像失真。主要原因是利用式(14)計算對比度度量時,圖像塊中存在的噪聲點使得對比度的值很高,而信噪比和信息熵綜合分析效果沒有達到最優(yōu)。本文算法可提高圖像的對比度,同時信噪比和信息熵也取得了較好的結果。
通過表2可知,通過高斯濾波、雙邊濾波與Retinex算法結合提取高頻信息并和原始圖像融合也可提高原始圖像的對比度、信噪比和信息熵。但是,Retinex算法提取輪廓再融合原始圖像算法與雙邊濾波Retinex算法提取輪廓再融合原始圖像算法在疊加原始圖像前已經(jīng)產(chǎn)生很多噪聲,所以對比度值很高,其信噪比和信息熵提升整體而言沒有達到最優(yōu);而本文算法的對比度、信噪比、信息熵綜合分析效果最優(yōu),本文算法在圖像增強后的視覺效果也是最好的。
Table 2 Objective evaluation of image qualitiesobtained by the second group of different algorithms
本文通過研究傳統(tǒng)的Retinex算法在圖像處理中的不足之處,結合L0范數(shù)的圖像平滑算子,提出一種在增強圖像的同時又能很好地保持圖像輪
廓信息的新算法RIEALN,并將傳統(tǒng)的Retinex算法、基于雙邊濾波的Retinex算法與本文算法進行了對比分析,從主觀和客觀兩方面進行了評價。本文所研究的圖像增強算法無論對于Retinex領域還是L0范數(shù)領域而言,都是一個新的突破和創(chuàng)新。實驗結果表明,本文算法可在增強圖像對比度的同時更好地保留圖像的邊緣信息,更接近于原始圖像。