溫佩芝,周 迎,苗淵淵,馮麗園
1.桂林電子科技大學(xué) 計算機與信息安全學(xué)院,廣西 桂林 541004
2.桂林電子科技大學(xué) 電子工程與自動化學(xué)院,廣西 桂林 541004
在拍攝表面光滑的物體照片時,因反光的影響在圖像中易形成高光區(qū)域。高光表現(xiàn)為高強度像素,會遮擋物體表面的紋理,飽和的高光更是直接導(dǎo)致局部區(qū)域紋理信息完全丟失,給基于圖像的應(yīng)用研究,例如目標(biāo)檢測、圖像分割和物體三維重建等造成極大的困難。因此,多年來圖像高光檢測和去除的研究一直是圖像處理領(lǐng)域的關(guān)鍵和難點問題[1]。
根據(jù)使用的圖像數(shù)量,現(xiàn)有的高光去除方法可分為單幅圖像法[1-10]和多幅圖像法[11-14]。在單幅圖像高光去除方面,1985年Shafer[2]最先提出了雙色反射模型,該模型為基于顏色分析的高光去除方法奠定了基礎(chǔ)。2005年Tan[3]在雙色反射模型的基礎(chǔ)上提出了無高光圖的概念,該方法不需要幾何信息和圖像分割預(yù)處理,僅依靠色度信息來去除高光,但魯棒性不強。2008年Shen[4]提出了改進的無高光圖,該方法簡單有效但對高光強度有限制要求。2011年周偉[5]根據(jù)漫反射色度局部平滑這一特性,估計鏡面像素最大漫反射色度,并將該值進行擴散傳播來去除高光;2014年盧桂榮[6]在最大漫反射色度局部平滑基礎(chǔ)上采用雙邊濾波器設(shè)計了一種加速策略,有效提升了高光去除的執(zhí)行效率。但這兩篇文獻對仍存在完整紋理信息的高光處理效果較好,對完全丟失紋理信息的高飽和的高光則無效。2015年張瀟云[7]提出基于多通道梯度一致性實現(xiàn)了自然光圖像的反射分離,但該方法不能很好地處理飽和像素和等色像素。2016年Wang[8]受益于光場成像技術(shù),在準(zhǔn)確估計圖像深度后分析顏色方差進行高光去除,但該方法對大面積高光去除效果不佳;房欣欣[9]對于飽和的高光采用信息重構(gòu)的方法進行處理,但僅適用于紋理簡單的圖像。2017年Sun[10]等采用相鄰像素點迭代填充的方法去除高光飽和區(qū)域,但僅適用于去除單色區(qū)域的高光,對于非單色的高光區(qū)域這一方法并不適用。多幅圖像去除高光方面,2001年Lin[11]在保持視角不變的情況下,通過改變光源的入射角度來去除高光,但該方法對硬件和實驗環(huán)境要求過高;2004年Raskar[12]用僅改變曝光亮度的方法來削弱高光區(qū)域?qū)D像重構(gòu)的影響,但無法去除不同曝光度圖像高光重疊區(qū)域的高光;2011年Yang[13]拍攝一系列圖像,通過分析多幅圖像序列的顏色信息去除高光,但不適合高光區(qū)域較大的物體,且需要大量的實驗圖像,運算量大。2017年Shah[14]提出的去高光方法對連續(xù)視頻圖像效果較好,但對于多角度圖像會產(chǎn)生一定的誤差。
以上分析可知,現(xiàn)有的圖像單幅和多幅高光去除方法對于高光范圍較大且飽和的自然光圖像受到高光飽和度和紋理信息的限制和存在著對硬件設(shè)施要求過高和無法去除紋理豐富區(qū)域的高光等問題。因此本文方法在文獻[14]的基礎(chǔ)上,解決了高光去除部分的色差問題和保持非高光像素不受影響的問題。首先,選取兩幅不同視角且高光不重疊的圖像作為基準(zhǔn)圖和輔助圖,并將輔助圖轉(zhuǎn)換到HSV(Hue Saturation Value)空間進行亮度調(diào)整,再將亮度統(tǒng)一后的兩幅圖像進行特征點匹配,估算出單應(yīng)性變換矩陣,然后利用該矩陣將輔助圖透視變換到與基準(zhǔn)圖同一視角;最后采用MSF(Modified Specular-Free)算法[4]得到基準(zhǔn)圖的無高光圖,利用無高光圖和原基準(zhǔn)圖之間的像素的差異檢測出基準(zhǔn)圖的高光像素區(qū)域,將該區(qū)域遮罩在輔助圖的相應(yīng)位置選擇紋理信息對基準(zhǔn)圖進行填補,修復(fù)缺失紋理,從而去除基準(zhǔn)圖的高光。實驗結(jié)果表明,與文獻[14]相比,本文方法在圖像峰值信噪比和結(jié)構(gòu)相似性上有一定提高,并且能夠很好去除圖像高光部分,增強高光區(qū)域的細節(jié)信息。
物體反射是由漫反射和鏡面反射共同組成的,其中漫反射部分反映物體本身的顏色信息,而鏡面反射部分則反映光源的顏色信息[2],即任意反射光線可分為漫反射和鏡面反射分量:
其中,X=(x,y)表示圖像中某一像素的坐標(biāo),I(X)={Ir(X),Ig(X),Ib(X)}表示圖像的顏色向量,r、g、b分別代表紅、綠、藍三個通道,wd(X)、B(X)分別代表該像素的漫反射權(quán)重因子和漫反射分量,ws(X)、G(X)分別代表該像素的鏡面反射權(quán)重因子和鏡面反射分量。且有wd(X)+ws(X)=1。
文獻[3]將色度定義為:
其中,σ是與像素顏色相關(guān)的色度,Λ表示漫反射色度,Γ表示鏡面反射色度。對RGB圖像有:σr+σg+σb=Λr+Λg+Λb=Γr+Γg+Γb=1根據(jù)式(1)和(2)可推出色度公式為:
其中:
高光去除的目的是將鏡面分量從圖像中去掉,將此問題簡化為尋找漫反射分量的問題,為此可以先求出漫反射色度。有文獻[3]知已經(jīng)飽和的高光像素其鏡面色度近似為光源色度[3],即純白色光源。對于純白色光源有Γr=Γg=Γb,由此得出高光飽和區(qū)域像素鏡面色度為。由式(3)得到漫反射色度如下式:
由式(4)和(5)可推導(dǎo)出高光區(qū)域像素漫反射分量公式為:
由于圖像中導(dǎo)致紋理信息缺失的飽和高光區(qū)域表現(xiàn)的色度接近光源的色度,即色度值幾乎達到最大值,所 以。在這種情況下,根據(jù)式(6)可得意味著這種情況下漫反射分量不能通過雙色反射模型來求出。因此,飽和高光區(qū)域只能采用其他方法獲取相同的紋理信息來彌補以去除高光。本文利用鏡面反射的單方向性思想,即高光不可能出現(xiàn)在多個視角中的固定位置,提出了基于多視角特征匹配的高光去除方法。
本文首先選擇在同一環(huán)境中光源位置不變,從不同角度拍攝的帶高光的兩幅圖像作為基準(zhǔn)圖和輔助圖,如圖1(a)和(b)所示。假設(shè)圖1(a)為基準(zhǔn)圖,圖1(b)為輔助圖。利用輔助圖協(xié)助去除基準(zhǔn)圖中的高光。對于基準(zhǔn)圖1(a)中的高光區(qū)域,需要在輔助圖1(b)中選取對應(yīng)位置的紋理信息進行填補來達到去除高光的目的。
圖1 圖像選取及亮度調(diào)整
在同一場景同一時間下拍攝的圖像之間在亮度上也存在一定的差異,所以亮度調(diào)整是空間圖像匹配、互補融合過程不可缺少的重要步驟。用數(shù)碼相機獲取的圖像主要為RGB(紅綠藍)模式,RGB三原色按不同的比例混合形成不同的色彩,三個分量之間不能獨立進行變化。在進行整體亮度調(diào)整時,對任一分量進行調(diào)整都會導(dǎo)致整幅圖像色彩和光澤信息失真,從而使高光去除后的紋理信息不準(zhǔn)確。在HSV色彩空間中,三個分量可以獨立變化,可以保持色調(diào)H和飽和度S不變而只對亮度分量V進行矯正,因此不僅可以大幅度調(diào)整彩色圖像亮度,而且能夠較好地保留圖像的色彩信息,有利于高光去除和紋理信息恢復(fù)。
本文首先將圖像轉(zhuǎn)換到HSV空間,然后在HSV空間中將圖1(b)的輔助圖亮度Vb按公式(7)調(diào)整,使其亮度和圖1(a)基準(zhǔn)圖的亮度Va近似,圖1(b)像素調(diào)整之后的亮度為,如下:
待HSV空間中所有像素亮度調(diào)整完畢,保留色調(diào)H及飽和度S不變,與調(diào)整后的亮度合成并轉(zhuǎn)換到RGB空間,得到亮度調(diào)整之后的輔助圖,如圖1(c)所示,實現(xiàn)了輔助圖和基準(zhǔn)圖的整體亮度統(tǒng)一,作為后續(xù)研究使用的輔助圖。
由于視角不同,本文高光去除需要進行視角轉(zhuǎn)換即將輔助圖調(diào)整到與基準(zhǔn)圖保持一致的視角,在計算機視覺中,這一過程被定義為單應(yīng)性變換[15]。兩幅圖像中對應(yīng)像素之間的關(guān)系可以用公式(8)來描述。
其中,s為變換系數(shù),x,y為基準(zhǔn)圖像素的坐標(biāo)值,u,v為輔助圖像素的坐標(biāo)值,H為單應(yīng)性矩陣變換的3×3矩陣,假設(shè)為式(9):
其中,amn為確定單應(yīng)性矩陣的值,m,n∈(1,2,3)。
通過計算出的單應(yīng)性矩陣H對輔助圖1(c)進行變換,變換后的像素坐標(biāo)(x′,y′)可由公式(10)求出。
為了剔除錯誤匹配點,進行精匹配,本文首先采用SIFT算法提取特征點,運用RANSAC算法剔除錯誤匹配點,并建立單應(yīng)性矩陣代價函數(shù)來獲取滿足兩幅圖像的最優(yōu)單應(yīng)性矩陣H。具體步驟如下:
步驟1計算基準(zhǔn)圖和輔助圖的有效特征匹配點。
首先采用SIFT[16]算法對經(jīng)過亮度統(tǒng)一后的輔助圖和基準(zhǔn)圖進行特征點提取,分別對比了歐式距離為0.4、0.6、0.8三個距離,多組圖像進行測試,得出在歐氏距離為0.6的情況下,能夠提取的有效特征點最多,經(jīng)大量實驗對比,本文將歐式距離閾值設(shè)定為0.6;經(jīng)過粗匹配以后,采用RANSAC[17]算法剔除錯誤的匹配點,為了得到更加精確的匹配精度,并且綜合考慮時間復(fù)雜度,本文經(jīng)過多次實驗得出RANSAC算法剔除錯誤匹配點的迭代次數(shù)為50次時為最優(yōu)迭代次數(shù),以后隨著迭代次數(shù)的增加,迭代次數(shù)對單應(yīng)性矩陣的變化沒有太大影響。
步驟2單應(yīng)性變換矩陣計算。
由式(10)可得如下公式:
最小匹配點數(shù)是為了保證匹配的準(zhǔn)確性,通過對各種不同圖像之間配準(zhǔn)后去高光的效果得到保證的有效匹配點數(shù)最小值,本文對各種不同高光圖像的實驗中,確定合適的最小匹配點數(shù)為20。當(dāng)有效匹配點數(shù)大于20時,此數(shù)值越大,說明兩幅圖像匹配的準(zhǔn)確率越高,在此基礎(chǔ)上通過下一步驟計算出的單應(yīng)性矩陣越優(yōu),進而說明兩幅圖像通過單應(yīng)性變換后匹配的準(zhǔn)確性越好。如果正確匹配點的個數(shù)小于20時,則有可能待匹配的兩幅圖片差異太大而無法實現(xiàn)正確匹配,此時該方法將不再適用于計算單應(yīng)性變換矩陣。
本組實驗得到的有效匹配結(jié)果如圖2(a)中紅色匹配線所示,其中有效匹配點數(shù)為85,遠大于最小匹配點數(shù),因此可以進行下一步最優(yōu)單應(yīng)性矩陣計算。從有效匹配點數(shù)中隨機抽出4對匹配點帶入公式(11)計算出單應(yīng)性矩陣H。
步驟3選擇最優(yōu)單應(yīng)性矩陣。
上述步驟中選擇不同的匹配點對計算出不同的單應(yīng)性變換矩陣H,為了找出最優(yōu)的一個矩陣模型,建立如下代價函數(shù)式(12),對每一個計算出的H分別求出其代價函數(shù)值:
其中N為兩幅圖像檢測到的有效匹配點對數(shù),i為其中某一個匹配對,xi、ui為對應(yīng)的匹配點。利用公式(12)測試所有匹配點對,并計算滿足該模型的匹配點對的代價函數(shù)值,通過比較,代價函數(shù)Ccost值最小的對應(yīng)的H即為最優(yōu)矩陣模型。
采用最優(yōu)模型矩陣對輔助圖進行變換后的圖像如圖2(b)所示。
圖2 單應(yīng)性矩陣變換
為檢測出基準(zhǔn)圖的高光區(qū)域,本文采用文獻[4]中改進的無高光圖算法對基準(zhǔn)圖如圖3(a)進行處理得到MSF圖如圖3(b),MSF圖像是由原始圖像的每個像素值減去相應(yīng)RGB通道最小值再加偏移量獲得,該偏移量是一個標(biāo)量,是圖像中每個像素通道最小值的平均值,計算公式如下:
其中i為R,G,B三個顏色通道,Vmsf,i(x,y)為像素在MSF圖像的第i通道的灰度值,Vi(x,y)為像素在原圖像第i通道的灰度值,Vmin(x,y)為像素在原圖像三通道上的最小灰度值,N為像素點的總數(shù)。
MSF圖與原圖相比較除了顏色信息可能不同外,其余的幾何信息是完全相同的。因此圖像的高光像素可以通過MSF圖像和原始圖像之間的差異確定。此過程可以定義為:
根據(jù)文獻[4],其中th1為根據(jù)圖像實際亮度得出的閾值,本文根據(jù)對不同材質(zhì)和不同圖像亮度測試了10個不同場景20組實驗得出了這個理想閾值。大量多次的實驗得出該閾值為60時能正確有效地檢測出高光像素區(qū)域。通過對每個像素進行閾值的劃分,最終可以將所有的像素分為高光像素和非高光像素兩類?;鶞?zhǔn)圖檢測出來的高光區(qū)域如圖3(c)左邊藍色方框標(biāo)記出來的部分。
圖3 高光檢測與去除
根據(jù)基準(zhǔn)圖中標(biāo)記出高光區(qū)域位置,在轉(zhuǎn)換視角后的輔助圖中選定同樣位置進行標(biāo)注,如圖3(c)右邊圖像中藍色曲線標(biāo)出來的部分,該區(qū)域與基準(zhǔn)圖中高光遮罩區(qū)域具有完全相同的局部紋理信息。
最后將圖3(c)右邊標(biāo)記區(qū)域的紋理像素信息與圖3(c)左邊標(biāo)記高光區(qū)域的像素逐個比較像素灰度值大小,選擇像素值小的對判定的高光區(qū)域進行填充,直到圖3(c)中所有的高光像素填充完畢,則基準(zhǔn)圖中的高光像素即被填補并修復(fù)缺失的紋理,如圖3(d)所示,從而完成基準(zhǔn)圖去除高光的目的。
本文實驗電腦配置為:CPU 3.70 GHz Intel?Core?i3-6100、RAM 4.0 GB、Windows7 64位,編譯軟件為:Python2.7.9和opencv2.4。為驗證本文提出的高光去除算法的正確性與有效性,選擇實拍的場景圖片,將本文提出的算法與最新的Shah[14]提出的多幅圖像去高光算法進行了相關(guān)的實驗對比。實驗分為定性實驗和定量實驗。定性實驗用實拍的場景圖片進行視覺比較分析。定量實驗,運用客觀衡量指標(biāo)峰值信噪比(Peak Signal to Noise Ratio)和結(jié)構(gòu)相似性(structural similarity index measurement)以及處理時間來定量分析處理后的效果。
本文實驗圖像每組均為同一環(huán)境下光源和物體位置不變,不同角度獲取的兩幅真實的高光圖像,實驗分為兩組不同的材質(zhì),分別為反光的玉石和金屬茶葉盒。兩組實驗結(jié)果分別如圖4和圖5所示。
圖4 反光玉石高光去除實驗對比
圖5 金屬茶葉盒高光去除實驗對比
圖4 中,圖(a)和圖(d)是同一環(huán)境下光源和物體位置不變,不同角度拍攝的兩幅高光圖像,可以看出,兩個圖像中高光區(qū)域不重疊。第一組實驗首先將圖(a)作為基準(zhǔn)圖,圖(d)作為輔助圖進行,采用本文方法和文獻[14]算法得到的基準(zhǔn)圖去高光的效果分別如圖(b)和圖(c)所示。第二組實驗將圖(d)作為基準(zhǔn)圖,圖(a)作為輔助圖,采用本文方法和文獻[14]算法得到的基準(zhǔn)圖去高光的效果分別如圖(e)和圖(f)所示。圖5實驗第三組和第四組實驗分析如圖4分析類似。
從視覺效果上看,文獻[14]的多幅圖像去高光方法如圖4和圖5的(c)(f)視覺上達到了去高光的目的,但是由于該方法沒有考慮到不同圖像有亮度上的差異,因此可以明顯看出去除的高光部分與邊緣像素有明顯的色差;且該方法是對圖像中所有與其他圖像重合的像素進行處理,因此由于透視變換或多或少有一定的誤差,對于非高光像素會產(chǎn)生不必要的影響和改變。相較而言,本文方法由于進行了不同視角的亮度調(diào)整到統(tǒng)一,因此高光去除的部分與整幅圖像視覺上并沒有明顯的色差,且本文方法由于僅對判定為高光的像素進行處理,保持原圖中非高光不變,達到了在去除高光的同時能較好地保持原圖的基本信息,去高光效果如圖4(b)(e)和圖5(b)(e)所示,如圖中方框標(biāo)出來的部分,紋理信息與原圖一致,且能較好地保持原圖的基本信息,視覺感更接近真實。由此可見,本文方法在保證玉石高光去除的同時也能較好地修復(fù)表面紋理信息,去高光的視覺效果更好。
為了分析圖像的質(zhì)量,本文對比不同算法處理前后的圖像峰值信噪比和結(jié)構(gòu)相似性。
峰值信噪比是一種全參考的圖像質(zhì)量評價指標(biāo),如果峰值信噪比大于40 dB,代表兩幅圖像基本無差異。
結(jié)構(gòu)相似性是一種衡量兩幅圖像相似度的指標(biāo),如果結(jié)構(gòu)相似性等于1,意味著兩幅圖像完全相同。因此峰值信噪比和結(jié)構(gòu)相似性越高意味著處理的效果更好,與原圖更接近。
其中,μf和σf分別為原始圖像的灰度平均值和方差,μ和 σ分別為去高光后圖像的灰度平均值和方差,σ為原始圖像和去高光圖像的協(xié)方差,C1、C2為常數(shù)。
實驗結(jié)果峰值信噪比(PSNR)和結(jié)構(gòu)相似性(SSIM)對比見表1所示。
表1 PSNR和SSIM實驗對比
通過表1數(shù)據(jù)可知,本文方法峰值信噪比和結(jié)構(gòu)相似性較高,意味著去除高光之后圖片的質(zhì)量更好。因此與原圖相比本文方法的峰值信噪比會更高。結(jié)合圖4和圖5定性分析,可以得知本文方法在保持處理后圖片紋理信息質(zhì)量的同時具有較好的去高光效果。
表2比較了本文方法和文獻[14]方法對于不同高光圖像在高光去除這一階段的處理時間。
表2 處理時間對比
由表2可知,本文方法在高光去除處理階段所需時間相較于文獻[4]有所提升,究其原因是本文僅對檢測出的高光區(qū)域進行去高光處理,其余部分沒有參與處理而提高了效率。
本文針對高光區(qū)域較大且紋理信息豐富的圖像,提出了一種多視角圖像特征匹配的高光去除方法。采用相同環(huán)境不同視角拍攝的兩幅高光圖像,通過實驗結(jié)果表明,本文方法在保證圖像峰值信噪比和結(jié)構(gòu)相似性提高的同時能最大限度地恢復(fù)高光區(qū)域的紋理細節(jié)信息,并且高光去除后的視覺效果較好,符合實際應(yīng)用的需要。但本文研究是針對完全缺失紋理信息的高飽和高光的去除處理,故需要借助輔助圖來完成,且需要兩幅圖像之間有足夠有效匹配點減少單應(yīng)性矩陣的誤差。對其他情況的高光去除則存在一定的局限性,如何提高其他情況下的高光去除效果是今后進一步研究的方向。