侯天峰, 葉長青, 曾舒婷
(南京大學金陵學院, 信息科學與工程學院, 南京 210000)
攝像機拍攝時,光照是影響視頻質量的重要外在因素。夜間、暗光條件下、存在光源遮擋或強光源時,捕獲的圖像會相應出現亮度不足、光照不均及高光等情況,會使圖像部分區域的細節信息丟失。對于監控視頻,可能會導致人臉及車牌等關鍵信息提取及識別失敗,對于消費設備的影音照片,則無法呈現良好的主觀效果,同時對后續編輯及處理造成較大困難。
以上種種不良光照因素造成的細節丟失影響,可以通過圖像增強算法改善質量。常常采用的算法主要有:同態濾波[1]、灰度變換法[2]、小波變換增強[3]、Retinex算法[4]等等。其中基于Retinex理論的增強方法發展和應用尤為廣泛,其具有細節增強和動態范圍壓縮等優點。從一開始的單尺度Retinex,到后來出現了多尺度算法以及帶顏色恢復的Retinex算法等等。文獻[5]中引入雙邊濾波器來代替傳統高斯環繞濾波,在消除“光暈”方面有了一定的效果且對邊緣處的增強效果也較好,因為雙邊濾波具有邊緣保持特性。文獻[6]引入導向濾波器進行照度分量計算,相較于雙邊濾波器效果更優,不存在梯度反轉,而且時間復雜度和濾波半徑無關。Bo Sun提出一種亮度修正的Retinex算法,將Canny算子和Retinex算法結合起來,首先分析入射分量,接著采用Canny算子檢測圖像邊緣信息[7],可以有效的消除“光暈”。邵振峰等人[8]提出將輸入圖像轉換到HIS空間,再對飽和度及亮度進行處理,同時增強圖像邊緣處細節特征。
目前基于Retinex理論的研究主要集中于于消除算法“光暈”問題、更快速有效的照度計算濾波器、對比度的提升以及邊緣細節的增強,但是忽略了實際應用中對多幀視頻處理的需求以及過處理所造成的亮度閃爍、色彩失真等問題。本文對基于Retinex理論的算法進行研究,考慮日常影視及移動設備拍攝及播放視頻的增強處理要求,在大量實驗基礎上,發現增強多幀時幀間存在亮度閃爍問題,從而引入的閃爍度量指標,提出一種消除閃爍的光照補償算法,在增強視頻的同時,有效消除亮度閃爍。第3、4部分的分析和實驗表明本文算法是切實有效的。
Retinex算法認為原圖像可分解為反射部分和入射部分。入射分量表征環境光照影響,亦稱照射分量,而反射分量決定圖像的內在性質,因此可通過一定的方法估計出圖像的低頻的光照信息,進而提取出圖像的反射分量,即圖像的細節信息,就可還原物體原來景象,從而達到增強圖像的目的。
算法數學模型通常表示為式(1)。
S(x,y)=R(x,y)*L(x,y)
(1)
式(1)中,S是觀察到的原始圖像,R為反射分量,反映物體真實信息,L表示照射分量。
實際計算時需要將(1)式變換到對數域處理,對(1)式兩邊取對數得式(2)。
log(S(x,y))=log(R(x,y))+log(L(x,y))
(2)
從原始圖像直接獲得物體的反射分量較困難,但可以先估計出照射分量,然后利用(2)式計算得到反射分量。不同的文獻和算法對照度圖像估計的處理方式不同,通常都是用低通濾波器對原始圖像進行卷積來估計照度分量圖像,高斯濾波是常用濾波器之一,可以得到較好的增強效果為式(3)。
(3)
式(3)中為c尺度參數,c的大小可以用來調節圖像增強效果。
通過大量實驗觀察,Retinex對連續多幀圖像進行處理時,增強后圖像幀之間存在較明顯亮度閃爍問題,明顯影響播放的主觀視覺效果。究其原因,一方面在于Retinex增強過程其實是一種非線性操作,原本幀間相差無幾的亮度經非線性處理后差異存在被放大的可能;另一方面,從人眼視覺特性的角度來說,低亮度時的差異不易被觀察,而中高亮度時的灰度值差異更易被察覺,以致人眼能夠明顯感覺到閃爍的存在。
兩組手動生成的純色測試圖像,如圖1所示:


都是256級灰色圖,第一組的兩張圖像像素值分別為15和20,第二組為195和200,通過長時間多次主觀觀察的對比,可以發現第二組的差異較第一組更容易被察覺及感知。
造成上述主觀感受差異的原因在于人眼的視覺特性。人眼視力隨著被觀測物體的亮度變化是非常顯著的,一般情況下視力隨亮度的增加而提高。亮度與視力關系曲線,如圖2所示。

圖2 視力與亮度關系曲線
橫軸為亮度(單位尼特),縱軸為蘭道爾環視力。可以看到,直到3000尼特左右,視力都在隨亮度而上升,0.01尼特以下的亮度視力會變得很差,而且從0.1至300尼特的亮度范圍內,視力與亮度的對數成正比,符合費希納定律所述。
這種特性同時反映在不同亮度基準下對差異識別的影響。把兩個不同亮度的圖像放在一起,為了區分它們的不同,其亮度應該有一定的差異,小于這個差異,人眼就很難區分出來,此即韋柏提出的“最小可覺差”。根據韋柏定律,即感覺的差別隨原來刺激量的變化而變化,而且表現為一定的規律性,用公式來表示為式(4)。
(4)
其中I為原刺激量,ΔI為此時的差別閾限,K為常數,又稱為韋柏率。文獻[10]認為:K<0.05,一般取K=0.02。對于圖1的兩組相鄰幀圖像,ΔI分別為:
ΔI1=K*I1=0.02*15=0.3
ΔI2=K*I2=0.02*195=3.9
因此圖1中(b)組中兩幅純色灰度圖人眼感知到的差異會比第一組明顯,而圖像增強算法會提高原圖像中暗區域亮度。由此得出第一個結論:Retinex增強圖像亮度后人眼更容易感受到幀間亮度的差異,即閃爍的存在。
Retinex處理過程中存在log、exp以及數據映射等非線性操作,由此存在放大原始幀之間亮度差異的可能,如圖3所示。
圖3(a)為原視頻截取的相鄰兩幀圖像,為同一場景,對應的增強后結果見圖3(b)。圖3(c)為處理前后第1、2幀間亮度差異對比,藍色曲線表示原始幀間亮度差,紅色曲線表示增強圖像幀間亮度差。從圖3(c)可以看出處理后明顯放大了原始幀間同區域的亮度差異。由此文章得出第二個結



(c) 亮度差異曲線
論:Retinex算法處理過程會使原本微弱的差異變得更加明顯,從而導致閃爍。
為了更好地分析和說明亮度閃爍問題,本文引入閃爍因子概念,用gc來表示,用以定量描述同場景幀間同一區域人眼感知到的亮度差異。根據費希納定律:感覺強度與刺激強度的對數成正比[10],因此本文定義為式(5)。
(5)
其中,Icur為當前幀處理結果,Iref為上一幀處理結果,Ω為亮度比較區域,本文Ω選為整幅圖像區域,N為該區域內像素數量。閃爍因子可以描述對視頻進行光照增強時人眼感受到的相鄰幀閃爍的劇烈程度,以更好地反映觀察者接受到的主觀刺激差異,從而定量衡量增強算法優劣。
觀察者觀察到的視頻閃爍效果是從一幀圖像到下一幀圖像的全局亮度變化,其前后幀亮度關系基本數學模型[9]為式(6)。
In+1(x,y)=fn,n+1(In(x,y),x,y)=
an,n+1(x,y)·In(x,y)+bn,n+1(x,y)
(6)
上式中,In(x,y)是第n幀圖像的亮度信息;an,n+1(x,y)為第n幀與第n+1幀之間亮度變化的乘性因子;bn,n+1(x,y)為第n幀與第n+1幀圖像之間亮度變化的加性因子。
為了簡化起見,文章忽略加性因子只計算乘性因子,同時因為閃爍的大面積覆蓋特性,因此可以假設在一個較小區域內乘性因子保持不變,即在局部區域內皆為常數。由此,式(6)變成為式(7)
In+1(x,y)=an,n+1,Ωk·In(x,y)
(7)
對Ωk內所有像素點都有上式成立,求和可得式(8)。
(8)
解得式(9)。
(9)
為防止分母為0的極端情況,分母加上一個很小的數以作修正為式(10)。
(10)
整幅圖像所有區域的an,n+1,Ωk可構成一個矩陣An,n+1。視頻閃爍雖然在時域上造成各幀亮度急劇變化的效果,但對單幅圖像來說,即使被閃爍影響產生失真,其亮度在空間域上還是連續變化的,所以前后幀變化參數矩陣An,n+1也應該在空間域上呈現平緩變化,因此An,n+1應具有空間平滑特性,故需對根據式(10)求出的變化參數進行低通濾波,本文選擇尺寸為3×3的高斯濾波器。
基于以上研究和描述,提出一種改進的Retinex增強算法,修正算法處理過程為式(11)。
(11)
a、根據式(2)逐幀計算反射分量;
b、根據(10)式計算前一幀與當前幀之間的亮度變化參數;
c、對亮度變化參數矩陣進行平滑濾波;
d、依據下式修正當前幀反射分量
需要提醒的是,以上算法適合固定場景的增強處理,如果幀間存在場景變化,需要先對原圖像進行幀間運動估計,矯正像素坐標后再計算亮度變化參數,可選取視頻編碼中廣泛應用的塊匹配方法。
文中所有實驗圖像均來自影視片段,轉換到YUV格式進行處理,尺寸為640×336。利用Matlab進行算法編程和運算。所有算法均調整至最佳效果。計算亮度差異參數an,n+1,Ωk時,選擇的區域尺寸為4×4。
為了充分驗證所提算法有效性,文章進行了大量實驗。下面選取2組進行對比評價。第一組圖像為靜態電影片段,場景保持不變,共計31幀,如圖4所示。
圖4(a)為視頻序列中的第一幀,圖4(b)為相應的增強圖像,圖4(c)為31幀圖像處理前后的30組閃爍因子的對比,藍色為原始圖像幀間的閃爍因子曲線,綠色為傳統Retinex算法處理的閃爍因子曲線,紅色為本文改進算法的閃爍因子曲線。可以看出原始幀由于亮度很低,根據人眼視覺特性,感受到的亮度差異很小,播放時幾乎觀察不到閃爍的存在,但經過傳統Retinex算法處理后,基于亮度差異感知的視覺特性和非線性處理的差異放大特性,導致閃爍變得非常明顯,而由本文提出的改進措施有效抑制了閃爍,gc曲線幅度明顯降低。
第二組圖像為動態電影片段,共計8幀,場景存在小范圍偏移,此時需要在計算亮度差異參數之前對原始圖像做運動補償,本文選取塊匹配方法,如圖5所示。

(a)原始圖像(b)增強圖像


(c) 閃爍因子曲線

(c) 閃爍因子曲線
圖5 第二組實驗
圖5(a)為序列中的第一幀,圖5(b)為相應的增強圖像,圖4(c)為閃爍因子gc對比圖,藍色為原始幀間的閃爍因子曲線,綠色為Retinex增強結果的閃爍因子曲線,紅色為修正算法的閃爍因子曲線,同樣抑制效果明顯。
文章著眼于視頻光照增強處理的實際觀看需求,在大量實驗中發現了Retinex算法存在的閃爍問題,基于人眼視覺特性及Retinex非線性特性進行分析和解釋,提出閃爍因子,將人眼觀察到的亮度閃爍程度數值化以便捷度量算法優劣;同時改進傳統算法,修正了處理過程。理論分析及實驗表明本文所提量化指標及改進算法是客觀有效的。下一步工作將致力于研究在極低光照條件下,如果提高圖像細節的增強及恢復能力。
[1] 焦竹青. 基于同態濾波的彩色圖像光照補償方法[J]. 光電子激光. 2010,21(4): 602-605.
[2] 梁琳,何衛千,雷蕾等. 光照不均圖像增強方法綜述[J]. 計算機應用研究. 2010,27(5): 1625-1628.
[3] Zafar I M, Abdul G, Masood S A. Satellite Image Resolution Enhancement Using Dual-Tree Complex Wavelet Transform and Nonlocal Means[J]. IEEE Geoscience and Remote Sensing Letters, 2013,10(3):451-455.
[4] 蔣永馨,王孝通,徐曉剛,等. 一種基于光照補償的圖像增強算法[J]. 電子學報. 2009,37(4A):151-155.
[5] Michael Elad. Retinex by Two Bilateral Filters[J]. The Computer Science Department,Scale-Space. 2005:217-229.
[6] Kaiming He, Jian Sun, Xiaoou Tang. Guided Image Filtering[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2013.
[7] Bo Sun,Weifang Chen,Hongyu Li,et al. Modified Luminance Based Adaptive MSR[C]∥Fourth International Conference on Image and Graphics. 2007:116-120.
[8] 邵振峰, 白云, 周熙然. 改進多尺度Retinex理論的低照度遙感影像增強方法[J]. 武漢大學學報. 2015,40(1):32-39.
[9] YM Kim, KT Park, DS Lee. Video dehazing without flicker artifacts using adaptive temporal average[C]∥The 18th IEEE International Symposium on Consumer Electronics,2014:1-2.
[10] 尹芹.提高工業數字射線圖像對比度及信噪比的工藝措施[J]. 無損檢測, 2011, 33(1): 58-61.