周海龍,柴需楷,張金童,彭思卿,楊陽,趙驍翊,武義軒,姜瑜,王珂,尹偉男,白曉樂,李志亮,鄭逢杰,陳興峰
(1.航天工程大學航天信息學院,北京101416;2.中國科學院空天信息創新研究院,北京100094)
遙感技術在近幾十年高速發展,海量的遙感數據已經基本滿足了人們對于地表成像的各種需求,高空間分辨率、高光譜、熱紅外、合成孔徑雷達等多類數據服務于國土調查、地質災害、海洋研究、農業監測、退耕還林、氣象環境變化等多個領域,遙感在其中發揮了巨大的作用[1-6]。伴隨著計算機技術的發展,遙感與計算機被連接在一起,目前遙感圖像解譯分為人工、計算機自動、人機結合三種方式,自從深度學習技術在圖像、語音識別領域取得突破進展之后,遙感圖像目標分類也越來越多的使用深度學習方法[7-9]。當前識別的方法得到較多關注和應用的有U-net[10-12]、Yolo[13-15]等,這些方法設計了復雜的深度學習模型架構。總結來看,都是基于一些基礎的模型架構進行利用,這些基礎模型對遙感目標分類的敏感性準確度有何差異?本文針對遙感圖像分類識別應用進行了多種方法的實驗研究,旨在分析比較各種算法的性能與優劣,為基礎機器學習的使用選擇以及遙感目標分類的復雜深度學習架構設計提供參考。
對比實驗使用已標注的光學遙感圖像數據集,構建了3種深度學習基礎模型架構:全連接神經網絡(Full Connected Neural Network, FCNN)、卷積神經網絡(Convolutional Neural Network, CNN)、隨機森林(Random Forest, RF)。通過遙感分類的混淆矩陣給出總體精度,對不同的模型進行評價。
全連接神經網絡的網絡結構由輸入層、隱藏層、輸出層構成,全連接的含義即為隱藏層中各節點都與上一層的所有節點連接,其基本網絡結構如圖1 所示。

圖1 全連接神經網絡結構示意圖
神經網絡思路來源于人的神經細胞,整個網絡的運行是由一個神經元的輸出作為下一個神經元的輸入層層傳導的。類似于人的神經細胞,會響應刺激并將反應結果表現在人體動作上,神經網絡會對輸入數據進行處理即進行一個線性運算,之后再通過激活函數做個非線性運算,這個過程相當于神經網絡對數據進行更深層次的理解,而后通過一層層的神經元處理傳導,整個神經網絡都對輸入數據有了響應,最后經過輸出層,全連接神經網絡將處理后的結果傳遞出來。
FCNN 是將一維向量數據作為輸入,整個網絡僅僅處理數據。CNN 在此基礎上加入了神經網絡對于空間結構的學習,引入了卷積核的概念。CNN 的輸入數據是二維的,卷積核會對二維數據進行逐塊處理,如圖2 所示,類似于人看報紙一塊塊閱讀之后提煉主要信息,卷積核處理完之后會得到更加簡單的附有空間信息的數據。CNN 的網絡結構包含輸入層、卷積層、最大池化層、全連接層和輸出層,卷積層和最大池化層利用卷積核對二維數據進行空間信息的提取,之后轉換成一維向量再利用FCNN 的原理處理得到結果。

圖2 卷積核工作示意圖
隨機森林的基礎為決策樹,決策樹基本形式如圖3 所示。隨機森林顧名思義是由許多決策樹共同構成的,它們擁有某種方式的隨機性,并且隨機森林的每一棵決策樹之間是沒有關聯的,隨機森林中決策樹的每個內部的節點代表對一類屬性進行“測試”,每個分支代表測試后結果,每一個葉子節點代表一個類標簽。在形成森林之后,當有輸入時,所有決策樹都進行判斷選擇最適合本決策樹分類要求的類標簽,最終所有決策樹會投票表決,得票多的成為最終的輸出結果。單棵決策樹的分類能力很弱,利用多棵不相關的樹組合增強結果可信度,隨機森林通過這種方式提高樣本類型預測的準確性。

圖3 決策樹基本形式
光學遙感圖像從遙感圖像描述數據集Remote Sensing Image Captioning Data Set (RSICD)[16]獲取。數據集RSICD 從Google 地球,百度地圖,MapABC,天地圖等收集了1 萬多張高分辨率遙感圖像,該數據集具有較高的類內多樣性和較低的類間差異性,適合用于深度學習模型對比。目標分類的標注信息來自于圖像的文件名。
所有光學遙感樣本均是高寬為224 像素的RGB圖像,并分為測試集與訓練集用于模型的訓練與檢測。從其中共選取了8 類典型地表目標,具體樣本歸類和數據集情況如表1 所示。

表1 光學遙感圖像樣本數據集介紹
Python 的TensorFlow 庫 與sklearn 庫 提 供 了FCNN、CNN、RF 的網絡結構設置與網絡訓練測試模塊,選擇用Python 對三個算法進行訓練。程序主要有三塊內容,分別為輸入、網絡結構設置和輸出。由于Python 的TensorFlow 庫與sklearn 庫不能直接將RGB 的三波段圖像作為FCNN、CNN、RF 的輸入,所以將選擇的圖像數據在輸入神經網絡之前由RGB格式的圖像轉換為單波段灰度圖像,方便之后三種機器學習的數據讀入。三個算法網絡結構設置完成之后將進行數據的訓練,設定的訓練樣本數與測試樣本數約為8:1。最終的結果將分別呈現三個算法的精度與混淆矩陣。
三種機器學習基礎模型的設計開發情況如下。
基于Python 的TensorFlow 庫對FCNN 的網絡結構進行設置與測試。FCNN 的網絡結構包含三部分:輸入、隱藏層、輸出。FCNN 的輸入需要的是一維向量,因此將單波段的灰度圖像由二維矩陣轉換到一維向量,輸入為長度是50176 的一維向量。隱藏層中設置了6 個全連接層,神經元個數按照遞減的形式設置,輸出時的神經元個數為8 個,對應所分的8 類目標,其激活函數為‘softmax’,其余全連接層的激活函數為‘relu’。
具體的FCNN 網絡結構設置如表2 所示,網絡結構示意圖見圖4。

圖4 FCNN 網絡結構示意圖

表2 FCNN 結構設置
基于Python 的TensorFlow 庫對CNN 的網絡結構進行設置與測試。CNN 的輸入是圖像對應的224×224 的二維數據,其隱藏層包含了四部分,即卷積層、最大池化層、折疊層、全連接層。使用兩個卷積層和兩個最大池化層用于對二維數據進行處理提取圖像重要空間信息,而后選擇使用折疊層將二維數據轉化成一維向量,再經過兩個全連接層后輸出8 個神經元節點對應8 類目標,兩個全連接層的激活函數均為‘Relu’。具體的網絡結構如表3 所示,網絡結構示意圖見圖5。

表3 CNN 結構設置

圖5 CNN 網絡結構示意圖
使用Python 平臺的sklearn 庫對RF 的網絡結構進行設置與測試。Sklearn 庫中的randomforest 函數集成了隨機森林的主要結構,只需對RF 樹的數量與深度進行設置就可以得出結果,經過嘗試之后選擇樹的數量為3000,樹的深度為1000。袋外數據為未用于測試的輸入圖像數據,為提高精度,選擇引入袋外數據。具體的網絡結構設置如表4 所示,網絡結構示意圖見圖6。

表4 RF 結構設置

圖6 RF 網絡結構示意圖
基于Python 平臺的TensorFlow 庫設計開發FCNN、CNN 分類 器,基 于Python 平臺的Sklearn 庫設計開發RF 分類器。3 個網絡結構在相同配置下進行測試訓練,具體開發運行環境如表5 所示:

表5 深度學習模型開發運行軟硬件環境
混淆矩陣是在圖像精度評價過程中常用的一種可視化方式,其為二維矩陣,每一列代表了實際應該獲取的信息,每一列數據總和為該類目標的測試集數量,每一行代表了模型預測獲取的信息,每一行數據總和為預測的該類目標數量。矩陣對角線上的數值為對應目標正確分類的數量。混淆矩陣可以直觀看出每一類目標的分類效果并利于分析影響分類精度的原因。利用混淆矩陣計算分類精度的公式如式1 所示。

式中:P為分類精度,i和j分別為行數與列數,L為需要計算的混淆矩陣,n 為混淆矩陣的維度。
利用上述網絡結構設置得到FCNN、CNN、RF 的混淆矩陣分別如表6、表7、表8 所示。

表6 FCNN 混淆矩陣

表7 CNN 混淆矩陣

表8 RF 混淆矩陣

meadow sparseres idential stadium 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 24 0 0 1 39 0 0 0 23
根據混淆矩陣可以分析出,最容易被錯分的為desert 和bareland 類,如圖7(a)、圖7(b)所示,錯分原因為兩類在整體的色調形狀接近,紋理上都沒有太大的起伏,導致特征提取結果相似,使得精度較低。beach 類是效果較好的,如圖7(c)所示,從影像可以看出,這一類有清晰的分界線,沙灘與大海的界限清晰,梯度下降明顯,便于特征提取,因此此類別精度高。類似于人,機器分類的時候也需要有明顯的特征才能給出滿意的效果。影響分類精度的不僅僅是算法,數據集的分類效果也對精度有一定影響。(圖7(a)(b)(c),見中間彩頁)
由混淆矩陣結合式1 可以得到FCNN、CNN、RF的分類精度分別為62.2%;89.1%;80%,可見CNN 的精度是這三類中精度最高的。結合網絡結構設置分析,FCNN 與RF 網絡的輸入是一維數據,而CNN的數據就是對應圖像的二維數據,將二維數據轉換到一維數據會丟失圖像一些空間信息,因此CNN 相比于FCNN 與RF 更能反映圖像的真實空間信息,所以CNN會得到更高的精度。
深度學習等算法已經融入到各行各業,不同的算法各自展現著不同的優勢,其發展離不開基礎的機器學習算法,基礎的機器學習算法經過不斷的開發與新思想的注入,衍生出新的算法。為研究基礎的機器學習算法對于目標的識別精度如何,本文基于Python平臺的TensorFlow庫與sklearn庫對FCNN、CNN 和RF 三種基礎機器學習算法進行網絡結構設計,并利用一組光學圖像進行訓練與測試,最終根據網絡結構與混淆矩陣分析得出結論:CNN對于光學圖像的識別精度最高。CNN通過卷積核對二維圖像進行特征提取,而FCNN和RF在輸入的時候已經把圖像轉換成一維向量,不利于二維信息的提取,因此CNN作為目標識別和分類的基礎型機器學習模型是合理的。
遙感目標分類和識別的深度學習方法發源自通用的圖像識別領域,對于遙感的定量化信息使用不足,甚至在光譜、量化等級方面有所損失,圖像數據被壓縮會降低分類精度,相反引入附加數據或許能夠提高目標識別精度。相信未來定量遙感和深度學習的結合,有助于提高遙感目標分類精度。