ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

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

本文利用ENVI深度學習工具和ENVI精準農業工具從8.59cm解析度航空影像上提取椰子樹資訊。ENVI深度學習工具獲取椰樹的CAM類啟用圖,CAM影像為灰度圖(0~1範圍),其DN值代表該畫素屬於目標的機率。為了得到椰子樹的林冠半徑,利用ENVI精準農業工具包的作物計數工具從CAM影像上提取椰樹資訊,包括空間分佈和林冠半徑。深度學習一個重要的工作就是調整引數,ENVI深度學習工具提供一個隨機引數訓練工具,可以幫助您自動獲取一套比較最佳化的引數。

注:文章最後有秘籍和資料成果分享。

ENVI軟體試用:https://www.cnblogs.com/enviidl/p/16275745.html

1 提取目標

得到椰樹圓形輪廓向量,並做健康評估。

2 資料情況

原始資料為tiff格式,轉為了ENVI格式使用,但其實直接使用tiff沒有區別。不過本例中使用的tiff資料應該做了壓縮,在ENVI中載入顯示ROI時有可能異常退出,此時使用ENVI格式比較穩定。

ENVI格式的資料量為1.24GB。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

3 軟硬體環境

軟體:

  • ENVI 5.5.3

  • ENVI Deep Learning 1.1 Tech Preveiw(本文操作也適合於V1.0版本)

  • ENVI Crop Science 1.1.1

硬體(ThinkPad P52 ):

  • CPU:Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz 六核

  • 顯示卡:NVIDIA Quadro P3200 with Max-Q Design 視訊記憶體6GB

  • 記憶體:64GB

  • 硬碟:SSD

4 技術路線

由於椰樹與背景無法用簡單方法區分,所以不能直接使用ENVI Crop Science提取。便利用ENVI Deep Learning提取類啟用圖(CAM),在此基礎上利用ENVI Crop Science提取椰樹向量,最後進行健康評估,但是健康評估其實並沒有實際應用價值,下文會做說明。

完整技術路線如下圖所示:

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹
圖:技術路線圖

5 樣本繪製並建立Label Raster

針對椰樹這種類似圓形的目標,這裡介紹兩種適用的樣本繪製方法。

5.1 圓形樣本
5.1.1 圓形樣本繪製方法

使用ROI工具可以方便的繪製圓形樣本。如下圖所示,選擇圓形樣式,按住Ctrl鍵,滑鼠左鍵點選椰樹中心點,拉框繪製圓形,點選滑鼠右鍵,選擇選單Accept Ellipse即可。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

最終繪製296個樣本,如下圖所示。當然也可以在影像中多個區域繪製樣本,然後建立多個Label Raster,同時用於模型訓練。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

圖:繪製的圓形ROI樣本

5.1.2 建立Label Raster

使用Build Label Raster from ROI工具建立。在選擇Input Raster時,使用繪製的ROI對全圖進行矩形裁剪,如下圖所示。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

圖:建立Label Raster工具

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

圖:建立的Label Raster影像,好美

5.2 點狀樣本
5.2.1 點狀樣本繪製方法

其實也可以直接使用ROI工具繪製點狀樣本,但是由於點太小(1個畫素),不易區分已繪製和未繪製的區域,所以本例選擇Feature Counting工具進行繪製。

點選工具欄圖示ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹即可開啟Feature Counting工具皮膚,然後使用滑鼠左鍵單擊就可以繪製樣本了,並且清楚的標識出了資訊(如編號、名稱、位置等)。如下圖所示。然後將繪製的樣本儲存為efc檔案。共繪製了163個樣本。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

圖:利用Feature Counting工具繪製點狀樣本

5.2.2 建立Label Raster

首先需要將Feature Counting工具繪製的結果(*.efc)轉換為ROI。工具位於/Deep Learning/Deep Learning Guide Map如下圖所示選單。然後使用Build Label Raster from ROI建立Label Raster即可。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

圖:Feature Counting結果轉換為ROI

6 深度學習模型訓練

深度學習模型訓練可以使用Deep Learning Guide Map中的Train Model,或直接使用工具箱的/Deep Learning/Train TensorFlow Mask Model工具。訓練引數設定如下圖所示。

注1:ENVI Deep Learning 1.1技術預覽版中/Deep Learning/Train TensorFlow Mask Model工具已經預設支援多類目標提取,如果想開啟單目標模型訓練皮膚,請使用Deep Learning Guide Map。

注2:對引數說明感興趣的可以參考“ENVIDeepLearningV1.0深度學習操作教程”。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

圖:圓形樣本模型訓練引數

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

圖:點狀樣本模型訓練引數

7 獲取CAM影像

利用ENVI深度學習工具/Deep Learning/TensorFlow Mask Classification獲取CAM類啟用圖,CAM影像為灰度圖(0~1範圍),其DN值代表該畫素屬於目標的機率。可透過Raster Color Slice目視判斷閾值用於提取目標。

注:ENVI Deep Learning 1.1技術預覽版已支援自動獲取分類圖,如下圖所示。本例為了通用性,依然使用CAM影像進行後續操作。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

圖:TensorFlow Mask Classification工具皮膚

說明:其實可以直接使用CAM影像獲取分類影像和向量結果,所用工具為/Deep Learning/TensorFlow Mask Classification(Class Activation to Polygon Shapefile),但是結果不是規整的圓形,也不能提取椰樹的林冠半徑,所以藉助ENVI Crop Science工具提取椰樹。

附上直接提取的效果圖,可以對比下利用圓形和點狀樣本獲取的椰樹有什麼區別。圓形更好的獲取了椰樹的真實輪廓。如果不關心輪廓,只關心位置,建議使用點狀樣本,因為繪製起來更快捷。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

圖:左圖基於圓形樣本,右圖基於點狀樣本

下文將基於圓形樣本結果進行椰樹提取。

8 椰樹提取

利用Raster Color Slice獲取閾值,如下圖所示,取閾值0.92。這一步其實已經獲取了椰樹的分佈資訊。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

本步驟將使用ENVI Crop Science中的工具/Crop Science/Count Crops提取椰樹。引數設定如下圖所示。最小直徑和最大直徑透過量測工具獲取,單位為米,這裡設定為5米和8米。為了提高精度,設定間隔數為100,該引數導致消耗了大量時間。並且該工具對記憶體和CPU要求極高。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

圖:椰樹提取引數設定

注:為了選取最優引數,建議使用預覽功能。首先將原圖和CAM圖(可隱藏此圖層)1:1顯示在當前檢視中,設定引數後,點選左下角Preveiw預覽提取效果。強調一下,必須使用1:1顯示,預覽結果才是真正的效果。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

Count Crops工具得到的是json和柵格結果。然後透過工具/Crop Science/Convert Crops To Shapefile將json轉換為向量,如下圖所示。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

圖:轉換結果為向量

注:由於未知原因,導致影像中右側河流中提取到了一些椰樹,手動編輯向量將其刪除。利用點狀樣本提取的結果沒有出現此種情況。

最終提取結果:

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

區域性細節欣賞:

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

生成的向量資料帶有座標和半徑屬性,如下圖所示。共提取到10457株椰樹

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

9 健康評估

首先為原始影像新增波長資訊,此步驟是為了使用ENVI自帶工具計算GLI植被指數(Green Leaf Index)。有了波長資訊後,可直接使用/Crop Science/Calculate Crop Metrics with Spectral Index一步完成健康評估。

如果不新增波長,則需要Band Math工具計算GLI,然後使用/Crop Science/Calculate Crop Metrics工具進行健康評估。GLI公式如下所示:

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

Calculate Crop Metrics with Spectral Index工具介面引數設定如下圖所示。自動根據波長資訊篩選了可計算的植被指數,這裡選擇GLI。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

圖:健康評估

區域性結果如下圖所示。顏色越綠表示越健康,越紅表示越不健康。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

但是本著嚴謹的態度,還是要強調一點:我們其實統計的是圓形內的GLI指數均值,然而椰樹並沒有完全覆蓋圓形區域,所以統計的是椰樹及其背景畫素的均值,並沒有實際意義。大家可以看到上圖結果中背景是裸地的椰樹普遍健康度較低。此外還有陰影的影響。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

10 時間統計

利用ENVI Crop Science提取椰樹向量耗時較長,主要是因為設定了間隔數為100,提高了提取精度,減少漏提情況。

步驟

耗時

因素

圓形樣本繪製

30分鐘

手速

深度學習模型訓練

38分鐘

GPU,視訊記憶體

椰樹CAM影像提取

10分鐘

GPU,視訊記憶體

椰樹向量提取

3.5小時

CPU,記憶體

11 秘籍分享

較有難度的就是深度學習模型訓練引數的調優。這裡分享一下經驗。當你使用預設引數沒有得到很好結果的時候,當你嘗試調整引數後依然無效的時候,當你接近崩潰邊緣、即將放棄的時候,一定要想到ENVI Deep Learning提供的一個神器,那就是隨機引數訓練。如果你的硬碟空間、時間夠多,可以一鍵嘗試N種引數搭配,你需要的只是等待等待等待。最後從N個結果中挑選最優即可。

工具啟動是在/Deep Learning/Deep Learning Guide Map皮膚中如下選單:

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

其實是內建的一個ENVI Modeler模型。本文引數的設定就是使用這種方法,簡單粗暴,甚是有效。

ENVI深度學習工具&ENVI精準農業工具強強聯合提取椰樹

12 樣本資料和向量成果分享

連結:https://pan.baidu.com/s/1goEsYUUscCTWaB8a4GrIrQ

提取碼:e64y

相關文章