杜家昊,周 晴,趙文杰
(1.中國(guó)科學(xué)院國(guó)家空間科學(xué)中心 復(fù)雜航天系統(tǒng)電子信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 101499; 2.中國(guó)科學(xué)院大學(xué),北京 101408)
根據(jù)國(guó)際衛(wèi)星云氣候計(jì)劃觀測(cè)數(shù)據(jù),全球67%以上區(qū)域時(shí)常被云層覆蓋[1]。云的覆蓋會(huì)導(dǎo)致遙感圖像信息缺失,甚至無(wú)法使用,浪費(fèi)了衛(wèi)星寶貴的存儲(chǔ)空間[2]。因此高效、準(zhǔn)確的云檢測(cè)算法對(duì)遙感衛(wèi)星在軌應(yīng)用具有重要意義。
目前的云檢測(cè)方法,大致可分為3類:基于閾值的方法、基于傳統(tǒng)機(jī)器學(xué)習(xí)的方法和基于深度學(xué)習(xí)的方法。基于閾值的方法是利用云和其它地物在不同光譜范圍內(nèi)的反射率差,人工設(shè)置閾值和特征提取規(guī)則來(lái)識(shí)別云和下墊面[3]。此外,許多算法結(jié)合了多時(shí)間信息[4]、空間信息[5]和動(dòng)態(tài)閾值[6]。隨著機(jī)器學(xué)習(xí)技術(shù)的興起,傳統(tǒng)的機(jī)器學(xué)習(xí)算法如人工神經(jīng)網(wǎng)絡(luò)[7]、支持向量機(jī)[8]和隨機(jī)森林[9]已經(jīng)被用于云分類問題。與基于閾值的方法相比,它們消除了閾值設(shè)置的問題,并且特征選擇更加靈活[10]。最近,基于深度學(xué)習(xí)的云檢測(cè)方法諸如卷積神經(jīng)網(wǎng)絡(luò)[11]、SegNet網(wǎng)絡(luò)[12]、注意力機(jī)制[13]等,在遙感應(yīng)用領(lǐng)域取得了顯著突破。基于深度學(xué)習(xí)的方法可以自動(dòng)提取重要特征[14],在訓(xùn)練樣本充足的情況下,該方法往往具有較高的精度和較強(qiáng)的泛化能力,但實(shí)現(xiàn)復(fù)雜。
然而,目前的大多數(shù)云檢測(cè)方法對(duì)于與云特征相似的下墊面如雪地、沙漠、冰原等高亮地物往往無(wú)能為力[15]。為此,本文提出了一種基于PSVM的遙感圖像云檢測(cè)技術(shù),既能準(zhǔn)確區(qū)分云和一般地貌,同時(shí)對(duì)于許多難以區(qū)分的特殊下墊面也能準(zhǔn)確識(shí)別。
在遙感圖像云檢測(cè)中,圖像的灰度分布是影響圖像特征的重要因素[16],而紋理特征是當(dāng)圖像灰度按照一定規(guī)律變化時(shí),整體會(huì)呈現(xiàn)出的一種周期性的視覺現(xiàn)象。本文提取圖像的紋理特征主要分為3個(gè)步驟,即圖像灰度共生矩陣的提取、灰度共生矩陣的歸一化處理和圖像紋理特征值的計(jì)算。
灰度共生矩陣通過圖像的空間相關(guān)性來(lái)描述圖像的紋理特征。在提取灰度共生矩陣前,首先要將圖像轉(zhuǎn)化為灰度圖,之后使用式(1)對(duì)圖像進(jìn)行壓縮,以提高算法的運(yùn)算速度。其中圖像壓縮后的灰度等級(jí)為k,通過實(shí)驗(yàn),本文選取k=16
Ave=INT[Ave/(256/k)]
(1)
我們將壓縮好的圖像分成N×N的子塊,假設(shè)圖像子塊中任意一點(diǎn) (x,y) 處的灰度值為g1,它附近的另一點(diǎn) (x+i,y+j) 處的灰度值為g2,這兩點(diǎn)的灰度值構(gòu)成一個(gè)灰度點(diǎn)對(duì) (g1,g2)。 構(gòu)建一個(gè)k×k的方陣,將每個(gè)灰度點(diǎn)對(duì)的所有出現(xiàn)次數(shù)寫入灰度點(diǎn)對(duì)對(duì)應(yīng)的行和列,即可得到灰度共生矩陣,如圖1所示。其中i和j的大小決定了提取的是粗紋理還是細(xì)紋理,i和j的正負(fù)反映了圖像所提取的紋理方向θ,有0°、45°、90°和135°這4種情況,一般選取θ=0°。
圖1 灰度共生矩陣的計(jì)算方法
在得到圖像的灰度共生矩陣后,可以發(fā)現(xiàn),不同尺寸的圖像所包含的像素點(diǎn)個(gè)數(shù)是不相同的,圖像越大,其灰度共生矩陣中元素的取值也就越大,因此需要對(duì)灰度共生矩陣進(jìn)行歸一化,使其適應(yīng)不同大小的圖像。假設(shè)圖像的大小為N×N,灰度共生矩陣應(yīng)按照式(2)進(jìn)行歸一化,歸一化后的灰度共生矩陣也被稱為聯(lián)合概率矩陣
(2)
根據(jù)聯(lián)合概率矩陣,分別計(jì)算出圖像的能量、對(duì)比度、逆差矩、熵、自相關(guān)性等圖像的紋理特征指標(biāo)
(3)
式(3)為圖像能量的計(jì)算公式,其中k為圖像的灰度級(jí)數(shù),它是將聯(lián)合概率矩陣中的所有元素取平方之后相加得到。如果圖像的紋理均勻、單一,則能量會(huì)有較大值,它反映了圖像紋理的粗細(xì)度和分布的均勻程度
(4)
式(4)為圖像對(duì)比度的計(jì)算公式,如果聯(lián)合概率矩陣中偏離對(duì)角線的元素有較大的值,則對(duì)比度較大。因?yàn)槠x對(duì)角線的元素是圖像中灰度值跳變較大的點(diǎn)對(duì),所以對(duì)比度反映了整個(gè)圖像像素值的亮度變化快慢情況
(5)
式(5)為圖像逆差矩的計(jì)算公式,即如果聯(lián)合概率矩陣對(duì)角線元素有較大的值,則逆差矩值較大,它反映了圖像局部紋理的同質(zhì)性,圖像內(nèi)部紋理越均勻,逆差矩越大
(6)
式(6)為圖像熵的計(jì)算公式,當(dāng)聯(lián)合概率矩陣值分布不集中時(shí),熵具有較大的值,反之,熵具有較小的值。熵是對(duì)圖片隨機(jī)性和信息量的度量,當(dāng)圖片中的噪聲很大或者圖片紋理特征隨機(jī)性較強(qiáng)時(shí),熵具有較大的值,反之,熵具有較小的值
(7)
(8)
式(7)和式(8)為圖像的自相關(guān)性計(jì)算公式。當(dāng)圖像的聯(lián)合概率矩陣中各元素值均勻且相等時(shí),即圖像的紋理較為均勻時(shí),圖像的自相關(guān)性較大,反之,自相關(guān)性較小。自相關(guān)性總體來(lái)說反映了圖像在某個(gè)方向上的紋理一致性。
作為最成功的地球觀測(cè)計(jì)劃之一,Landsat計(jì)劃為衛(wèi)星遙感的科學(xué)和應(yīng)用做出了巨大貢獻(xiàn),其開放和免費(fèi)的數(shù)據(jù)政策使得全球受益。本文所用到的遙感圖像數(shù)據(jù)均來(lái)自地理空間數(shù)據(jù)云網(wǎng)站(http://www.gscloud.cn/)的Landsat系列衛(wèi)星。本文首先選取了多個(gè)具有典型特征的云和下墊面圖片600張,將其中的500張圖片作為訓(xùn)練集,50張作為驗(yàn)證集,余下的50張圖片作為測(cè)試集。
對(duì)選取的600張圖片的云區(qū)和下墊面區(qū)域進(jìn)行人工標(biāo)識(shí),之后程序自動(dòng)對(duì)圖片進(jìn)行分塊處理,子塊大小為N×N。算法自動(dòng)統(tǒng)計(jì)每一個(gè)子塊中的云量,將云量超過60%的子塊自動(dòng)分類為云子塊,將云量低于20%的子塊分類為下墊面子塊,其余子塊自動(dòng)剔除。
使用式(1)至式(8),提取所有云和下墊面子塊的能量、對(duì)比度、熵、逆差矩、自相關(guān)性和平均灰度值6個(gè)特征,以N=60為例,提取到的特征值見表1。由于不同的特征值取值范圍不同,因此需要對(duì)特征值進(jìn)行歸一化處理,將所有特征值映射到區(qū)間[0,1]。
表1 圖像特征值(節(jié)選)
SVM是一種針對(duì)分類和回歸問題的統(tǒng)計(jì)學(xué)習(xí)理論[17]。如圖2所示,SVM的主要目的是尋找一個(gè)最優(yōu)的二分類超平面使兩類樣本間的分類間隔最大[18]。其中ω和b分別為超平面的法向量和截距,Margin為樣本間的分類間隔。
圖2 SVM分類原理
根據(jù)2.1節(jié)得到的訓(xùn)練樣本數(shù)據(jù),建立SVM分類器,利用訓(xùn)練樣本 (xi,yi) 求解如下的二次優(yōu)化問題
(9)
(10)
式中:αi和αj為拉格朗日乘子,C為懲罰因子, K(x,xi) 為核函數(shù)。核函數(shù)將高維特征空間的非線性運(yùn)算轉(zhuǎn)換為原輸入空間的核函數(shù)計(jì)算[19],避免了“維數(shù)災(zāi)難”。目前常用的核函數(shù)有4種,分別是線性核(LINEAR)、多項(xiàng)式核(POLY)、徑向核(RBF)和Sigmoid核
K(x,xi)=exp(-γ|x-xi|2)γ>0
(11)
本文選取徑向核函數(shù),它可以將樣本映射到無(wú)限維的空間中,是應(yīng)用最廣的核函數(shù)。同時(shí)核函數(shù)中只有一個(gè)參數(shù),計(jì)算量少,便于調(diào)參[20]。式(11)為徑向核的計(jì)算公式,γ為核函數(shù)的一個(gè)待調(diào)整參數(shù)。選取合適的C和γ值,使用OpenCv庫(kù)提供的SVM分類器,輸入訓(xùn)練樣本,開始訓(xùn)練。之后讀取驗(yàn)證集中的樣本和標(biāo)簽,使用訓(xùn)練產(chǎn)生的svm.xml模型文件對(duì)這些數(shù)據(jù)進(jìn)行驗(yàn)證,以檢驗(yàn)訓(xùn)練模型的準(zhǔn)確度,若模型在驗(yàn)證集中準(zhǔn)確率較低,則調(diào)整參數(shù)C和γ,重復(fù)上述訓(xùn)練和驗(yàn)證過程,直至得到滿意的結(jié)果。本文最終選取C=10,γ=0.01。使用訓(xùn)練產(chǎn)生的svm.xml文件對(duì)測(cè)試集圖像子塊數(shù)據(jù)進(jìn)行測(cè)試,將測(cè)試得到的結(jié)果和測(cè)試集標(biāo)簽進(jìn)行比對(duì),以測(cè)試訓(xùn)練得到的模型的準(zhǔn)確度。
在對(duì)遙感圖像進(jìn)行云檢測(cè)時(shí),先將待檢測(cè)圖像劃分成若干個(gè)子塊,再使用分類器逐一進(jìn)行判斷,將云子塊涂成白色,將下墊面子塊涂成黑色,得到的新圖像即為云檢測(cè)結(jié)果。遙感圖像云檢測(cè)流程如圖3所示。
圖3 云檢測(cè)算法方案設(shè)計(jì)流程
盡管使用2.2節(jié)的方案進(jìn)行Landsat衛(wèi)星圖像云檢測(cè)已經(jīng)達(dá)到了一個(gè)不錯(cuò)的效果,例如,當(dāng)N=60時(shí),分類器對(duì)于絕大多數(shù)的云和下墊面分類準(zhǔn)確率為97.46%,第3章中將給出更為詳細(xì)的數(shù)據(jù)。但是,針對(duì)某些特殊的下墊面,例如雪地、高亮的山脈或地表等和云相似的地物時(shí),分類器常常把它們錯(cuò)分類成云。
在實(shí)驗(yàn)初期,我們嘗試將雪地等特殊下墊面加入到下墊面子塊的訓(xùn)練集中,盡管這樣做保證了訓(xùn)練集的完整性,但是分類器常常表現(xiàn)出糟糕的判別結(jié)果,不但不能準(zhǔn)確地識(shí)別特殊下墊面,甚至對(duì)于許多云和一般下墊面也常常分類錯(cuò)誤,分類準(zhǔn)確率大大降低。為了讓分類器能夠準(zhǔn)確地區(qū)分絕大多數(shù)的云和下墊面,我們先將包含特殊下墊面的衛(wèi)星遙感圖像從訓(xùn)練集中剔除,再進(jìn)行訓(xùn)練。
雖然雪地等特殊下墊面與云的灰度值及紋理特征較為接近,但是分類器真的就無(wú)法將二者區(qū)分嗎?通過將云、特殊下墊面和一般下墊面的能量、對(duì)比度、逆差矩、熵、自相關(guān)性進(jìn)行分析比較,我們發(fā)現(xiàn),相比于一般的下墊面,云和特殊下墊面的特征值較為接近。但是單獨(dú)對(duì)比云和特殊下墊面的特征值,它們之間依然有一定的差別,只是這一差別相比于云和一般下墊面表現(xiàn)得微乎其微,因此分類器難以將云和所有類型的下墊面準(zhǔn)確區(qū)分,但是卻可以準(zhǔn)確地將云和特殊下墊面區(qū)分開。
針對(duì)這一發(fā)現(xiàn),本文提出了一種PSVM算法,將下墊面樣本塊中的所有非特殊下墊面去除,僅保留特殊下墊面和云作為訓(xùn)練集,進(jìn)行訓(xùn)練,得到一個(gè)SVM模型,記作SVM_S。由于訓(xùn)練集包含了完備的云樣本集和不完備的下墊面樣本集,因此訓(xùn)練得到的SVM模型對(duì)云樣本有較高的判別準(zhǔn)確度,且能較好地區(qū)分云樣本和特殊下墊面樣本,但容易將其它下墊面樣本誤判為云。為此,我們?cè)賹⑾聣|面樣本中所有特殊下墊面去除,只保留一般下墊面和云作為訓(xùn)練集,進(jìn)行訓(xùn)練,得到另一個(gè)SVM模型,記作SVM_G,與上一步得到的模型共同實(shí)現(xiàn)云判別。
在對(duì)遙感圖像進(jìn)行云檢測(cè)時(shí),本文同樣采用分塊判斷的方式實(shí)現(xiàn)。為了減小云檢測(cè)過程中算法的誤判對(duì)整體效果的影響,本文對(duì)分塊過程進(jìn)行了改進(jìn),采用重疊分塊的方法,以提高檢測(cè)效果。步長(zhǎng)為S,分塊大小為N,從左至右,從上至下,逐塊對(duì)圖片進(jìn)行云檢測(cè)。改進(jìn)的圖片檢索流程如圖4所示。
圖4 改進(jìn)的圖片檢索流程
對(duì)于任意一個(gè)測(cè)試樣本圖片,首先將圖片重疊劃分成N×N的子塊,步長(zhǎng)選取12。之后采用SVM_S對(duì)各個(gè)子塊進(jìn)行判別,若判別為云,則采用SVM_G對(duì)該子塊進(jìn)行二次判斷,并取SVM_G的判別結(jié)果為最終結(jié)果,若判別為下墊面,則直接將SVM_S的判別結(jié)果作為最終結(jié)果。算法流程如圖5所示。
本文首先驗(yàn)證了不同N值對(duì)識(shí)別效果的影響,不同實(shí)驗(yàn)分組所選取的訓(xùn)練集樣本和測(cè)試集樣本均是由前文所述的600張Landsat衛(wèi)星遙感圖像采用相同的步長(zhǎng)使用重疊切片的算法劃分得到,數(shù)量基本相同。不同N值對(duì)算法識(shí)別效果的影響見表2,在這里訓(xùn)練集和測(cè)試集中不包含特殊下墊面樣本。其中,SVM_GU表示SVM_G對(duì)一般下墊面的識(shí)別準(zhǔn)確率,SVM_GC表示SVM_G對(duì)云的識(shí)別準(zhǔn)確率,SVM_GA表示SVM_G的平均識(shí)別準(zhǔn)確率。
表2 傳統(tǒng)SVM不同切片大小識(shí)別準(zhǔn)確率對(duì)比/%
接下來(lái),本文對(duì)提出的PSVM方法的識(shí)別準(zhǔn)確率進(jìn)行了測(cè)試,見表3。其中,SVM_PU表示本文提出的方法對(duì)一般下墊面的識(shí)別準(zhǔn)確率,SVM_PC表示本文方法對(duì)云的識(shí)別準(zhǔn)確率,SVM_PA表示本文方法對(duì)云和一般下墊面的平均識(shí)別準(zhǔn)確率,SVM_PS表示本文方法對(duì)特殊下墊面的識(shí)別準(zhǔn)確率。
表3 PSVM方法不同切片大小識(shí)別準(zhǔn)確率對(duì)比/%
最后,本文使用包含特殊下墊面在內(nèi)的完備訓(xùn)練集進(jìn)行訓(xùn)練,得到的訓(xùn)練模型記作SVM_G2,再在各個(gè)測(cè)試集上測(cè)試,見表4。其中,SVM_G2U表示SVM_G2對(duì)一般下墊面的識(shí)別準(zhǔn)確率,SVM_G2C表示SVM_G2對(duì)云的識(shí)別準(zhǔn)確率,SVM_G2A表示SVM_G2對(duì)云和一般下墊面的平均識(shí)別準(zhǔn)確率,SVM_G2S表示SVM_G2對(duì)特殊下墊面的識(shí)別準(zhǔn)確率。
表4 加入特殊下墊面對(duì)SVM識(shí)別準(zhǔn)確率的影響/%
接下來(lái),本文對(duì)比了傳統(tǒng)支持向量機(jī)(SVM_G)、加入特殊下墊面訓(xùn)練的傳統(tǒng)支持向量機(jī)(SVM_G2)與本文提出方法(SVM_P)的平均識(shí)別準(zhǔn)確率,如圖6所示。實(shí)驗(yàn)結(jié)果表明隨著N值的增加,算法識(shí)別準(zhǔn)確率逐漸增加。當(dāng)切片大小增加到60時(shí),識(shí)別準(zhǔn)確率已經(jīng)達(dá)到一個(gè)較高的值,盡管繼續(xù)增大切片大小識(shí)別準(zhǔn)確率依然呈上升趨勢(shì),但增加有限,同時(shí)較大的切片大小不利于對(duì)圖像云區(qū)域的精確識(shí)別,因此本文選取切片大小為60。之后,對(duì)比SVM_G2A與SVM_GA可以看出,將特殊下墊面加入到訓(xùn)練集中不但不能幫助我們準(zhǔn)確區(qū)分云和特殊下墊面,還會(huì)降低訓(xùn)練模型識(shí)別一般下墊面和云的準(zhǔn)確率。以N=60為例,與SVM_G中的數(shù)據(jù)相比,SVM_G2下墊面樣本的識(shí)別準(zhǔn)確率降低了1.21%,云樣本的識(shí)別準(zhǔn)確率降低了5.76%,綜合識(shí)別準(zhǔn)確率降低了3.48%。最后,綜合對(duì)比3個(gè)方法的識(shí)別準(zhǔn)確率,可以得出,當(dāng)N大于等于24時(shí),本文提出的算法對(duì)云和一般下墊面的識(shí)別準(zhǔn)確率最高。以N=60為例,本文算法綜合識(shí)別準(zhǔn)確率為97.48%。與傳統(tǒng)的支持向量機(jī)97.46%的準(zhǔn)確率相比,提高了0.02%。這是由于在一般下墊面的遙感圖像中,時(shí)常也會(huì)存在少量與云特征相似的特殊下墊面,而本文的算法能夠?qū)⑦@些下墊面較為準(zhǔn)確地識(shí)別出來(lái),盡管對(duì)于云的識(shí)別準(zhǔn)確率略有降低,但綜合準(zhǔn)確率有所提高。
圖6 平均識(shí)別準(zhǔn)確率對(duì)比
本文還對(duì)比了加入特殊下墊面訓(xùn)練的支持向量機(jī)(SVM_G2)和本文提出的方法(SVM_P)對(duì)特殊下墊面的識(shí)別準(zhǔn)確率,如圖7所示??梢钥闯觯疚奶岢鏊惴▽?duì)特殊下墊面的識(shí)別準(zhǔn)確率遠(yuǎn)高于傳統(tǒng)的支持向量機(jī)算法,以N=60為例,本文提出的算法對(duì)特殊下墊面的識(shí)別準(zhǔn)確率為99.31%,而傳統(tǒng)的支持向量機(jī)算法識(shí)別準(zhǔn)確率僅為24.1%,準(zhǔn)確率提升了75.21%。
圖7 特殊下墊面識(shí)別準(zhǔn)確率對(duì)比
使用PSVM算法選取N=60對(duì)包含特殊下墊面在內(nèi)的完整測(cè)試集進(jìn)行測(cè)試,得出本文算法的綜合識(shí)別準(zhǔn)確率為97.66%。本文算法對(duì)遙感圖像的識(shí)別效果如圖8所示。
圖8 本文算法識(shí)別效果
從圖8中可以看出,算法對(duì)于絕大多數(shù)的下墊面都能準(zhǔn)確識(shí)別。上述圖片使用傳統(tǒng)的支持向量機(jī)也能夠準(zhǔn)確識(shí)別,然而,對(duì)于雪地等特殊的下墊面,一般方法往往會(huì)出現(xiàn)大量的誤判,而本文提出的PSVM算法在兼顧一般遙感圖像識(shí)別效果的同時(shí),對(duì)于包含特殊下墊面的圖像也有不錯(cuò)的識(shí)別效果。傳統(tǒng)的支持向量機(jī)與本文算法對(duì)特殊下墊面的識(shí)別結(jié)果對(duì)比如圖9和圖10所示。
圖9 傳統(tǒng)支持向量機(jī)對(duì)特殊下墊面識(shí)別效果
圖10 本文算法對(duì)特殊下墊面識(shí)別效果
本文提出了一種基于PSVM的遙感圖像云檢測(cè)算法,通過使用提取到的云和下墊面的紋理特征,訓(xùn)練產(chǎn)生支持向量機(jī)模型,對(duì)Landsat系列衛(wèi)星遙感圖像進(jìn)行云檢測(cè)。針對(duì)雪地等特殊下墊面難以區(qū)分的問題,本文將云和特殊下墊面的紋理特征單獨(dú)提取出來(lái),進(jìn)行偏好訓(xùn)練,產(chǎn)生只對(duì)特殊下墊面敏感的SVM模型,并與前面訓(xùn)練所得到的模型進(jìn)行聯(lián)合判斷。通過這種方式,分類器能夠準(zhǔn)確區(qū)分云和各類下墊面,極大地提高了分類廣度和識(shí)別準(zhǔn)確率,為后續(xù)遙感圖像云檢測(cè)提供了又一個(gè)創(chuàng)造性思路。
實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)的SVM算法相比,本文算法對(duì)云和一般下墊面識(shí)別準(zhǔn)確率提高了0.02%,對(duì)特殊下墊面識(shí)別準(zhǔn)確率提高了75.21%,性能提升顯著。后續(xù)我們將收集更多衛(wèi)星的遙感圖像進(jìn)行訓(xùn)練并優(yōu)化算法,以提高模型的泛化能力和算法的運(yùn)算速度。