基于融合边缘变化信息全卷积神经网络的遥感图像变化检测

2022-05-31 06:18张香梁吕国芳
电子与信息学报 2022年5期
关键词:变化检测边缘卷积

王 鑫 张香梁 吕国芳

(河海大学计算机与信息学院 南京 211100)

1 引言

随着卫星与无人机等遥感技术的飞速发展,遥感图像数据总量和类型都不断增加,也为遥感图像的处理提出了更多的挑战和要求[1]。多时相遥感图像的变化检测,实质是利用同一地区不同时相的多幅遥感图像,监测该地区的地物变化的过程。目前,遥感图像变化检测技术在许多领域都有着广泛的应用,如土地利用变化监测、城市发展规划和布局、水资源地理分布情况和质量勘测等[2–4]。

传统的遥感图像变化检测方法主要借助底层或中层特征作为变化区域判别的依据。这些方法可以分为直接比较法和先分析后比较法。前者是指先通过比较像素或各种特征来构成差异图,然后利用差异图来提取变化的区域。直接比较法又包括图像差值法、图像比值法、变化矢量分析法等[5,6]。例如,文献[6]提出一种基于PCA-K-means的算法,这是一种经典的直接比较法,其首先利用主成分分析(Principal Component Analysis, PCA)来提取两幅图像相减的差异图像正交特征向量,然后使用K-means得到变化检测图像。直接比较法对数据预处理比较敏感,若预处理效果不好,检测结果很容易受到噪声影响。而先分析后比较法是先对两幅图像中的地物进行分析,根据分析的结果判断变化区域。这类方法包括支持向量机、随机森林、决策树等[7,8]。上述两类传统的变化检测方法,由于从图像中所提取的特征都比较浅层,并不适合目前具有高分甚至超高分辨率的遥感图像。

近年来,深度学习由于能从图像中提取更深层次的特征,而广泛应用于图像处理和模式识别领域。目前,国内外学者提出了许多基于深度学习的遥感图像变化检测方法。从方法的框架上来看,大致可分为3类:(1) 先提取特征再进行检测的方法,即先使用深度网络对双时相图像提取图像特征,再根据特征进行变化检测[9];(2) 先预分类再进行检测的方法,即先使用传统算法对差分图像进行预分类,挑选明确是变化与不变的样本对深度网络进行训练,最后将不确定的样本输入训练好的网络,得到结果图[10]。尽管这两类方法都基于深度学习,其变化检测的效果也优于传统的方法,但它们在检测过程中所需的阈值判断、聚类和样本选择等步骤仍受到人为经验的影响,容易产生误差。(3) 基于全卷积网络的方法,这是一种完全端到端的学习框架,中间不掺杂人为因素的干扰,整个过程更加鲁棒、高效[11]。根据图像的输入方法,这类方法又可以细分为单输入的网络和双输入的网络。单输入网络是将双时相图像级联为一幅图像后再输入网络[12,13]。例如,文献[13]将双时相图像对串联作为改进UNet++网络的输入,将不同语义层次的变化图进行合并,生成最终的变化图。相比较单输入网络而言,双输入网络是借鉴了孪生网络[14–16],将全卷积网络前端特征提取部分改为两个结构相同的网络。例如,文献[15]提出了3种全卷积神经网络框架用于遥感图像的变化检测,其中一种是单输入,另外两种为双输入,实验结果表明双输入的网络架构更适用于变化检测。文献[16]提出一种基于DSIFN的方法,属于双输入的基于全卷积网络的方法,双时相图像通过孪生输入网络提取深度特征,在训练时将降采样后的变化图的直接反馈引入网络的中间层,独立计算损失来更新网络参数。

尽管基于全卷积网络的方法取得了较好的变化检测性能,但仍然存在一些不足:(1)全卷积网络在提取双时相图像深度特征时,不易获得图像的结构变化信息(如边缘信息等),这将不利于网络后端检测图像的重建;(2)部分全卷积网络为了满足单输入的要求,会将双时相图像串联为一个图像,较难区分每个图像的深度特征,不利于最后变化图的重建[17];(3)类似UNet[18]这种全卷积网络,在变化检测时会将前端原始深层图像特征引入到后端,与图像差异特征级联在一起,这会带来特征冗余问题。

为此,本文针对上述问题,提出了一种基于融合边缘变化信息全卷积神经网络的遥感图像变化检测方法。首先,为了获取双时相图像的结构变化信息,提出计算两时相图像的边缘检测图,以得到边缘差异图像,作为后续网络的一个输入。其次,为了充分提取和区分每个输入的深度特征,搭建了一种基于VGG-16的3支路网络框架,该框架将对双时相图像和边缘差异图像分别进行深度特征提取。最后,在变化判别部分,设计了一种通道注意力模块,用于关注特征图中的关键信息,同时抑制无用信息,从而进一步提升变化检测的精度。整个方法的创新点在于融合了边缘变化的信息和通道注意力的模块,因此,本文将其称为EANet (Edge-Attention Network)。

2 提出的方法

2.1 总体框架

图1为本文提出算法的总体框架。EANet由边缘结构变化信息检测、深度特征提取和变化区域判别3部分组成。深度特征提取部分包含3个支路,双时相遥感图像(即变化前的图像和变化后的图像)分别输入支路T1和T2,边缘差异图像输入第3个支路C3。变化区域判别部分将3支路提取得到的深度特征进行级联,用于变化区域的判别。

图1 本文所提方法的总体框架

2.2 边缘结构变化信息检测

在计算机视觉领域中,边缘可以有效传达图像的结构信息。为此,本文采用 Canny算子[19],对双时相图像进行边缘检测,计算边缘图。

2.3 深度特征提取

为了提取双时相图像及边缘差异图的深度特征,本文设计了一种基于VGG-16[20]的3支路网络框架。在图像处理领域,VGG-16作为一个强大而准确的分类网络,在图像分类和目标检测等任务中取得了良好的效果。为此,本文采用在“ImageNet”数据集[21]上预先训练好的VGG-16的前5层卷积和池化部分,对双时相图像和边缘差异图进行深度特征的提取。

2.4 变化区域判别

在特征提取部分,经过卷积和池化后,最后一层生成的特征图具备了较为丰富的全局信息,但也损失了很多细节。为了弥补这些损失,本文借鉴UNet中的跳跃连接(Skip-connection),在每进行一次转置卷积后,使用跳跃连接将前端提取的特征图引入后端,并与上一层转置卷积得到的特征图进行级联。然后,为了关注特征图中的关键信息,同时抑制无用信息,引入SE(Squeeze-and-Excitation)[22]模块,将级联后的特征图先通过SE,再经过3层卷积层和转置卷积层。最后,通过Softmax对特征进行分类,得到最终的变化检测结果。

2.4.1 SE 模块

3 实验结果和分析

3.1 实验数据集

实验采用LEVIR-CD数据集[24],该数据集由637张超高分辨率(0.5 m/pixel)的Google Earth图像对组成。每张图像有RGB3个波段,大小为1024像素×1024像素。图像来自美国得克萨斯州20个不同地区,捕捉时间从2002年到2018年不等,具有显著的土地利用变化信息。

图2 SE模块结构示意图

3.2 实验环境和设置

本文实验运行环境为Linux,平台为11 GB显存的GPU(RTX2080Ti),采用Python3.6语言,Pytorch框架。训练选用Adam优化算法,batch size为8,0.0001的学习率,200个epochs,耗时4 h。本文使用准确率(Accuracy, Acc)、查准率(Precision)、查全率(Recall)、F1测量值(F1-measure)作为算法评价指标[23]。

此外,实验针对2.2节涉及的 maxVal和minVal参数设定方法如下:根据文献[20]建议,m axVal和minVal的比率一般设定为2:1或3:1,因此本文首先设置 maxVal 为255,然后m inVal的取值从100~150逐次增加5并遍历所有结果,最后根据实验结果选择效果最好的m axVal和m inVal的值。另外,针对2.3节涉及的卷积层使用k×k卷积核,k×k取值设定为3 ×3,且卷积核步长设定为1,其原因在于与7×7 或5 ×5 的卷积核相比,3 ×3卷积核能够保证在具有相同感知野的条件下,提升网络的深度,从而在一定程度上提升深度网络的学习效果,同时在本文设计的基于VGG-16的3支路网络框架中所采用的多个3 ×3卷积核比一个仅具有较大尺寸的卷积核拥有更少的参数,这也在另一方面保证了网络训练的效率。

3.3 结果和分析

3.3.1 提出算法的实验结果

为了验证本文提出的边缘变化信息检测和通道注意力模块的作用,构建了不同的网络形式,并进行了消融实验。设BASIC为最基础的双输入UNet网络,该网络不含边缘变化信息检测和通道注意力模块;BSE表示在BASIC网络后端加入通道注意力模块。图3给出了BASIC, BSE和本文提出EANet定性分析结果。

如图3所示,为测试集中随机选取的5对图像的实验结果图。图中前两行为输入的双时相图像(Input1和Input2),第3行为真实变化图(Ground Truth, GT),第4行为BASIC网络的变化检测结果,第5行为BSE网络的变化检测结果,第6行为本文提出的EANet变化检测结果。图中黄色椭圆标出的是实际没有变化却预测为变化的像素区域,红色方框标出的是实际变化却预测为未变化的像素区域。由图3可以看出,本文提出的算法,其检测结果优于BSE 和BASIC。例如,图3(a)示例1中,与GT相比,BASIC将实际未变化的区域判定成了变化区域(见黄色椭圆框标注);与BASIC相比,BSE由于加入了通道注意力,有效避免了对变化区域的误检,这说明了通道注意力模块的有效性。再如,图3(b)示例2中,BASIC和BSE都只能检测到部分变化的区域(见红色方框标注),而我们的方法检测到了较为完整的变化区域,与GT图最为吻合。这说明边缘变化信息的融入强调了双时相图像的结构变化,从而减少了漏检的像素区域。综上结果反映了本文提出的融合边缘变化信息和通道注意力模块的EANet在遥感图像变化检测中的优越性。

图3 不同网络架构的变化检测定性结果对比

表1为不同网络架构的变化检测定量结果对比。可以看出,本文提出的EANet网络变化检测结果最好,Acc(99.67%)、Recall(92.35%)、F1(93.85%)最高。此外,BSE的4个指标结果均优于BASIC,证明了通道注意力模块重新分配特征通道的重要性,有利于网络后端变化区域的判别。最后,将EANet与BSE比较发现,虽然EANet的Precision相对较低,但其Acc, Recall和F1均较高,综合来说本文算法结果更好。

表1 不同网络架构的变化检测定量结果对比(%)

图4为不同的网络架构在训练集和测试集上Loss曲线和F1曲线对比结果。其中,图4(a)为Loss训练曲线,图4(b)为Loss测试曲线,图4(c)为训练F1曲线,图4(d)为测试F1曲线。如图4(a)所示,3个网络模型均呈现了良好的训练效果,在100个epoch之后Loss曲线趋于平缓。如图4(b)所示,本文方法在测试集上的Loss曲线最优,BSE次之,可见在网络中加入边缘变化信息和通道注意力模块都能够增强网络泛化的能力。如图4(c)和图4(d)所示,本文提出的网络在测试集上的F1都要略微高于其余两个网络,说明该网络变化检测精度高。

图4 不同的网络架构在训练集和测试集上Loss曲线与F1曲线对比

3.3.2 与其他算法的比较结果

将其余3个现有的算法在LEVIR-CD数据集进行变化检测。第1种比较算法是传统的基于PCA-Kmeans的算法[6];第2种比较算法是基于单输入全卷积网络Unet++的方法[13];第3种比较算法是基于双输入全卷积网络DSIFN的方法[16]。这3种算法的具体描述参见引言部分。

图5为与其他算法的比较结果图。图5第4列PCA-K-means检测结果图只能模糊地检测出少量变化区域,图中明显有大量噪声干扰,传统方法的检测结果很差,并不适用于高分辨率遥感图像。图5第5行Unet++算法的检测结果,虽能检测出变化区域,但是检测结果图边界模糊。例如:图5(b)列示例2的GT图中,我们可以看到有很多边界明显的建筑物的变化,Unet++只能检测出变化区域整体外部轮廓,而不能精细地将每一个变化的建筑物区分开来,不利于精确地检测出每一处变化的位置,有很多误检的像素点。图5第6行DSIFN算法的检测结果有与GT图比较有部分漏检的像素点。例如:图5(c)列示例3的红色方框中,GT图有4块变化的区域,DSIFN只能检测出3块变化区域,本文算法检测出了4块变化的区域,与GT图比较仅有少许像素点的差别。

表2为其他算法的比较结果精度对比。结合图5和表2的结果,本文方法获得了最佳的检测效果。PCA-K-means算法 F1(10.50%)最低,检测效果最差,深度学习比传统方法更适用于高分辨率遥感图像。Unet++算法F1(75.60%),虽也取得了较高的检测结果,但是结合检测结果图可知图像单个特征不充分导致检测图像边界模糊,只能检测出变化区域的外部轮廓,双时相图像使用孪生输入网络提取的图像单个特征更有利于检测图像的重建。本文方法相对于DSIFN在检测精度F1上有些微的提升。

图5 不同算法的变化检测定性结果对比

图6为与其他算法在训练和测试时Loss曲线和F1曲线的对比,图6(a)为Loss训练曲线,图6(b)为Loss测试曲线,图6(c)为F1训练曲线,图6(d)为F1测试曲线。如图6(a)所示,与Unet++相比,双端输入的网络训练损失曲线下降速度快,双端输入的网络是较好的训练模式。在第100个epoch时,Unet++的Loss训练曲线还未趋于平缓,训练代价较大。如图6(b)所示,本文框架在测试集上损失曲线最后下降的值最小,Unet++最大,则Unet++的泛化能力最差,单端输入的深度学习网络在变化检测领域的泛化能力不如其余两个双输入网络。DSIFN和本文网络均为双端输入网络,本文网络在泛化能力上略优于DSIFN。如图6(d)所示,Unet++的测试精度远没有DSIFN和本文算法高,结合表2的精度对比数据,本文算法的检测精度最高。

图6 不同算法在训练集和测试集上Loss曲线与F1曲线对比

表2 不同算法的变化检测定量结果对比(%)

最后,本文还对提出的网络和两种深度网络模型(Unet++和DSIFN)进行了模型计算力(FLOPs)、参数量(Params)及训练时间的对比和分析,结果如表3所示。鉴于本文模型在深度特征提取部分采用了3个支路,比Unet++多出2条支路,比DSIFN多出1条支路,因此提出算法的计算力FLOPs和参数量Params略有提升。此外,由于本文方法在处理双时相图像时需要预先检测出边缘差异图,所以其算法训练时间也略高一些。尽管增加了计算代价,但是本文方法在变化检测的精度方面有了显著的提升,结果图中误检数和漏检数也减少了很多。未来工作将研究如何在保证精度提升的前提下,降低模型空间和时间代价。

表3 不同算法的计算效率结果对比

4 结束语

本文提出了一种融合了边缘变化信息和SE模块的EANet高分辨率遥感图像变化检测。首先对双时相图像进行边缘检测得到边缘图,相减得到边缘差异图。再使用3支基于VGG-16的模型提取双时相图像和边缘差异图的深度特征,强调双时相图像的结构变化信息。双时相图像和边缘差异图的特征图输入网络后端变化判别部分用于变化检测。在变化区域判别部分,每一次特征图级联后加入SE模块,来强调携带信息量大的通道。网络在公开的LEVIR-CD遥感数据集上进行了验证。实验表明,边缘差值图能有效传递边缘变化信息,强调双时相图像的结构变化,加入SE模块能提高检测精度。将本文方法与其他3种变化检测方法对比,本文方法在视觉效果和精度衡量上均优于其余3种方法。由于本文提出的方法能够有效提取遥感图像中变化区域的结构信息,从而提高变化检测的精度,因此算法更适用于城市建筑群变化检测等类似问题上。

猜你喜欢
变化检测边缘卷积
用于遥感图像变化检测的全尺度特征聚合网络
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于多尺度纹理特征的SAR影像变化检测
卷积神经网络的分析与设计
基于稀疏表示的视网膜图像对变化检测
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
基于Landsat影像的黄丰桥林场森林变化检测研究
一张图看懂边缘计算
在边缘寻找自我