周海龍,柴需楷,張金童,彭思卿,楊陽,趙驍翊,武義軒,姜瑜,王珂,尹偉男,白曉樂,李志亮,鄭逢杰,陳興峰
(1.航天工程大學航天信息學院,北京101416;2.中國科學院空天信息創(chuàng)新研究院,北京100094)
遙感技術(shù)在近幾十年高速發(fā)展,海量的遙感數(shù)據(jù)已經(jīng)基本滿足了人們對于地表成像的各種需求,高空間分辨率、高光譜、熱紅外、合成孔徑雷達等多類數(shù)據(jù)服務于國土調(diào)查、地質(zhì)災害、海洋研究、農(nóng)業(yè)監(jiān)測、退耕還林、氣象環(huán)境變化等多個領(lǐng)域,遙感在其中發(fā)揮了巨大的作用[1-6]。伴隨著計算機技術(shù)的發(fā)展,遙感與計算機被連接在一起,目前遙感圖像解譯分為人工、計算機自動、人機結(jié)合三種方式,自從深度學習技術(shù)在圖像、語音識別領(lǐng)域取得突破進展之后,遙感圖像目標分類也越來越多的使用深度學習方法[7-9]。當前識別的方法得到較多關(guān)注和應用的有U-net[10-12]、Yolo[13-15]等,這些方法設計了復雜的深度學習模型架構(gòu)??偨Y(jié)來看,都是基于一些基礎(chǔ)的模型架構(gòu)進行利用,這些基礎(chǔ)模型對遙感目標分類的敏感性準確度有何差異?本文針對遙感圖像分類識別應用進行了多種方法的實驗研究,旨在分析比較各種算法的性能與優(yōu)劣,為基礎(chǔ)機器學習的使用選擇以及遙感目標分類的復雜深度學習架構(gòu)設計提供參考。
對比實驗使用已標注的光學遙感圖像數(shù)據(jù)集,構(gòu)建了3種深度學習基礎(chǔ)模型架構(gòu):全連接神經(jīng)網(wǎng)絡(Full Connected Neural Network, FCNN)、卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network, CNN)、隨機森林(Random Forest, RF)。通過遙感分類的混淆矩陣給出總體精度,對不同的模型進行評價。
全連接神經(jīng)網(wǎng)絡的網(wǎng)絡結(jié)構(gòu)由輸入層、隱藏層、輸出層構(gòu)成,全連接的含義即為隱藏層中各節(jié)點都與上一層的所有節(jié)點連接,其基本網(wǎng)絡結(jié)構(gòu)如圖1 所示。
圖1 全連接神經(jīng)網(wǎng)絡結(jié)構(gòu)示意圖
神經(jīng)網(wǎng)絡思路來源于人的神經(jīng)細胞,整個網(wǎng)絡的運行是由一個神經(jīng)元的輸出作為下一個神經(jīng)元的輸入層層傳導的。類似于人的神經(jīng)細胞,會響應刺激并將反應結(jié)果表現(xiàn)在人體動作上,神經(jīng)網(wǎng)絡會對輸入數(shù)據(jù)進行處理即進行一個線性運算,之后再通過激活函數(shù)做個非線性運算,這個過程相當于神經(jīng)網(wǎng)絡對數(shù)據(jù)進行更深層次的理解,而后通過一層層的神經(jīng)元處理傳導,整個神經(jīng)網(wǎng)絡都對輸入數(shù)據(jù)有了響應,最后經(jīng)過輸出層,全連接神經(jīng)網(wǎng)絡將處理后的結(jié)果傳遞出來。
FCNN 是將一維向量數(shù)據(jù)作為輸入,整個網(wǎng)絡僅僅處理數(shù)據(jù)。CNN 在此基礎(chǔ)上加入了神經(jīng)網(wǎng)絡對于空間結(jié)構(gòu)的學習,引入了卷積核的概念。CNN 的輸入數(shù)據(jù)是二維的,卷積核會對二維數(shù)據(jù)進行逐塊處理,如圖2 所示,類似于人看報紙一塊塊閱讀之后提煉主要信息,卷積核處理完之后會得到更加簡單的附有空間信息的數(shù)據(jù)。CNN 的網(wǎng)絡結(jié)構(gòu)包含輸入層、卷積層、最大池化層、全連接層和輸出層,卷積層和最大池化層利用卷積核對二維數(shù)據(jù)進行空間信息的提取,之后轉(zhuǎn)換成一維向量再利用FCNN 的原理處理得到結(jié)果。
圖2 卷積核工作示意圖
隨機森林的基礎(chǔ)為決策樹,決策樹基本形式如圖3 所示。隨機森林顧名思義是由許多決策樹共同構(gòu)成的,它們擁有某種方式的隨機性,并且隨機森林的每一棵決策樹之間是沒有關(guān)聯(lián)的,隨機森林中決策樹的每個內(nèi)部的節(jié)點代表對一類屬性進行“測試”,每個分支代表測試后結(jié)果,每一個葉子節(jié)點代表一個類標簽。在形成森林之后,當有輸入時,所有決策樹都進行判斷選擇最適合本決策樹分類要求的類標簽,最終所有決策樹會投票表決,得票多的成為最終的輸出結(jié)果。單棵決策樹的分類能力很弱,利用多棵不相關(guān)的樹組合增強結(jié)果可信度,隨機森林通過這種方式提高樣本類型預測的準確性。
圖3 決策樹基本形式
光學遙感圖像從遙感圖像描述數(shù)據(jù)集Remote Sensing Image Captioning Data Set (RSICD)[16]獲取。數(shù)據(jù)集RSICD 從Google 地球,百度地圖,MapABC,天地圖等收集了1 萬多張高分辨率遙感圖像,該數(shù)據(jù)集具有較高的類內(nèi)多樣性和較低的類間差異性,適合用于深度學習模型對比。目標分類的標注信息來自于圖像的文件名。
所有光學遙感樣本均是高寬為224 像素的RGB圖像,并分為測試集與訓練集用于模型的訓練與檢測。從其中共選取了8 類典型地表目標,具體樣本歸類和數(shù)據(jù)集情況如表1 所示。
表1 光學遙感圖像樣本數(shù)據(jù)集介紹
Python 的TensorFlow 庫 與sklearn 庫 提 供 了FCNN、CNN、RF 的網(wǎng)絡結(jié)構(gòu)設置與網(wǎng)絡訓練測試模塊,選擇用Python 對三個算法進行訓練。程序主要有三塊內(nèi)容,分別為輸入、網(wǎng)絡結(jié)構(gòu)設置和輸出。由于Python 的TensorFlow 庫與sklearn 庫不能直接將RGB 的三波段圖像作為FCNN、CNN、RF 的輸入,所以將選擇的圖像數(shù)據(jù)在輸入神經(jīng)網(wǎng)絡之前由RGB格式的圖像轉(zhuǎn)換為單波段灰度圖像,方便之后三種機器學習的數(shù)據(jù)讀入。三個算法網(wǎng)絡結(jié)構(gòu)設置完成之后將進行數(shù)據(jù)的訓練,設定的訓練樣本數(shù)與測試樣本數(shù)約為8:1。最終的結(jié)果將分別呈現(xiàn)三個算法的精度與混淆矩陣。
三種機器學習基礎(chǔ)模型的設計開發(fā)情況如下。
基于Python 的TensorFlow 庫對FCNN 的網(wǎng)絡結(jié)構(gòu)進行設置與測試。FCNN 的網(wǎng)絡結(jié)構(gòu)包含三部分:輸入、隱藏層、輸出。FCNN 的輸入需要的是一維向量,因此將單波段的灰度圖像由二維矩陣轉(zhuǎn)換到一維向量,輸入為長度是50176 的一維向量。隱藏層中設置了6 個全連接層,神經(jīng)元個數(shù)按照遞減的形式設置,輸出時的神經(jīng)元個數(shù)為8 個,對應所分的8 類目標,其激活函數(shù)為‘softmax’,其余全連接層的激活函數(shù)為‘relu’。
具體的FCNN 網(wǎng)絡結(jié)構(gòu)設置如表2 所示,網(wǎng)絡結(jié)構(gòu)示意圖見圖4。
圖4 FCNN 網(wǎng)絡結(jié)構(gòu)示意圖
表2 FCNN 結(jié)構(gòu)設置
基于Python 的TensorFlow 庫對CNN 的網(wǎng)絡結(jié)構(gòu)進行設置與測試。CNN 的輸入是圖像對應的224×224 的二維數(shù)據(jù),其隱藏層包含了四部分,即卷積層、最大池化層、折疊層、全連接層。使用兩個卷積層和兩個最大池化層用于對二維數(shù)據(jù)進行處理提取圖像重要空間信息,而后選擇使用折疊層將二維數(shù)據(jù)轉(zhuǎn)化成一維向量,再經(jīng)過兩個全連接層后輸出8 個神經(jīng)元節(jié)點對應8 類目標,兩個全連接層的激活函數(shù)均為‘Relu’。具體的網(wǎng)絡結(jié)構(gòu)如表3 所示,網(wǎng)絡結(jié)構(gòu)示意圖見圖5。
表3 CNN 結(jié)構(gòu)設置
圖5 CNN 網(wǎng)絡結(jié)構(gòu)示意圖
使用Python 平臺的sklearn 庫對RF 的網(wǎng)絡結(jié)構(gòu)進行設置與測試。Sklearn 庫中的randomforest 函數(shù)集成了隨機森林的主要結(jié)構(gòu),只需對RF 樹的數(shù)量與深度進行設置就可以得出結(jié)果,經(jīng)過嘗試之后選擇樹的數(shù)量為3000,樹的深度為1000。袋外數(shù)據(jù)為未用于測試的輸入圖像數(shù)據(jù),為提高精度,選擇引入袋外數(shù)據(jù)。具體的網(wǎng)絡結(jié)構(gòu)設置如表4 所示,網(wǎng)絡結(jié)構(gòu)示意圖見圖6。
表4 RF 結(jié)構(gòu)設置
圖6 RF 網(wǎng)絡結(jié)構(gòu)示意圖
基于Python 平臺的TensorFlow 庫設計開發(fā)FCNN、CNN 分類 器,基 于Python 平臺的Sklearn 庫設計開發(fā)RF 分類器。3 個網(wǎng)絡結(jié)構(gòu)在相同配置下進行測試訓練,具體開發(fā)運行環(huán)境如表5 所示:
表5 深度學習模型開發(fā)運行軟硬件環(huán)境
混淆矩陣是在圖像精度評價過程中常用的一種可視化方式,其為二維矩陣,每一列代表了實際應該獲取的信息,每一列數(shù)據(jù)總和為該類目標的測試集數(shù)量,每一行代表了模型預測獲取的信息,每一行數(shù)據(jù)總和為預測的該類目標數(shù)量。矩陣對角線上的數(shù)值為對應目標正確分類的數(shù)量?;煜仃嚳梢灾庇^看出每一類目標的分類效果并利于分析影響分類精度的原因。利用混淆矩陣計算分類精度的公式如式1 所示。
式中:P為分類精度,i和j分別為行數(shù)與列數(shù),L為需要計算的混淆矩陣,n 為混淆矩陣的維度。
利用上述網(wǎng)絡結(jié)構(gòu)設置得到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
根據(jù)混淆矩陣可以分析出,最容易被錯分的為desert 和bareland 類,如圖7(a)、圖7(b)所示,錯分原因為兩類在整體的色調(diào)形狀接近,紋理上都沒有太大的起伏,導致特征提取結(jié)果相似,使得精度較低。beach 類是效果較好的,如圖7(c)所示,從影像可以看出,這一類有清晰的分界線,沙灘與大海的界限清晰,梯度下降明顯,便于特征提取,因此此類別精度高。類似于人,機器分類的時候也需要有明顯的特征才能給出滿意的效果。影響分類精度的不僅僅是算法,數(shù)據(jù)集的分類效果也對精度有一定影響。(圖7(a)(b)(c),見中間彩頁)
由混淆矩陣結(jié)合式1 可以得到FCNN、CNN、RF的分類精度分別為62.2%;89.1%;80%,可見CNN 的精度是這三類中精度最高的。結(jié)合網(wǎng)絡結(jié)構(gòu)設置分析,F(xiàn)CNN 與RF 網(wǎng)絡的輸入是一維數(shù)據(jù),而CNN的數(shù)據(jù)就是對應圖像的二維數(shù)據(jù),將二維數(shù)據(jù)轉(zhuǎn)換到一維數(shù)據(jù)會丟失圖像一些空間信息,因此CNN 相比于FCNN 與RF 更能反映圖像的真實空間信息,所以CNN會得到更高的精度。
深度學習等算法已經(jīng)融入到各行各業(yè),不同的算法各自展現(xiàn)著不同的優(yōu)勢,其發(fā)展離不開基礎(chǔ)的機器學習算法,基礎(chǔ)的機器學習算法經(jīng)過不斷的開發(fā)與新思想的注入,衍生出新的算法。為研究基礎(chǔ)的機器學習算法對于目標的識別精度如何,本文基于Python平臺的TensorFlow庫與sklearn庫對FCNN、CNN 和RF 三種基礎(chǔ)機器學習算法進行網(wǎng)絡結(jié)構(gòu)設計,并利用一組光學圖像進行訓練與測試,最終根據(jù)網(wǎng)絡結(jié)構(gòu)與混淆矩陣分析得出結(jié)論:CNN對于光學圖像的識別精度最高。CNN通過卷積核對二維圖像進行特征提取,而FCNN和RF在輸入的時候已經(jīng)把圖像轉(zhuǎn)換成一維向量,不利于二維信息的提取,因此CNN作為目標識別和分類的基礎(chǔ)型機器學習模型是合理的。
遙感目標分類和識別的深度學習方法發(fā)源自通用的圖像識別領(lǐng)域,對于遙感的定量化信息使用不足,甚至在光譜、量化等級方面有所損失,圖像數(shù)據(jù)被壓縮會降低分類精度,相反引入附加數(shù)據(jù)或許能夠提高目標識別精度。相信未來定量遙感和深度學習的結(jié)合,有助于提高遙感目標分類精度。