胡 晨,胡德敏,胡鈺媛,褚成偉
(上海理工大學 光電信息與計算機工程學院,上海200093)
陰影作為干擾圖像質(zhì)量的因素,根據(jù)其產(chǎn)生原因的不同分成兩類:一種是由于物體沒有接受光源照射產(chǎn)生的影子,即自陰影;另一種是由于自身對光源的遮擋在另一個物體上產(chǎn)生的影子,稱為投影陰影[1]。本文主要解決投影陰影問題。
陰影去除主要分為兩大類型:有模型方法和無模型方法。基于有模型的方法是對場景中的目標根據(jù)先驗知識,建立模型以區(qū)分陰影與非陰影。該方法效果較好但是建模過程復雜耗時。無模型方法只需根據(jù)陰影光照、顏色、幾何特征等來去除陰影,無需長時間訓練。但該方法會導致紋理不一致以及色彩偏移等問題[2],易降低陰影去除后的視覺效果。
文獻[1,3]中基于模型學習角度建立數(shù)據(jù)集對陰影進行訓練進而去除陰影。該方法針對單色圖像即非彩色圖像而設計,無法解決彩色圖像的陰影處理。文獻[4~6]雖然能較好地恢復陰影處真實信息,但需要大量預訓練,訓練不充分易導致陰影去除后紋理不一致。上述方法依賴于長時間的訓練,訓練不足會導致陰影去除失敗。
文獻[2,7]無需模型訓練,但均需無陰影背景圖來去除陰影。如果無背景圖,將無法去除陰影。文獻[8]基于光照優(yōu)化去除陰影,缺點是當相似區(qū)域紋理差別大時,會導致陰影去除后紋理不一致與光照不飽和。文獻[9]依據(jù)HSI空間檢測出陰影,但未恢復陰影處光照。文獻[10]將非陰影區(qū)域與陰影區(qū)通道的平均值之比作為常數(shù),對檢測出的陰影區(qū)域乘以常數(shù)去除陰影,在恢復圖像陰影區(qū)域時會造成紋理不一致。
針對以上陰影去除后存在紋理不一致與光照飽和以及需大量訓練的問題。本文使用HSV顏色格式比率直方圖的方法檢測圖像中陰影,提出了一種基于Retinex新的估算入射光圖以及改進梯度下降中權(quán)重求取的方法,旨在通過改善光照不飽和與增強反射光圖紋理來得到無陰影圖像。
陰影去除過程可以分為兩個過程:陰影檢測以及恢復陰影區(qū)域的真實信息[11]。陰影去除需先檢測出圖像中陰影區(qū)域。目前致力于研究陰影檢測的方法中,文獻[12]通過將RGB格式的原圖轉(zhuǎn)換為HSV(色度、飽和度、亮度)格式、YUV(亮度、色度、濃度)格式以及YIQ(亮度、相位、正交)格式獲得陰影亮度和飽和度,利用亮度與飽和度檢測陰影。相比于YIQ注重伽馬校正,YUV注重兼容彩色與黑白制式電視機,HSV格式是根據(jù)人觀察色彩的生理特征而提出的顏色格式,視覺效果上更友好。與其它兩種方法相比,在HSV格式下,陰影檢測效果更佳,因此本文使用HSV格式獲取飽和度與亮度。
將RGB顏色通道的圖像轉(zhuǎn)換為HSV顏色通道后[13],對圖像值域0~255按照式(1)進行歸一化。
(1)
式中,R、G、B分別為RGB圖像分離后的通道。對于每一個像素點設max等于歸一化后R′、G′、B′中的最大值,min等于這些值中的最小值,按照式(2)轉(zhuǎn)換到亮度通道V。
V=max
(2)
按照式(3)轉(zhuǎn)換到飽和度通道S。
(3)
依據(jù)上述計算式轉(zhuǎn)換RGB圖像得到飽和度S和亮度V通道值。利用陰影像素具有較高的飽和度和較低亮度值特點,使用通道V和通道S計算每個像素點x的歸一化飽和值差分指數(shù)(Normalized Saturation Value Difference Index,NSVDI)。
基于陰影區(qū)域的像素在亮度和飽和度的比率直方圖中,值比非陰影區(qū)域要高的特點,結(jié)合最大類間方差法(Nobuyuki Ostu,OSTU)在比率直方圖中分割陰影與非陰影區(qū)域[8]。如式(4)所示,利用NVSDI在陰影識別中的廣泛應用[14-15]作為判斷陰影像素點標準。
(4)
其中,S是飽和度分量;V是亮度值分量。對于每一個像素點計算其NSVDI值,得到一個r(x)的灰度圖像。應用OSTU方法自適應求出r(x)直方圖的最優(yōu)閾值T[12],如式(5)所示。
(5)
其中,Pi是灰度級為i的像素點的概率;將圖像按T分為背景與對象,w(T)是其中一類灰度圖像的零階累積矩,μ(T)是另一類;θ是原始圖片的總平均級別。
利用OSTU閾值對NSVDI直方圖進行判斷,將圖像中所有像素點值r(x)與閾值T相比較判斷像素點為陰影或非陰影:r(x)>T為陰影;r(x) 檢測出圖像中的陰影區(qū)域后,需要恢復陰影區(qū)域的真實信息。使用基于Edwin.H.Land提出的Retinex理論恢復陰影區(qū)域的真實信息[7]。 Retinex理論認為一幅圖像I由反射圖像R和入射圖像L組成,原理圖如圖1所示。 圖1 Retinex示意圖 當入射光照射在反射物體上時,反射物體將入射光反射到觀察者眼中,由此形成觀察者最終看到的圖像。Retinex理論可用式(6)表示。 Ix=Lx·Rx (6) 其中,Ix代表照相機接收到或人眼觀察到的圖像;Lx代表環(huán)境光的入射圖像,直接決定了圖像中像素所能達到的動態(tài)范圍;Rx代表反射光圖像是增強后的圖像[16]。式(6)有其明確的物理意義,即人眼觀察到的圖像可以分解成所需要的反射光圖像與入射光的乘積。在式(6)中已知Ix的值,Lx與Rx的值均未知且Rx是所求的值,通過簡單的計算式變換,可以得到Rx=Ix/Lx,欲獲得增強后圖像Rx只需求解未知圖像Lx。 作為一種顏色恒定方法,文獻[17]中試圖利用max-RGB中R、G、B這3種顏色通道來獲取估計光照,但這種方法只能提高全局光照。為了解決非均勻光照,對于陰影像素x,本文提出了新的估算方法,如式(7)所示。 (7) 其中,Ωx是以像素x為中心的n×n個像素的鄰域;變量c為鄰域內(nèi)像素點;y是區(qū)域內(nèi)索引,將其賦值給Lx;用平均值替代最大值避免像素x光照恢復后不飽和。將式(7)代入式(6)后得式(8),如下所示。 (8) 其中,ε是一個極小正常數(shù),存在目的是保證式子有意義,該計算式可以不均勻的提高陰影處的亮度。為保證式(8)有意義,基于式(7)將圖像倒轉(zhuǎn)可表示為 1-Ix=[1-Rx]·Lx+a[1-Lx] (9) 其中,加入權(quán)重因子a用來調(diào)整飽和度,接下來闡述式(9)與式(6)的關(guān)系。 (10) 將式(10)代入式(9)中可得式(11)。 (11) 在式(11)中,當a的值取1時可以發(fā)現(xiàn)其與式(8)相等,因此保證了公式推演的正確性。此處a取值σn/σs·μs;其中,σn和σs分別是非陰影與陰影區(qū)域像素方差;μs是陰影區(qū)域像素平均值。 實際照明條件下陰影邊緣光照強度逐漸減弱,陰影檢測時可能存在邊界檢測不準確的情況。陰影光照恢復后,邊緣光照過度不自然,嚴重影響陰影去除的效果,因此需平滑邊緣區(qū)域。邊緣區(qū)域使用n×n均值濾波平滑陰影與非陰影區(qū)域。根據(jù)距離陰影邊緣遠近,按式(12)由近及遠賦予由大到小的權(quán)值。 1-d/(max-min) (12) 其中,max與min分別是區(qū)域中像素點距離邊緣像素最遠及最近的距離;d是區(qū)域像素距離邊緣像素點的距離。 在恢復陰影區(qū)域光照后會引起紋理細節(jié)的丟失,為了還原丟失的紋理細節(jié)需要應用原始陰影圖像作為指導,以便增強陰影區(qū)域S的紋理細節(jié)。本文改進了紋理增強梯度下降方法中權(quán)重的系數(shù),增強紋理的計算式如式(13)所示。 (13) 式(13)中前半部分是數(shù)據(jù)項,后半部分是梯度約束項,用來保持陰影區(qū)域的梯度信息。Ix是原圖中像素x的值;Rx是恢復亮度后的像素x的值;?是梯度算子;λ1是用于平衡梯度的約束項,本文將其改進取值為σn/σs·μs,σn和σs分別是非陰影與陰影區(qū)域像素方差,μs是陰影區(qū)域像素平均值。 由于陰影的影響,陰影區(qū)域的梯度可能會減弱,因此為式(13)中的原始梯度新設置了一個權(quán)重系數(shù)λ2來補償光遮擋造成的梯度弱化。對于一幅圖像來說λ2是固定的,取值為μn-σn/σs·μs,μn是非陰影區(qū)域像素平均值。改進后的函數(shù)如式(14)所示。 (14) 通過式(14)梯度下降法解決了紋理細節(jié)丟失的問題,紋理細節(jié)的增強,可以有效恢復陰影區(qū)域的真實信息,達到去除陰影的效果。 文中提出去除陰影的算法如下所示,并在數(shù)據(jù)集UIUC上驗證了算法的有效性。 算法:陰影去除算法; 輸入:已知RGB圖像陰影位置Ishadow與原始圖像I; 輸出:陰影去除后恢復陰影處真實信息的圖像R′。 1.x∈Ω;//Ω是以陰影像素點x為中心的n×n的區(qū)域 2.w←0;//初始化平滑權(quán)重 3.for eachxin shadow 4.calculateσs//陰影區(qū)域像素方差 5.calculateμs//陰影區(qū)域像素平均值 6.end for; 7.for eachxin noshadow 8.calculateμn//非陰影區(qū)域像素平均值 9.calculateσn//非陰影區(qū)域像素區(qū)域方差 10.end for; 11.λ1,a←σn/σs·μs; 12.λ2←μn-σn/σs·μs; 13.Ishadow→R′、G′、B′ //分離通道為R′、G′、B′ 14.for eachxin shadow 15.將x帶入式(9)計算得Lx 16.Rx←((Ix-1+a)/(1-1/a+Lx))+1-a 17.end for; 18.for eachxin edge 19.foriinΩ 20.wi←1-d/(max-min) 21.根據(jù)權(quán)重平滑邊緣區(qū)域 22.end for 23.end for; 24.for eachxin shadow 25.?Ix//對原圖像求導后,計算每個像素的值 26.?Rx//求導 27.Rx←∑(Ix-Rx)2+λ1∑(?Ix-λ2?Rx)2//恢復陰影處紋理細節(jié) 28.end for 本文實驗的目的是改善陰影恢復后原陰影處的光照不飽和度與紋理一致性,并用公開數(shù)據(jù)集UIUC驗證結(jié)果。實驗的軟硬件環(huán)境如表1所示。 表1 軟硬件環(huán)境 為評估陰影檢測效果,陰影檢測評價標準采用平均錯誤率(Balanced Error Rate,BER)計算了陰影區(qū)域與非陰影區(qū)域像素級分類誤差率,如式(17)所示。 (17) 其中,TN、TP分別表示正確分類的非陰影與陰影像素數(shù);FP表示錯誤分類為陰影的非陰影像素數(shù);FN表示錯誤分類為非陰影的陰影像素數(shù)。使用BER方法的原因是因為圖像中陰影像素點比非陰影像素點數(shù)目少,BER值越低表示陰影檢測效果越好。 為衡量陰影去除效果,文獻[18]在文獻[6]提出的均方根誤差(Root Mean Square Error,RMSE)方法的基礎(chǔ)上,提出了均方根誤差比(Root Mean Square Error Ratio,ER)來衡量陰影去除的效果。本文使用文獻[18]的評價標準,如式(18)所示。 (18) 其中,IS、IR″、IG分別表示陰影圖像、陰影去除后的圖像、無陰影真實圖像,均方根誤差比值越小表明效果越好。 4.2.1 陰影檢測 將獲取的RGB顏色通道圖像轉(zhuǎn)換到HSV三通道格式,分離三通道獲得色度H、飽和度S、亮度V,依據(jù)陰影具有較高的飽和度和較低的亮度值,根據(jù)式(4)對每個像素點計算得到歸一化飽和值差分指數(shù)NSVDI。 圖2所示為得到的NSVDI結(jié)果圖,從左到右依次為S飽和度、V亮度和NSVDI陰影遮罩圖。 圖2 飽和強度圖 由圖2可以看出,應用飽和度與亮度信息計算得到的NSVDI圖中陰影明顯區(qū)別于圖像其它部分。對得到的NSVDI使用大津法自動獲取閾值,每一個像素點的NSVDI與閾值相比較,大于閾值的為陰影像素點,小于閾值的為非陰影像素點。比較后得到的陰影二值掩碼圖如圖3所示。 圖3 二值掩碼圖 由圖3可以看出,圖像中陰影已被識別出來。使用本文與其它方法在公開數(shù)據(jù)集UIUC上檢測陰影的平衡誤差率如表2所示。 表2 平衡誤差率對比 由表2可以看出,相比于其它方法,在本文OSTU方法下,陰影檢測的平衡誤差率更低,陰影檢測效果更好。這是由于本文使用OSTU方法對HSV模式下飽和度與亮度的飽和度差分指數(shù)自動求取閾值,可更好地檢測出陰影。文獻[1]提出的方法由于受到低反射率影響導致BER值更高;文獻[6]提出的方法通過訓練尋找成對區(qū)域來檢測陰影,當訓練不充分時會導致高的BER值;文獻[10]則是依托于固定閾值,導致陰影分類不準,從而在某些情況下BER值高。 4.2.2 恢復陰影真實信息 在估算入射光方法中,通過多次對比實驗發(fā)現(xiàn)Ωx的鄰域取值n范圍在3~5時效果較好。當n取值過大時會出現(xiàn)色彩偏差,過小時達不到估算效果。在平滑陰影邊緣區(qū)域中,多次對比實驗數(shù)據(jù)表明平滑范圍值n取5~8時可以達到較好的效果。n較小時平滑效果不明顯,當取更大的值時平滑效果增加不明顯。 假定ER(image)表示在整幅圖像上計算均方根誤差得到的ER值;ER(shadow)表示在陰影位置計算均方根誤差得到的ER值。本文陰影去除方法與其它陰影去除方法在UIUC數(shù)據(jù)集上均方根誤差比ER值比較如表3所示,視覺效果對比則如圖4所示。 由圖4可以看出,本文方法在飽和度上比其它方法恢復的更好,這是由于本文采用HSV模式將最大值替換為均值,解決了光照不飽和問題。文獻[10]提出的方法沒有考慮光照飽和問題,而是直接使用固定常數(shù)恢復陰影區(qū)域信息,因此在某些情況下飽和度過高。相比于其它幾種方法,本文提出的方法在紋理細節(jié)上視覺效果更佳,這是由于本文使用改進的紋理增強梯度下降方法,不需要大量模型訓練,節(jié)省了時間。文獻[1]提出的方法采用支持鄰域內(nèi)部平滑來恢復陰影真實信息,該方法沒有考慮陰影內(nèi)部紋理信息。文獻[6]提出的方法依賴于不同照明對和不同材料對,當照明對與材料對尋找不準確時導致陰影恢復效果欠佳。同樣由于上述原因,在表3的均方根誤差比中相對于其它方法本文方法的值更低。 表3 均方根誤差比 圖4 實驗結(jié)果對比圖 陰影的存在會造成有用信息的丟失,本文在Retinex理論基礎(chǔ)上,提出了一種估算入射光圖和改進梯度下將方法中權(quán)重的方法,改善了光照恢復不飽和問題。對于每一個陰影處像素點,初步恢復陰影處信息的值,之后利用自適應權(quán)重參數(shù)恢復陰影區(qū)域的紋理,可達到恢復陰影區(qū)域真實信息的目的。陰影檢測使用亮度與飽和度信息在減少計算量的同時提高了陰影識別準確率。真實數(shù)據(jù)集實驗表明,本文方法相對于其它主流方法在平衡錯誤率、均方根誤差比兩個評估指標上有著明顯的提高,同時保持了較好的視覺效果。后期工作中,將進一步探究在復雜背景下提高去除陰影后紋理的一致性。2 恢復陰影區(qū)域真實信息
2.1 Retinex理論
2.2 估算入射光
2.3 平滑邊緣區(qū)域
2.4 恢復紋理細節(jié)
3 基于Retinex的陰影去除算法
4 實驗與分析
4.1 評價指標
4.2 實驗結(jié)果分析
5 結(jié)束語