岳 麗,胡大裟,蔣玉明
(四川大學(xué) 計算機學(xué)院,成都 610065)
長期以來,圖像傳感器的動態(tài)范圍都很小,但是真實場景中亮度的動態(tài)變化范圍卻非常廣,平常大部分場景的亮度范圍都遠(yuǎn)遠(yuǎn)超過了圖像傳感器所能感受的動態(tài)范圍,因此,需要一種特殊的圖像,即高動態(tài)范圍圖像(High Dynamic Range Image,HDRI)來滿足要求。動態(tài)范圍圖像是用來實現(xiàn)比普通數(shù)字圖像技術(shù)更大曝光動態(tài)范圍(即更大的明暗差別)的一組技術(shù),圖像所表現(xiàn)的層次更加豐富,圖像中高亮度區(qū)和低亮度區(qū)的細(xì)節(jié)信息都能很好地保留下來,更接近于人眼觀測到的真實場景[2]。為了解決真實場景與傳統(tǒng)顯示設(shè)備動態(tài)范圍不匹配的矛盾,國內(nèi)外學(xué)者提出了很多色調(diào)映射(Tone Mapping)算法來實現(xiàn)在傳統(tǒng)顯示器上顯示高動態(tài)范圍圖像。本文主要研究Reinhard基于攝影模型的色調(diào)映射算法。
圖1 色階映射原理示意圖
色調(diào)映射算法是由Tumblin等人在1993年引入到計算機圖形學(xué)領(lǐng)域的[1]。圖1描述了色調(diào)映射的問題,其目的是解決觀察到的景物與通過色調(diào)映射生成顯示的HRD圖像在視覺上匹配的問題。目前常見的色調(diào)映射算法有2類。
1)全局色調(diào)映射算法
全局算法即空域不變算法,在一幅圖像中,所有的像素使用通用壓縮曲線進(jìn)行壓縮,使其從原來超出顯示設(shè)備動態(tài)范圍映射到一個常規(guī)顯示設(shè)備所能顯示的范圍。全局算法比其他類型的操作算法簡單,大多可以立即執(zhí)行,因此計算效率高。在普通的數(shù)碼相機中大多使用全局算法。
從20世紀(jì)80年代開始,就有很多學(xué)者在進(jìn)行全局色調(diào)映射算法的研究,但是直到90年代才有比較好的成果。1993年,Tumblin和Rushmeier[4]針對人類的視覺系統(tǒng)(HVS)亮度感覺模型上的一致性,提出了一種非線性的全局算法;1994年,Ward[5]基于保留對比亮度而非絕對亮度提出了一個較簡單的線性映射Ward全局算法;1997年,Ward Larson等人[6]進(jìn)一步提出了一種基于直方圖的全局算法;2000年,Scheel和Stamminger等人[7]將色調(diào)映射技術(shù)用于交互式系統(tǒng)中,將亮度信息表示為紋理信息;2003年,Drago等人[8]提出了一種自適應(yīng)對數(shù)映射算法;同年Artusi等人[9]提出了一種基于全局算法應(yīng)用的統(tǒng)一框架。雖然不同全局算法的效果不一樣,但是如果一幅圖像的動態(tài)范圍非常高,全局算法將無法保存圖像的局部細(xì)節(jié),因此出現(xiàn)了局部色調(diào)映射算法。
2)局部色調(diào)映射算法
局部算法也叫空域相關(guān)算法,它會根據(jù)像素本身的值來計算出局部的對于每個像素點的區(qū)域分級,這個局部區(qū)域值將驅(qū)動目標(biāo)像素的壓縮曲線。也就是說一個像素點的壓縮依賴于鄰接點像素,一個暗點像素在一個亮點像素旁邊和一個暗點像素在一個暗點像素旁邊的處理是不同的。
從20世紀(jì)90年代開始,大量有效的局部算法被提出。1993年,Chiu等人[10]根據(jù)人眼對于亮度相對變化更為敏感這一現(xiàn)象,提出了一種分區(qū)域獲得亮度縮放因子的算法;1997年,Jobson等人[11]提出了模擬人類的視覺系統(tǒng)(HVS)對亮度和顏色感知的多尺度Retinex模型;1998年,Pattanaik等人[12]建立了非常全面的模擬HVS對亮度及空域變化的適應(yīng)模型;2002年,Durand和Dorsey[13]提出了一種具備邊緣檢測的雙邊濾波技術(shù);2002年,Reinhard等人[14]提出了基于攝影模型的自動調(diào)節(jié)亮度的色調(diào)映射方法;2002年,F(xiàn)attal等人[15]提出了基于梯度域上對圖像進(jìn)行多尺度壓縮的方法;2007年,Kuang和Fairchild[16]基于圖像色貌模型(iCAM)和雙邊濾波分層技術(shù)提出了一種新的局部算法。局部算法彌補了全局算法中遇到的圖像細(xì)節(jié)或者對比信息會丟丟失的問題,但不足之處是計算量大大增加,而且要注意光暈、虛假輪廓及噪聲等圖像失真問題,這些問題的減少或消除是以模糊圖像為代價。
全局算法通常簡潔高效,但是很難保持局部對比度。局部算法采用多分辨率分層算法,可以更好地展現(xiàn)局部信息,但是同時計算復(fù)雜且可能產(chǎn)生光暈等圖像失真問題。
2002年,Reinhard等人[14]提出了基于攝影模型的自動調(diào)節(jié)亮度的色調(diào)映射方法。該思想源于照片拍攝的“分區(qū)曝光顯影系統(tǒng)(Zone system)”的概念,它將場景和顯示設(shè)備的動態(tài)范圍分別按照亮度的遞增順序分成了若干個區(qū)域(Zones),其中顯示設(shè)備的動態(tài)范圍被分成了11個區(qū)域。攝影師首先獲取場景的中間亮度值,這個亮度將映射到顯示設(shè)備的Zone-5,然后再獲取場景的最高亮度和最低亮度以決定場景的動態(tài)范圍。如果沒有超過11個Zones,那么就將場景和顯示設(shè)備的Zone一一對應(yīng);如果超過了11個Zones,就需要使用遮光—曝光(dodging and burning)的方法來壓縮動態(tài)范圍,將過亮的區(qū)塊變暗或者將過暗的區(qū)域變亮[17]。根據(jù)這一理念,Reinhard提出了基于攝影模型的色調(diào)映射算法,該算法包含了全局色調(diào)映射算法和局部色調(diào)映射算法,不同的是,局部色調(diào)映射算法提供了對圖像的不同區(qū)塊采用攝影中的遮光—曝光的技術(shù)[14,18]。
首先,對圖像進(jìn)行一次動態(tài)范圍壓縮,計算整幅圖像的平均對數(shù)亮度值,平均亮度看作是對場景關(guān)鍵點有用的近似值:
其中,Lw(x,y)是已給定的像素點(x,y)的全局亮度,N為輸入圖像中所有像素點的個數(shù),δ是一個很小的修正值。經(jīng)過多次實踐發(fā)現(xiàn),平均像素亮度總是被映射到平均關(guān)鍵場景顯示范圍的18%,這樣,原始的縮放方程式為:
其中L(x,y)是縮放后的亮度,a是亮度比例常數(shù),其大小決定了輸出圖像的亮度大小。然后,對圖像進(jìn)行二次線性壓縮變化,使用式(3)將L(x,y)映射到顯示設(shè)備的 Ld(x,y):
當(dāng)高亮度被大量壓縮的時候,該函數(shù)線性縮放的值比較小,其所有的值都在[0,1]之間,從而保證了所有的Ld(x,y)都在顯示設(shè)備的顯示范圍內(nèi),然后引入Lwhite將函數(shù)擴展為一個可控函數(shù):
全局色調(diào)映射算法在對圖像進(jìn)行動態(tài)壓縮時十分快捷方便,但是對于動態(tài)范圍極高的圖像還是會丟失一些圖像的細(xì)節(jié)。因此,Reinhard進(jìn)一步提出了運用遮光—曝光的方法來壓縮動態(tài)范圍的局部色調(diào)映射算法,其基本思想是對每一個像素找到其周圍不包含強烈反差的最大環(huán)繞域,根據(jù)其環(huán)繞域亮度信息選擇不同的a。因此,首先要找到目標(biāo)像素點最大環(huán)繞域半徑smax,smax是滿足式(5)的最大值:
其中ε是一個較小的閥值,s是高斯濾波器的尺度。如果在像素點周圍沒有明顯的反差,那么高斯點周圍的像素都是相似的,否則,這2個高斯點就不同。這里引入亮度感知模型的中心環(huán)繞函數(shù)V(x,y,s),其中a和φ分別是亮度比例常數(shù)和銳化參數(shù),方程V1(x,y,s)和V2(x,y,s)是由式(7)和(8)求出。
當(dāng)smax在(x,y)像素得到最大值的時候,對應(yīng)的最大亮度環(huán)繞域的平均像素亮度為V1(x,y,smax(x,y)),用V1代替式(3)分母中的平均亮度L(x,y),帶入到式(3)中,得到局部映射的算法公式:
Reinhard算法的局部色調(diào)映射算法對于圖像中較重要的區(qū)域適當(dāng)增加動態(tài)范圍,對于較不重要的部分適當(dāng)降低動態(tài)范圍,從而使得細(xì)節(jié)的顯示效果得到增強。
實驗過程中針對Reinhard基于攝影模型的色調(diào)映射算法中的主要參數(shù)a和φ對圖像的影響做了分析,同時分析了Reinhard算法的全局色調(diào)映射算法和局部色調(diào)映射算法對圖像處理的不同優(yōu)勢。
圖2是a取不同值后圖像縮放的效果。由圖2可知,隨著a的值增,圖像逐漸變得明亮。當(dāng)a=0.18時,圖像的效果最好。所以,當(dāng)圖像是normal key,通常都取a值為0.18,但是如果圖像是low key時,需要將a提高到0.18以上,使圖像中比較暗的部分可以亮一些。反之,當(dāng)圖像是high key,則要降低a。
圖2 a取不同值時圖像的縮放效果
φ是銳化參數(shù),它可以增加圖像細(xì)節(jié)邊緣的對比度,從而有助于更清晰地顯示圖像的細(xì)節(jié)。從圖3中可知,隨著φ的增加,相比于原始圖像細(xì)節(jié)邊緣部分的對比度逐漸的增強。當(dāng)φ=1時,圖3(b)相比于原始的圖3(a)就已經(jīng)有較好的效果。經(jīng)過多次的實驗,發(fā)現(xiàn)φ=8時最合適(圖3 d),如果φ值太大,圖像將會出現(xiàn)光暈。
圖4顯示了分別運用Reinhard全局色調(diào)映射算法和局部色調(diào)映射算法對圖像處理后的不同效果。因為選取的實驗圖像的動態(tài)范圍并不是非常高,所以圖4(a)即便是運用全局色調(diào)映射算法進(jìn)行動態(tài)范圍壓縮,也表現(xiàn)出了比較好的效果。但是仔細(xì)觀察對比可以發(fā)現(xiàn),在射燈照射下的書本及杯子等物體,運用局部算法壓縮后的圖4(b)明顯擁有更好的圖像細(xì)節(jié)保留,圖4(b)書本上的字隱約還能看到,杯子上的圖案也更加真實,因此對于動態(tài)范圍較高的圖像部分,局部算法表現(xiàn)出了明顯的優(yōu)勢。
圖3 φ取不同值時圖像的效果
圖4 Reinhard色調(diào)映射算法對圖像處理后的效果
本文對現(xiàn)有的主要色調(diào)映射算法進(jìn)行了簡要的分析,研究了Reinhard基于攝影模型的色調(diào)映射算法,并對算法中的重要參數(shù)做了實驗分析。通過一系列的實驗證明,Reinhard全局色調(diào)映射算法對于處理動態(tài)范圍不是很高的圖像,運行效率快且效果好。對于動態(tài)范圍較高的圖像可以運用局部色調(diào)映射算法進(jìn)行進(jìn)一步處理,只需要更改參數(shù)值即可,因此這個算法很靈活,比其他算法在支持實時應(yīng)用程序方面具有更強的全局性能。
[1]王作省,鄒少芳,王章野.高動態(tài)圖像色調(diào)映射技術(shù)新進(jìn)展[J].計算機應(yīng)用研究,2010,27(7):2421-2424.
[2]謝一凇,方俊永.高動態(tài)范圍圖像色調(diào)映射技術(shù)的發(fā)展與展望[J].照明工程學(xué)報,2011,22(5):11-17.
[3]張碩.高動態(tài)范圍圖像的色調(diào)映射算法研究[D].北京:北京交通大學(xué),2009.
[4]TUMBLIN J,RUSHMEIER H E.Tone reproduction for realistie images[J].IEEE Computer Graphics &Applications,1993,13(6):42- 48.
[5]WARD G J.The radiance lighting simulation and rendering system[C]//In Proceedings of SIGGRAPH 94,Computer Graphics Proceedings,Annual Cognference Series,1994:459-472.
[6]LARSON G W,RUSHMEIER H,PIATKO C.A visibility matching tone reproduction operator for high dynamic range scene[J].IEEE Transactions on Visualization and Computer Graphics,1997,3(4):291-306.
[7]SCHEEL A,STAMMINGER M,SEIDEL HP.Tone reproduction for interactive walkthroughs[J].Computer Graphics Forum,2009,19(3):301-312.
[8]DRAGO F,MYSZKOWSKI K,ANNEN T,et al.Adaptive logarithmic mapping for displaying high contrast scenes[J].Computer Graphics Forum,2003,22(3):419-426.
[9]ARTUSI A,BITTNER J,WIMMER M,et al.Delivering interactivity to complex tone mapping operators[C]//Proc of the 14th Eurographics Workshop on Rendering.Aire- la- Ville:Eurographics Association,2003:38-44.
[10]CHIU K,HERF M,SHIRLEY P,et al.Spatially nonuniform scaling functions for high contrast images[R].In Proc Graphics Interface’s 93,Morgan Kaufmann,1993:245-253.
[11]JOBSON D J,RAHMAN Z,WOODELL G A.A multiscale retinex for bridging the gap between color images and the human observation of scene[J].IEEE Transactions on Image Processing,1997,6(7):965.
[12]PATTANAIK S N,F(xiàn)ERWERDA J A,F(xiàn)AIRCHILD M D,GREENBERG D P.A multiscale model of adaptation and spatial vision for realistic image display[C].In Proceedings of SIGGRAPH 98,Computer Graphics Proceedings,Annual Conference Series,1998:83.
[13]DURAND F,DORSEY J.Fast bilateral filtering for the display of highdynamic -range imges[J].ACM Transactions on Graphics 2002,21(3):257-266.
[14]REINHARD E,STARK M,SHIRELY P,et al.Photographic tone reproduction for digital images[C]//In Proceedings of ACM SIGGRAH 2002,Computer Graphics Proceedings,Annual Conference Series ACM Press/ACM SIGGRAPH,2002.
[15]FATTAL R,LISCHINSKI D,WERMAN M.Gradient domain high dynamic range compression[J].ACM Transactions on Graphics,2002,21(3):249-256.
[16]KUANG J,JOHNSON G M,F(xiàn)AIRCHILD M D.ICAM06:A refined image appearance model for HDR image rendering[J].Journal of Visual Communication and Image Representation,2007(18):406-414.
[17]楊克虎,姬靖,郭建軍,等.高動態(tài)范圍圖像和色階映射算子[J].自動化學(xué)報,2009,35(2):113-121.
[18]余志俊.高動態(tài)范圍圖像色調(diào)映射算法的研究與實現(xiàn)[D].北京:北京交通大學(xué),2010.