鄧丁柱
(內蒙古自治區(qū)測繪地理信息中心,呼和浩特 010051)
21世紀,衛(wèi)星遙感技術作為一種重要地球觀測手段被廣泛應用。然而,全球年平均云覆蓋區(qū)域約為66%[1],意味著常規(guī)拍攝的光學衛(wèi)星影像有一半以上受云遮擋難以獲取有效信息,因而通過云檢測技術生成掩模文件對于有效數據的篩選具有重要意義。近年來,隨著衛(wèi)星遙感技術的不斷進步,遙感數據的規(guī)模也越來越大,據統(tǒng)計光學衛(wèi)星影像單日接收量達數百景,傳統(tǒng)云檢測方式已難以滿足大規(guī)模數據生產需求,研發(fā)快速、高效、準確的云檢測方法對于保證后續(xù)遙感產品質量與服務效率至關重要[2]。目前,遙感影像云檢測方法大致可以分為3種類型: 基于閾值的方法、基于傳統(tǒng)機器學習的方法和基于卷積神經網絡(convolutional neural network,CNN)的方法?;陂撝档乃惴ǔS糜诙喙庾V和高光譜圖像的云檢測[3-5]。這類方法的基本原理是利用云與其他物體在可見光—短波紅外光譜范圍內的反射率差異,通過人工設計特征提取規(guī)則對云進行識別和分割[6-8]。Fmask算法[3]及其改進版本[9-10]是這類方法的典型代表,并廣泛用于特定類型衛(wèi)星圖像的云檢測應用中,包括 Landsat[8],Terra/Aqua[11],Sentinel[12],HJ-1[13]和GF-5 多光譜圖像[14]等。但是這類方法仍然存在一些不足。一是算法設計往往適用于具有多波段的特定載荷,不適用于一些只有4個波段的主流高分辨率衛(wèi)星數據等; 二是基于像素計算很容易導致“椒鹽”效應[15-16]; 三是閾值的設定往往依賴于專家知識,難以在復雜場景下推廣應用[17-18]。
隨著機器學習技術的興起,針對云檢測問題提出了人工神經網絡[19]、支持向量機[20]和隨機森林[21]等傳統(tǒng)機器學習算法[22-23]。傳統(tǒng)機器學習方法的優(yōu)勢在于提取規(guī)則和閾值的設定不再完全依賴專家知識[24-25]。然而,與基于閾值的算法一樣仍難以克服 “椒鹽” 效應,此外在融合空間和光譜信息方面仍有改進空間。
深度學習技術被逐步應用于遙感領域并取得了顯著突破,涉及圖像融合、圖像配準、場景分類、目標檢測、土地覆蓋分類和地質體識別等[26-27]。與傳統(tǒng)機器學習方法的不同在于,后者利用卷積操作可以更好地提取目標特征[28],且能夠實現空間和光譜信息的融合提取。近年來,學者們嘗試將深度學習技術應用于衛(wèi)星影像云檢測,對不同結構的網絡模型的有效性進行了有益的探索[15,18,23-24,29-32],并針對不同類型的載荷研發(fā)了云檢測方法[33-38]。然而,針對載荷參數不同的多種主流衛(wèi)星影像均適用的通用型深度學習模型的研究依然有待于進一步開展。研究的主要難點在于以下3個方面: 一是獲取具有代表性的多種類型衛(wèi)星數據并通過標記形成訓練樣本集的成本較高; 二是不同載荷波段組合不一致為構建通用的深度學習模型提出了挑戰(zhàn); 三是深度學習模型種類眾多且大多以解決計算機視覺領域問題被提出,應用于遙感數據需進行針對性優(yōu)化。
在本文中,提出了一種適用于多源衛(wèi)星影像的云檢測模型,稱為多源遙感云檢測網絡(multi-source remote sensing cloud detection network,MCDNet),以U型結構為基礎,采用輕量化骨干網絡設計,通過多尺度特征融合及門控機制提升識別精度。在全球范圍內搜集多源衛(wèi)星影像數據,其中即包括谷歌和Landsat等常用國外衛(wèi)星數據,也包括GF-1,GF-2和 GF-5等國產衛(wèi)星數據。為了保證模型的通用型,所有衛(wèi)星影像均只保留真彩色3個波段用于構建云檢測數據集。選取多個經典的語義分割網絡作為對比開展實驗,結果顯示本文提出方法在云檢測方面具有很好的應用潛力。
MCDNet采用U型架構,由編碼器、解碼器和多尺度融合模塊3部分構成(圖1)。編碼器由6組DCB(deep-wise convolutional block)卷積模塊(深度卷積、歸一化層和1×1卷積組合)構成,共包含3個下采樣層,未采用更多下采樣層的原因是考慮盡可能保留淺層的空間信息以提高識別結果的邊界精度。DCB卷積模塊由1個3×3的深度卷積和2個1×1普通卷積以及激活層組成,不同于傳統(tǒng)輕量化模型中的瓶頸結構設計,這里處于中間位置的1×1卷積核數較大,呈現出“兩頭細,中間粗”的反瓶頸結構,經實驗驗證這種結構能夠在不降低模型整體性能的前提下減少模型參數。解碼器的開始部分參考了UNet[39]的設計,自下而上進行上采樣的過程中用跳層連接疊加來自于編碼器的特征。
圖1 MCDNet網絡結構示意圖
CNN利用降采樣操作一方面降低了模型的參數量; 另一方面使得模型具有一定深度的同時飽有足夠的感受野。降采樣操作的最大缺點在于采樣過程導致有效信息的丟失,在識別結果上表現為目標邊界識別準確性差,如早期語義分割網絡(fully convolutional networks,FCN)。以降采樣操作形成的多個尺度的特征相結合被證實在計算機視覺任務上是有效的。本文提出一種適用于U型架構的多尺度融合模塊,使模型能夠在模型訓練中根據識別場景對相關的尺度特征進行加權識別性能。首先,利用常規(guī)的CBR模塊(卷積層、歸一化層及激活層組合)對解碼器輸出的各個尺度的特征進行卷積操作,再將所有特征上采樣至原始輸入尺寸,最后將所有特征進行堆疊,利用通道注意力模塊對有效特征進行加權。
進入到通道注意力中的特征首先經過全局池化層被抽象為具有C(通道個數)個單元的向量,利用多層感知機對該向量進行非線性變換,再利用Sigmoid函數將變換后的向量映射到[0,1]范圍內,此時可將向量中的每一個數值看作是對應通道的權重,利用權重向量乘以原始數據即可實現對各個通道的加權處理。具體公式為:
Fc=σ{MLP[GAP(F)]}·F
,
(1)
式中:F為輸入特征;Fc為加權處理后的特征; GAP表示全局池化操作; MLP表示多層感知機;σ為Sigmoid激活層。
采用精確率、召回率、總體分類精度、F1值及交并比作為云檢測精度的評價指標。各評價參數的計算方法分別為:
P=TP/(TP+FP)
,
(2)
R=TP/(TP+PN)
,
(3)
OA=(TP+TN)/(TP+TN+FP+FN)
,
(4)
F1=2(1/P+1/R)
,
(5)
IoU=TP/(TP+FP+FN)
,
(6)
式中:P為精確率;R為召回率;OA為總體分類精度;F1為 F1得分;IoU為交并比;TP為判正的正樣本;FN為判負的正樣本;FP為判正的負樣本;TN為判負的負樣本。
搜集了目前已開源的具有代表性的云檢測數據集,包括谷歌影像、Landsat系列影像、GF-1、GF-2及GF-5衛(wèi)星影像,空間分辨率覆蓋0.5~30 m(表1)。由于各個數據集組織方式略有不同,在原始影像的基礎上進行二次裁切,獲得256像素×256像素大小的切片數據,裁切方式為固定間隔順序裁切。由于GF-1數據量較大,為了盡可能平衡不同空間分辨率數據的數量,對GF-1的切片影像進行篩選,剔除其中無云的純背景影像,從剩余影像中隨機選擇8 400個作為訓練數據。最終形成的樣本數據共計2萬個切片(256×256×3)。
表1 多源衛(wèi)星遙感影像云檢測數據集
在進行深度學習模型訓練之前需要對影像切片進行預處理,首先按照載荷類型對數據進行統(tǒng)計分析,剔除數據中存在的負值及異常高值,將所有數據歸一化至[0,1]范圍內。所有數據經隨機打亂后按照6∶2∶2劃分為訓練集、驗證集和測試集,對比實驗中精度評價均基于測試集進行。
本次實驗中引入多個經典語義分割網絡作為對比模型,包括SegNet[43],UNet[39],PSPNet (pyramid scene parsing network)[44],BiSeNet (bilateral segmentation network)[45],HRNetV2(high-resolution representation network v2)[46],DeepLabV3+[47]和MFGNet(multiscale fusion gated network)[36]。所有模型均在相同數據集以相同的訓練參數設置進行實驗。實驗在 TensorFlow(1.13.1)框架及NVIDIA Tesla V100 GPU下進行,訓練過程中使用自適應學習率優(yōu)化算法(Adam)作為優(yōu)化器以0.000 5為初始學習率進行優(yōu)化,以“Categorical_Crossentropy”作為損失函數,所有模型經過30輪訓練后取其中最優(yōu)模型進行對比。
圖2展示了訓練過程中模型的訓練和驗證精度。隨著訓練的進行,訓練集的準確率曲線迅速上升,同時損失曲線迅速下降,20個輪次后逐漸到穩(wěn)定,并且在此期間訓練集和驗證集的精度曲線趨勢相同,表明模型沒有過擬合。
圖2 MCDNet網絡訓練過程曲線
表2展示了各類模型在云檢測任務上取得的實驗結果??偟膩碚f,所有參與實驗的CNN對于云檢測都是有效的,識別準確度均達到了90%以上。MCDNet在所有評估指標中均取得了最優(yōu)的成績,其中準確率達到0.97。值得一提的是,MCDNet 的召回值顯著優(yōu)于其他模型為0.95,表明該模型識別的假陰性率較低。F1得分綜合了精確率和召回率的評價結果,可以更好地代表模型的整體性能。
表2 多源遙感影像云檢測精度
而交并比用于檢測預測結果與真實值的重合程度,對于分割任務更有說服力。MCDNet的F1得分為0.94,交并比達到0.89明顯優(yōu)于其他方法??偟膩碚f,所提出的模型一方面比其他方法具有更好的性能,同時也意味著其可以在包含多種衛(wèi)星數據上表現得更加魯棒。
為了進一步驗證所提出模型中關鍵結構的有效性,以MCDNet為基準,設計3組模型消融實驗(表3)。MCDNet-withoutAT代表去除了注意力機制的MCDNet,MCDNet-Xcep是將編碼器替換為Xcep-tion的MCDNet,MCDNet-withoutDC為將模型中深度卷積替換為普通卷積的MCDNet。結果顯示去掉模型中任意結構都會導致模型性能的下降,其中影響最大的是通道注意力融合模塊,去除后模型召回率和交并比降低了3~4個百分點。
為了更好地展示MCNNet在云檢測任務上的優(yōu)勢,本文從測試數據隨機選出一組覆蓋各類載荷且有不同程度云覆蓋的衛(wèi)星影像進行測試。從表4中各類衛(wèi)星影像可見,測試影像中包含沙漠、雪地、森林、農田、河流和裸地等多種地物場景,場景中云的覆蓋度不同,類型也不同。利用MCDNet預測得到的云掩模結果顯示MCDNet在各類場景下均可實現對云的準確識別,值得一提測試數據中包含的一些易混淆目標如雪地等也能夠被準確識別,且模型對于一些薄云的判斷也較為恰當,表明模型通過海量的多源衛(wèi)星影像樣本的訓練已經充分學習到云的語義表達。
表4 不同云覆蓋度的多源遙感真彩色影像及MCDNet云檢測結果
構建通用云檢測模型的2個關鍵前提分別是擁有大量的樣本和通用有效的模型設計,常用光學衛(wèi)星應用的側重點不同,且數據通道數不一致,因而以往云檢測模型主要是針對載荷特點進行定制開發(fā),模型遷移性不強。本文采用RGB真彩色影像作為輸入源,一方面可以最大限度提升樣本數量的同時降低制作成本; 另一方面的原因是驗證不同載荷數據統(tǒng)一為3個通道數據對于模型的設計是否有利。實驗數據中既包含DN值數據也包含反射率數據,所有數據均在剔除異常值后歸一化至[0,1]范圍內,因而使得不同傳感器獲取的不同時相的數據都具有相對接近的視覺表達(圖3)。而通過CNN可以從真彩色影像中云的分布規(guī)律、紋理特征和空間關系等習得用于云檢測的通用語義表達能力。為了進一步驗證這一結論,利用訓練樣本中不存在的載荷類型數據作為實驗目標進行測試。將之前訓練的帶有權重的MCDNet模型直接應用于5景哨兵2號衛(wèi)星數據進行云檢測,從圖3中可見,識別結果依然很準確,F1得分為0.90,交并比為0.82。
(a) 哨兵2號影像
本研究提出了一種多尺度特征融合神經網絡模型,通過輕量化骨干網絡設計結合多尺度特征融合及通道注意力機制實現了對多種類型衛(wèi)星影像的高精度云檢測。對比于多個經典的語義分割網絡取得了最優(yōu)的檢測性能,得出如下結論:
1)采用真彩色影像結合語義分割網絡可以實現對中高空間分辨率衛(wèi)星影像高效準確的云檢測。
2)本研究提出的模型在傳統(tǒng)U型架構的基礎上應用輕量化骨干設計、多尺度特征融合及注意力機制能夠有效地提升模型性能,相較于經典語義分割模型具有明顯優(yōu)勢。
3)MCDNet由全球分布的數萬計樣本訓練而成,在多類衛(wèi)星影像云檢測中均實現了90%以上的識別精度,展現出較好的魯棒性,為通用的衛(wèi)星云檢測模型設計提供參考。
但是,目前本研究只針對國產衛(wèi)星中的GF-1,GF-2及GF-5影像開展了實驗,今后的研究重點是將模型應用于更多類型的國產衛(wèi)星數據,逐步優(yōu)化完善盡早提出滿足業(yè)務化生產需求的通用模型。