影像資訊提取之—— 監督與非監督分類
基於光譜的影像的分類可分為監督與非監督分類,這類分類方法適合於中低解析度的資料,根據其原理有基於傳統統計分析的、基於神經網路的、基於模式識別的等。
本專題以ENVI的監督與非監督分類的實際操作為例,介紹這兩種分類方法的流程和相關知識。有以下內容組成:
- 監督分類
- 非監督分類
- 分類後處理
監督分類
監督分類:又稱訓練分類法,用被確認類別的樣本像元去識別其他未知類別像元的過程。它就是在分類之前通過目視判讀和野外調查,對遙感影象上某些樣區中影像地物的類別屬性有了先驗知識,對每一種類別選取一定數量的訓練樣本,計算機計算每種訓練樣區的統計或其他資訊,同時用這些種子類別對判決函式進行訓練,使其符合於對各種子類別分類的要求,隨後用訓練好的判決函式去對其他待分資料進行分類。使每個像元和訓練樣本作比較,按不同的規則將其劃分到和其最相似的樣本類,以此完成對整個影象的分類。
遙感影像的監督分類一般包括以下6個步驟,如圖1所示:
1、類別定義/特徵判別
根據分類目的、影像資料自身的特徵和分類區收集的資訊確定分類系統;對影像進行特徵判斷,評價影象質量,決定是否需要進行影像增強等預處理。這個過程主要是一個目視檢視的過程,為後面樣本的選擇打下基礎。
本例是以ENVI自帶Landsat tm5資料Can_tmr.img為資料來源,類別分為:林地、草地/灌木、耕地、裸地、沙地、其他六類。
2、樣本選擇
為了建立分類函式,需要對每一類別選取一定數目的樣本,在ENVI中是通過感興趣區(ROIs)來確定,也可以將向量檔案轉化為ROIs檔案來獲得,或者利用終端像元收集器(
本例中使用ROIs方法,開啟分類影象,在Display->Overlay->Region of Interest,預設ROIs為多邊形,按照預設設定在影像上定義訓練樣本。如圖2所示,設定好顏色和類別名稱(支援中文名稱)。
在ROIs面板中,選擇Option->Compute ROI Separability,計算樣本的可分離性。如圖3所示,表示各個樣本型別之間的可分離性,用Jeffries-Matusita, Transformed Divergence引數表示,這兩個引數的值在0~2.0之間,大於1.9說明樣本之間可分離性好,屬於合格樣本;小於
圖2訓練樣本的選擇
圖3樣本可分離性計算報表
l在計算樣本可分離性時候,可能會出現以下錯誤資訊(Singular Value encountered…),經常出現在影像波段非常多的情況。出現這個情況主要是這一類樣本的樣本點數量太少。
l在選擇樣本的時候,可以使用一些增強的手段輔助樣本的選擇,如主成分分析、波段合成等。
3、分類器選擇
根據分類的複雜度、精度需求等確定哪一種分類器。目前監督分類可分為基於傳統統計分析學的,包括平行六面體、最小距離、馬氏距離、最大似然,基於神經網路的,基於模式識別,包括支援向量機、模糊分類等,針對高光譜有波譜角(SAM),光譜資訊散度,二進位制編碼。下面是幾種分類器的簡單描述。
表 幾種監督分類器說明
分類器 |
說明 |
平行六面體(Parallelpiped) |
根據訓練樣本的亮度值形成一個n維的平行六面體資料空間,其他像元的光譜值如果落在平行六面體任何一個訓練樣本所對應的區域,就被劃分其對應的類別中。平行六面體的尺度是由標準差閾值所確定的,而該標準差閾值則是根據所選類的均值求出。 |
最小距離(Minimum Distance) |
利用訓練樣本資料計算出每一類的均值向量和標準差向量,然後以均值向量作為該類在特徵空間中的中心位置,計算輸入影象中每個像元到各類中心的距離,到哪一類中心的距離最小,該像元就歸入到哪一類。 |
馬氏距離(Mahalanobis Distance) |
計算輸入影象到各訓練樣本的馬氏距離(一種有效的計算兩個未知樣本集的相似度的方法),最終統計馬氏距離最小的,即為此類別。 |
最大似然 (Likelihood Classification) |
假設每一個波段的每一類統計都呈正態分佈,計算給定像元屬於某一訓練樣本的似然度,像元最終被歸併到似然度最大的一類當中。 |
神經網路 (Neural Net Classification) |
指用計算機模擬人腦的結構,用許多小的處理單元模擬生物的神經元,用演算法實現人腦的識別、記憶、思考過程應用於影象分類。 |
支援向量機 (Support Vector Machine Classification) |
支援向量機分類(SVM)是一種建立在統計學習理論(Statistical Learning Theory或SLT)基礎上的機器學習方法。SVM可以自動尋找那些對分類有較大區分能力的支援向量,由此構造出分類器,可以將類與類之間的間隔最大化,因而有較好的推廣性和較高的分類準確率。 |
波譜角(Spectral Angle Mapper) |
它是在N維空間將像元與參照波譜進行匹配,通過計算波譜間的相似度,之後對波譜之間相似度進行角度的對比,較小的角度表示更大的相似度。 |
4、影像分類
基於傳統統計分析的分類方法引數設定比較簡單,這裡選擇支援向量機分類方法。主選單下選擇Classification > Supervised > Support Vector Machine。按照預設設定引數輸出分類結果,如圖5所示。
圖5支援向量機分類器引數設定
圖6支援向量機分類結果
5、分類後處理
分類後處理包括的很多的過程,都是些可選項,包括更改類別顏色、分類統計分析、小斑點處理(類後處理)、柵矢轉換等操作。
(1)更改類別顏色
可以在Interactive Class Tool面板中,選擇Option->Edit class colors/names更改,也可以在Display->Color Mapping->Class Color Mapping。如下圖7所示,直接可以在對應的類別中修改顏色。
也可以根據一個顯示的RGB影像來自動分配類別顏色,開啟主選單->Classification->Post Classification->Assign Class Colors。
圖7類別顏色的更改
圖8類別顏色更改後的效果
圖9自動顏色更改的效果圖
(2)分類統計分析
主選單->Classification->Post Classification->Class Statistics。如圖10所示,包括基本統計:類別的像元數、最大最小值、平均值等,直方圖,協方差等資訊。
圖10分類結果統計
(3)小斑點處理(類後處理)
運用遙感影像分類結果中,不可避免地會產生一些面積很小的圖斑。無論從專題製圖的角度,還是從實際應用的角度,都有必要對這些小圖斑進行剔除和重新分類,目前常用的方法有Majority/Minority分析、聚類(clump)和過濾(Sieve)和。這些工具都可以在主選單->Classification->Post Classification中找到。Majority/Minority分析和聚類(clump)是將周圍的“小斑點”合併到大類當中,過濾(Sieve)是將不符合的“小斑點”直接剔除。
如下圖11為Majority分析的結果。
圖11類後處理結果圖
(4)柵矢轉換
開啟主選單->Classification->Post Classification->Classification to Vector,可以將分類後得到的結果轉化為向量格式,或者主選單->Vector->Raster to Vector,在選擇輸出引數時候,可以選擇特定的類別,也可以把類別單獨輸出為向量檔案或者一個向量檔案。
圖12柵矢轉換面板
6、結果驗證
對分類結果進行評價,確定分類的精度和可靠性。有兩種方式用於精度驗證:一是混淆矩陣,二是ROC曲線,比較常用的為混淆矩陣,ROC曲線可以用圖形的方式表達分類精度,比較形象。
真實參考源可以使用兩種方式:一是標準的分類圖,二是選擇的感興趣區(驗證樣本區)。兩種方式的選擇都可以通過主選單->Classification->Post Classification->Confusion Matrix或者ROC Curves來選擇。
真實的感興趣區參考源的選擇可以是在高解析度影像上選擇,也可以是野外實地調查獲取,原則是獲取的類別參考源的真實性。由於沒有更高解析度的資料來源,本例中就把原分類的TM影像當作是高解析度影像,在上面進行目視解譯得到真實參考源。直接利用ROI工具,在TM圖上均勻的選擇6類真實參考源,如圖13所示。
選擇主選單->Classification->Post Classification->Confusion Matrix->Using Ground Truth ROIs。將分類結果和ROI輸入,軟體會根據區域自動匹配,如不正確可以手動更改。點選ok後選擇報表的表示方法(畫素和百分比),就可以得到精度報表。
圖13真實感興趣區參考源選取
圖14驗證操作面板
圖15分類精度評價混淆矩陣
這裡說明一下混淆矩陣中的幾項評價指標,如下:
l總體分類精度等於被正確分類的像元總和除以總像元數。被正確分類的像元數目沿著混淆矩陣的對角線分佈,總像元數等於所有真實參考源的像元總數,如本次精度分類精度表中的Overall Accuracy = (1849/2346) 78.8150%。
lKappa係數它是通過把所有真實參考的像元總數(N)乘以混淆矩陣對角線(XKK)的和,再減去某一類中真實參考像元數與該類中被分類像元總數之積之後,再除以像元總數的平方減去某一類中真實參考像元總數與該類中被分類像元總數之積對所有類別求和的結果。
Kappa計算公式
指被分為使用者感興趣的類,而實際屬於另一類的像元,它顯示在混淆矩陣裡面。本例中,林地有419個真實參考像元,其中正確分類265,12個是其他類別錯分為林地(混淆矩陣中林地一行其他類的總和),那麼其錯分誤差為12/419=2.9%。
l漏分誤差指本身屬於地表真實分類,當沒有被分類器分到相應類別中的像元數。如在本例中的耕地類,有真實參考像元465個,其中462個正確分類,其餘3個被錯分為其餘類(混淆矩陣中耕地類中一列裡其他類的總和),漏分誤差為3/465=0.6%
- 製圖精度
是指分類器將整個影像的像元正確分為A類的像元數(對角線值)與A類真實參考總數(混淆矩陣中A類列的總和)的比率。如本例中林地有419個真實參考像元,其中265個正確分類,因此林地的製圖精度是265/419=63.25%。
- 使用者精度
是指正確分到A類的像元總數(對角線值)與分類器將整個影像的像元分為A類的像元總數(混淆矩陣中A類行的總和)比率。如本例中林地有265個正確分類,總共劃分為林地的有277,所以林地的使用者精度是265/277=95.67%。
非監督分類
非監督分類:也稱為聚類分析或點群分類。在多光譜影象中搜尋、定義其自然相似光譜叢集的過程。它不必對影像地物獲取先驗知識,僅依靠影像上不同類地物光譜(或紋理)資訊進行特徵提取,再統計特徵的差別來達到分類的目的,最後對已分出的各個類別的實際屬性進行確認。
目前比較常見也較為成熟的是ISODATA、K-Mean和鏈狀方法等。遙感影像的非監督分類一般包括以下6個步驟:
圖16非監督分類操作流程
1、影像分析
大體上判斷主要地物的類別數量。一般監督分類設定分類數目比最終分類數量要多2-3倍為宜,這樣有助於提高分類精度。
本案例的資料來源為ENVI自帶的Landsat tm5資料Can_tmr.img,類別分為:林地、草地/灌木、耕地、裸地、沙地、其他六類。確定在非監督分類中的類別數為15。
2、分類器選擇
ISODATA(Iterative Self-Orgnizing Data Analysize Technique)重複自組織資料分析技術,計算資料空間中均勻分佈的類均值,然後用最小距離技術將剩餘像元進行迭代聚合,每次迭代都重新計算均值,且根據所得的新均值,對像元進行再分類。
K-Means使用了聚類分析方法,隨機地查詢聚類簇的聚類相似度相近,即中心位置,是利用各聚類中物件的均值所獲得一個“中心物件”(引力中心)來進行計算的,然後迭代地重新配置他們,完成分類過程。
3、影像分類
開啟ENVI,選擇主選單->Classification->Unsupervised->IsoData或者K-Means。這裡選擇IsoData,在選擇檔案時候,可以設定空間或者光譜裁剪區。這裡選擇軟體自帶的Can_tmr.img,按預設設定,之後跳出引數設定,如圖2。
這裡主要設定類別數目(Number of Classes)為5-15、迭代次數(Maximum Iteration)為10。其他選項按照預設設定,輸出檔案。
圖17 ISODATA非監督分類引數設定
圖18 ISODATA分類結果
4、類別定義/類別合併
(1)類別定義
在display中顯示原始影像,在display->overlay->classification,選擇ISODATA分類結果,如圖19所示,在Interactive Class Tool面板中,可以選擇各個分類結果的顯示。
圖19影像與分類結果的疊加
Interactive Class Tool面板中,選擇Option->Edit class colors/names。通過目視或者其他方式識別分類結果,填寫相應的型別名稱和顏色。
圖20類別定義
如圖21所示為最終的結果。
圖21類別定義結果
在類別定義時候,可以利用Mode:Polygon Add to Class、Edit->Mode:Polygon Delete from Class或者Set delete class value把很明顯的錯誤分類結果併入或者刪除。
(2)類別合併
選擇主選單->Classification->Post Classification ->Combine Classes。把同一類的類別合併成一類,如圖22所示。在點選ok後,需要選擇輸出檔案和Remove Empty Class選擇YES,可以得到結果。
圖22類別的合併
5、分類後處理
參照監督分類。
6、結果驗證
參照監督分類。
ENVI 5下流程化分類工具
在ENVI5.0下,提供了一個流程的影象分類工具,Toolbox/Classification/Classification Workflow工具,下面對10米的ALI資料進行火燒跡地資訊提取為例子,簡單看看具體操作步驟如下:
第一步,開啟資料“BurnALI_subset.dat”,用964波段合成顯示;
圖23 band 9,6,4組合增強火燒跡地資訊
第二步:開啟監督分類的流程化工具,Toolbox/Classification/Classification Workflow,在Input Raster中輸入待分類的資料,點選Next,選擇Use Training Data(監督分類),