湯子麟,劉 翔,張 星
1.上海工程技術大學 電子電氣工程學院,上海201620
2.上海工程技術大學 管理學院,上海201620
不均勻光照經常出現在真實場景中,這給計算機視覺的應用帶來許多限制。如提取特征點過少,導致圖像匹配率下降。圖像增強技術一直是研究熱點[1],借助這一技術可以凸顯低亮度區域的細節信息并提升圖像的對比度。因此,圖像增強在預處理過程中一直占據著重要地位。圖像增強的方法大致分為兩種:基于空間域的方法和基于頻率域的方法[2]。
線性對比度拉伸是一種簡便的、基于像素空間域的圖像增強算法,旨在將原圖的灰度值范圍擴充至[0,255]之間,對比度較原圖有所增強,但該方法可能會導致圖像亮的區域灰度值增大,亮度高的區域亮度增加,陰影區域更暗[3]。直方圖均衡化[4]因其簡單性和實用性,作為一種對比度增強方法被廣泛使用。其依據反應灰度值分布情況的累計密度函數,在直方圖界面平均灰度值的堆積密度,從而擴展了灰度值的動態范圍。缺點在于使用圖像灰度值的中間值取代圖像的平均值,這會導致偽影與強度飽和效應,影響圖像質量[5]。自適應直方圖算法[6]將圖像分為多個小塊并分別進行直方圖均衡,這種方法在局部對比度上較原方法有所改善,但并未從根本上解決直方圖均衡會放大噪聲的缺點。
基于頻率域的圖像增強算法將圖像看作高頻、低頻復合信號[7],其中紋理信息變化快,頻率大,光照、背景信息變化慢,頻率小。借助濾波器可以抑制圖像中的某些特征,凸顯圖像中的某些特征。如傅里葉變換[8],但該類算法往往自適應性較弱;同態濾波可濾除光照成分,但受參數調節的影響需要大量實驗,通用性較弱[9]。
光照不均勻場景中,高亮區域和陰影區域分布不規律。因此,單一算法難以完成圖像增強的目標。伽馬校正是一種可以根據參數設置的不同增大或縮小圖像亮度的算法,但參數需要輸入時設定。設計了一種自適應伽馬函數,使用中心環繞法提取場景的光照分量,將其與區域亮度值中間值的比值作為伽馬參數。同時疊加自適應頂帽變換的結果來增強整體的對比度。本文算法的優勢在于可以根據區域的明暗程度進行相應矯正,在此過程中無需手動調節參數。實驗證明,本文算法矯正后圖像質量更好。
光與物體表面的相互作用機制非常復雜,可以簡化為光反射模型,如圖1所示。人眼中最終看到的圖像可以數字化為一個二維函數F(x,y),(x,y)是圖像的像素坐標。由Retinex[10]理論得,亮度值F(x,y)是照射到場景的光照分量G(x,y)和物體表面反射分量S(x,y)共同作用的結果[11]。

圖1 光照-反射模型Fig.1 Lightness-reflection model

光照分量屬于圖片的低頻部分,變化緩慢,對卷積處理不敏感。反射分量屬于圖片的高頻部分,包含場景的邊緣、紋理等細節信息,對卷積處理敏感,卷積處理后模糊、鈍化。光照不均勻的圖片,相鄰區域之間亮度差距大,L()x,y形成的曲面在空間域波動大。光照不均勻圖像的矯正在于保留圖像細節的同時,盡可能地使曲面平滑。
目前提取光照分量的方法較多,比如基于雙邊濾波的方法[12-13]、基于Top-Hat的方法[14]以及基于Retinex模型的計算算法[15-16]等。雙邊濾波對邊緣等高頻信息保存較好,但針對高頻噪聲濾除效果不佳;Top-Hat變換是一種形態學處理方法,可以改善可視性,但會對圖像的自然特征有所影響。基于Retinex模型的計算方法有中心環繞法、基于迭代的Retinex方法等,如McCann99算法[17]是一種典型的基于迭代的Retinex方法,該算法計算復雜,計算時間隨著輸入圖像分辨率的提高而增長。鑒于Retinex的中心環繞算法計算簡單,可以在圖像動態范圍壓縮、邊緣增強和顏色恒強方面達到平衡。本文使用中心環繞法近似表達光照分量L(x,y),即每個中心像素的值可以通過周圍像素的不同權重來估計光照分量。使用高斯低通濾波器卷積是獲得估計量的常用方法[18]。Meanshift[19]也常用于平滑圖像,但它將彩色圖像轉換為二進制圖像,并不適合建議算法的后續步驟。與之相比,高斯卷積可以盡可能保留場景的細節。其中表示光照分量的估計值,G( )

X,Y表示高斯函數,“*”表示卷積運算符。由中心環繞法可知,卷積核尺寸越大,色調保持能力越強,提取出的光照值的全局特性越顯著[20]。本文算法將圖片的短邊選為卷積核尺寸,如果圖片短邊長是偶數,則卷積核尺寸自減1,保證卷積核尺寸是奇數。
使用高斯均權卷積是一種較為常見的基于Retinex理論的光照提取方式,如劉志成等在相應算法[20]中σ分別取15、80、280,卷積后取其平均值作為提取的光照分量。根據高斯卷積的特性,使用較小σ的高斯卷積核對圖像進行連續卷積,可以取得大σ高斯核的卷積的近似結果[21]。本文算法采用連續卷積的方法,σ參數分別設定為3、6、10,提取的光照分量如圖2所示。本文算法提取的光照分量可以反映出場景中的光照分布情況,符合算法對提取的光照分量要求,與傳統算法相比,具有計算量小的優點。

圖2 連續高斯卷積提取的光照分量Fig.2 Illumination component extracted by continuous Gaussian convolution
算法意圖在HSV空間中完成對亮度的矯正。彩色圖像的RGB模型中三通道互相有影響,光照并不與單一的顏色通道有著明確的關聯。相比而言,HSV模型中三種通道相對獨立,且場景中的光照對圖片亮度通道影響較大,針對亮度做校正快捷方便、計算簡單。
整個算法的流程(如圖3)為:

圖3 流程圖Fig.3 Flowchart program
(1)提取場景光照分量。將圖像轉換到HSV空間,借助小尺度高斯卷積核,對亮度連續卷積得到場景的光照分量分布情況。相比傳統的多尺度卷積中心環繞法,該方法計算更為簡便。
(2)結合場景中的光照分量,算法針對各區域明暗情況設置參數,根據參數進行亮度矯正,對高亮度進行抑制,對低亮度進行增強。亮度完成矯正后,將其轉換回RGB空間。
(3)使用自適應算法Top-Hat對輸入圖像變換。將其與第(2)步的結果相疊加,進一步增強圖像的全局對比度。
算法分別對Top-Hat變換和伽馬矯正做出了改進,并結合了兩種算法的優點:使用帽頂變換可以調整圖像的整體明暗分布,凸顯了暗區域內隱藏的圖像信息。伽馬矯正是一種針對單一像素的矯正方法,抑制光照亮的部分的像素值,并拉伸光照暗區域的像素值,是一種對場景物體邊緣、紋理等細節信息損失較小的圖像增強方法。兩種方法相結合,兼顧了圖像的全局對比度和場景的細節信息。對伽馬校正的改進引入了Retinex光照反射理論,對場景中的光照分布情況做出了估計,結合Top-Hat變換中統計出的暗區域大小,可以定量地評估單個像素相比場景光照的明暗差距。這便于伽馬矯正亮度參數的確定,提升了矯正過程的效率。
Top-Hat變換可去除比設定結構單元細小的細節,同時保持圖像整體的灰度級和較大的明亮區域不變,產生對整個圖像背景的合理估計,起到平滑背景的效果,以此來降低原圖中噪聲造成的影響[22]。其中g表示需要處理的圖像,b為結構單元,對于圖像而言,開運算如下所示:

Top-Hat變換:

結構單元的大小需要預設。輸入場景不同,設定的參數也不同。借助陰影區域大小統計,可以找出Top-Hat變換最適宜的參數。關于該過程,本文以偽代碼的形式描述如下:

Output://按以下原則選出最適宜的參數并輸出:
1.選擇Sum[]n最大值對應的n作為結構單元的邊長;
2.如果Sum[]n出現的最大值相同,則選擇較小的n輸出。
輸入圖像減去圖像的像素平均值,如果有連續的非正值,則記錄起連續位數,設為低亮度區域的邊長。重復這一步驟,直到遍歷整幅圖像,得到記錄圖像中所有低亮度區域大小的數組,從中選擇數組中的眾數作為得到的參數輸出,說明該圖像中低亮度區域尺寸大小恒定;如果數組中有多個眾數,選擇陰影區域最小的邊長輸出。
經過自適應Top-Hat變換后得到的圖片如圖4所示。原圖中高光的區域經過變換后,高亮區域變暗,像素值近似于0。為算法后續處理步驟提供了方便,與伽馬矯正圖像相加并不會讓原圖高亮區域亮度增強。避免了亮度飽和效應的產生。這是多尺度Retinex圖像增強算法的缺點。

圖4 原圖與頂帽變換后圖片對比Fig.4 Comparison of original image and image after Top-Hat transformed
為了進一步增強場景的細節信息,需要一種局部增強算法。伽馬校正是一種非線性圖像增強算法,與頂帽變換算法、直方圖均衡化等常規圖像增強算法不同之處在于,它是針對單個像素調整的一種算法。因此,可以在不破壞圖像的細節信息的前提下,改善圖像像素的動態曲線。經典伽馬算法參數設定固定,只能實現增強或抑制一種功能。光照不均勻圖像的校正需要對高光照部分抑制的同時,增強低亮度區域。參數設定固定的伽馬算法只能實現增強或抑制一種功能。
圖5 是使用伽馬矯正算法對低照度圖像的矯正實驗,第一列是矯正前的圖片,選自Mikolajczyk圖片庫中的leuven組,是同一場景的不同亮度條件下的圖片。對6張不同光照背景的圖片使用伽馬矯正,參數設置γ=0.5,其他參數設置相同。由圖5可以看出,矯正后的圖片除第一張以外,都不是很好。

圖5 固定參數伽馬矯正結果Fig.5 Images after Gamma correction
本文結合Retinex理論,提出了一種自適應二維伽馬矯正方法:

其中I(x,y)是輸入圖像,I′(x,y)是矯正后圖像,G(x,y)是高斯卷積函數,與圖像函數卷積得到場景的光照分量,z(x,y)是以(x,y)為中心的一定范圍內亮度值的中位數(該區域范圍大小的確定過程如2.1節算法),反映了區域的亮度情況;如果該區域光照強,屬于高亮度區域,那么光照分量大于該區域亮度值的中位數。此時參數γ>1,伽馬函數曲線起抑制亮度的作用;當圖像亮度較低,說明光照分量低于該區域亮度值。此時參數γ<1,伽馬矯正發揮了增強亮度的功能。
實驗采用的平臺是個人電腦的Matlab2014b,搭配i7-6900處理器@2.59 GHz、2.69 GHz。作為對比參照的算法有CAHLE[23](對比度受限的自適應直方圖均衡化算法),MSR[24](多尺度Retinex圖像增強算法),基于二維伽馬函數的光照不均勻圖像自適應校正算法[20](以下簡稱G2D),RetinexNet[25]和GT[26]。
為了驗證算法在不同程度的光照不均勻實驗的性能:采用的圖片采取三種場景,如圖6,場景一(第一行)部分區域處于背光條件下拍攝,圖片中既有高光區域,也有陰影區域。場景二(第二行)大約1/2的面積處于陰影下,場景三(第三行)整體亮度較低,絕大部分區域處于陰影中,三種場景陰影區域逐漸擴大。場景取材于風景圖片,包含的紋理信息較多,更能檢驗算法對圖像細節信息的保留能力;同時,亮度變化受自然光影響,實驗結果具有戶外使用價值。

圖6 算法增強后的結果Fig.6 Results of algorithm enhancement
圖片矯正結果如圖6所示,MSR校正后的圖片失真,在場景一圖片的背光巖石處,出現了馬賽克,光暈現象,使得該算法實際應用效果大打折扣。場景三的山頂部分顏色失真。CAHLE和G2D算法亮度較原圖有所提升,但改善效果不明顯。RetinexNet矯正后的圖像顏色艷麗,但圖像清晰度不高,場景模糊,場景一的背光處出現了馬賽克。GT旨在中和全局場景的光照分布情況,對強光照區域抑制效果較好,但矯正后整個場景較暗。本文提出的算法與原圖相比,亮度、對比度有所提升,與其他算法相比,保留了較多的原圖圖像信息。
為了進一步驗證本文算法的性能,統計各圖像對應灰度圖的標準差、信息熵和平均梯度作為實驗指標。各算法校正后的圖片質量匯總結果如表1所示。標準差可以客觀地表現圖像對比度,標準差越大,則圖像對比度越強;信息熵用來衡量圖像所包含的信息量,信息熵越大,圖像攜帶的信息就越多。平均梯度可反映圖像對微小細節反差表達的能力,可用來評價圖像的模糊程度。在圖像中,某一方向的灰度值變化幅度越大,它的梯度也就大。因此,可以用平均梯度值來衡量圖像的清晰度,同時還可以反映出圖像中微小細節反差和紋理變換特征。

表1 圖像增強算法的圖像質量評價指標Table 1 Image quality evaluation index of image enhancement algorithm
圖7 是對矯正后場景細節的放大,前兩行屬于場景一,第3,4行屬于場景二,后兩行取自場景三。從場景一可以看出,MSR算法在對于背光處巖石的處理中,圖片的右上角和第2張圖片的中部出現了光暈現象,RetinexNet算法處理后,在陰影區域出現了色塊聚集成的馬賽克。本文算法與其他算法相比,亮度較高,可以清晰地看出溪流邊石頭的紋理。

圖7 圖像增強算法的圖像細節保留能力比較Fig.7 Comparison of image detail retention ability of image enhancement algorithms
場景二選擇了原圖中的垂釣者和溪流圖片。和垂釣者原圖相比,各算法亮度增強效果明顯。但RetinexNet矯正后圖片飽和度不高。從溪流的圖片可以看出,相比本文算法,CAHLE和G2D對陰影區域的矯正稍顯不足,位于圖片中央的區域相比其他區域色差明顯。
從場景三可以看出,MSR算法矯正后的巖石圖片顏色呈紫色,和實際情況不符。RetinexNet算法矯正后圖像紋理過于模糊。GT和G2D方法矯正后的圖片對比度不如其他算法,但二者相比原圖,可見性有所提高,可以分辨出垂釣者和釣竿。
高斯卷積核參數σ是本文算法中唯一的設定參數。σ的取值涉及光照分量的提取,選擇Mikolajczyk標準數據集[18]中的亮度變化場景leuven,在算法其他設定不變的情形下,對σ在1~10內依次取值。使用標準差、平均梯度、圖像熵作為矯正后圖像質量評價指標。
由圖8中σ對參數的影響實驗中,σ取值為1時矯正圖像標準差最少,在參數測試的范圍內,標準差整體隨著σ取值的增加而擴大,σ大體與標準差呈正比例函數關系,但是σ=2時,標準差出現了一個極值點。標準差反映了圖像的對比度,σ取值越大,卷積核對圖像的模糊程度加強,矯正后圖像的對比度也越明顯。說明算法對像素的矯正幅度很大,強光照區域的亮度值抑制明顯,陰影區域亮度值增加幅度較大。但是結合圖像熵的趨勢來看,過大的σ值并不一定會增強矯正圖像的質量。圖像熵隨著參數增加而單調下降,在參數取值為2時,出現極小值點。圖像熵可以一定程度地體現算法對圖像的細節保留能力,高σ值的卷積核會使得圖像過度平滑,損失細節信息。σ=1時,圖像的信息熵最大,清晰度最高,但此時圖像對比度較差。參數取1時,矯正圖像的平均梯度最低,除此之外,平均梯度隨參數增減變化并沒有明顯的規律。梯度值在場景的邊緣、紋理部位的變化明顯,人眼對該指標較為敏感,圖案的形狀、紋理等信息對觀感的影響較大。本實驗中平均梯度的值域范圍小,上下限比較接近,由此判定,平均梯度對參數取值不敏感。

圖8 高斯核參數σ對算法敏感性實驗客觀指標Fig.8 Sensitivity experiment of Gaussian kernel parameter σ to proposal algorithm
綜合圖8、9來看,圖像主觀視覺幾乎沒有改變。σ與標準差呈正相關趨勢,與圖像熵的變化呈負相關趨勢。但在實驗選取的參數范圍內,整體變化幅度不大:標準差變化幅度小于6,圖像熵的變化幅度在6.64~6.7之間,說明算法穩定性較好。σ的取值和圖像平均梯度變化并沒有明顯規律,平均梯度取值穩定在0.026~0.027之間。曲線增減平緩,算法的魯棒性較好,除個別值外,實驗指標沒有劇烈變化。實驗結果為本文算法在解決實際問題時,對參數的選取提供了客觀依據。
在計算機視覺的實際場景應用中,光照不均勻是一種常見的環境干擾因素[19]。光照不均勻圖像的亮度分布復雜,高亮度區域和低亮度區域同時存在,這給圖像內容的理解或是圖像有價值信息的提取增加了難度。本文算法綜合了伽馬矯正和Top-Hat變換的優點,保證了紋理信息不變的前提下,提高了圖像對比度。同時,對伽馬矯正和Top-Hat變換進行了自適應性改進:統計在圖像中陰影區域大小,便于Top-Hat變換的參數設置。使用中心環繞法提取場景的光照分布,結合區域內像素值中位數,對各區域的明暗情況做出了定量分析,便于伽馬矯正對場景中各區域進行相應程度的矯正。實驗結果表明:相比其他算法,本文算法對光照不均勻圖像矯正效果顯著。參數敏感性實驗表明,系統具有一定的穩定性。矯正后的圖像質量評價指標表明,本算法能夠穩定提升光照不均勻圖像的對比度、清晰度和細節信息。