基于SE-DRUnet的遥感影像耕地变化检测
2022-07-23杨文忠汪传建魏文钰
黄 梅,杨文忠,汪传建,魏文钰
(1.新疆大学信息科学与工程学院,新疆 乌鲁木齐 830046;2.新疆多语种信息技术实验室,新疆 乌鲁木齐 830046;3.安徽大学互联网学院,安徽 合肥 230039)
耕地一直以来都是人类生存的必要条件,但是,随着森林采伐以及过度游耕,耕地面积在不断地减少.目前我国人均面积较少,人地矛盾愈发尖锐,耕地质量有所下降,退化严重[1],并且可以开垦的耕地资源非常有限,我国耕地保护迫在眉睫.快速、准确地检测出耕地的变化情况是十分有必要的[2].
目前国内外学者对遥感图像变化检测的研究众多[3-6],主要分为无监督方法和有监督方法,通常利用图像差分、主成分分析、变化向量分析(CVA)等方法检测变化区域,但这些方法不能利用先验知识,只能依赖假设的差异图来检测变化.然而遥感图像常常因拍摄角度不同、光照不同或是传感器本身的原因而产生差异,无监督方法不能很好地适应这种变化.有监督方法使用标记好的数据来检测变化,检测结果的准确率相对较高.基于对象的方法[7-10]虽然能很好地利用空间信息,不易受噪声影响,但可以使用的分割算法比较局限.基于像素的方法[11-14]能够保留更多原始信息,具有丰富的细节特征信息.传统的方法通过阈值分割的方法处理差异图像得到最终的变化图.这类方法对阈值和特征指标的选择要求极高,而且很容易受到噪声(例如亮度或大气条件)的影响,泛化能力较差,准确率较低[15-16].近年来,深度学习已逐渐成为计算机中的研究的热点,很多国内外学者开始将深度学习应用到解决实际问题当中并取得了很好的研究成果[17-22].深度学习网络架构能够通过数值来描述输入数据,因此这种结构可以用在图像分类任务当中,传统的网络架构[23]通常是在卷积层后连接一些全连接层,其输入图像的大小是固定不变的,并且网络冗余太大,十分耗费资源,不能在增大感受野的同时提高定位精度,效率不高.为完成语义级分割任务,文献[24]提出全卷积神经网络FCN,将CNN网络的全连接层换成卷积层,采用下采样与上采样结合的方式,不仅可以训练任意大小的网络,还能保留图像的空间信息,但是FCN的分割结果还是不够精细.后来Ronneberger 等[25]在FCN的基础上提出一种能够结合深层特征和浅层特征的U-net架构,在图像分割领域中取得了显著成果[26-29].U-net是一种端到端的网络结构,可以完整保留上下文信息,并在数据量很少的情况下取得了不错的分割效果.文献[30-32]也将U-net用在变化检测任务中,效果俱佳.但是现有的模型提取到的特征有限,模型检测变化区域的准确度仍然有待提升.本文提出一种基于U-net改进的模型来检测耕地变化,该模型巧妙地将U-net与VGG[33]、SE-Net[34]和残差结构[35]相结合.首先,利用更深的卷积层提取到更多复杂的地物特征,获取到更加高级的语义特征,同时这种方式能够增大感受野,增强模型的抗干扰能力;其次,引入SE模块和残差结构,SE模块对图像各通道分配权重,让网络能够自动学习到对变化检测任务有用的特征,残差结构则能降低模型复杂度,提升模型性能.所提出的模型经过实验对比,效果优于其他模型.
1 数据集
本文采用Landsat-8卫星遥感图像.使用的图像为预处理后的RGB真彩色图像.创建地面真实标签的过程完全是人工完成的.白色表示变化区域,黑色表示未变化区域(见图1).研究区域为新疆的3个地区:巴音郭楞蒙古自治州地区、昌吉回族自治州地区和乌苏市地区(见表1).它们对应的图像尺寸分别为1 408×2 304像素、1 920×1 792像素、1 536×2 048像素.预处理后,双时相图像和对应的标签被分成共600组128×128像素大小的图像.随机抽取一半样本作为训练集,另一半作为测试集,仅对训练集进行数据增强.一共生成了1 792个训练样本和300个测试样本.
表1 Landsat数据集
图1 数据集
2 网络模型
本文模型融合VGG[34]来增加网络深度,VGGNet采用3×3的卷积核和2×2的池化核,并不会使网络因深度的增加而降低性能,也不会带来参数爆炸问题.两个串联的3×3卷积层感受野大小与1个5×5的卷积层的感受野一样(见图2),这种操作将小片区域参数转换为单个值以进行比较,可以很好地处理由传感器的不同视角等因素引起的配准问题.3个串联的3×3卷积层感受野大小与7×7的卷积层感受野一样,但是3个3×3的卷积层的参数总和只有1个7×7的一半左右.并且利用3个非线性操作会让网络学习特征的能力更强.这种结构在不增加网络复杂度的同时也增大了感受野,能够获取到更多的信息,因此本文采用VGGNet的方式改进了U-net的卷积模块.
图2 2个3×3卷积层串联感受野示意图
在利用更深的深度网络进行变化检测时,网络是否越深越好并不清楚,为了探索出合适深度的网络进行变化检测,本文探索了18层、24层、27层的U-net在耕地变化检测任务中的表现.
2.1 网络结构
SE-DRUnet网络架构包含两个部分:编码路径和解码路径(见图3).在编码路径中,多组卷积和池化操作将自动提取图像特征并将其映射至高维,残差结构防止梯度消失,使网络有更好的收敛能力.编码路径的核心包含5组卷积模块,SE模块添加在每个模块的捷径连接层之前,不同之处是1,2组卷积模块均包含两个卷积层,3,4,5组卷积模块均包含3个卷积层.激活函数均为Relu函数,为提高模型的鲁棒性,降低特征图的维度,在捷径连接层之后做2×2的池化并添加了BN层来防止过拟合,同时提高网络的收敛速度,使模型的训练更加稳定.
图3 网络结构
解码路径中,每层输入不但包括上采样得到的深层特征图,还包括对应编码部分生成的浅层特征图.随着网络的层数加深,得到的特征会更加有区分度,但也更加抽象,损失的原图信息也更多,这种将两张特征图通过通道连接的方式进行融合的方法,能够让高分辨率的图片与低分辨率的图片相结合从而获取到更丰富的信息.解码路径的核心包含4组卷积模块,SE模块添加在每个模块的捷径连接层之前,不同之处是,6,7组卷积模块均包含两个卷积层,8,9组卷积模块均包含3个卷积层.
2.2 SE模块
SE-Net(Squeeze-and-Excitation Networks)[34]是2017年的ImageNet冠军模型.该模型采用了“特征重标定”方法,其主要思想是让网络自动学习每个特征通道的重要程度,通过特征的重要程度来判断特征的作用并加强对任务有用的特征,忽略作用不大的特征.此外,文献[34]也将SE模块应用到Inception模型和ResNet模型中,在一定程度上提升了模型的性能.U-net是一种基于像素的变化检测方法,此类方法能够保留更多原始信息,具有丰富的细节特征信息,但其使用局部感受野,不能充分考虑像素的空间位置特征,比较容易受噪声影响.因此将SE模块引入U-Net中,SE模块能获取全局信息,对各通道特征之间的相互依赖性建模,找到更加具有区分度的特征,提升网络表征能力和抗噪能力.
SE模块一共包含3个部分(见图4):(1)Squeeze操作,该操作采用全局平均池化来压缩特征,将二维的特征通道转变成实数,利用这个实数获取全局信息.(2)Excitation操作,该操作包含两个全连接层和一个Sigmoid层.全连接层能融合全部的特征信息,Sigmoid层则将输入数据映射到0~1之间,由此来获取特征图各通道的权重.(3)Scale操作,该操作通过乘法让权重与特征融合,从而实现特征的重标定.
图4 SE模块示意图
2.3 残差结构
ResNet在2015年由He等[35]提出,并在2016年对深度学习的发展方向产生了巨大影响.ResNet在输入和输出之间做捷径连接,从而形成残差函数.该残差函数易于优化,非常适用于深度网络.研究人员[36-37]巧妙地将残差网络与深度学习网络模型相结合得到了很好的分割效果,残差模块将不同卷积层级联的输入和输出相加来提取特征,在一定程度上能够减少模型参数,从而减少模型训练时间,能更好地防止梯度消失.本文将SE模块与残差结构相结合的示意图如图5所示.
(a)两层残差卷积模块 (b)三层残差卷积模块
3 评估指标与后处理
为了评估模型的性能,我们使用混淆矩阵(Confusion matrix)对分类结果进行评估.像素的分类结果共4种:TP,FP,TN和FN分别表示真阳性的数量,假阳性的数量,真阴性的数量和假阴性的数量,根据这些来计算这4个指标:准确率(A)、精确率(P)、召回率(R)和F1值(F1-score),具体描述如下:
(1)
(2)
(3)
(4)
模型的预测结果图中会出现一些小面积的空洞区和误报区,为了提升模型的检测效果,本文采用孔洞填充和腐蚀的方法来消除这些预测错误的地方,效果见图6.
图6 后处理效果图
3.1 孔洞填充
在观察预测结果后发现少数耕地变化预测结果图中出现孔洞现象,影响实验效果,因此对图像进行了孔洞填充.本文先利用label( )函数标记出连通区域,再利用remove_small_holes( )函数将连通区域内的小面积黑色区域填充成白色.
3.2 腐蚀
在网络模型的检测结果中,存在一些零散的小块的区域,这些区域的意义不大,但影响效果,本文利用morphology子模块的remove_small_objects()函数来消除这些误报区,该函数会先计算出连通区域的面积,然后删除给定阈值的连通区域.通过计算发现,标签中耕地的最小面积为64,因此阈值设为64,预测结果中,面积小于64的区域都会被腐蚀.
4 实验结果
本次实验的硬件环境为Intel(R) Core(TM) i9-9900K CPU (3.6 GHz,8核和32 GB RAM)和单个NVIDIA-SMI GeForce GTX 2080 Ti GPU,内存64 GB,软件环境为Ubuntu 18.04.3,python3.6,tensorflow1.14.0.在训练和测试的时候仅读取标签图像中一个通道(R通道)的像素值,将每个像素值除以255(转换成0和1)使之成为一个二值图像,与两个时相的原图堆叠后一起输入模型训练.训练集和测试集图像读入时的形状为(128,128,6),标签读入时的形状为(128,128,1).模型按批次处理图像,批处理的大小为32,共需要56个批次完成一次模型的训练.使用学习率为0.001的Adam优化器不断更新网络的权重,直到找到全局最优点,当损失函数降低并趋于平缓时,模型训练结束.本文使用的损失函数是网络模型预测结果的像素值和标签真实的像素值的交叉熵,此损失函数常与Softmax函数搭配在分类问题中使用.
表2是不同深度网络模型的参数数量以及准确率对比.从参数上来看,随着网络层数的加深模型的参数会提升很多,但24个卷积层的网络模型检测比18层和27层的效果都要好.因此选用24层网络进行变化检测.
表2 不同深度模型对比
图7 不同模型在巴音郭楞蒙古自治州地区的预测结果
图8 不同模型在昌吉回族自治州地区的预测结果
图9 不同模型在乌苏市地区的预测结果
本文计算了4个评价指标(A,P,R,F1),并汇总于表3.图7—9分别是不同模型在3个地区检测耕地变化的预测结果.可以看出,本文模型具有最好的变化检测性能,结果与人工标注的结果更加相似.与其他模型相比,SE-DRUnet模型的预测结果图中多边形的边缘更加清晰且漏检情况较少,其他模型检测结果边缘非常不规则,且孔洞的发生更为严重.通过比较,发现U-net模型的A,P,R,F1值在这些网络模型中最低(见图7d、图8d、图9d).其他模型的变化检测效果均优于U-net.其中,Res-Unet模型 (见图7e、图8e、图9e)没有使用传统的卷积块,而是使用残差连接,极大地促进了深度网络的训练,提高了空间精度,可见残差结构在一定程度上能提升模型的性能;FlowS-Unet模型[38](见图7f、图8f、图9f)结合了FlowNet和U-net,在检测建筑的变化取得了不错的效果,但检测耕地变化的效果有待提升.Forest-Unet模型(见图7g、图8g、图9g)是Hamdi等[39]找出的最适合检测森林破坏的网络模型,可以看出该模型在检测耕地变化时效果也并非最佳;SE-DRUnet模型(见图7h,图8h和图9h)将VGG结构和SE模块引入U-net并采用残差结构,可以提取更加具有区分度的特征,并且不容易受噪声数据的影响.该模型极大地促进了深度网络的训练,提高了空间精度.
表3 SE-DRUnet与其他模型性能比较 %
由表3可以看出,SE-DRUnet在没有进行后处理的情况下准确度已经比其他方法好很多,在经过后处理之后也准确度略微上升,A,P,R和F1值分别达到95.61%,92.33%,86.62%,89.39%,是几个模型中表现最好的.证明本文提出的SE-DRUnet方法更适合于耕地变化的检测.
5 总结
针对目前变化检测方法的准确性不高、容易受到噪声影响的问题,本文在U-Net的基础上提出了SE-DRUnet模型.该网络采用编码器-解码器架构,能够融合高分辨率特征和语义特征.SE-DRUnet有较好的鲁棒性,在提取的特征时抗噪能力较强.模型采用VGGNet思想加深了U-net的深度,不仅能增大感受野,增强模型抗噪能力,还能提取到更加具有区分度的特征,并且引入SE模块和残差结构,SE模块对图像各通道分配权重,让网络能够学习到变化检测的重要特征,残差结构则能降低模型复杂度,提升模型性能.训练后的模型在新疆3个地区进行了测试.与其他模型相比,本文提出方法的预测结果更加接近人工标注的结果.但是由于硬件设备的限制,模型的训练周期较长.在提高边缘精度的同时,减少模型的训练时间和预测时间是下一步研究的主要内容.