張思雨
(陸軍炮兵防空兵學院 合肥 230031)
近年來,隨著航空攝影技術的快速發展,航拍圖像的數據量也在迅猛增加。航拍圖像已廣泛應用于地理勘測、軍事偵察、農業、環境保護和資源勘查等領域。然而航拍設備容易受到云層的影響,使地物信息受到云層遮擋。根據國際衛星云氣候項目流量數據(International Satellite Cloud Climatolo?gy Project-Flux Data,ISCCP-FD)顯示,地球表面的年平均云量約為66%[1]。云層遮擋降低了航拍圖像的利用率,嚴重影響了研究人員后期的圖像識別和分析等工作。因此,有效地對航拍圖像進行云檢測并減少或剔除云覆蓋的影響具有十分重要的意義。
航拍圖像的云檢測屬于圖像分割范疇,盡管人們在圖像分割方面已取得了大量的研究成果,但目前尚無通用的分割理論,現有算法大多數都是針對某類具體問題。航拍圖像數據量較大、下墊面的紋理結構信息比較復雜,已有的自動圖像分割方法[2~4]和交互式圖像分割方法[5~6]均無法直接運用于航拍圖像的云檢測。
現有云檢測方法的對象一般是多光譜衛星數據,根據云對不同波段的反射特性,設定合適的閾值進行云檢測[7]。然而大多數航拍圖像只有紅黃藍(RGB)三個通道,沒有其他輔助波段信息,因此不能直接用于航拍圖像的云檢測。文獻[8]基于雙邊濾波算子提出逐步細化的航拍圖像云檢測方案,然而,雙邊濾波算子不適用于提取任意尺度的細節,所以當增大平滑參數進行多次迭代時,不能較好地保持邊緣,會導致梯度反轉等問題[9]。而且,雙邊濾波不能較好處理邊界模糊的情況,所用到的多尺度雙邊濾波計算代價較高,雖然已有加速雙邊濾波的方法[10~11],但這些方法一般采用下采樣和量化策略,不可避免地會對結果造成影響。文獻[12]提出基于邊緣敏感遞歸濾波的云檢測方法,檢測效果較好,但算法的構成過于復雜。文獻[13]結合Sobel和LOG算子構建云層細節圖像,降低了檢測錯誤率,但有時會對主云區旁邊的薄云和半透明云區造成漏檢。
針對以上分析,本文提出一種基于閾值遞歸選取和引導濾波的航拍圖像云檢測算法。首先采用改進的轉換模型將航拍圖像從RGB顏色空間轉換到HSI(H,hue,色調;S,saturation,飽和度;I,intensi?ty,亮度)空間,得到云區顯著圖作為下一步閾值選擇的輸入圖像,拉大云區和非云區的差異;然后基于最大類間、類內方差比法對云區顯著圖進行閾值遞歸選擇,綜合航拍圖像中云區的統計特征,得到初始云區;最后利用引導濾波優化薄云檢測,通過形態學閉運算修正小型孔洞得到最終云區。實驗表明,本文算法結果較好地檢測出了薄云和半透明云區,更接近于人眼實際觀測結果。
由于HSI色彩空間最符合人的視覺系統感知,因此首先將航拍圖像從RGB色彩空間轉換到HSI空間。根據大量統計[8],在亮度I分量上賦以權重,對傳統的幾何推導轉換公式作以改進,設

式中R、G、B對應紅、黃、藍三個通道的像素值。則HSI的計算公式為

式中H、S、I對應色調、飽和度和亮度。
航拍圖像中的云區一般亮度I較高,飽和度S較低,為了突出云區和非云區的差異,計算二者的歸一化差值P= | (I-S)/(I+S)|,將其值歸一化到[0,255],作為下一步閾值選擇方案的輸入圖,如圖1所示。可以看出,P特征在強化主云區的同時,較好地保持了薄云區域的邊界。

圖1 航拍圖像的不同光譜特征
基于P特征圖,選擇合適的閾值即可初步分割云區和非云區,一般采用基于最大類間方差的Otsu方法[14],但該方法沒有考慮到類內方差的影響,所得的閾值會有一定的偏差,為了避免這一問題,本文提出基于最大類內、類間方差比的遞歸閾值選取方法。首先給定一個初始閾值,將圖像分成兩類C1和C2,計算它們的方差、灰度均值和總體均值μ:

其中Nci表示屬于該類的像素值個數,N表示圖像的整體像素個數。兩類對象在圖像中的出現概率類內方差σ2in為

則選擇的閾值T的計算公式為

把初步云區與非云區的類間方差和面積差作為遞歸的結束條件[12]。設第i次遞歸后,云區面積和非云區面積分別為Ai0和Ai1,可得二者的歸一化面積差:

可以看出,隨著遞歸的進行,?Ai會逐漸增大,而類間方差則逐漸減小,基于此認識設定結束參數 Ei:

設結束參數為E,當Ei≥E時,結束遞歸。若E值設置過大,會導致云區檢測成非云區,若過小,則會出現云區檢測不徹底的情況,經文獻[12]大量實驗分析,E=0.52時檢測效果最好。
基于P特征圖,定義初步云區如下[13]:如果P特征圖中像素點n滿足當T≤100時,Pn≥100,或當 100≤T≤150時,Pn≥T ,或當 T≥150 時,Pn≥150,滿足以上條件的像素點的集合即為初步云區。
文獻[8]統計了500張航拍圖像的亮度和色調分布后發現:航拍圖像中云色調的值域為[50,80],且95%的云像素的亮度值都不小于100。基于此認識,去除初步云區中不滿足上述條件的像素點,優化初步云區。
通過上一步檢測一般能得到視覺上比較容易辨認的云區,對于薄云和半透明云區檢測,本文引入引導濾波處理這一問題。
經大量實驗數據統計發現:薄云的亮度值約為厚云的30%~50%[15]。且薄云一般出現在主云區的附近,同時伴有半透明云區的出現,可能會出現漏檢現象。本文通過引導濾波[16]優化薄云的檢測效果,引導濾波和雙邊濾波都具有保邊特性,但在細節上效果更好。引導濾波認為函數上一點與其鄰近部分的點成線性關系,那么一個復雜的函數就可以用很多局部的線性函數表示,當要求該函數上某一點的值時,只需計算所有包含該點的線性函數的值并做平均即可。
本文采用快速引導濾波[17]加速傳統引導濾波的計算過程,將上節得到的初步云區作為輸入圖像,原始航拍圖像為參考圖像,設置窗口半徑為60,規則化參數為0.001,采樣率為15,得到的輸出圖像如圖2所示,可以看出細致云檢測對薄云的檢測效果更為理想,檢測出了初步云檢測沒有識別到的云區,降低了漏檢率。
從圖2(d)可以看出,細致云檢測結果存在一些小型孔洞和瑣碎細節,我們利用形態學運算處理這一問題。形態學運算是基于形狀的一系列圖像處理操作,通過將結構元素作用于輸入圖像來產生輸出圖像。

圖2 引導濾波優化薄云檢測
基本的形態學運算是膨脹和腐蝕,膨脹運算能填充邊緣或0像素內部的孔,腐蝕運算能提取骨干信息,去掉孤立的0像素。對于本文情況,采用先膨脹后腐蝕(閉運算)的操作去掉云掩膜中的小型孔洞,得到最終的云檢測結果。
為了驗證本文算法的效果,以文獻[13]和文獻[8]作為對比算法,選取文獻[8]提供數據庫中的兩幅圖像作為實驗圖像進行對比試驗,尺寸分別為600×400和1024×768,檢測結果如圖3、圖4所示。同時,本文還選取了一張實拍圖像進行實驗,實拍圖像來源于航拍飛機拍攝的江西省彭澤縣圖像,因為原圖尺寸過大,截圖到427×300像素進行實驗,結果如圖5。
在圖3中,文獻[13]的結果出現大量的錯檢情況,文獻[8]則錯誤的把本為獨立的團云連接起來,且存在部分漏檢現象,本文算法的檢測精度更高;在圖4中,文獻[13]的下半部分結果還比較令人滿意,但在頂部出現大面積粘連,文獻[8]的檢測結果比較粗糙,相比而言,本文算法的結果更為精細;在圖5的實拍圖像對比實驗中,文獻[13]出現大量錯檢情況,尤其是把圖像左側的裸地錯檢為云區,文獻[8]對主云區旁邊的薄云和半透明云區出現漏檢,本文算法則準確地檢測到了薄云和半透明區域。綜上,在視覺主觀評價上,本文算法優于對比算法。

圖3 第一組云檢測對比

圖4 第二組云檢測對比

圖5 實拍圖像檢測對比
為了進一步客觀衡量本文算法的有效性,采用錯誤率(Error Rate,ER)作為評價指標定量分析各個算法的精確度,公式如下:

式中CN為被漏檢的云像素,NC為誤檢為云的非云像素,PN為圖像的像素總數,結果如表1。可以看出,本文算法在錯誤率上的表現皆優于對比算法。

表1 不同算法的錯誤率對比
對于現有航拍圖像云檢測算法中易出現的漏檢和錯檢問題,本文提出一種基于閾值遞歸選取和引導濾波的云檢測方法。首先結合基于遞歸的最大類內、類間方差比法和前人的統計特征得到初始云區,然后采用引導濾波進一步細化薄云和半透明云的檢測,最后利用形態學閉運算排除了云區掩膜的小型孔洞,實驗結果的錯誤率更低,更符合人的視覺檢測效果。下一步工作將收集大量有云航拍圖像,采用機器學習的方法學習云區和非云區的特征,進一步提高檢測效率和精度。