一种基于深度学习的变化检测方法及实现
2020-12-11张戬,高雅
张 戬,高 雅
(江苏省测绘研究所,江苏南京210013)
0 引言
地表覆盖变化检测是目前遥感研究领域的热点之一,在灾害监测、城市变迁、国土规划、自然资源等领域有广泛的应用。地表覆盖变化检测指利用多时相获取的覆盖同一地表区域的遥感影像及其他辅助数据来确定和分析地表变化。变化检测的目的是提取对比图像明显变化区域,并生成变化后的图像。
近10年来,我国对地观测基础设施建设取得突破性进展,发射了资源、高分等一系列遥感卫星,大幅提高了对山、水、林、田、湖、草等自然资源全要素、全覆盖、全天候调查监测能力。尽管高分辨率遥感影像数据已经得到了自然资源主管部门的高度重视和广泛应用,但是当前的解译方法仍存在局限,主要以人工目视解译或半自动计算机解译为主。人工解译精度可靠,但要耗费大量时间和人力;半自动的计算机解译效率较人工解译显著提高,但解译模型的适用范围有限,需要根据具体情况选择适用的地表特征,设计恰当的解译规则,这一过程需要具备一定的知识经验,一般要行业专家来完成,无法推广普及。
在变化检测方面,目前仍没有形成通用成熟的方法。在已有的遥感影像变化检测方法中,影像配准与特征提取的好坏是影像变化检测结果的关键,绝大多数变化检测模型都对图像的配准有很高要求。但由于不同卫星传感器的差异以及多时相遥感影像成像条件的差别,即使在精确配准后,误差也难以消除。这导致在不同高分卫星影像间使用传统影像变化检测方法时,影像对比区域不一致,产生许多伪变化区域。所以大多变化检测方法都是利用同一传感器的相同分辨率影像,大大制约了变化监测的时效性。
深度学习是一种解决方案,为了让计算机从经验中学习,并通过层次化概念体系来理解世界,其中每个概念通过与较简单概念之间的联系来定义。让计算机通过经验获取知识,就不需要人类来形式化地列举计算机需要的所有知识。层次化的概念让计算机构建较简单的概念来学习复杂概念[1]。近年来,以深度学习为代表的人工智能技术快速发展,目前已经在图像分类、目标检测、语义分割、人脸识别、语音识别、视频分类和自然语言处理等多个领域成功运用。近年来图像处理方面的研究大多集中于卷积神经网络[2],并发展了一系列卷积神经网络基础模型。采用深度学习进行影像解译主要有以下几个优点,如图1所示。
图1 深度学习特点
(1)具有增量学习能力。目前主流的深度学习优化方法往往利用基于小批量样本的随机梯度下降法,无须一次将所有样本供给与模型进行训练,通过增量迭代的方式令模型进行学习,因此可以利用大量的历史数据进行训练。
(2)模型迁移能力强。深度学习在进行具备小数据量的领域或任务时,可以基于相近领域或任务的大数据进行预训练,采用小数据量的领域数据对于深度神经网络进行微调,从而实现不同领域或任务的迁移学习。
(3)无须人工设计特征。深度学习与传统机器学习的最大不同就在于,无须人工设计特征,由深度学习模型自动提取并进行训练,因此可以避免大量的特征工程工作以及人为设计对训练精度的影响。
本文基于深度学习的影像自动解译方法研究,以深度残差全卷积神经网络为基础模型架构,构建深度残差全卷积神经网络遥感影像地表覆盖分类框架,实现遥感影像地表覆盖自动化分类和典型地物要素提取。并在此基础上利用训练后的变化监测模型,对多期遥感影像进行解译,将解译结果求差值再进行后续处理,确定变化范围,帮助发现违法用地等异常情况。
1 基于深度学习影像解译的变化检测方法
基于影像解译的变化检测指利用多时相获取的覆盖同一地表区域的遥感影像及其他辅助数据来确定和分析地表变化。地表覆盖变化检测的一般处理流程包括图像预处理、变化检测及检测结果输出3个部分(见图2)。
图2 基于深度学习影像解译的变化检测具体流程
1.1 预处理
由于获取条件的差异,多时相遥感图像中存在非地物变化而造成的图像变化。因此,消除非地物变化是变化检测中不可缺少的步骤,如云层的遮挡以及不同季节等产生的地物变化,如雨雪以及植被在不同季节的生长变化等。
1.2 变化信息获取
变化信息获取是变化检测处理中的关键步骤。变化信息获取采用基于深度残差全卷积神经网络的地表覆盖分类方法,提取4种类型的地表覆盖要素。首先基于预处理的影像与矢量数据,制作可供训练的样本库,然后对使用残差全卷积网络进行训练,使用训练完成的模型对不同时相的影像进行预测分类,预测图像像素的分类信息。最后,对需要进行变化检测的影像分类结果进行求差运算,得到变化结果。
1.3 检测结果后处理及输出
变化检测的后处理是指对得到的检测结果进行再次处理以满足实际需求。主要方法包括滤波处理、数学形态学处理等。由于是基于像素级别的差值运算,因此可能会产生噪声点,这里采用形态学处理方式,先进行腐蚀操作,后进行膨胀操作,以消除部分噪声点和平滑变化检测结果,并设定各类要素的变化,得到差值图像。
1.1 自然资源训练样本库构建方法
为了实现高精度的土地地表覆盖自动化分类,需要利用大量训练样本对深度神经网络模型进行训练,从而使得深度神经网络模型学习到泛化能力强的语义特征,为地表覆盖自动化分类奠定基础。
本文主要基于基础测绘矢量数据和国土三调矢量数据,构建土地地表覆盖训练样本库。在基础测绘成果数据中,DLG要素包含居民地、植被、水体、道路等要素,分类相对较粗。而国土三调数据的分类更为细致,对各类农村农业用地和城镇建设用地的性质和用途均做了详细划分。土地分为耕地、园地、林地、草地等,城镇区域分商业用地、住宅用地、工业用地、公共用地等,水体分为河流水面、湖泊水面、水库水面、滩涂等。由于地表类型很多,需要针对重点监测变化的地表类型,选择矢量数据中的相应要素,为影像增加类型学习标签,制作训练样本库。
1.2 基于残差全卷积神经网络模型的分类方法
基于深度残差全卷积神经网络的遥感影像地表覆盖分类方法是基于全卷积的编码-解码框架,编码部分主要负责本质特征的提取,解码部分则负责将提取到的本质特征映射至分类图(见图3)。由于高分辨率遥感影像,地物分布随机,地物组成复杂,纹理多样,需要高度非线性模型才能提取到本质特征,因此本文采用深度残差网络作为骨干网络对高分辨率遥感影像进行特征描述。由于骨干网络会产生不同分辨率的特征图,其中:高分辨率特征对地物细节描述较好,但语义描述较差;低分辨率特征对语义描述较好,但地物细节描述较差。对于一些线状地物(道路、水体)其细节特征具有较好的识别效果,因此本模型结合高分辨率、细节丰富的特征与低分辨率、语义丰富的特征,令这些特征相互补充,从而学习获得更加鲁棒的表征。
图3 残差全卷积神经网络模型
1.3 差值变化检测方法
测试数据经过深度残差全卷积神经网络模型处理后,获取到影像解译结果,将两幅不同时相的分类结果图进行配准,并进行求差操作,得到地表覆盖变化的初始结果,由于是按像素进行分类,因此会有较多的噪声点,将初始结果进行形态学变换后处理得到最终变化的检测结果。
1.4 形态学变化处理
数字形态学指以形态为基础对图像进行分析,其基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状,以达到对图像分析和识别的目的。形态学图像处理的应用可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构。由于基于深度学习影像解译的变化检测是基于像素分类而实现的,因此不可避免地会产生噪声点和局部的误分类,形态学处理可以很大程度上减轻该问题。
形态学图像处理的基本运算有4个:膨胀、腐蚀、开操作和闭操作。
1.4.1 膨胀
膨胀就是求局部最大值的操作,其目的是使图像扩大,本质上就是将图像或图像的一部分区域与核进行卷积操作。
将核与图形卷积,即计算核覆盖区域的像素点最大值,并把这个最大值赋值给参考点指定的像素,这样就会使图像中的高亮区域逐渐增长,如图4所示。
图4 膨胀效果
1.4.2 腐蚀
腐蚀和膨胀的基本原理类似,差别在于腐蚀是求局部最小值的操作,其目的是使图像缩小。图5演示了包含边长为1,3,5,7,9和15像素的正方形的二值图像用13*13像素大小的结构元素腐蚀后的结果。
图5 腐蚀效果
1.4.3 开操作
开操作(Opening operation)其实就是先腐蚀后膨胀的过程,目的是使得图像的轮廓变得光滑,断开狭窄的间断和消除细小的突出物,消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积,其表达式如下:
dist=open(src,element)=dilate(erode(src,element)
1.4.4 闭操作
闭操作(Closing operation)就是先膨胀后腐蚀的过程,其目的同样是使得图像的轮廓变得光滑,但与开操作相反,它能消弭狭窄的间断和长细的鸿沟,消除小的空洞,并填补轮廓线中的裂痕,闭运算能够排除小型黑洞(黑色区域),其表达式如下:
dist=close(src,element)=erode(dilate(src,element))
对影像解译结果求差得到粗糙的变化检测结果进行形态学处理,可以有效地减少神经网络带来的像素级斑点误差,如图6所示。
2 具体实现
2.1 样本库构建
图6 形态学处理效果
本文采用常州市0.3 m分辨率遥感影像、基础测绘矢量数据和国土三调矢量数据,选取植被、水系、居民地、道路这四类地表类型,构建训练样本库(见图7)。由于影像数据、基础测绘矢量数据和国土三调矢量数据的制作时间具有一定的时间差,地表状态不可能全部一致。因此首先采用人工筛选与异常值检测方法,清洗不匹配的矢量数据与对应影像区块,再对标注精细程度不足的部分,采用人工标注的方法进行补充。最后,将矢量数据转换为掩膜,对所有矢量要素对应的影像区域赋予类别标签,即可构建深度神经网络训练样本库。
构建完成后的样本库,由于矢量要素存在重叠现象,会在同一位置存在多个标注类别,需要进行拓扑检查。设置类别优先级进行唯一标注,依据标注精度与地物重要程度设置:居民地>道路>水系>植被。设置类别后地物掩膜值如图8所示。
图7 样本库构成
图8 样本库成果(局部)
2.2 模型训练与测试
本文采用Pytorch构建了基于命令行的软件系统[3],实现了变化检测和违法建筑目标提取的训练和测试,同时对上层用户提供透明的、可供调用的接口,用户可以不用处理具体技术细节就实现样本库的导入、模型的训练和测试。系统构建在GPU服务器之上,使用GPU加速模式,提供更高的性能,设计基于残差全卷积神经网络的分类架构,如图9所示。
图9 基于残差全卷积神经网络的分类架构
根据常州市自然资源局提供的常州市第一季度和第二季度卫星影像,以及常州的矢量数据制作出影像解译样本库,进行训练。利用训练后的模型对常州市两个季度的影像进行分类,结果如图10、11所示。
图10 两季度原始影像
图11 两季度影像解译结果
采用深度学习影像解译的方法获取到第一季度和第二季度的分类结果图后,对两幅图按像素求差值,根据不同的差值判断不同的变化,生成变化检测图,由于是按像素分类并求差值,因此存在很多细碎的噪声点,实际地表并未发生变化。为了清理噪声点,采用形态学的腐蚀和膨胀算法进行处理,最终得到变化检测结果,检测精度可以达到80%以上,如图12所示(其中背景表示不属于四类基本要素的其他地物)。
3 结语
本文提出了一种基于深度学习的变化检测方法,提升了遥感数据解译和信息提取的精度和效率,为提升自然资源调查监管决策能力,建立高效、完善的自然资源遥感监测服务体系提供了更为先进的技术手段。基于数据驱动的深度学习方法具有端到端学习,无须人工设计特征,逐层提取高层语义特征等优良特性,深度学习方法可作为高分辨率遥感数据特征挖掘的有效手段,为遥感影像的变化检测提供一条新的途径,建立快捷有效的核查指挥和快速反应机制,提升自然资源执法督察的科学性和时效性,推动自然资源管理的信息化和智能化。
图12 变化检测结果