ENVI中監督分類方法及引數說明
根據分類的複雜度、精度需求等選擇一種分類器。在Toolbox工具箱中,選擇Classification/Supervised Classification/分類器型別(如表6.1),此外還包括應用於高光譜資料的自適應一致估計(Adaptive Coherence Estimator)、二進位制編碼(Binary Encoding Classification)、最小能量約束(Constrained Energy Minimization)、正交子空間投影(Orthogonal Subspace Projection)、波譜角(Spectral Angle Mapper Classification)和光譜資訊散度(Spectral Information Divergence Classification)分類方法,這部分方法詳見後面“第14章 高光譜與光譜分析技術”。
表6.1 六種監督分類器說明
分類器 |
說明 |
平行六面體(Parallelpiped) |
根據訓練樣本的亮度值形成一個n維的平行六面體資料空間,其他像元的光譜值如果落在平行六面體任何一個訓練樣本所對應的區域,就被劃分其對應的類別中。平行六面體的尺度是由標準差閾值所確定的,而該標準差閾值則是根據所選類的均值求出。 |
最小距離(Minimum Distance) |
利用訓練樣本資料計算出每一類的均值向量和標準差向量,然後以均值向量作為該類在特徵空間中的中心位置,計算輸入影象中每個像元到各類中心的距離,到哪一類中心的距離最小,該像元就歸入到哪一類。 |
馬氏距離(Mahalanobis Distance) |
計算輸入影象到各訓練樣本的馬氏距離(一種有效的計算兩個未知樣本集的相似度的方法),最終統計馬氏距離最小的,即為此類別。 |
最大似然 (Likelihood Classification) |
假設每一個波段的每一類統計都呈正態分佈,計算給定像元屬於某一訓練樣本的似然度,像元最終被歸併到似然度最大的一類當中。 |
神經網路 (Neural Net Classification) |
指用計算機模擬人腦的結構,用許多小的處理單元模擬生物的神經元,用演算法實現人腦的識別、記憶、思考過程應用於影象分類。 |
支援向量機 (Support Vector Machine Classification) |
支援向量機分類(SVM)是一種建立在統計學習理論(Statistical Learning Theory或SLT)基礎上的機器學習方法。SVM可以自動尋找那些對分類有較大區分能力的支援向量,由此構造出分類器,可以將類與類之間的間隔最大化,因而有較好的推廣性和較高的分類準確率。 |
選擇不同的分類器器需要設定的引數不一樣。
1.平行六面體
(1) 在Toolbox工具箱中,雙擊Classification/Supervised Classification/Parallelepiped Classification工具,在檔案輸入對話方塊中選擇TM影象,單擊OK按鈕開啟Parallelpiped引數設定面板(圖6.5)。
圖6.5 平行六面體分類器引數設定面板
(2) SelectClasses from Regions列表:單擊Select All Items按鈕,選擇全部的訓練樣本。
(3)Set Max stdev from Mean選項:設定標準差閾值,有三種類型:
None:不設定標準差閾值;
Single Value:為所有類別設定一個標準差閾值;
Multiple Values:分別為每一個類別設定一個標準差閾值。
選擇Single Value,值為3。
(4)單擊Preview選項,可以在右邊視窗中預覽分類結果,單擊Change View可以改變預覽區域。
(5)選擇分類結果的輸出路徑及檔名。
(6)設定Out Rule Images為Yes,選擇規則影象輸出路徑及檔名。
(7)單擊OK按鈕執行分類。
2. 最小距離
(1) 在Toolbox工具箱中,雙擊Classification/Supervised Classification/Minimum Distance Classification工具,在檔案輸入對話方塊中選擇TM影象,單擊OK按鈕開啟Minimum Distance引數設定面板(圖6.6)。
圖6.6 最小距離分類器引數設定面板
(2) SelectClasses from Regions列表:單擊Select All Items按鈕,選擇全部的訓練樣本。
(3) Set Max stdev from Mean選項:設定標準差閾值,有三種類型:
None:不設定標準差閾值;
Single Value:為所有類別設定一個標準差閾值;
Multiple Values:分別為每一個類別設定一個標準差閾值。
選擇Single Value,值為4。
(4) Set Max Distance Error文字框:設定最大距離誤差,以DN值方式輸入一個值,距離大於該值的像元不被分入該類(如果不滿足所有類別的最大距離誤差,它們就不會被歸為未分類類(unclassified))。也有三種類型,這裡選擇None。
(5) 單擊Preview選項,可以在右邊視窗中預覽分類結果,單擊Change View按鈕可以改變預覽區域。
(6) 選擇分類結果的輸出路徑及檔名。
(7) 設定Out Rule Images為Yes,選擇規則影象輸出路徑及檔名。
(8) 單擊OK按鈕執行分類。
3. 馬氏距離
(1) 在Toolbox工具箱中,雙擊Classification/Supervised Classification/Mahalanobis Distance Classification工具,在檔案輸入對話方塊中選擇TM影象。單擊OK按鈕開啟Mahalanobis Distance引數設定面板(圖6.7)。
圖6.7 馬氏距離分類器引數設定面板
(2) SelectClasses from Regions列表:單擊Select All Items按鈕,選擇全部的訓練樣本。
(3)Set Max Distance Error選項:設定最大距離誤差,以DN值方式輸入一個值,距離大於該值的像元不被分入該類(如果不滿足所有類別的最大距離誤差,它們就不會被歸為未分類類(unclassified))。也有三種類型,這裡選擇None。
(4) 單擊Preview選項,可以在右邊視窗中預覽分類結果,單擊Change View可以改變預覽區域。
(5) 選擇分類結果的輸出路徑及檔名。
(6) 設定Out Rule Images為Yes,選擇規則影象輸出路徑及檔名。
(7) 單擊OK按鈕執行分類。
4. 最大似然
(1) 在Toolbox工具箱中,雙擊Classification/Supervised Classification/Maximum Likelihood Classification工具,在檔案輸入對話方塊中選擇TM影象。單擊OK按鈕開啟Likelihood Classification引數設定面板(圖6.8)。
圖6.8 最大似然分類器引數設定面板
(2) SelectClasses from Regions列表:單擊Select All Items按鈕,選擇全部的訓練樣本。
(3) Set Probability Threshold選項:設定似然度的閾值。如果選擇Single Value,則在Probability Threshold文字框中,輸入一個0到1之間的值,似然度小於該閾值不被分入該類。這裡選擇None。
(4) Data Scale Factor文字框:輸入一個數據比例係數。這個比例係數是一個比值係數,用於將整型反射率或輻射率資料轉化為浮點型資料。例如:如果反射率資料在範圍0-10000之間,則設定的比例係數就為10000。對於沒有定標的整型資料,也就是原始DN值,將比例係數設為2n-1,n為資料的位元數,例如:對於8-bit資料,設定的比例係數為255,對於10-bit資料,設定的比例係數為1023,對於11-bit資料,設定的比例係數為2047。
(5) 單擊Preview,可以在右邊視窗中預覽分類結果,單擊Change View按鈕可以改變預覽區域。
(6) 選擇分類結果的輸出路徑及檔名。
(7) 設定Out Rule Images為Yes,選擇規則影象輸出路徑及檔名。
(8) 單擊OK按鈕執行分類。
5. 神經網路
(1) 在Toolbox工具箱中,雙擊Classification/Supervised Classification/Neural Net Classification工具,在檔案輸入對話方塊中選擇TM影象。單擊OK按鈕開啟Neural Net Classification引數設定面板(圖6.9)。
圖6.9 神經網路分類器引數設定面板
(2) SelectClasses from Regions列表:單擊Select All Items按鈕,選擇全部的訓練樣本。
(3) Activation:選擇活化函式。對數(Logistic)和雙曲線(Hyperbolic)。
(4) Training Threshold Contribution:輸入訓練貢獻閾值(0-1)。該引數決定了與活化節點級別相關的內部權重的貢獻量。它用於調節節點內部權重的變化。訓練演算法互動式地調整節點間的權重和節點閾值,從而使輸出層和響應誤差達到最小。將該引數設定為0不會調整節點的內部權重。適當調整節點的內部權重可以生成一幅較好的分類影象,但是如果設定的權重太大,對分類結果也會產生不良影響。
(5) Training Rate:設定權重調節速度(0~1)。引數值越大則使訓練速度越快,但也增加擺動或者使訓練結果不收斂。
(6) Training Momentum:輸入一個0~1的值。該值大於0時,在“Training Rate”文字框中鍵入較大值不會引起擺動。該值越大,訓練的步幅越大。該引數的作用是促使權重沿當前方向改變。
(7) Training RMS Exit Criteria:指定RMS誤差為何值時,訓練應該停止。RMS誤差值在訓練過程中將顯示在圖表中,當該值小於輸入值時,即使還沒有達到迭代次數,訓練也會停止,然後開始進行分類。
(8) Number of Hidden Layers:鍵入所用隱藏層的數量。要進行線性分類,鍵入值為0。沒有隱藏層,不同的輸入區域必須與一個單獨的超平面線性分離。要進行非線性分類,輸入值應該大於或等於1,當輸入的區域並非線性分離或需要兩個超平面才能區分類別時,必須擁有至少一個隱藏層才能解決這個問題。兩個隱藏層用於區分輸入空間,空間中的不同要素不臨近也不相連。
(9) Number of Training Iterations:輸入用於訓練的迭代次數。
(10) Min Output Activation Threshold:輸入一個最小輸出活化閾值。如果被分類像元的活化值小於該閾值,在輸出的分類中,該像元將被歸入未分類中(unclassified)。
(11) 選擇分類結果的輸出路徑及檔名。
(12) 設定Out Rule Images為Yes,選擇規則影象輸出路徑及檔名。
(13)單擊OK按鈕執行分類。
6. 支援向量機
(1)在Toolbox工具箱中,雙擊Classification/Supervised Classification/Support Vector Machine Classification工具,在檔案輸入對話方塊中選擇TM影象。單擊OK按鈕開啟Support Vector Machine Classification引數設定面板(圖6.10)。
圖6.10 支援向量機分類器引數設定面板
(2) Kernel Type下拉列表裡選項有 Linear,Polynomial,Radial Basis Function,以及 Sigmoid。
如果選擇Polynomial,設定一個核心多項式(Degree of Kernel Polynomial)的次數用於SVM,最小值是1,最大值是6。
如果選擇Polynomial or Sigmoid,使用向量機規則需要為Kernel指定 the Bias ,預設值是1。
如果選擇是 Polynomial、Radial Basis Function、Sigmoid,需要設定Gamma in Kernel Function引數。這個值是一個大於零的浮點型資料。預設值是輸入影象波段數的倒數。
(3) Penalty Parameter:這個值是一個大於零的浮點型資料。這個引數控制了樣本錯誤與分類剛性延伸之間的平衡, 預設值是100。
(4) Pyramid Levels:設定分級處理等級,用於SVM訓練和分類處理過程。如果這個值為0,將以原始解析度處理;最大值隨著影象的大小而改變,
(5) Pyramid Reclassification Threshold(0~1):當Pyramid Levels值大於0時候需要設定這個重分類閾值。
(6) Classification Probability Threshold: 為分類設定概率域值,如果一個畫素計算得到所有的規則概率小於該值,該畫素將不被分類,範圍是0~1,預設是0。
(7) 選擇分類結果的輸出路徑及檔名。
(8) 設定Out Rule Images為Yes,選擇規則影象輸出路徑及檔名。
(9) 單擊OK按鈕執行分類。
在上述6種分類器中都可以生成規則影象(Rule Images),它可以用來對分類的結果進行評估,如果需要還可以根據指定的閾值,重新進行分類。在不同分類方法所生成的規則影象中,像元值代表了不同的資訊,如表6.2所示。
表6.2 部分分類器中規則影象的像元值意義
分類器 |
像元值意義 |
平行六面體(Parallelepiped) |
滿足平行六面體準則的波段數 |
最小距離(Minimum Distance) |
到類中心的距離和 |
馬氏距離(Mahalanobis Distance) |
到類中心的距離 |
最大似然(Maximum Likelihood) |
像元屬於該類的概率 |
摘自《ENVI遙感影象處理方法 第二版》高等教育出版社