涂繼輝,杜紅,眭海剛,徐川
(1.長江大學 電信學院,湖北 荊州 434023;2.武漢大學 測繪遙感信息工程國家重點實驗室,武漢 430079)
高分辨率航空影像是對地球表面的各種目標進行測量和信息提取的一種重要手段[1-2]。由于各種人工建筑物或者樹木的遮擋,高分辨率航空影像中常常會出現許多陰影區域。航空影像中的陰影雖然可以用于對建筑物的提取和高度估計,但同時也對影像中信息的提取、識別和判讀造成了一定程度的干擾[3]。因此,如何高效準確進行陰影的檢測和去除成為航空影像預處理所面臨的難題。
針對遙感影像的陰影干擾,學者們提出了大量陰影檢測和去除的算法。陰影檢測算法主要分為2類:一類是基于幾何模型的方法,該方法主要利用影像的太陽高度角、傳感器參數和地面上物體的幾何形狀等先驗信息來檢測陰影[4-5],這種方法計算復雜度高,只適合特定場景;另一類是基于陰影特性的方法,該方法主要利用陰影與非陰影區域光譜特征差異來檢測陰影[3,6-9]。由于基于顏色和亮度的檢測方法更加貼近人的視覺方式,因此這類方法更加簡單易行。這類方法又分為2種:一種是基于樣本訓練[9],然后進行分類檢測出陰影,這類算法需要提供足夠的樣本;另一種是利用彩色空間的變換[3,6],把影像從RGB空間變換到其他彩色空間(HSV、HCV、YIQ等),再利用Otsu等分割算法進行閾值分割,這類算法中顏色空間轉換和閾值設定加大了算法的復雜度。陰影去除方法的核心思想是估算光照補償因子來恢復陰影區域,從而達到陰影去除的效果[10]。因此補償因子的估算是陰影去除的關鍵,而如何自動準確在陰影和非陰影區域找到同質區域,是陰影光照補償因子估算的難點。目前主要陰影去除的方法是在同質條件下陰影和非陰影區域,通過顏色不變性[6,11]、伽瑪校正[12]、線形相關[13]、灰度直方圖[14]和內外輪廓線[15]等方法,估算陰影光照補償因子,從而達到陰影去除。然而這些方法對于如何自動準確定位同質區域沒有提供較好的解決思路。
基于當前研究的現狀,本文提出了一種新的高分辨率遙感影像的陰影自動檢測和去除方法。該方法先在RGB顏色空間下利用約束條件下的顏色不變量進行陰影的粗檢測;然后用粗檢測區域的最大內切圓作為初始零水平集,在緩沖區中進行水平集演化,得到陰影的精確輪廓;再利用輪廓點的鄰域窗口的像元估計陰影光照補償因子。由于陰影輪廓線臨近建筑物的一部分明顯為非同質區域,本文利用航空影像的POS信息和太陽高度角進行剔除;最后利用陰影的光照補償因子去除陰影。該方法主要優勢如下:無須進行顏色空間域之間的轉換,直接在RGB彩色空間下檢測陰影,減少了計算的復雜度;利用水平集算法進行陰影輪廓的演化,不但能夠提取較為完整的陰影區域和精確的陰影輪廓,而且也為同質區域選取提供了幫助;利用陰影輪廓上點的鄰域作為同質區域,可以簡單、自動和準確地定位同質區域。實驗結果表明,本文算法的陰影檢測準確,且效率高,補償后的影像視覺一致性較好。
根據Retinex理論[16],影像是由光照分量反射分量合成而得到。其中光照分量是光源直接照射地面的光線,反射分量是地面反射的光線。影像的光照物理模型如式(1)所示。
S(x,y)=L(x,y)×R(x,y)
(1)
式中:(x,y)為影像像素點坐標;S(x,y)、L(x,y)和R(x,y)分別表示原始影像、光照分量和地面反射率。在自然光照環境下,非陰影區域的光照分量由直接光源分量Ld和環境散射光源分量Le合成。由于障礙物遮擋,直接光照減弱形成了陰影區域,那么陰影區域的直接光源分量應該乘以系數k。因此,式(1)的光照物理模型可以變換為式(2)。
S(x,y)=(k×Ld(x,y)+Le(x,y))×R(x,y)
(2)
當k=1時,表示S(x,y)為非陰影區域;當k=0時,表示S(x,y)為陰影中的本影區域;當0 (3) 由于式(3)中陰影的本影區域k=0,并且同一幅影像中的同質區域內直接光源分量Ld、環境散射光源分量Le和反射光分量R相等,設Ld和Le比值為c,c為常量,那么式(3)可以簡化為式(4)。 (4) 陰影去除的核心就是將陰影區域的光照恢復到非陰影區域,而對各個波段分別處理,盡可能保證色調信息的一致性。根據以上的數學推導,陰影去除的目標就是要找到同質區域下的陰影區域和非陰影區域的像素點,利用式(4)估計出比值,然后再利用估計值,將陰影區域像素點各個波段顏色值變換到非陰影區域,從而完成陰影的去除。因此可以認為陰影去除的方法一般分為兩步:一是陰影區域的精確檢測;二是尋找同質區域下的陰影區域和非陰影區域,估算出陰影光照補償因子。 本文的算法主要有如下步驟。首先,利用基于約束條件下的顏色不變量進行陰影區域的粗檢測;其次,對陰影粗檢測的區域構造外接矩形擴大區域作為緩沖區;再次,利用粗檢測區域的最大內切圓作為零水平集,在緩沖區中進行水平集演化,得到陰影的精確輪廓。精確輪廓可以提供更加完整的陰影區域,同時也為后一步同質區域的選取提供了幫助,因為利用陰影輪廓點的鄰域作為同質區域的前提條件是提取精確的陰影輪廓。然后,由于陰影輪廓靠近建筑物一部分明顯不能作為同質區域,應該剔除掉,因此利用航空影像的POS信息和太陽高度角,求出陰影在影像上的方向,通過陰影質心和陰影的方向切割出不與建筑物相連接的陰影輪廓;最后,對每個陰影輪廓點的鄰域建立一個模板窗口,利用模板窗口中的陰影和非陰影部分的關系,估計出陰影光照補償因子,從而進行陰影去除。算法的總體流程如圖1所示。 圖1 算法總體流程圖 顏色不變量最初是由Gevers等[17]提出來的,它是一種顏色集合模型,不受視角、物體表面光滑程度、光照方向、光照密度和亮度的影響。目前許多研究者利用顏色不變量替代NDVI進行植被的檢測和提取,同時也把它用于陰影檢測。例如文獻[17]中利用彩色RGB空間的藍色通道和綠色通道對陰影進行檢測。文獻[18]對文獻[17]進行了改進,利用了RGB的3個通道的顏色進行陰影檢測。本文是在文獻[18]陰影檢測的基礎上,加上了約束條件(式(5)),主要目的是為了在陰影檢測時剔除綠色植被的錯誤檢測。 (5) 式中:i,j是影像的行列號;SC表示檢測的陰影區域;R(i,j)、G(i,j)和B(i,j)分別代表RGB彩色空間的3個顏色通道。因為僅用式(5)中的第一個表達式進行陰影檢測,經過實驗發現會把綠色植被作為陰影錯誤檢測,因此需要加入約束條件,即式(5)中的第二個表達式作為約束項來濾除錯誤檢測。根據光學原理,植被區域的吸收帶位于藍色波段和紅色波段,在綠色波段處為反射峰。非陰影區的光照主要來源于反射光、環境光和大氣散射,傳感器感知的光強主要為反射光,綠地能強烈反射綠光,因此綠地區域對應像素的G分量有較大的概率。本文在式(5)中加入了檢測約束條件,可以濾除檢測的綠色植被區域。 由于陰影區域的顏色不均勻,采用2.2節顏色不變量檢測的陰影區域邊界不精細,無法得到較為完整的陰影區域,水平集演化算法具有靈活的曲線演化能力,分割演化的結果輪廓精細清晰且連續性好。由于經典的水平集泛函的極小值通常不容易求得,如果零水平集選擇不當,不僅容易演化到局部極小值,而且會降低運算速度,所以水平集函數的初始化非常重要。本文利用已檢測陰影區域構建水平集的初始函數和局部緩沖區,提高水平集演化的精度和速度。具體實現過程如下: 1)根據式(5),可由式(6)對圖像進行閾值分割,得到只有陰影和非陰影區域的二值圖像。其中I(i,j)表示新生成的二值圖像,T表示區分陰影和非陰影的閾值。 (6) 2)根據步驟1)中,設二值化圖像中陰影區域為Ω,對區域Ω作最小外接矩形,對外界矩形進行擴大一半的面積,得到水平集演化的局部緩沖區Ω0。在對區域Ω求取最大內切圓Φ0,用此Φ0作為初始水平集函數。 Φ0(x,y)=(x-x0)2+(y-y0)2=r2 (7) 3)由于陰影區域內并非均勻區域,往往有樹木、車輛等干擾,因此采用文獻[19]提出的一種處理非均勻圖像的水平集分割模型進行演化。目前的CV模型只針對灰度圖像進行演化分割,本文將CV模型擴展到彩色影像上。假設在緩沖區Ω0內為RGB彩色圖像空間,局部影像Ii(x,y):Ω0→R2;i∈{r,g,b}。緩沖區中的輪廓線C內為陰影區域Ωshadow,C外為非陰影區域Ωnonshadow,cshadow表示陰影區域內彩色信息的均值,令cshadow=(cshadowr,cshadowg,cshadowb);cnonshadow表示非陰影區域內的彩色信息的均值,令cnonshadow=(cnonshadowr,cnonshadowg,cnonshadowb)。Φ是水平集函數,擬合的能量函數為非均勻灰度,設k為非均勻亮度因子,基于水平集C-V模型的能量函數見式(8)。 (8) (9) 當Φ不變的情況下,極小化能量函數E(Φ,cshadowi,cnonshadowi),可得到cshadowi和cnonshadowi的表達式為: (10) 為了求解水平集函數Φ,令cshadowi和cnonshadowi不變,引入時間變量t,將水平集Φ對時間變量t求導,式(8)對應的偏微分方程見式(11)。 (11) 其中,Φ0(x,y)=(x-x0)2+(y-y0)2=r2 本文基于陰影輪廓點進行陰影去除的主要思想是:如圖1第⑥步,認為圖像中某一個點與其鄰域內的點為同質區域,因此取陰影輪廓上的點與其鄰域的點組成一個掩模窗口,這個窗口一部分處于陰影區域,另一部分處于非陰影區域,通過陰影區域和非陰影區域的平均像素點的比值,來估計陰影補償因子。為了使補償因子更加精確,本文利用陰影輪廓上的所有點來估計陰影補償因子。但又由于陰影輪廓臨近建筑物部分的輪廓點在鄰域范圍內明顯為非同質區域,因此不能讓這部分點參與估計陰影補償因子,需要剔除。本文利用航空影像的POS信息結合航飛的時間來推算出陰影在影像上的方向,通過陰影區域的質心和方向剔除臨近建筑物陰影輪廓曲線段。具體實施步驟如下: 1)根據文獻[20-21]的方法,利用航飛影像的POS信息和航飛的時間,通過式(12),求出太陽高度角,再根據式(13),求出太陽的方位角A。 sinα=sinφsinδ+cosφcosδcosθ (12) (13) 式中:α是太陽高度角;δ是太陽赤緯;φ是觀測地的道理緯度;θ表示地方時角。 2)如圖2所示,設陰影區域Ω的質心點P0為(x,y),太陽的方位角為A,那么有質心P0和方位角對應的直線方程L1為y=xtanA+b;過質心P0垂直L1的直線方程L2為y=xtan(90-A)+b,直線L2與陰影沿著太陽方向角外的輪廓線交點為A1和A2,曲線段A1A2上的點就是參與因應補償因子估計的點。 圖2 陰影補償因子估計示意圖 5)對陰影區域Ω每個點,利用步驟4)中的陰影補償因子估計進行換算,就可以去除陰影。 為了驗證本文所提出算法的性能,對2014年四川北川航空遙感影像(分辨率0.25 m)和2015年武漢市航空遙感影像(分辨0.15 m)進行實驗,實驗環境是Inter Xeno CPU E3-1220 v3 3.10 GHz,Win7,8 GB內存的PC機,編程工具為Matlab2012a。為了定量評價陰影檢測的性能,本文采用漏檢率FOER、誤檢率FAER和總錯誤率FTER,分別定義如式(14)~式(16)所示。 (14) (15) FTER=FAER+FOER (16) 式中:TS表示陰影區域像素點數;FN表示未檢測的陰影像素點數;FP表示非陰影區域誤檢為陰影的像素點數。漏檢率、誤檢率和總錯誤率都是越小表示檢測效果越好。為了定量評價文獻中陰影去除算法的效果,主要通過比較陰影去除后區域內的平均亮度和平均梯度作為定量評價。由于文獻[22]是一種比較經典的陰影去除方法,因此本文將與文獻[22]中改進的Wallis陰影去除算法進行比較。 陰影去除效果受到陰影區域檢測精度的制約,這部分實驗將利用式(14)、式(15)、式(16)對陰影檢測的精度和陰影去除效果進行定量評估。從圖3、圖4、圖5可以看出,本文陰影去除方法對比改進的Wallis算法,能夠較好地擴大陰影區域的亮度,去除后的細節較為清晰。表1給出了3幅影像陰影檢測的定量評價指標,本文的陰影檢測算法的漏檢率均低于文獻[8]和文獻[9]方法,誤檢率也略低于另外2種方法。總錯誤率即綜合性能評價分析,均低于另外2種算法,說明本文陰影檢測方法具有明顯的優勢。本文的陰影檢測算法之所以取得了較好的檢測效果,主要在于水平集算法能夠演化出精確的輪廓邊界,顏色不變性的粗檢測也為水平集演化提供了先驗信息。 圖3 陰影檢測結果(武漢地區1) 圖4 陰影檢測結果(武漢地區2) 圖5 陰影檢測結果(北川地區) 表1 陰影檢測結果評價表 % 為了進一步檢測利用陰影輪廓鄰域點得到的補償因子估計的準確性,本文對圖3的最大輪廓鄰域中的陰影部分點和非陰影部分的點進行了統計,所用鄰域窗口大小為7像素×7像素。圖6為陰影補償因子估計。從圖6可以看出,2條曲線具有較強的相似性,即曲線上的點的比值恒定,由此可以推斷輪廓點鄰域中的陰影部分和非陰影部分的點屬于同質區域,利用這些點進行陰影補償因子的估計,具有較好的可靠性。由于可近似認為地面在1~2 m2范圍內為同質區域的可能性較大,因此鄰域窗口的大小選取主要取決于影像分辨率與地面同質區域面積的比值。 從圖7、圖8、圖9可以看出,本文陰影去除方法對比改進的Wallis算法,能夠較好地擴大陰影區域的亮度,去除后的細節較為清晰。表2給出了3幅影像陰影去除后的定量評價指標,本文陰影去除算法的亮度均值B和平均梯度值T比原始區域得到了大幅度提高,但不易達到與目標值完全一致的水平,與人工確定3個參數的改進Wallis去除算法的最佳效果比,本文方法整體較優。本文的陰影去除算法之所以取得較好的去除效果主要在于:利用前一步陰影檢測中獲取的較完整的區域和較精確的輪廓,通過輪廓點鄰域區域作為同質區域用于陰影補償因子的估計,不但估計準確,而且自動化程度高。因此本文算法能夠更加穩定和高效地統一恢復所有陰影區域的基本信息,細節紋理恢復較好。 圖7 陰影去除結果(武漢地區1) 圖8 陰影去除結果(武漢地區2) 圖9 陰影去除結果(北川地區) 表2 陰影去除結評價表 為了解決陰影對高分辨率航空影像的信息提取存在著干擾的問題,本文提出了一種新的陰影自動檢測和去除方法。該方法利用顏色不變量檢測出陰影的區域,然后利用水平集的演化得到陰影精確輪廓,最后利用陰影邊界鄰域點作為同質區域估算陰影的補償因子,從而去除陰影。實驗證明,該方法能夠自動精確地獲取陰影區域和進行陰影的去除,不但較好提高了整體的亮度,而且使得陰影的區域地物細節得到了較好的恢復,這對遙感影像的自動化預處理具有重要的意義。2 算法描述
2.1 算法總述

2.2 基于顏色不變量的陰影檢測
2.3 基于水平集的陰影輪廓演化





2.4 基于陰影輪廓點鄰域的陰影去除



3 實驗結果和分析
3.1 陰影檢測




3.2 陰影補償參數估計
3.3 陰影去除




4 結束語