基于多时相影像进行地表覆盖变化监测是遥感的一个重要应用,在城市违法建设监测、水政违法建设监测、森林砍伐监测等领域得到广泛应用。由于遥感算法、数据源质量等原因,遥感变化信息提取一般采用目视解译方式进行,但是目视解译方式费时费力,大区域工作效率很低。而深度学习可以在很短时间内按照模型训练要求,快速全面的进行解译,可以大大提高遥感解译的效效率,因此一般采用传统解译方法与深度学习相结合的方法进行。
遥感影像具有周期性特点,利用这一特性就可以用于监测一个地区的地表变化情况
动态监测概述
动态检测的关键技术
基于ENVI的动态检测
1.1 动态监测概述
很多人对动态监测和动态检测两个名词有疑惑。动态监测是一个广义的名词,泛指数据预处理、变化信息发现与提取、变化信息挖掘与应用等,以对整个流程的叙述。动态检测是一个狭义的名词,主要指部分数据预处理、变化信息发现与提取。在一定的意义和场合上讲,两个词的意思是一样的。当然很多地方把这两个词说成变化监测和变化检测。
遥感动态检测就是从不同时期的遥感数据中,定量地分析和确定地表变化的特征与过程。它涉及到变化的类型、分布状况与变化量,即需要确定变化前后的地面类型、界线及变化趋势,能提供地物的空间分布及其变化的定性和定量信息。
目前,遥感变化检测技术大多是针对两个时相的遥感影像进行操作。根据处理过程来分,遥感变化检测方法可分为三类:
(1)图像直接比较法
图像直接比较法是最为常见的方法,它是对经过配准的两个时相遥感影像中像元值直接进行运算和变换处理,找出变化的区域。目前常用的光谱数据直接比较法包括图像差值法、图像比值法、植被指数比较法、主成分分析法、光谱特征变异法、假彩色合成法、波段替换法、变化矢量分析法、波段交叉相关分析以及混合检测法等。
•图像差值法
图像差值法就是将两个时相的遥感图像相减。其原理是:图像中未发生变化的地类在两个时相的遥感图像上一般具有相等或相近的灰度值,而当地类发生变化时,对应位置的灰度值将有较大差别。因此在差值图像上发生地类变化区域的灰度值会与背景值有较大差别,从而使变化信息从背景影像中显现出来。
•光谱特征变异法
同一地物反映在一时相影像上的信息与其反映在另外时相影像上的光谱信息是一一对应的。当将不同时相的影像进行融合时,如同一地物在两者上的信息表现不一致时,那么融合后的影像中此地物的光谱就表现得与正常地物的光谱有所差别,此时称地物发生了光谱特征变异,我们就可以根据发生变异的光谱特征确定变化信息。
•假彩色合成法
由于地表的变化,相同传感器对同一地点所获取的不同时相的影像在灰度上有较大的区别。在进行变化信息的发现时,将前、后两时相的数据精确配准,再利用假彩色合成的方法,将后一时相的一个波段数据赋予红色通道,前一时相的同一波段赋予蓝色和绿色通道。利用三原色原理,形成假彩色影像。其中,地表未发生变化的区域,合成后影像灰度值接近,而土地利用发生变化的区域则呈现出红色,即判定为变化区域。
•波段替换法
在RGB假彩色合成中,G和B分量用前时相的两个波段,用后一时相的一个波段影像组成R分量,在合成的RGB假彩色图像上能够很容易地发现红色区域即为变化区域 。
(2)分类后比较法
分类后结果比较法是将经过配准的两个时相遥感影像分别进行分类,然后比较分类结果得到变化检测信息。虽然该方法的精度依赖于分别分类时的精度和分类标准的一致性,但在实际应用中仍然非常有效,该方法的核心是基于分类基础上发现变化信息。
(3)直接分类法
结合了图像直接比较法和分类后结果比较法的思想,常见的方法有:多时相主成分分析后分类法、多时相组合后分类法等。
•多时相主成分分析后分类法
当地物属性发生变化时,必将导致其在影像某几个波段上的值发生变化,所以只要找出两时相影像中对应波段值的差别并确定这些差别的范围,便可发现变化信息。在具体工作中将两时相的影像各波段组合成一个两倍于原影像波段数的新影像,并对该影像作PC变换。由于变换结果中前几个分量上集中了两个影像的主要信息,而后几个分量则反映出了两影像的差别信息,因此可以试着抽取后几个分量进行波段组合来发现变化信息。
以上变换检测方法大多只是变化信息的发现,还有一个过程是变化信息的提取,由以下方法供选择:
手工数字化法
•屏幕数字化
•区域生长法
图像自动分类
•监督分类
•非监督分类
•面向对象的特征提取法
图像分割
•手工阈值分割
•自动阈值分割
组合法
上述检测方法和信息提取方法不能说哪个绝对的好与坏,只能是根据不同的数据源和不同的应用需求选用适合的方法。我们针对项目的实际情况会选择最合适的方法进行检测。
1.2 动态检测关键技术
1.2.1数据源的选择
由于动态检测需要多时相数据,数据源选择时候,除了考虑检测范围、检测精度外,重点还需要考虑物候和影像成像条件。物候和成像条件都会给变化信息带来很大的噪声,当然了,经过一些图像处理过程可以一定程度上减少这方面的噪声。
1.2.2数据预处理
动态检测过程中,非常重要的两个预处理过程是影像配准和大气校正
•影像配准
影像的配准可以有单个文件的精确几何校正来保证,也可以有一个文件作为基准来配置另一个时相的文件。
几何精校正是在影像和地形图上找相同的点,找出来的点是具有相同地理坐标的地面控制点.影像有畸变,地形图(认为)它是准确的,因此控制点多一些,能更好地建立畸变模型,从而对整幅影像进行校正。
•相对大气校正
在多时相遥感图像中,除了地物的变化会引起图像中辐射值的变化外,不变的地物在不同时相图像中的辐射值也会有差异。辐射校正是消除非地物变化所造成的图像辐射值改变的有效方法,按照校正后的结果可以分为2种,绝对辐射校正方法和相对辐射校正方法。绝对辐射校正方法是将遥感图像的DN(Digital Number)值转换为真实地表反射率的方法,它需要获取影像过境时的地表测量数据,并考虑地形起伏等因素来校正大气和传感器的影响,因此这类方法一般都很复杂。相对辐射校正是将一图像作为参考(或基准)图像,调整另一图像的DN值,使得两时相影像上同名的地物具有相同的DN值,这个过程也叫多时相遥感图像的光谱归一化。在动态检测中,相对大气校正用的还是比较多。
1.2.3变化检测方法选择
地表变化信息可分为两种,一是转化(Conversion),另一是改变(Modification),前者是土地从一种土地覆盖类型向另一种类型的转化,如草地转变为农田、森林转变为牧场,后者是一种土地覆盖类型内部条件(结构和功能)的变化,如森林由密变疏或由一种树种组成变成另外一种组成的改变、植物群落生物量、生产力、物候现象变化。所以我们在选用变换检测方法时候应考虑这点,比如做植被生物量的监测,就属于改变,如果选用分类后处理的方法就不管用了。
反过来基于图像直接比较法,不能够直接确定变化区域是属于何种变化类型,需要实地调查与图像对比等一系列步骤才能确定变化类型,这对于土地利用变化监测时候,则需要慎重考虑用此类方法。
1.2.4变化信息提取方法的选择
有些变化检测方法得到的变化信息是单波段,如图像直接比较法,监督与非监督分类法作用就不是很大,可以考虑用影像分割和面向对象特征提取方法。而且图像直接比较法在确定是否变化时,往往需要确定一定的阈值,而阈值的确定则会直接影响变化信息提取的准确性,阈值的确定常见的如直方图法,样本挖掘法(C4.5算法)等。
1.3基于ENVI的动态检测
ENVI集成了部分动态检测方法,包括图像直接比较法、分类后比较法、PCA变换、Two-Color Multiview、MNF变换法、ICA变换法、波谱角检测方法。当然还可以自定义方法。
1.3.1图像直接比较法
ENVI中的图像直接比较法就是对两时相影像做差值或者比值运算,整合了一些预处理功能,如数据值归一化和单位的统一。下面以经过配准的两时相影像为例介绍这个功能的使用。
(1)单击主菜单->File->Open Image File,将两时相影像同时打开,并用Display Link功能查看变化区域。
(2)单击主菜单->Basic Tools->Change Detection->Compute Difference Map,分别选择前一时相影像一个波段和后一时相影像的一个波段。
(3)在Compute Difference Map Input Parameters面板中,可以选择计算方法(差值或者比值)、归一化(0-1)和单位统一,设置变化等级以及设置变化等级划分阈值。单击Define Class Thresholds按钮,可以对每一个变化范围进行划分,如图1所示。选择一个路径输出。
(4)结果查看和统计:在Display中将结果显示,用Display Link链接功能将前后时相和结果链接查看。单击Image->Tools->Color Mapping->Class Color Mapping,查看各个变化等级的颜色和代码。单击主菜单->Classification->Post Classification->Class Statistics,统计各个变化。
1.3.2分类后比较法
ENVI中的分类后比较法是通过比较两时相影像分类结果,获得变化类型、面积、百分比等。下面介绍这个工具的使用。
(1)单击 主菜单->File->Open Image File,将两时相的分类图打开。
(2)单击 主菜单->Basic Tools->Change Detection->Change Detection Statistics,选择前后时相的分类图。
(3)在Define Equivalent Class面板中,如果两个时相的分类图命名规则一直,则会自动将两时相上的类别关联;否则需要在Initial State Class和Final State Class列表中手动选择相对应的类别,如图3所示,点击Ok按钮。
(4)在结果输出面板中,选择统计类型:像素(Pixels)、百分比(Percent)和面积(Area),选择路径输出结果。
(5)结果以二维表格和图像现实展现。
1.3.3流程化图像处理工具——动态监测
ENVI的流程图像处理工具中集成了动态监测功能,它集成了影像配准和变化信息发现过程等,下面介绍这个工具的使用。
(1)单击主菜单->Spectral->SPEAR Tools->Change Detection,打开流程化图像处理工具中的动态监测功能,分别将两时相影像文件输入,单击Next按钮。
(2)如果两个时相影像未精确配准,这一步可以通过手动或者自动选择同名点的方式对影像进行配准,这里选择第三项,单击Next按钮。
(3)这一步是目视查看两时相影像的变化情况,点击Next按钮到下一步。
(4)这一步是选择变化检测方法,提供了四大类方法,包括Two-Color Multiview、图像变换( PCA、MNF和ICA变换)、图像直接比较法和波谱角检测方法。每一种方法都有对应的高级设置,比如选择图像直接比较法可以选择基于黑暗象元的相对大气校正和光谱归一化。这几类方法可以多选,这里我们全部选择,单击Next按钮。
(5)这一步是查看变化信息监测结果,选择使用不同检测方法的结果查看,点击Finish按钮完成。
(6)对检测到的变化信息,可以通过图像分割、图像分类、决策树分类或者面向对象特征提取等方法提取变化信息。
项目影像在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等。
2.1变化地物类型
在使用深度学习方法提取变化目标之前,首先要明确变化地物类型,变化地物类别划分为如下几类:建筑物(主要为变化厂房),构筑物(新修道路等),填河,动土,堆土等。其影像特征如下图所示:
如下图所示,左侧为第一时相影像右侧为第二时相影像,通过两时期对比,展示更多变化目标特征。
2.2深度学习变化监测
2.2.1数据源
数据源使用高分辨率卫星数据,现在以高分一号PMS传感器融合校正后的正射影像DOM产品为例进行说明。
研究区如下图所示:
预处理主要包括两时期影像的波段合成。在ENVI工具箱中选择,Raster Management/Build Layer Stack,选择两时相3波段影像数据,其他参数按照默认,设置文件输出路径,点击OK进行波段合成,得到两时期6波段合成结果。
深度学习操作流程主要包括三个部分:首先,创建标签图像。标签栅格的生成一般先选择典型子区绘制样本后生成标签栅格;第二,训练深度学习模型。有了标签栅格就可以初始化深度学习模型并进行模型训练,推荐使用随机化参数组的方法进行模型训练;第三,使用训练好的模型进行目标提取。训练好模型之后就可以使用训练好的模型进行目标提取。这三步操作是深度学习的主要内容,之后可进一步将分类结果转换为矢量ROI再次进行编辑生成新的标签栅格重复训练模型,直到得到较好的结果。
2.2.4.1创建标签图像
1)样本获取
创建标签图像之前首先需要获取样本。通过人工目视解译的方法绘制研究区范围内ROI样本,在ENVI上方工具栏点击 按钮,创建变化图斑ROI,沿着变化图斑轮廓绘制变化图斑样本。如下图所示:
如果已有Shapefile矢量样本,也可在ROI工具面板选择File>Import>Import Vector导入已有的Shapefile矢量作为ROI样本文件。
关于样本的获取,通常有如下三个原则:
样本区域范围内,全面覆盖多种地物类型。
绘制样本尽可能的多。
样本轮廓尽可能精确,不要多余地物。
2)构建样本库
构建样本库可以分为如下四步:
样本矢量生成缓冲区
将缓冲区合并
通过合并后的缓冲区矢量生成最小外接矩形
使用最小外接矩形裁剪栅格
沿矢量周围扩展1000*1000像素生成缓冲区并将缓冲区合并,之后生成最小外接矩形(最小外接矩形生成工具可参考2.4.4节3)内容),使用外接矩形将影像切片创建模型训练样本库。矢量裁剪在Toolbox中选择Extensions/Frame Subset via Shapefile矢量分幅裁剪工具对影像进行分幅裁剪。
3)生成标签栅格库
标签栅格用于深度学习模型训练,需要通过样本ROI和栅格影像构建标签栅格。对于大批量标签栅格的生成,可使用ENVI Modeler建模工具进行批量标签栅格的生成。在ENVI工具箱选择Task Processing/ENVI Modeler打开建模工具,构建如下批处理模型,点击Run按钮运行模型,生成批量标签栅格。
注:Generate Output Filename节点可在App Store中下载。
2.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,生成初始化模型。
接下来使用随机化参数训练工具进行深度学习模型训练。在Toolbox中,选择Deep Learning/Deep Learning Guide Map打开深度学习向导工具,在工具对话框选择Tools> Randomize Training Parameters Using the ENVI Modeler打开深度学习模型随机化参数训练工具。直接点击上方工具栏的Run按钮,弹出随机化参数训练对话框。
Iterations:为迭代训练的次数,这里默认16次,表示一共训练得到16组模型。
Input Model:选择初始化模型或者选择需要再次训练的模型。
Training Rasters:选择上一步生成的标签栅格。
Validation Rasters:同样选择上一步生成的标签栅格,工具会自动选择80%数据用于训练,20%数据作为验证。也可以将标签栅格库分为两部分,一部分用于训练一部分用于验证。
Augment Scale:是否使用缩放增强。增强是深度学习常用的一种技术,ENVI深度学习使用缩放和旋转来补充原始训练数据。它可以减少你所需的标记数量,特别是捕捉各种方向不同和大小不一的同种要素,增强还可以提高模型的能力,将它所学到的知识推广到新的图像中。但在样本充足的前提下使用增强会使模型的泛化能力过高,影响提取精度。这里选择No,不进行缩放增强。
Augment Rotation:选No,不进行旋转增强。
Raster to Classify:选择要进行变化地物提取的栅格影像,这里选择波段合成后的研究区影像。
Output Directory:选择提取结果存放路径。
2.2.4.3模型分类
通过查看随机化参数训练工具的提取效果,选择泛化能力最强的模型作为深度学习变化监测提取模型。如下图显示了不同泛化能力模型的提取效果,图中泛化能力强的模型不仅没有“漏提”,还发现了人工没有发现的变化图斑,但泛化能力强的模型也有“过提”的缺点,但相比“漏提”,我们更能接受“过提”。
选择好模型之后就可以使用已经训练好的模型进行变化地物提取。在Toolbox中,选择Deep Learning/TensorFlow Mask Classification打开深度学习模型分类工具,Input Raster选择研究区数据,Input Trained Model选择训练好的最优模型,Output Classification Raster选择提取结果输出路径和文件名,Output Class Activation Raster选择类激活栅格输出路径,点击OK。
得到深度学习提取的变化图斑结果,如下图所示图中红色图斑表示发生变化的区域,黑色为背景区域。
2.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,得到矢量结果。
3)生成最小外接矩形
通过输出的矢量结果生成最小外接矩形,在Toolbox中,选择Vector/Vector to Bounding Box,在弹出的对话框中选择上一步输出的矢量,Oriented Bounding Box选择Yes,根据图斑边界生成最小外接矩形,设置文件输出路径点击OK,得到最终结果。
2.3变化监测结果
2.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个。
使用训练样本对深度学习训练模型进行精度验证,结果如下:
Loss(损失):0.111
Accuracy(正确率):0.946
Precision(用户精度):0.783
Recall(生产者精度):0.953
F1(F1分数):0.853
2.3.2 监测结果
区域内人工目视绘制变化图斑共计653个,深度学习模型全部识别发现,无“漏提”现象。同时深度学习还发现了大量人工没有发下的遗漏变化图斑。监测结果如下图所示,图中红色矢量为人工目视解译绘制的变化图斑,黄色矩形框为深度学习发现的变化区域。