1. 程式人生 > 其它 >【ENVI深度學習】利用ENVI深度學習工具提取防塵網覆蓋資訊

【ENVI深度學習】利用ENVI深度學習工具提取防塵網覆蓋資訊

為揚塵治理和保護環境,城市的裸露地表、易揚塵物料等要求覆蓋防塵網。防塵網一般由聚乙烯材料製作的網狀物,顏色主要為黑色和綠色。

本文介紹利用遙感影像和ENVI深度學習工具快速提取防塵網覆蓋資訊,資料和處理環境如下:

  •  資料來源:標準景高分二號3.8米4波段多光譜資料,16bit
  •  處理軟體:ENVI5.5.2+ENVI Deep Learning深度學習模組,軟體試用可訪問:http://blog.sina.com.cn/s/blog_764b1e9d0102ycm2.html
  •  處理計算機:ThankPAD P52筆記本,NVIDIA Quadro P3200 6G視訊記憶體。

提取效率和結果如下:

內容

時間

樣本選擇

小於10分鐘

模型訓練

34分鐘

影象分類

小於2分鐘

總共36分鐘

由於防塵網覆蓋資訊特徵比較明顯,採用驗證樣本方式得到生產者精度達到0.93,F1=0.72。通過目視檢視,發現覆蓋比較長時間的防塵網有漏分情況,操場塑膠跑道被錯分情況,總體來看效果非常不錯,可選擇更多樣本提高精度。
圖:結果1 圖:結果2 圖:結果3

ENVI Deep Learning深度學習工具操作步驟主要分為三步,下面我們詳細介紹整個操作過程。


圖:操作步驟

1 選擇樣本

從整景影像中選擇小部分割槽域來選擇樣本和訓練模型。

(1)   ENVI中開啟影象,之後放大和定位到需要選擇的樣本的區域。

(2)   選擇File –>Save As->>Save As….。

(3)   在檔案選擇對話方塊中,選擇影象檔案,單機Spatial Subset按鈕,選擇當前檢視作為子區選擇源,選擇輸出路徑儲存。

(4)   在圖上確認防塵網解譯標誌,如下圖所示即為防塵網,覆蓋時間較短和較長情況下的防塵網。

圖:影象上的防塵網

(5)   利用ROI工具在上一步裁剪影象上選擇防塵網作為樣本,沿著防塵網邊界繪製多邊形。


圖:樣本分佈(黃色區域)

(6)   在Toolbox中,啟動/Deep Learning/Deep Learning Guide Map 流程化工具。

注:ENVI Deep Learning工具有兩種操作方式:流程化和分散式,本文選擇的是流程化操作方式。分散式選擇相應的工具即可,如本步驟選擇/Deep Learning/Build Label Raster from ROI。

(7)   在ENVI Deep Learning面板中,單擊Train a New Model按鈕。

(8)   在Train a New Model面板中,單擊Build Label raster form ROI。

(9)   在Build Label raster form ROI面板上,分別選擇裁剪影象、樣本ROI檔案、輸出檔案,單擊OK執行,完成樣本選擇步驟。

注:Build Label raster form ROI工具是將ROI格式的樣本檔案轉成標籤檔案,標籤檔案中的一個波段其實就是一個二值圖,樣本區值為1,其他區域值為0。該步驟生成一個裁剪影象(4個波段)與標籤影象合成的一個5波段影象檔案。

(10)重複上述步驟,在另外一塊影象上選擇樣本作為驗證樣本,本步驟為可選項。


圖:Build Label raster form ROI面板

2 訓練模型

(11)在Train a New Model面板中,單擊Train Model按鈕。

(12)在Train TensorFlow Mask Model面板中,單擊New Model按鈕,新建一個初始化模型檔案。

(13)在彈出的Initialize ENVINet5 TensorFlow Model對話方塊中:

  •  Number of bands(樣本檔案的波段數):4。
  •  Output Model:選擇輸出路徑和檔名

(14)在Training Rasters中選擇訓練標籤影象。

(15)在Validation Rasters中選擇驗證標籤影象,如果沒有驗證樣本,這裡可以選擇訓練標籤影象。

(16)其他引數先按照預設,引數的詳細解釋見後表。

(17)選擇模型輸出路徑和檔名,單擊OK執行。

注:這一步將會用到GPU運算,如果沒有GPU則使用CPU計算,速度會較慢。

(18)最終會得到一個 .h5的規則檔案,其實就是一個HDF5格式的檔案。通過Deep Learning Guide Map 面板中的Tools->Edit TensorFlow Model Metadata工具可以瀏覽訓練模型的生產精度(validationPrecision)、使用者精度(validationRecall)和F1值。


圖:Train TensorFlow Mask Model面板

表:Train TensorFlow Mask Model主要引數說明

引數

說明

Patch Size

此值與GPU視訊記憶體有關

值越大,效率越高,對視訊記憶體要求越高

切片大小不能大於標籤影象行列數

Number of Epochs

迭代數,建議在 16 到 32 之間

Number of Patches per Epoch

每次迭代訓練的切片數

此值一般在 200 到 1000 之間

訓練資料集數量越少,設定此值越小

Number of Patches per Batch

一次處理使用的切片數

Batch 是指一次迭代使用的一組切片

如果為空,ENVI 將自動確定合適的值

Patch Sampling Rate

切片取樣比率

當特徵稀疏時,增加該值可能會有所幫助

對於較小的切片大小,增加此引數

Solid Distance

固定距離(單位畫素)

對於寬度一致的線性特徵(如道路、道路中心線和運輸集裝箱)或尺寸一致的緊湊型特徵(汽車和停車標誌),建議定義該引數。

Blur Distance

模糊距離(單位畫素)

深度學習演算法很難學習諸如建築物等特徵的銳利邊緣。模糊邊緣,並在訓練過程中減少模糊距離可以幫助模型逐漸聚焦於特徵。

模糊距離最大值必須小於70。

Class Weight

一般來說,為稀疏訓練集設定最大值。有效範圍在 0.0 和 6.0 之間。

Loss Weight

引數可用於偏差損失函式(bias the loss function),以更加註重正確識別特徵畫素,而不是識別背景畫素。

此引數在特徵目標稀疏分佈或者沒有標記所有特徵時很有用。值為0表示模型應同等對待特徵和背景畫素。增加Loss Weight引數會使損失函式偏向於尋找特徵畫素。此引數值的有效範圍在 0 到 3.0 之間。

3 影象分類

(19)Deep Learning Guide Map 流程化工具進入Classify Raster Using a Trained mode面板。

(20)在Classify Raster Using a Trained mode面板中,單擊Classify Raster Using a Trained Model按鈕。

  •  Input Raster:輸入整景高分二號影像。
  •  Input Model:輸入上一步獲取的模型檔案(自動輸入)。
  •  Output Raster:選擇輸出結果。

(21)單擊OK執行。

 得到的結果是一個單波段的灰度圖,畫素值(0~1範圍)表示與樣本的相似程度,畫素值越大表示屬於該類別的可能性越大。我們可以採用密度分割方法進一步提取結果。

(22)執行完分類後,自動跳轉到Post-Classification面板。單擊Class Activation to Classification按鈕。

注:也可以直接生成Shapefile向量結果,單擊Class Activation to polygon Shapefile按鈕。

(23)在Class Activation to Classification面板中,可以手動設定分割閾值,也可以選擇自動方法,這裡選擇Otsu自動閾值分割。

(24)選擇輸出結果名稱和路徑,單擊OK執行。


圖:Class Activation to Classification面板