1. 程式人生 > 其它 >【遙感專題系列】影像資訊提取之——基於專家知識的決策樹分類

【遙感專題系列】影像資訊提取之——基於專家知識的決策樹分類

可以將多源資料用於影像分類當中,這就是專家知識的決策樹分類器,本專題以ENVI中Decision Tree為例來敘述這一分類器。

本專題包括以下內容:

  • 專家知識分類器概述
  • 知識(規則)定義
  • ENVI中Decision Tree的使用

 概述

基於知識的決策樹分類是基於遙感影像資料及其他空間資料,通過專家經驗總結、簡單的數學統計和歸納方法等,獲得分類規則並進行遙感分類。分類規則易於理解,分類過程也符合人的認知過程,最大的特點是利用的多源資料。

如圖1所示,影像+DEM就能區分緩坡和陡坡的植被資訊,如果新增其他資料,如區域圖、道路圖土地利用圖等,就能進一步劃分出那些是自然生長的植被,那些是公園植被。

圖1 專家知識決策樹分類器說明圖

專家知識決策樹分類的步驟大體上可分為四步:知識(規則)定義、規則輸入、決策樹執行和分類後處理。

  • 知識(規則)定義

規則的定義是講知識用數學語言表達的過程,可以通過一些演算法獲取,也可以通過經驗總結獲得。

  • 規則輸入

將分類規則錄入分類器中,不同的平臺有著不同規則錄入介面。

  • 決策樹執行

執行分類器或者是演算法程式。

  • 分類後處理

這步驟與監督/非監督分類的分類後處理類似。

知識(規則)定義

分類規則獲取的途徑比較靈活,如從經驗中獲得,坡度小於20度,就認為是緩坡,等等。也可以從樣本中利用演算法來獲取,這裡要講述的就是C4.5演算法。

利用C4.5演算法獲取規則可分為以下幾個步驟:

(1)多元檔案的的構建:遙感資料經過幾何校正、輻射校正處理後,進行波段運算,得到一些植被指數,連同影像一起輸入空間資料庫;其他空間資料經過向量化、格式轉換、地理配準,組成一個或多個多波段檔案。

(2)提取樣本,構建樣本庫:在遙感影象處理軟體或者GIS軟體支援下,選取合適的圖層,採用計算機自動選點、人工解譯影像選點等方法採集樣本。

(3)分類規則挖掘與評價:在樣本庫的基礎上採用適當的資料探勘方法挖掘分類規則,後基於評價樣本集對分類規則進行評價,並對分類規則做出適當的調整和篩選。這裡就是C4.5演算法。

4.5演算法的基本思路基於資訊熵來“修枝剪葉”,基本思路如下:

從樹的根節點處的所有訓練樣本D0開始,離散化連續條件屬性。計算增益比率,取GainRatio(C0)的最大值作為劃分點V0,將樣本分為兩個部分D11和D12。對屬性C0的每一個值產生一個分支,分支屬性值的相應樣本子集被移到新生成的子節點上,如果得到的樣本都屬於同一個類,那麼直接得到葉子結點。相應地將此方法應用於每個子節點上,直到節點的所有樣本都分割槽到某個類中。到達決策樹的葉節點的每條路徑表示一條分類規則,利用葉列表及指向父結點的指標就可以生成規則表。

圖2 規則挖掘基本思路

演算法描述如下:

演算法:從空間資料集(多波段檔案)中挖掘分類規則

輸入:訓練樣本

輸出:分類規則表

方法:

一、讀取資料集名字

二、讀取所有的訓練樣本

A、讀取屬性資訊C、原始類E、樣本值A,並將樣本劃分為訓練樣本(2/3)和評價樣本(1/3)。

B、屬性資訊C可以是連續(DISCRETE)或離散(CONTINUOUS)的,分別將屬性註上這兩種標記;若屬性是DISCERTE,讀取其可能取得值,並都儲存在一個列表中;每一個屬性都有一個標記,一個給定的屬性編號及初始化的取值列表均儲存於一個屬性的資料結構中,並將資料結構儲存在一個雜湊表中。

C、原始類E當作一個附加屬性資訊儲存在屬性列表中。

D、以增量方式讀取每一個樣本A,將所有的樣本儲存在一個表中,每一行代表一個樣本。

三、利用資料集構建樹

A、離散化連續條件屬性C DISCRETE,獲得的分割點集T(t1,t2……)作為條件屬性C的新的取值。

B、分別計算所有條件屬性的增益比率GainRatio(C),取增益比率值最大的條件屬性作為樹的劃分節點,其值或範圍作為劃分值V(v1,v2……)來生成樹的分枝。

C、判斷該層與每一個等價子集的原始類類別是否一致。若一致,生成葉子結點。否則,繼續計算增益比率GainRatio(C)和選擇條件屬性C,得到樹的節點和劃分值V,直至所有的樣本已分類完畢。

四、測試生成樹

將測試樣本C′帶入樹中,當某一測試樣本的分類預測錯誤時,記錄分類錯誤的計數,並將測試樣本新增到訓練樣本中,轉向步驟三,重新構建樹。否則,輸出分類樹

五、抽取分類規則

到達樹的葉節點的每條路徑表示一條分類規則從樹中抽取分類規則,列印規則和分類的詳細資訊

C4.5網上有原始碼下載,vc和c++版本都能獲得。

Decision Tree的使用

    以ENVI5.x為操作平臺,ENVI classic、ENVI4.8及以下版本類似。

一、規則獲取

選取Landsat TM5影像和這個地區對應的DEM資料,影像和DEM經過了精確配準。

規則如下描述:

Class1(朝北緩坡植被):NDVI>0.3, slope<20, aspect<90 and aspect>270

Class2(非朝北緩坡植被):NDVI>0.3, slope<20, 90<=aspect<=270

Class3(陡坡植被):NDVI>0.3, slope>=20,

Class4(水體):NDVI<=0.3, 0<b4<20

Class5(裸地):NDVI<=0.3, b4>=20

Class6(無資料區,背景): NDVI<=0.3, b4=0

也可以按照二叉樹描述方式:第一層,將影像分為兩類,NDVI大於0.3,NDVI小於或等於0.3;第二層,NDVI高的,分為坡度大於或等於20度和坡度小於20度。以此往下劃分。

二、輸入決策樹規則

啟動Toolbox/Classification/Decision Tree/New Decision Tree開啟決策樹分類工具,如圖3所示,預設顯示了一個節點。

圖3 Decision Tree介面

首先我們按照NDVI的大小劃分第一個節點,單擊Node1,跳出圖4對話方塊,Name為NDVI>0.3,在Expression中填寫:{ndvi} gt 0.3。

圖4 新增規則表示式

點選OK後,會提示你給{ndvi}指定一個數據源,如圖5所示,點選第一列中的變數,在對話方塊中選擇相應的資料來源,這樣就完成第一層節點規則輸入。

圖5 指定資料來源

Expression中的表示式是有變數和運算子(包括數學函式)組成,支援的運算子如表1所示

表示式

部分可用函式

基本運算子

+、-、*、/

三角函式

正弦Sin(x)、餘弦cos(x)、正切tan(x)

反正弦Asin(x)、反餘弦acos(x)、反正切atan(x)

雙曲線正弦Sinh(x)、雙曲線餘弦cosh(x)、雙曲線正切tanh(x)

關係/邏輯

小於LT、小於等於LE、等於EQ、不等於NE、大於等於GE、大於GT

and、or、not、XOR

最大值(>)、最小值 (<)

其他符號

指數(^)、自然指數exp

自然對數對數alog(x)

以10為底的對數alog10(x)

整形取整——round(x)、ceil(x)

平方根(sqrt)、絕對值(adb)

表1 運算子

ENVI決策樹分類器中的變數是指一個波段的資料或作用於資料的一個特定函式。變數名必須包含在大括號中,即{變數名};或者命名為bx,x代表資料,比如哪一個波段。如果變數被賦值為多波段檔案,變數名必須包含一個寫在方括號中的下標,表示波段數,比如{pc[2]}表示主成分分析的第一主成分。支援特定變數名如表2,也可以通過IDL自行編寫函式。

變數

作用

slope

計算坡度

aspect

計算坡向

ndvi

計算歸一化植被指數

Tascap [n]

穗帽變換,n表示獲取的是哪一分量。

pc [n]

主成分分析,n表示獲取的是哪一分量。

lpc  [n]

區域性主成分分析,n表示獲取的是哪一分量。

mnf [n]

最小噪聲變換,n表示獲取的是哪一分量。

Lmnf[n]

區域性最小噪聲變換,n表示獲取的是哪一分量。

Stdev  [n]

波段n的標準差

lStdev  [n]

波段n的區域性標準差

Mean  [n]

波段n的平均值

lMean  [n]

波段n的區域性平均值

Min [n]max  [n]

波段n的最大、最小值

lMin [n]lmax  [n]

波段n的區域性最大、最小值

表2變量表達式

第一層節點根據NDVI的值劃分為植被和非植被,如果不需要進一步分類的話,這個影像就會被分成兩類:class0和class1。

對NDVI大於0.3,也就是class1,根據坡度劃分成緩坡植被和陡坡植被。在class1圖示上右鍵,選擇Add Children。單擊節點識別符號,開啟節點屬性視窗,Name為Slope<20,在Expression中填寫:{Slope} lt 20。

同樣的方法,將所有規則輸入,末節點圖示右鍵Edit Properties,可以設定分類結果的名稱和顏色,最後結果如圖6所示。

圖6 規則輸入結果圖

三、執行決策樹

選擇Options->Execute,執行決策樹,跳出圖7所示對話方塊,選擇輸出結果的投影引數、重取樣方法、空間裁剪範圍(如需要)、輸出路徑,點選OK之後,得到如圖8所示結果。在決策樹執行過程中,會以不同顏色標示執行的過程。

圖7 輸出結果

回到決策樹視窗,在工作空白處點選右鍵,選擇Zoom In,可以看到每一個節點或者類別有相應的統計結果(以畫素和百分比表示)。如果修改了某一節點或者類別的屬性,可以左鍵單擊節點或者末端類別圖示,選擇Execute,重新執行你修改部分的決策樹。

圖9 執行決策樹後的效果

分類後處理和其他計算機分類類似的過程。

基於CART的決策樹規則自動提取

決策樹分類主要的工作是獲取規則,下面介紹使用CART演算法獲取規則,下圖是總體流程。

圖10總體技術流程圖

在獲取規則過程中,由於計算量較大,我們推薦裁剪一部分較典型區域作為實驗區獲取規則,之後將這個規則應用於整個影象區域。

詳細操作可參考:https://www.cnblogs.com/enviidl/p/16284148.html