Press "Enter" to skip to content

【ENVI深度学习】利用ENVI深度学习工具提取防尘网覆盖信息

为扬尘治理和保护环境,城市的裸露地表、 易扬尘物料等 要求覆盖防尘网。防尘网一般由聚乙烯材料制作的网状物,颜色主要为黑色和绿色。

 

本文介绍利用遥感影像和 ENVI 深度学习工具快速提取防尘网覆盖信息,数据和处理环境如下:

 

l   数据源:标准景高分二号 3.8 米 4 波段多光谱数据, 16bit

 

l   处理软件: ENVI5.5.2+ENVI Deep Learning 深度学习模块,软件试用可访问: http://blog.sina.com.cn/s/blog_764b1e9d0102ycm2.html

 

l   处理计算机: 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 对话框中:

 

l   Number of bands (样本文件的波段数): 4 。

 

l   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 l   此值与 GPU 显存有关

l   值越大,效率越高,对显存要求越高

l   切片大小不能大于标签图像行列数

Number of Epochs 迭代数,建议在 16 到 32 之间
Number of Patches per Epoch 每次迭代训练的切片数

l   此值一般在 200 到 1000 之间

l   训练数据集数量越少,设置此值越小

Number of Patches per Batch 一次处理使用的切片数

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

l   如果为空, ENVI 将自动确定合适的值

Patch Sampling Rate 切片采样比率

l   当特征稀疏时,增加该值可能会有所帮助

l   对于较小的切片大小,增加此参数

Solid Distance 固定距离(单位像素)

对于宽度一致的 线性特征 (如道路、道路中心线和运输集装箱)或尺寸一致的紧凑型特征(汽车和停车标志),建议定义该参数。

Blur Distance 模糊距离(单位像素)

l   深度学习算法很难学习诸如建筑物等特征的锐利边缘。模糊边缘,并在训练过程中减少模糊距离可以帮助模型逐渐聚焦于特征。

l   模糊距离最大值必须小于 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 按钮。

 

l   Input Raster :输入整景高分二号影像。

 

l   Input Model :输入上一步获取的模型文件(自动输入)。

 

l   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

面板

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注