利用ENVI深度學習進行遙感變化監測教程

地理遥感生态网平台發表於2024-06-26

基於多時相影像進行地表覆蓋變化監測是遙感的一個重要應用,在城市違法建設監測、水政違法建設監測、森林砍伐監測等領域得到廣泛應用。由於遙感演算法、資料來源質量等原因,遙感變化資訊提取一般採用目視解譯方式進行。

本教程介紹採用深度學習方法進行城市建築物、構築物、填河、動土、堆土等目標的變化監測。

本教程在ENVI5.6+Deep Learning1.1.3中完成。ENVI Deep Learning 1.1.3適配 ENVI 5.6,要求計算機必須具備NVIDIA顯示卡,對顯示卡環境要求如下:

  • 顯示卡驅動版本要求36.06 或更高版本。
  • 要求顯示卡 CUDA 計算能力( Compute Capability)在5 ~ 8.6 之間。

推薦8G以上視訊記憶體的顯示卡,如價效比較高的NVIDIA GeoForce系列顯示卡GeoForce RTX 3080、3090等。

1變化地物型別

在使用深度學習方法提取變化目標之前,首先要明確變化地物型別,本文將變化地物類別劃分為如下幾類:建築物(主要為變化廠房),構築物(新修道路等),填河,動土,堆土等。其影像特徵如下圖所示:

利用ENVI深度學習進行遙感變化監測教程

利用ENVI深度學習進行遙感變化監測教程

建築物

構築物

利用ENVI深度學習進行遙感變化監測教程

利用ENVI深度學習進行遙感變化監測教程

動土

填河

圖:變化目標

如下圖所示,左側為第一時相影像右側為第二時相影像,透過兩時期對比,展示更多變化目標特徵。

利用ENVI深度學習進行遙感變化監測教程

建築物

利用ENVI深度學習進行遙感變化監測教程

建築物(廠房)

利用ENVI深度學習進行遙感變化監測教程

構築物

利用ENVI深度學習進行遙感變化監測教程

構築物(新修道路)

利用ENVI深度學習進行遙感變化監測教程

填河

利用ENVI深度學習進行遙感變化監測教程

動土

利用ENVI深度學習進行遙感變化監測教程

動土

利用ENVI深度學習進行遙感變化監測教程

堆土

圖:變化目標特徵

2深度學習變化監測

2.1 資料來源

資料來源使用高分一號PMS感測器融合校正後的正射影像DOM產品,研究區如下圖所示:

表:資料來源

衛星

資料級別

波段

解析度(米)

時間

高分一號PMS

正射鑲嵌影像DOM

R、G、B

3波段

2

兩時期

利用ENVI深度學習進行遙感變化監測教程

圖:研究區

2.2 技術流程

利用ENVI深度學習進行遙感變化監測教程

圖:技術流程

2.3 預處理

預處理主要包括兩時期影像的波段合成。在ENVI工具箱中選擇,Raster Management/Build Layer Stack,選擇兩時相3波段影像資料,其他引數按照預設,設定檔案輸出路徑,點選OK進行波段合成,得到兩時期6波段合成結果。

利用ENVI深度學習進行遙感變化監測教程

圖:兩時期波段合成

注意:如果影像有中心波長和波長單位,進行波段合成之後要編輯影像標頭檔案,刪除影像的中心波長和波長單位

2.4 深度學習

深度學習操作流程主要包括三個部分:首先,建立標籤影像。標籤柵格的生成一般先選擇典型子區繪製樣本後生成標籤柵格;第二,訓練深度學習模型。有了標籤柵格就可以初始化深度學習模型並進行模型訓練,推薦使用隨機化引數組的方法進行模型訓練;第三,使用訓練好的模型進行目標提取。訓練好模型之後就可以使用訓練好的模型進行目標提取。這三步操作是深度學習的主要內容,之後可進一步將分類結果轉換為向量ROI再次進行編輯生成新的標籤柵格重複訓練模型,直到得到較好的結果。

利用ENVI深度學習進行遙感變化監測教程

圖:深度學習操作流程

2.4.1 建立標籤影像

1)樣本獲取

建立標籤影像之前首先需要獲取樣本。透過人工目視解譯的方法繪製研究區範圍內ROI樣本,在ENVI上方工具欄點選 按鈕,建立變化圖斑ROI,沿著變化圖斑輪廓繪製變化圖斑樣本。如下圖所示:

利用ENVI深度學習進行遙感變化監測教程

圖:繪製ROI樣本

如果已有Shapefile向量樣本,也可在ROI工具皮膚選擇File>Import>Import Vector匯入已有的Shapefile向量作為ROI樣本檔案。

利用ENVI深度學習進行遙感變化監測教程

圖:研究區向量樣本

關於樣本的獲取,通常有如下三個原則:

  • 樣本區域範圍內,全面覆蓋多種地物型別。
  • 繪製樣本儘可能的多。
  • 樣本輪廓儘可能精確,不要多餘地物。
2)構建樣本庫

構建樣本庫可以分為如下四步:

  • 樣本向量生成緩衝區
  • 將緩衝區合併
  • 透過合併後的緩衝區向量生成最小外接矩形
  • 使用最小外接矩形裁剪柵格

沿向量周圍擴充套件1000*1000畫素生成緩衝區並將緩衝區合併,之後生成最小外接矩形(最小外接矩形生成工具可參考2.4.4節3)內容),使用外接矩形將影像切片建立模型訓練樣本庫。向量裁剪在Toolbox中選擇Extensions/Frame Subset via Shapefile向量分幅裁剪工具對影像進行分幅裁剪。

注:向量分幅裁剪工具可在App Store中下載,App Store訪問地址:https://envi.geoscene.cn/appstore/

利用ENVI深度學習進行遙感變化監測教程

圖:矩形裁剪建立樣本庫

3)生成標籤柵格庫

標籤柵格用於深度學習模型訓練,需要透過樣本ROI和柵格影像構建標籤柵格。對於大批次標籤柵格的生成,可使用ENVI Modeler建模工具進行批次標籤柵格的生成。在ENVI工具箱選擇Task Processing/ENVI Modeler開啟建模工具,構建如下批處理模型,點選Run按鈕執行模型,生成批次標籤柵格。

注:Generate Output Filename節點可在App Store中下載。

利用ENVI深度學習進行遙感變化監測教程

圖:ENVI Modeler批處理生成標籤柵格

利用ENVI深度學習進行遙感變化監測教程

圖:標籤柵格庫

2.4.2 模型訓練

對於深度學習模型的訓練,推薦使用隨機化引數組的方法訓練模型。在進行隨機化引數訓練之前,需要先初始化一個深度學習模型。在Toolbox工具箱選擇Deep Learning/Train TensorFlow Mask Model,點選Input Model下方的New Model彈出初始化模型引數設定對話方塊,Number of Bands為波段合成後影像的波段數量,這裡兩時期波段合成後為6波段影像。Number of Classes為變化類別,這裡變化類別設定為1類即為變化地物類,Output Model選擇初始化模型輸出路徑點選OK,生成初始化模型。

利用ENVI深度學習進行遙感變化監測教程

圖:初始化模型

接下來使用隨機化引數訓練工具進行深度學習模型訓練。在Toolbox中,選擇Deep Learning/Deep Learning Guide Map開啟深度學習嚮導工具,在工具對話方塊選擇Tools> Randomize Training Parameters Using the ENVI Modeler開啟深度學習模型隨機化引數訓練工具。直接點選上方工具欄的Run按鈕,彈出隨機化引數訓練對話方塊。

利用ENVI深度學習進行遙感變化監測教程

圖:隨機化引數模型訓練

  • Iterations:為迭代訓練的次數,這裡預設16次,表示一共訓練得到16組模型。
  • Input Model:選擇初始化模型或者選擇需要再次訓練的模型。
  • Training Rasters:選擇上一步生成的標籤柵格。
  • Validation Rasters:同樣選擇上一步生成的標籤柵格,工具會自動選擇80%資料用於訓練,20%資料作為驗證。也可以將標籤柵格庫分為兩部分,一部分用於訓練一部分用於驗證。
  • Augment Scale:是否使用縮放增強。增強是深度學習常用的一種技術,ENVI深度學習使用縮放和旋轉來補充原始訓練資料。它可以減少你所需的標記數量,特別是捕捉各種方向不同和大小不一的同種要素,增強還可以提高模型的能力,將它所學到的知識推廣到新的影像中。但在樣本充足的前提下使用增強會使模型的泛化能力過高,影響提取精度。這裡選擇No,不進行縮放增強。
  • Augment Rotation:選No,不進行旋轉增強。
  • Raster to Classify:選擇要進行變化地物提取的柵格影像,這裡選擇波段合成後的研究區影像。
  • Output Directory:選擇提取結果存放路徑。

2.4.3 模型分類

透過檢視隨機化引數訓練工具的提取效果,選擇泛化能力最強的模型作為深度學習變化監測提取模型。如下圖顯示了不同泛化能力模型的提取效果,圖中泛化能力強的模型不僅沒有“漏提”,還發現了人工沒有發現的變化圖斑,但泛化能力強的模型也有“過提”的缺點,但相比“漏提”,我們更能接受“過提”。

利用ENVI深度學習進行遙感變化監測教程

圖:泛化能力弱

利用ENVI深度學習進行遙感變化監測教程

圖:泛化能力強

選擇好模型之後就可以使用已經訓練好的模型進行變化地物提取。在Toolbox中,選擇Deep Learning/TensorFlow Mask Classification開啟深度學習模型分類工具,Input Raster選擇研究區資料,Input Trained Model選擇訓練好的最優模型,Output Classification Raster選擇提取結果輸出路徑和檔名,Output Class Activation Raster選擇類啟用柵格輸出路徑,點選OK。

利用ENVI深度學習進行遙感變化監測教程

圖:使用已訓練好的模型進行分類

得到深度學習提取的變化圖斑結果,如下圖所示圖中紅色圖斑表示發生變化的區域,黑色為背景區域。

利用ENVI深度學習進行遙感變化監測教程

圖:深度學習變化監測結果

2.4.4 生成向量結果

1)分類後處理

分類後處理主要包括小圖斑處理(Classification Aggregation)、聚類處理(Clump)、主次要分析(Majority/Minority Analysis)。透過分類後處理可對一些細小圖斑進行過濾。

  • 小圖斑處理

在Toolbox中,選擇Classification/Post Classification/Classification Aggregation,在彈出的引數對話方塊中Input Raster選擇分類後結果,Minimum Size和Aggregate Unclassified Pixels按照預設設定,設定輸出路徑點選OK,得到小圖斑處理結果。

  • 聚類處理

在Toolbox中,選擇Classification/Post Classification/Clump Classes,選擇上一步的輸出結果,在彈出的對話方塊中,Class Order刪除Unclassified這一類,其他引數按照預設,設定輸出路徑點選OK,得到聚類處理結果。

  • 主次要分析

在Toolbox中,選擇Classification/Post Classification/Majority/Minority Analysis,選擇上一步的輸出檔案,在彈出的引數設定對話方塊中選擇變化類別,Analysis Method預設Majority進行主要分析,Kernel Size設定為27×27,其他引數按照預設,設定結果輸出路徑點選OK,得到主要分析處理結果。

2)分類柵格轉向量

在Toolbox中,選擇Classification/Post Classification/Classification to Vector將分類柵格轉為向量。選擇上一步的輸出結果,在彈出的對話方塊中,Export Classes選擇變化類別,其他引數按照預設,設定輸出路徑點選OK,得到向量結果。

利用ENVI深度學習進行遙感變化監測教程

圖:分類柵格轉向量

3)生成最小外接矩形

透過輸出的向量結果生成最小外接矩形,在Toolbox中,選擇Vector/Vector to Bounding Box,在彈出的對話方塊中選擇上一步輸出的向量,Oriented Bounding Box選擇Yes,根據圖斑邊界生成最小外接矩形,設定檔案輸出路徑點選OK,得到最終結果。

利用ENVI深度學習進行遙感變化監測教程

圖:生成最小外接矩形

3變化監測結果

3.1 結果統計

本次深度學習變化監測在ENVI5.6+ENVI Deep Learning1.1.3中完成,計算機環境:Dell Precision T3640圖形工作站(CPU:Intel i9-9900K,GPU:NVIDIA RTX2080ti視訊記憶體11GB,記憶體:64GB,硬碟:SSD固態),模型訓練時間:35分鐘,目標提取時間:5小時30分鐘,22135平方公里範圍內共發現變化圖斑42255個。

利用ENVI深度學習進行遙感變化監測教程

圖:變化監測提取結果

使用訓練樣本對深度學習訓練模型進行精度驗證,結果如下:

  • Loss(損失):0.111
  • Accuracy(正確率):0.946
  • Precision(使用者精度):0.783
  • Recall(生產者精度):0.953
  • F1(F1分數):0.853

3.2 監測結果

區域內人工目視繪製變化圖斑共計653個,深度學習模型全部識別發現,無“漏提”現象。同時深度學習還發現了大量人工沒有發下的遺漏變化圖斑。監測結果如下圖所示,圖中紅色向量為人工目視解譯繪製的變化圖斑,黃色矩形框為深度學習發現的變化區域。

利用ENVI深度學習進行遙感變化監測教程

利用ENVI深度學習進行遙感變化監測教程

利用ENVI深度學習進行遙感變化監測教程

利用ENVI深度學習進行遙感變化監測教程

利用ENVI深度學習進行遙感變化監測教程

利用ENVI深度學習進行遙感變化監測教程

利用ENVI深度學習進行遙感變化監測教程

利用ENVI深度學習進行遙感變化監測教程

利用ENVI深度學習進行遙感變化監測教程

利用ENVI深度學習進行遙感變化監測教程

利用ENVI深度學習進行遙感變化監測教程

圖:深度學習變化監測結果

3.3 不足與提高

雖然泛化能力強的模型很少有“漏提”現象,但模型最主要的誤差來源於“過提”,即深度學習模型發現的變化目標遠遠多於實際監測所需的變化目標,不過對於“過提”可以透過人工目視等方法進行快速過濾排除。產生“過提”誤差的主要原因有如下兩個:1.幾何畸變2.時相偏差。

1)幾何畸變

這裡的幾何畸變主要是非系統誤差,如感測器平臺的高度、經緯度、速度和姿態的不穩定,地球曲率及空氣折射,地形影響等。幾何畸變造成的提取誤差如下如所示:

利用ENVI深度學習進行遙感變化監測教程

圖:道路扭曲

圖中前一時相豎直道路在第二時相的影像中發生扭曲,被深度學習檢測為變化區域。

利用ENVI深度學習進行遙感變化監測教程

圖:高層建築位置偏差

圖中前一時相的高層建築與後一時相的高層建築因為拍攝角度的差異造成位置的偏差,被深度學習檢測為變化區域。

利用ENVI深度學習進行遙感變化監測教程

圖:山地地形差異

山部地區的“過提”為本次深度學習變化監測的主要誤差,大約佔“過提”圖斑的80%以上,造成這個結果的主要原因是地形與太陽角度差異引起的幾何畸變。透過兩期影像對比可發現山頂和山脊線位置有明顯位移,兩期影像疊加有“雙眼皮”現象。

關於影像幾何畸變造成的誤差可透過如下兩個方法進行改進:1.高精準DOM。透過高精準DOM對影像進行嚴格的正射校正,從而消除幾何畸變造成的誤差。2.監測區輔助資料。可透過新增向量監測區域進行過濾,排除監測區以外的地物干擾,或透過DEM等輔助資料進行山地區域變化圖斑的過濾。

2)時相偏差

另一類造成誤差的主要原因是時相偏差。下圖顯示了兩時相季節差異造成的提取誤差。黃色變化框內,前一時相無植被覆蓋,後一時相有植被覆蓋,深度學習提取結果認為此處為變化區域,但這種變化是實際監測中所不需要的。

利用ENVI深度學習進行遙感變化監測教程

圖:兩時期植被差異

除此之外還有一些移動物體和蔬菜大棚等也造成了干擾變化,影響了深度學習變化監測的提取結果,但此干擾在提取結果中所佔比重不大。

利用ENVI深度學習進行遙感變化監測教程

圖:變化物體

利用ENVI深度學習進行遙感變化監測教程

圖:兩時期大棚變化

總結:本次深度學習變化監測技術路線清晰明確,具有一定通用性,獲取結果較為可靠。此方法可有效發現地表變化圖斑,為變化圖斑繪製提供輔助發現。

相關文章