寶音圖,劉 偉,牛朝陽,李潤生,張浩波
(信息工程大學數據與目標工程學院,鄭州 450001)
隨著對地觀測技術水平的提高,光學遙感圖像的數量急劇增加,如何充分利用不斷增多的光學遙感圖像進行智能地球觀測成為研究熱點,科學高效地解析海量光學遙感圖像顯得尤為重要。場景分類通過給定的語義類別對不同的場景圖像進行分類標識,是一種有效的光學遙感圖像解析技術。近年來,光學遙感圖像場景分類在城市規劃、災害檢測、環境監測等領域得到廣泛應用[1]。
與光學自然圖像分類任務相比,光學遙感圖像場景分類任務的圖像特征類型復雜、分布范圍廣,有效提取語義特征以及理解語義內容難度更大[1]。根據應用需求的不同,光學遙感圖像特征提取方法被分為三大類:一是初級特征提取方法,其針對光學遙感圖像特點在局部或全局設計人類工程特征[1-2],初級特征提取方法主要包括尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)[3]、局部二進制模式(Local Binary Patterns,LBP)[4]、定向梯度直方圖(Histogram of Oriented Gradient,HOG)[5]等,這些方法只能針對特定目標,缺乏靈活性,泛化能力較弱且只有局部特性,不能直接表示整幅圖像[6];二是中級特征提取方法,其先提取圖像的局部特征,然后對多個局部特征進行編碼以獲得遙感圖像的中級特征[2],中級特征提取方法主要包括視覺詞袋模型(Bag of Visual Word,BoVW)[7]、稀疏編碼(Sparse Coding)[8]等,其因為簡單有效的特點而得到廣泛應用,但是因為表達能力的限制,導致其分類精度不高;三是高級特征提取方法,該類方法基于深度學習提取光學遙感圖像特征,與初級和中級方法不同,深度學習模型通過架構神經網絡來學習更強大、更抽象和更深層次的特征,這極大地推動了深度學習在光學遙感圖像中的應用。多數深度學習模型,尤其是卷積神經網絡(Convolution Neural Network,CNN),包 括AlexNet[9]、VGGNet[10]、GoogLeNet[11]、ResNet[12]等,均適用于光學遙感圖像場景分類,并已取得了較好的分類效果。
雖然基于深度學習的方法已大幅提高了分類準確性,但是光學遙感圖像除了含有顏色、紋理、空間信息等淺層次的信息[13],還有很多深層次的信息,包括:遙感圖像同類場景的多樣性;遙感圖像不同類場景的相似性;遙感圖像場景的尺寸、方向的動態性。這些深層次的信息提升了場景分類的難度[14],導致難以實現精準分類[2]。
深度學習網絡模型的深度和寬度對光學遙感圖像分類精度影響較大[14-16]。然而,網絡規模的擴大導致容易發生梯度消失或梯度爆炸現象,還會引起網絡退化問題,導致訓練誤差增大[17]。同時,網絡規模的擴大也會帶來權重參數的大量冗余,導致訓練周期過長、硬件要求過高,不適合末端應用部署,難以大范圍普及[18]。隨著深度學習技術的進一步發展,MobileNets[19]等易訓練、易部署的輕量化網絡模型逐漸成為研究重點,但是這些網絡模型通常針對自然圖像而提出,在光學遙感圖像領域應用時還需有針對性地調整網絡結構。
本文提出一種基于輕量化網絡模型的光學遙感圖像場景分類方法,該方法通過EfficientNet[18]網絡模型提取圖像特征,針對光學遙感圖像場景容易誤分類的情況,構建集成學習模塊來提升網絡模型的分類性能。
為使網絡模型獲得更好的精度,通常采取優化網絡深度、網絡寬度和圖像分辨率的方式,如ResNet、DenseNet 等,但是這些網絡模型往往只改變網絡深度、網絡寬度和圖像分辨率3 個維度中的1 個,且需要繁瑣的手動調整參數,并且仍然產生次優的精度和效率。Google Brain Team 通過復合比較網絡深度、網絡寬度以及圖像分辨率對精度、參數量和浮點運算量的影響,提出一種EfficientNet[18]網絡模型。EfficientNet 網絡模型將網絡深度、網絡寬度、圖像分辨率的不同組合轉變為優化問題,如下:

其中:N為網絡模型;d、w、r是縮放網絡的深度、寬度和圖像分辨率的系數;i是網絡模型的組件;s是組件的總個數;是預設的網絡層結構;是預設的層數;是預設的分辨率;是預設的通道數;X將參數按縮放系數調整;Memory(N)為網絡的參數量;FLOPS(N)為網絡的浮點運算量;⊙將每個組件設置為調整后的參數并搭建網絡模型;target_memory 為參數量的閾值;target_flpos 為浮點運算量的閾值;max Accuracy 表示求網絡模型的最大精度。
平衡網絡深度、寬度和分辨率3 個維度可以獲得更好的準確率和效率,EfficientNet 使用復合系數?對3 個維度進行縮放,具體如下:

其中:α、β、γ是對應d、w、r運行維度的資源分配參數;?是資源控制系數。在滿足約束條件的情況下,通過神經架構搜索(Neural Architecture Search,NAS)對各參數進行優化調整。在參數量和運算量不增加的基礎上,EfficientNet 模型通過不斷調整網絡深度、網絡寬度和圖像分辨率的系數達到最優的精度。
根據圖像分辨率的不同,EfficientNet 網絡構建了B0~B7共8個模型。其中,B7模型在自然圖像ImageNet數據集上Top-1 和Top-5 的精度分別為84.4%和97.1%,已達到當時最優精度,并且在達到同等精度的網絡中,B0~B7 模型的參數量和運算量均最少。ImageNet數據集上各模型性能對比結果如表1 所示。

表1 ImageNet 數據集上各模型性能對比結果Table 1 Performance comparison results of various models on ImageNet dataset
EfficientNet 網絡模型在自然場景圖像上達到了較高精度,但光學遙感圖像場景包含更豐富的語義信息,場景的類內相異性、類間相似性以及場景的尺寸方向變換等情況影響了EfficientNet 網絡模型的分類精度。為解決上述問題,本文通過EfficientNet 網絡模型提取圖像特征,利用多個子分類器構建集成學習模塊提升分類效果,使用Dropout 算法防止發生過擬合,采用交叉熵損失函數輔助網絡訓練,從而提高網絡模型對光學遙感圖像場景的分類精度。
1.2.1 網絡模型結構
集成學習通過構建多個子分類器來提升分類效果[6]。本文方法基于EfficientNet 網絡提取圖像特征(一級特征),將所有的一級特征按照預先設定的比率進行隨機選取,然后進行融合產生新的特征(二級特征),特征提取比率過低會因為選取特征不夠充分影響精度,特征提取比率過高會大幅增加模型的參數量。為在提升精度的同時不過多地增加模型的參數量,本文將特征提取比率設定為60%。給每個二級特征分配一個子分類器進行預分類,集成加權所有子分類器的預分類結果,從而產生最終的分類結果。每個子分類器選取的一級特征不完全一樣,能夠更充分地解析圖像的語義信息,實現子分類器之間的優勢互補,從而獲得比單一分類器更好的分類效果。本文網絡模型結構如圖1 所示。

圖1 本文網絡模型結構Fig.1 Network model structure in this paper
1.2.2 Dropout 算法
在深度學習中,當參數較多而訓練樣本又較少時,網絡模型容易產生過擬合現象。Dropout 算法能夠緩解過擬合問題,起到正則化的效果[20]。Dropout算法表達式如下:

其中:r為以給定概率產生的0、1 序列;x為對應層的神經元;為經過Dropout算法保留下的神經元;w為權重;b為偏置;y為輸出的神經元;l為神經元所在的層數。
在訓練過程中,每個神經元以一定概率保留,每次向前傳播保留下來的神經元都不同,這樣可以使得模型不依賴于某些局部特征,泛化能力更強[20]。Dropout 算法結構如圖2 所示,考慮到光學遙感圖像數據集的訓練樣本偏少,為了防止過擬合發生,本文在每個子分類器中都添加了Dropout 算法。

圖2 Dropout 算法效果Fig.2 Dropout algorithm effect
1.2.3 交叉熵損失函數
深度學習中用損失函數來度量網絡模型得到的預測標簽和數據真實標簽之間的差距,損失函數可以衡量網絡模型的泛化能力優劣[21],根據不同的應用需求,選擇合適的損失函數可以使模型得到更好的訓練效果。本文針對多場景分類問題,采用更適合的交叉熵損失函數[22],其表達式如下:

其中:y為樣本真實標簽;為樣本通過網絡模型得到的預測標簽;N為樣本數。通過交叉熵損失函數可以得到樣本預測標簽和真實標簽之間的損失值,損失值越小,預測標簽越接近真實標簽;損失值越大,預測標簽和真實標簽差距越大。通過損失值可以判斷預測結果的優劣,從而更有效地訓練網絡模型。
為驗證本文網絡模型的有效性,選用2 個公開的大規模遙感圖像數據集AID[23]和NWPU-RESISC45[24]進行實驗。
AID 數據集是由華中科技大學和武漢大學聯合創建的大規模遙感圖像數據集,該數據集共有10 000 張圖像,分為機場、河流、草地等30 個場景類別,不同場景類型的圖像數量從220~420 不等,每張圖像尺寸為600 像素×600 像素,圖像空間分辨率為0.5~8.0 m,該數據集從Google Earth 影像中收集,圖像選取自不同國家、地區、時間、季節以及不同的成像條件[23],如圖3 所示。

圖3 AID 數據集部分場景示例Fig.3 Partial scenario examples of AID dataset
NWPU-RESISC45是由西北工業大學創建的大規模遙感圖像數據集,其比AID 數據集更為復雜,共有31 500張遙感圖像,分為飛機、湖、云等45個場景類別,每個類別有700張圖像,每張圖像尺寸為256像素×256像素,圖像的空間分辨率為0.2~30.0 m,該數據集從Google Earth中提取,選自全球100多個國家和地區包含不同天氣、季節的圖像。為了增加難度,本文選取了含有遮擋、重疊等復雜因素的遙感圖像[24],如圖4所示。

圖4 NWPU-RESISC45 數據集部分場景示例Fig.4 Partial scenario examples of NWPU-RESISC45 dataset
實驗環境為PyTorch 1.5 框架,操作系統為Windows10 系統,CPU 為12 核的Intel Xeon Gold 6226,主頻為2.70 GHz,內存為64 GB DDR4,GPU為NVIDIA公司的TITAN XP,顯存為12 GB,CUDA 版本為10.2,cudnn 版本為7.6.5。本文實驗選擇EfficientNet-B3 網絡模型。
為了保證實驗的公平性、合理性,數據集的訓練比率與文獻[1-2]一致。對于AID 數據集,隨機選取每類場景數據總量的20%、50%作為訓練數據,余下的80%、50%作為測試數據。對于NWPU-RESISC45數據集,隨機選取每類場景數據總量的10%、20%作為訓練數據,余下的90%、80%作為測試數據。
遷移學習不僅能解決過擬合問題,同時也能縮減模型訓練時間[15]。本文實驗使用在ImageNet 數據集上訓練好的權重進行遷移訓練。為防止訓練期間發生梯度消失或梯度爆炸現象,本次實驗分2 個階段進行訓練:第一個階段為預訓練階段,凍結除分類層以外的網絡層權重,損失函數使用交叉熵損失函數,優化器使用隨機梯度下降(Stochastic Gradient Descent,SGD)方法,初始學習率為1e?1,權重衰減為5e?3,動量為0.9,每2 個epoch 學習率下降一次,下降系數為0.9,共訓練10 個epoch;第二個階段在預訓練的基礎上繼續訓練,解凍所有網絡層的權重,損失函數使用交叉熵損失函數,優化器使用SGD,初始學習率為1e?3,權重衰減為5e?3,動量為0.9,每5 個epoch 學習率下降一次,下降系數為0.95,共訓練200 個epoch。為了增強網絡模型的訓練效果,實驗中使用了PyTorch 框架下transforms 庫中的水平翻轉、垂直翻轉、顏色亮度變換、角度旋轉等方式進行數據增強,如圖5 所示。為了確保實驗的準確性,每種測試都重復10 次。圖6 所示為本文模型訓練過程中隨循環次數變化的損失值和準確率曲線,從圖6 可以看出,經過200 次循環,損失值和準確率逐漸收斂,說明網絡模型較為穩定。圖6(a)中180 次循環后損失值不再下降,保持在0.1 以下,圖6(b)中180 次循環后準確率不再增加,最終達到97.52%。

圖5 數據增強示例Fig.5 Examples of data enhancement

圖6 模型訓練過程中的損失值和準確率Fig.6 Loss values and accuracy in model training
將AID 數據集分為訓練集和測試集,用本文網絡模型進行訓練測試,統計測試結果得到混淆矩陣,其中,20%訓練比率的混淆矩陣如圖7 所示,對角線元素為各場景分類的準確率。從圖7 可以看出,30 類場景中有25 類場景的準確率達到90%以上,海灘、森林、高架橋等場景的準確率接近100%,但是,度假勝地和中心區2 個場景誤分類較多,準確率不足80%,度假勝地場景的準確率最低為75%。為了比較模型性能,選取現階段光學遙感圖像場景分類中4 種典型網絡模型進行比對:GoogLeNet 是2014 年提出的一種22 層的網絡模型;D-CNNs[25]是2018 年提出的網絡模型,其通過引入度量學習正則化來提升分類能力;CNN-CapsNet[2]是2019 年提出的網絡模型,其通過膠囊網絡捕獲空間信息來增強特征提取能力。表2 為各網絡模型在AID 數據集上的性能對比結果,可以看出,本文方法取得了較好的精度,與D-CNNs 和CNN-CapsNet 網絡模型相比,本文方法在達到近似精度的情況下所需的參數量和浮點運算量大幅減少,與EfficientNet 網絡模型相比,本文方法分類準確率有3%~4%的提升,參數量僅增加了2 ×106,浮點運算量沒有改變,說明引入集成學習模塊后的網絡模型僅需較少的硬件消耗,就可在不影響運算時間的情況下獲取明顯的分類性能提升。

圖7 AID 數據集訓練比率為20%時的混淆矩陣Fig.7 Confusion matrix when the training ratio of AID dataset is 20%

表2 各模型在AID 數據集上的性能對比結果Table 2 Performance comparison results of each model on AID dataset
將NWPU-RESISC45 數據集分為訓練集和測試集,用本文網絡模型進行訓練測試,統計測試結果得到混淆矩陣,其中,20%訓練比率的分類結果如圖8所示,對角線元素為各場景分類的準確率。通過混淆矩陣可以看出,45 種場景中有39 種場景的準確率在90%以上,灌木叢場景的準確率接近100%,但是教堂、中型住宅、宮殿3 個場景的準確率不足80%,宮殿場景的準確率最低為75.2%。表3 為本文方法與其他網絡模型在NWPU-RESISC45數據集上的性能對比,可以看出,本文方法在NWPU-RESISC45 數據集上同樣取得了較好的精度,且參數量和浮點運算量也最少。在2 個數據集上都取得較好結果,說明本文方法較為穩定且魯棒性較強。

圖8 NWPU-RESISC45 數據集訓練比率為20%時的混淆矩陣Fig.8 Confusion matrix when the training ratio of NWPU-RESISC45 dataset is 20%

表3 各模型在NWPU-RESISC45數據集上的性能對比結果Table 3 Performance comparison results of each model on NWPU-RESISC45 dataset
為了更直觀地比較網絡模型對易誤分類場景的辨識性能,選取準確率達不到90%的場景,繪制各場景在不同網絡中準確率的對比情況,結果如圖9 所示。從圖9 可以看出,本文方法在大多數易誤分類場景中取得了最好的分類效果,說明其在易誤分類場景中也有一定優勢。

圖9 易誤分類場景中各網絡模型的性能對比結果Fig.9 Performance comparison results of each network model in error prone classification scenario
本文研究深度學習在光學遙感圖像場景分類中的應用問題,聯合集成學習和輕量化網絡模型的優勢,提出一種硬件要求低、運算時間短的光學遙感圖像場景分類方法。采用EfficientNet 網絡模型來減少參數量和浮點運算量,通過集成學習模塊充分解析圖像特征的語義信息。在2 個光學遙感圖像數據集上的實驗結果表明,該方法分類準確率較高,在多數易誤分類場景中依然能夠取得較好的分類效果,與其他網絡模型相比,本文方法所需的參數量和浮點運算量大幅減少,更適合在末端部署并進行普及推廣。然而,本文方法在個別場景上的分類精度仍有待進一步提高,解決該問題并探索如何在末端部署實現本文方法將是今后的研究方向。