加载中…
个人资料
ENVI-IDL技术殿堂
ENVI-IDL技术殿堂 新浪机构认证
  • 博客等级:
  • 博客积分:0
  • 博客访问:12,676,211
  • 关注人气:7,400
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

利用ENVI深度学习进行遥感变化监测教程

(2021-08-10 09:39:35)
标签:

envi

深度学习

变化检测

变化监测

分类: ENVI

基于多时相影像进行地表覆盖变化监测是遥感的一个重要应用,在城市违法建设监测、水政违法建设监测、森林砍伐监测等领域得到广泛应用。由于遥感算法、数据源质量等原因,遥感变化信息提取一般采用目视解译方式进行。

本教程介绍采用深度学习方法进行城市建筑物、构筑物、填河、动土、堆土等目标的变化监测。

本教程在ENVI5.6+Deep Learning1.1.3中完成。ENVI Deep Learning 1.1.3适配 ENVI 5.6,要求计算机必须具备NVIDIA显卡,对显卡环境要求如下:

l   显卡驱动版本要求 450.36.06 或更高版本。

l   要求显卡 CUDA 计算能力( Compute Capability)在 3.5 ~ 8.6 之间。

推荐8G以上显存的显卡,如性价比较高的NVIDIA GeoForce系列显卡GeoForce RTX 30803090等。

1变化地物类型

在使用深度学习方法提取变化目标之前,首先要明确变化地物类型,本文将变化地物类别划分为如下几类:建筑物(主要为变化厂房),构筑物(新修道路等),填河,动土,堆土等。其影像特征如下图所示:

 利用ENVI深度学习进行遥感变化监测教程
 利用ENVI深度学习进行遥感变化监测教程
建筑物   构筑物
 利用ENVI深度学习进行遥感变化监测教程
利用ENVI深度学习进行遥感变化监测教程
 动土 填河 
图:变化目标

如下图所示,左侧为第一时相影像右侧为第二时相影像,通过两时期对比,展示更多变化目标特征。

 利用ENVI深度学习进行遥感变化监测教程
 建筑物
 利用ENVI深度学习进行遥感变化监测教程
 建筑物(厂房)
 利用ENVI深度学习进行遥感变化监测教程
 构筑物
 利用ENVI深度学习进行遥感变化监测教程
 构筑物(新修道路)
 利用ENVI深度学习进行遥感变化监测教程
 填河
 利用ENVI深度学习进行遥感变化监测教程
 动土
 利用ENVI深度学习进行遥感变化监测教程
动土 
 利用ENVI深度学习进行遥感变化监测教程
 堆土

图:变化目标特征

2深度学习变化监测

2.1 数据源

数据源使用高分一号PMS传感器融合校正后的正射影像DOM产品,研究区如下图所示:

表:数据源

卫星

数据级别

波段

分辨率(米)

时间

高分一号PMS

正射镶嵌影像DOM

RGB

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按钮,创建变化图斑ROI,沿着变化图斑轮廓绘制变化图斑样本。如下图所示:

利用ENVI深度学习进行遥感变化监测教程

图:绘制ROI样本

如果已有Shapefile矢量样本,也可在ROI工具面板选择File>Import>Import Vector导入已有的Shapefile矢量作为ROI样本文件。

利用ENVI深度学习进行遥感变化监测教程

图:研究区矢量样本

关于样本的获取,通常有如下三个原则:

l   样本区域范围内,全面覆盖多种地物类型。

l   绘制样本尽可能的多。

l   样本轮廓尽可能精确,不要多余地物。

2)构建样本库

沿矢量周围扩展1000*1000像素生成缓冲区并将缓冲区合并,之后生成最小外接矩形(最小外接矩形生成工具可参考2.4.4节内容),使用外接矩形将影像切片创建模型训练样本库。矢量裁剪在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深度学习进行遥感变化监测教程

图:随机化参数模型训练

l   Iterations:为迭代训练的次数,这里默认16次,表示一共训练得到16组模型。

l   Input Model:选择初始化模型或者选择需要再次训练的模型。

l   Training Rasters:选择上一步生成的标签栅格。

l   Validation Rasters:同样选择上一步生成的标签栅格,工具会自动选择80%数据用于训练,20%数据作为验证。也可以将标签栅格库分为两部分,一部分用于训练一部分用于验证。

l   Augment Scale:是否使用缩放增强。增强是深度学习常用的一种技术,ENVI深度学习使用缩放和旋转来补充原始训练数据。它可以减少你所需的标记数量,特别是捕捉各种方向不同和大小不一的同种要素,增强还可以提高模型的能力,将它所学到的知识推广到新的图像中。但在样本充足的前提下使用增强会使模型的泛化能力过高,影响提取精度。这里选择No,不进行缩放增强。

l   Augment Rotation:选No,不进行旋转增强。

l   Raster to Classify:选择要进行变化地物提取的栅格影像,这里选择波段合成后的研究区影像。

l   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)。通过分类后处理可对一些细小图斑进行过滤。

l   小图斑处理

Toolbox中,选择Classification/Post Classification/Classification Aggregation,在弹出的参数对话框中Input Raster选择分类后结果,Minimum SizeAggregate Unclassified Pixels按照默认设置,设置输出路径点击OK,得到小图斑处理结果。

l   聚类处理

Toolbox中,选择Classification/Post Classification/Clump Classes选择上一步的输出结果,在弹出的对话框中,Class Order删除Unclassified这一类,其他参数按照默认,设置输出路径点击OK,得到聚类处理结果。

l   主次要分析

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图形工作站(CPUIntel i9-9900KGPUNVIDIA RTX2080ti显存11GB,内存:64GB,硬盘:SSD固态),模型训练时间:35分钟,目标提取时间:5小时30分钟,22135平方公里范围内共发现变化图斑42255个。

利用ENVI深度学习进行遥感变化监测教程

图:变化监测提取结果

使用训练样本对深度学习训练模型进行精度验证,结果如下:

l  Loss(损失):0.111

l  Accuracy(正确率):0.946

l  Precision(用户精度):0.783

l  Recall(生产者精度):0.953

l  F1F1分数):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深度学习进行遥感变化监测教程

图:两时期大棚变化

总结:本次深度学习变化监测技术路线清晰明确,具有一定通用性,获取结果较为可靠。此方法可有效发现地表变化图斑,为变化图斑绘制提供辅助发现。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有