李衛中
(湖北工程學院物理與電子信息工程學院,湖北孝感432000)
現實場景因包含豐富的光影信息而呈現出了絢麗多彩的大千世界[1-2]。然而,當人們用數碼相機記錄這些景象時,往往因為數碼相機的動態范圍受限而導致自然場景信息的大量丟失[3-4]。例如:縮短曝光時間(欠曝光)可以很好地捕捉場景明亮區域的信息,但場景暗區的信息丟失嚴重;增加曝光時間(過曝光)可以很好地捕捉場景暗區的信息,但場景明亮區域由于過度曝光導致信息嚴重丟失。
為了盡可能多地捕獲現實場景的信息,可以利用計算機圖像處理的辦法將同一場景多張不同曝光量的圖像合成一張包括場景所有信息的圖像。目前,主要有兩種不同的方法實現上述過程。
第一種方法通常包括高動態范圍圖像合成和色調映射兩個步驟[5]:首先通過模擬相機響應曲線和輻射圖將多曝光圖像序列合成一張高動態范圍圖像;然后,利用色調映射進行動態范圍壓縮使合成的場景圖像能夠在普通顯示器上正常顯示。該方法由于需要高動態范圍圖像合成和色調映射兩個步驟,因此效率較低,實時性相對較差。
第二種方法則利用圖像融合的方式直接將同一現實場景不同曝光量的圖像序列融合成一張包括自然場景所有光影信息的圖像,該方法被稱為多曝光圖像融合(以下簡稱曝光融合)。目前,曝光融合已經廣泛用于便攜式多媒體設備、數碼相機以及機器視覺領域[6-7]。
為了獲得高質量的曝光融合圖像,本文提出了基于場景局部特征的曝光融合算法。首先,利用滑動窗將曝光序列分解為具有一定重疊區域的規則的圖像塊;其次,利用圖像的局部特征(局部方差、局部可視性、局部顯著性以及局部相似性)計算圖像塊權重值;接著,利用加權融合的方法計算最佳輸出圖像塊;最后,將輸出的圖像塊融合得到最終的輸出圖像。實驗結果表明,無論在靜態場景還是動態場景,本文提出的算法都能獲得令人滿意的結果。
近些年,曝光融合已經成為圖像處理和光學成像領域的研究熱點[8]。Mertens 等[9]采用多尺度圖像分解及融合的方法,利用圖像的評價指標實現曝光融合;該方法可以獲得較好的靜態場景圖像,但在動態場景融合時容易產生鬼影現象。Shen 等[10]改進了該算法,利用改進的拉普拉斯金字塔實現曝光融合,在一定程度上提高了圖像質量,但算法復雜度也明顯增加。Singh等[11]利用引導濾波和非線性方程增強場景信息,但圖像顯得不自然。Shen 等[12]利用概率模型和隨機游走算法實現曝光融合,可以較好地呈現場景的整體效果,但局部對比度低且細節模糊。Bruce[13]采用局部信息熵評價每一像素的權重實現曝光融合,但該方法得到的圖像比較昏暗。
上述算法只適合靜態場景(即場景中所有物體都是靜止不動)的曝光融合,如果現實場景為動態場景,即相機的移動或者場景中存在運動的物體(如:奔馳的小汽車、移動中的行人、隨風飄搖的樹枝等),直接利用上述算法實現曝光融合,將產生嚴重的鬼影現象。其中,因相機移動產生的鬼影現象可以通過將相機固定放置在三腳架上來解決[14]。除此之外,鬼影現象主要由場景中的移動物體產生。針對該問題,國內外眾多學者展開了深入的研究。Jacobs 等[15]介紹了基于局部信息熵和對比度的去鬼影方法,但它只能消除因物體小范圍移動產生的鬼影現象;Gallo 等[16]提出了基于隨機抽樣一致和泊松融合的去鬼影方法,可以較好地去除鬼影,但容易產生塊效應;Zhang 等[17]分別利用梯度幅值和梯度方向表示對比度和空間連續性,其中梯度方向用于去除鬼影,但該方法只能在一定程度上減少鬼影并不能完全消除;Li 等[18]分別運用中值濾波和遞歸濾波去除鬼影現象和噪聲,在一定程度上改善了圖像質量;Kakarala 等[19]采用離散余弦變換去除鬼影現象,但只能去除小物體移動產生的鬼影;Liu等[20]介紹了稠密尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)算子實現曝光融合,但去除鬼影現象并不徹底;Ma 等[21]將圖像序列分解為信號強度、信號結構和平均強度三個分量進行處理,然后分別對三個分量進行重構得到最終的融合結果,但去除鬼影效果并不徹底且算法效率不高。
本文算法的基本思想如圖1所示。

圖1 本文算法流程Fig. 1 Flowchart of the proposed algorithm
首先,采用滑動窗函數將不同曝光量圖像劃分為規則的圖像塊,并且要求相鄰的圖像塊具有一定像素的重疊。其次,引入圖像的四種局部特征:局部方差、局部可視性、局部顯著性以及局部相似性,分別計算圖像塊的權重值。如果是靜態場景,只需要局部方差、局部可視性和局部顯著性三種局部特征計算圖像塊權重值;如果是動態場景,則四種局部特征都需要用于計算圖像塊的權重值,其中局部相似性特征只用于去除動態場景的鬼影現象。接著,利用加權融合的方法計算最佳輸出圖像塊。最后,將輸出的圖像塊采取重疊區域像素取平均值的方法得到最終結果。
在本文中,假設輸入的圖像序列已經配準,Ik表示曝光序列,其中k = 1,2,…,N,N 表示輸入圖像的數量。采用滑動窗將每一張不同曝光量的輸入圖像劃分成尺寸為n × n 的規則的圖像塊,并且要求相鄰的圖像塊有一定像素的重疊,滑動窗每次移動的步幅為μ。本文選取圖像塊的尺寸為15× 15(即n = 15),滑動窗的步幅選取為μ = 6。
自然場景中包含大量的邊緣和紋理等結構信息,這些結構信息可以充分表達場景中主要的可視信息,人類對場景中的結構信息感知十分敏感。文獻[22]中指出自然場景的大量結構信息包含在局部方差中,圖像的局部方差可以較好地表征場景中的大部分邊緣和粗紋理等結構信息,能很好地呈現自然場景的基本信息,因此本文采用局部方差表示場景的結構信息,計算過程為:


其中:Sij,k為圖像塊 Pij,k的局部方差分別表示三顏色通道(紅、綠和藍)的局部方差。
場景的曝光亮度決定了圖像的可視性:曝光亮度過低的場景過于昏暗,可識別的場景信息少;曝光亮度過高的場景由于亮度過飽和,可識別的信息也很少。即場景曝光亮度過低或者過高都會導致場景的可視性差,只有合適的曝光亮度才能讓場景的可視信息足夠多。因此,本文采用曝光亮度表示圖像塊的局部可視性。
首先,計算圖像塊歸一化后像素的平均值。文獻[18]中指出:像素的歸一化亮度值小于0.1 和像素的歸一化亮度值大于0.9 時,分別對應曝光亮度過低和曝光亮度過高兩種情況,只有像素的歸一化亮度值在0.5 附近才意味著合適的曝光亮度[9,23]。曝光亮度過低和過高兩種情況下,圖像塊的可視性差,應該分配小的局部可視性權重;而曝光合適的圖像塊可視性好,應該分配較大的可視性權重值。因此,本文設計了一個分段函數表示圖像的局部可視性權重,計算過程為:

JND(Just Noticeable Distortion)模型[24]用于衡量人類的視覺系統對場景信息的敏感度和感知力,是一個非常重要的圖像質量評價指標。JND 模型以場景的紋理信息和背景亮度為基礎,可以很好地突顯場景中細節豐富、對比度好的顯著區域。因此,本文利用JND模型估算圖像塊的局部顯著性,計算過程為:


當場景中存在行駛的汽車、奔跑的動物以及行人等移動物體時,直接將曝光序列進行圖像融合很容易產生鬼影現象(偽影),這將嚴重影響圖像的質量。為了提高圖像質量,消除場景中移動物體對融合圖像的影響,本文利用局部相似性去除鬼影現象。
首先,將每個圖像塊轉換為灰度圖并將像素值歸一化到區間[0,1]。由于圖像序列中每張圖像的曝光量不一樣,導致序列中圖像的亮度差異較大,亮度差異將直接影響去鬼影的效果。圖像亮度過暗或者過亮,都無法有效地去除鬼影;而亮度合適的圖像去除鬼影的效果會更好。因此,本文對灰度圖進行了伽馬校正,以便讓每張灰度圖的曝光水平都比較接近。文獻[9,23]中指出,像素值為0.5 的像素有合適的曝光亮度,呈現的圖像亮度合適,故應該盡量使圖像在伽馬校正后像素亮度接近0.5。當像素亮度值小于0.5時,應該通過伽馬校正使像素亮度值變大以接近于0.5;當像素亮度值大于0.5 時,應該通過伽馬校正使像素亮度值變小以接近于0.5;當像素亮度值等于0.5 時,伽馬校正后亮度保持不變。本文將伽馬系數設置為2ηij,k(這里ηij,k為像素亮度值),伽馬校正過程可以表示為:

其中:ηij,k表示圖像塊 Pij,k的灰度圖的像素的平均值。
本文選擇曝光亮度合適的圖像塊的伽馬校正結果作為參考圖像塊,采用歐氏距離表征圖像塊之間的相似性。為了提高算法效率、減小復雜度,采用歐氏距離的平方值計算圖像塊的局部相似性。利用圖像塊與參考塊之間的相似性計算,檢測圖像塊相對于參考塊的運動物體,圖像相似性Dij,k計算表達式為:


其中:σ2為標準差,本文設定σ2= 0.5。
為了便于后續采取加權融合的方法計算輸出圖像,本文綜合考慮上述四種局部特征計算圖像塊的權重值。首先將各圖像塊的權重值對應相乘,然后進行歸一化處理得到每個圖像塊的權重。圖像塊歸一化權重Wij,k的計算表達式為:

其中:ε為一個很小的正常數,ε = 10-12。
需要注意的是:只有在動態場景時才需要考慮Aij,k,如果是靜態場景,式(10)中Aij,k是不需要考慮的。
在計算得到每個圖像塊的權重之后,利用加權融合的方法計算最佳輸出圖像塊Bij,其表達式為:

如果直接將輸出圖像塊融合,很容易出現塊效應,影響圖像的質量。為了保持圖像塊之間的連續性避免出現塊效應,同時由于圖像分塊時相鄰的圖像塊有一定像素的重疊,因此本文將最佳輸出圖像塊之間的重疊區域像素取平均值實現圖像塊融合,得到最終的曝光融合結果。同時,為了減小圖像中的噪聲,大約有1%的極亮和極暗像素被裁剪掉。
選擇多組靜態場景和動態場景的曝光序列用于實驗的測試和分析,實驗中所用的圖像序列可從網站http://users.soe.ucsc.edu/~orazio/deghost.html下載,分別從主觀和客觀兩方面與現有的算法進行比較和分析。實驗的硬件平臺采用Intel i7處理器(3.4 GHz,64 位),16 GB 內存的計算機。所有的算法全部利用Matlab R2016a編程實現。
圖2和圖3為靜態場景測試及實驗結果比較,并分別給出了測試結果和對應的局部放大圖。
圖2 為曝光序列Candik 的測試結果,在每個算法測試結果的右邊分別給出了臺燈和桌上文件的局部放大圖。從實驗結果可以看出,文獻[12,18,20]的算法得到的圖像效果比較相似,這三種算法都獲得了較好的整體效果,但局部對比度低,從局部放大圖中可以看出,臺燈的輪廓和文件中的文字都比較模糊。文獻[13]的算法得到的圖像整體比較昏暗,全局對比度低,畫面看起來不夠生動。文獻[21]的算法在全局對比度和色彩飽和度方面都取得了較好的效果,但是在極亮區域損失了部分可視信息,例如臺燈內部和桌上文件可視細節不是很清晰。相對而言,本文算法得到的圖像整體效果更好,色彩鮮艷,畫面看起來生動,場景局部可視細節豐富,例如局部放大圖中的臺燈輪廓和文件中的文字看起來都比較清晰。
圖3 顯示了House 圖像序列的實驗結果。文獻[12,18,20]的算法為了同時兼顧亮區和暗區信息,整體對比度偏低,并且在門框部分呈現出比較嚴重的黑色光暈現象。文獻[13]的算法呈現的圖像整體比較暗,色彩的飽和度低,整個畫面昏暗缺乏生機,場景的可視信息模糊。文獻[21]的算法雖然呈現了較好的整體效果,但損失了場景中明亮區域的一部分可視信息,且該區域色彩飽和度低,例如室外花園區域由于亮度過飽和導致可視信息較少并且色彩不夠鮮艷。本文算法保持了良好的整體效果,很好地兼顧了場景亮區和暗區信息,保持了較高的全局對比度和局部對比度,場景細節清晰可見,例如室外花園區域可視信息豐富,色彩鮮艷(見局部放大圖)。

圖2 序列Candik曝光融合結果Fig.2 Exposure fusion results of“Candik”sequence

圖3 序列House曝光融合結果Fig.3 Exposure fusion results of“House”sequence
動態場景的實驗測試結果分別如圖4 和圖5 所示:圖4 中每組圖像的左邊部分為算法得到的實驗結果,右邊為實驗結果的局部放大圖像;圖5 中每組圖像的上半部分為算法得到的實驗結果,其下半部分為對應實驗結果的局部放大圖像。文獻[17,18,20]的算法得到了類似的實驗結果,這三種算法采用不同的方法實現動態場景曝光融合,但只在一定程度上減輕了鬼影現象,并沒有完全去除鬼影,從圖4 和圖5 的局部放大圖可以看出,馬的頭部、移動的皮球和行人都能看到比較明顯的鬼影現象。文獻[19]的算法雖然較好地去除了鬼影現象,但卻導致了顏色失真(例如圖4 局部放大圖中馬頭部出現了比較明顯的顏色退化)和較亮區域的場景信息丟失(圖5 天空區域由于亮度過飽和導致天空、白云等可視信息大量丟失)。文獻[21]的算法在圖4 中雖然消除了鬼影現象,但馬圈內部由于過于昏暗而損失了大量的可視信息。在圖5 中,文獻[21]的算法只在一定程度上減少了鬼影現象,并沒有完全消除,例如圖5 中的皮球和行人還是存在鬼影現象。相對而言,本文算法有效地去除了鬼影現象,同時保持了圖像較好的整體效果和豐富的局部信息,例如圖4 中馬圈的內部細節和 圖5中天空區域的信息都清晰可見。

圖4 序列Horse曝光融合結果Fig.4 Exposure fusion results of“Horse”sequence

圖5 序列Street曝光融合結果Fig.5 Exposure fusion results of“Street”sequence
圖像質量的客觀評價指標可以更加全面地評價算法的性能。本文采用圖像清晰度和曝光融合圖像質量評價指標(Image Quality Assessment,IQA)[25]綜合評價算法性能。圖像清晰度利用平均梯度衡量圖像中的微小細節,圖像清晰度值越大,表明圖像提供的可視信息越多,圖像越清晰,可視效果越好,其定義為:

其中:zr,c表示像素灰度值,r和c分別表示像素所在的行和列坐標;R和C表示測試圖像像素行和列的數目。
IQA 是文獻[25]為曝光融合提出的評價指標,綜合考慮了曝光融合前后圖像的結構連續性和結構相似性,該指標的評定結果在區間[0,1],其值越大,表明圖像質量越高。IQA的定義為:

其中,M(Y)表示IQA 計算結果;Ml(Y)表示第l尺度圖像質量的平均值;L為圖像分解尺度的數量;βl為第l尺度的權值。
表1 為不同自然場景的曝光融合圖像清晰度測試結果,從表中的測試數據可以看出,本文算法在絕大多數場景的測試中,圖像清晰度測試結果優于其他對比算法,表明本文算法得到的圖像保留了場景更多的微小細節、有更好的圖像清晰度。表2 給出了9 組不同自然場景的IQA 測試結果。在絕大部分場景測試中,本文算法的測試結果高于其他算法,說明本文算法在曝光融合前后保持了更好的圖像結構連續性和結構相似性。

表1 圖像清晰度測試結果Tab. 1 Test results of image definition
綜合上述兩項客觀指標測試結果,本文算法有更加優良的性能,獲得的圖像具有更高的圖像質量。
本文所有的比較算法均在同一臺PC 上采用Matlab R2016a編程實現。表3為本文算法與另外四種曝光融合算法計算效率的對比結果。本文算法和文獻[18]的算法效率相當,兩者的計算效率都較高,但本文算法獲得的圖像效果更好。文獻[12]的算法效率次之,但該算法只適用于靜態場景。文獻[20-21]的算法效率較低。實驗結果表明:本文算法在提高曝光融合圖像質量的同時,保持了較高的計算效率。

表2 IQA測試結果Tab. 2 Test results of IQA

表3 計算效率測試結果 單位:sTab. 3 Test results of computational efficiency unit:s
本文提出了一種實用而高效的曝光融合算法。該算法利用滑動窗將圖像序列分成規則的圖像塊,通過計算圖像塊的局部特征,采取加權融合的辦法得到最終的融合圖像。選取12 組不同自然場景的曝光序列,分別在靜態場景和動態場景從主觀和客觀兩方面完成了對算法的測試和分析。實驗結果表明:本文算法保持了圖像良好的整體效果,保留了場景豐富的可視信息,完全去除了動態場景的鬼影現象。無論在靜態場景還是動態場景,本文算法都表現出了更加優異的性能,得到了令人滿意的圖像。后期將考慮進一步提升算法的性能,以便將算法應用于實際項目中。