基于多尺度注意力特征与孪生判别的遥感影像变化检测及其抗噪性研究

2022-02-18 06:44杜俊翰赖健王雪谭琨
数据采集与处理 2022年1期
关键词:变化检测像素点像素

杜俊翰,赖健,王雪,谭琨

(1.华东师范大学地理科学学院,上海 200241;2.华东师范大学地理信息科学教育部重点实验室,上海 200241;3.高分辨率对地观测系统上海数据与应用中心,上海 200240)

引 言

遥感技术具有长时间、大范围和周期性对地观测的能力,被广泛应用在地表覆盖信息监测。变化检测作为遥感应用的重要领域之一,在城市规划、土地资源管理及生态环境监测等方面都有着重要作用[1⁃2]。变化检测是利用多时相影像获取相应地物的变化信息。目前的变化检测研究大多集中在获取两时期影像的变化区域或变化类型。传统的变化检测方法主要是通过构造差异影像提取变化阈值,进而获取变化区域。例如变化矢量分析法(Change vector analysis,CVA)[3⁃4]是通过获取两时期影像的变化强度图,再选取一个合适的阈值输出二值变化检测结果图;主成分差值法[5⁃7]是利用主成分分析(Prin⁃cipal component analysis,PCA)先选取原始影像具有代表性的波段以获取差异影像,最后结合阈值或聚类的方法获取变化检测结果。这些方法都属于非监督的方法,虽能快速获取影像上大致的变化区域,但检测结果通常存在不少虚检和漏检的情况,变化检测的精度不高,难以应对高精度变化检测的任务。

机器学习相关领域的研究发展也带动了相应算法在遥感影像变化检测当中的应用。冯文卿等[8]将随机森林(Random forest,RF)算法与超像素分割相结合,并加入多种特征作为随机森林算法的输入,取得了较好的检测精度。Volpi等[9]结合了原始影像与相应的纹理、形态学特征,利用支持向量机(Sup⁃port vector machine,SVM)算法获取了变化检测结果。相比传统的变化检测方法,利用机器学习算法进行变化检测的方法在精度上有了较大的提高。深度学习作为机器学习的一个特殊分支,以卷积神经网络(Convolutional neural network,CNN)的深度学习算法在计算机视觉任务中取得巨大突破的同时,也在遥感影像的变化检测研究中获得了广泛应用。Lin等[10]利用影像块输入CNN预测中心像素的方式获取影像中每个像素的变化情况。Zhan等[11]使用孪生结构的CNN获取了差异距离图,再通过阈值分割的方式获取了最后的变化检测结果。Zhang等[12]使用了孪生结构的全卷积网络,并结合了深度监督策略和注意力机制进行了变化检测。Chen等[13]在孪生结构的全卷积网络加入自注意力机制,获得了较好的变化检测结果。以CNN为主的深度学习算法拥有强大的特征提取能力,成为了目前变化检测中的研究热点。

根据以上研究进展可以看出,基于传统机器学习算法的变化检测方法大多利用了随机森林和支持向量机等算法并结合多维特征来实现变化像元的检测。基于深度学习的方法大多是对神经网络结构进行改造以提升变化检测精度。这些研究在侧重于算法结构创新的同时忽略了数据质量对结果的影响。然而,噪声在遥感影像中是普遍存在的,噪声的出现会影响遥感影像解译的效果。目前尚无针对遥感影像中各类噪声对变化检测结果影响的研究,也没有研究对各类常见变化检测方法的噪声敏感性进行过归纳总结。因此,本文研究了不同变化检测方法在含噪声影像中的表现性能,分析了具有较好抗噪性的检测方法,在此基础上提出了一种结合注意力机制和多尺度特征提取模块的变化检测方法,并在遥感影像加入噪声情况下进行了变化检测实验,证明了本文方法在精度和抗噪能力上的优越性。

1 本文方法

1.1 多尺度特征提取模块

遥感影像中包含了多种尺寸的地物,传统的卷积操作中使用固定的卷积核大小会导致感受野受限,容易忽略完整且多样的地物信息,特别是在含有噪声的影像中,最终的判别信息会受到感受野内噪声的影响。在多尺度特征提取的研究中,Deeplab系列网络[14]利用不同膨胀率的空洞卷积组成空洞空间金字塔池化(Atrous spatial Pyramid pooling,ASPP)模块来增大感受野,获取图像的多尺度信息,PSPNet[15]利用不同大小的池化模块组成金字塔池化模块来解决不同尺度的地物的分割问题。

本文考虑到遥感影像中不同地物的尺度问题,设计了一个融合空间注意力机制的多尺度特征提取模块(Multi⁃scale feature extraction with attention,MSFEA),如图1所示。MSFEA中采用了3种不同膨胀率的卷积核来进行特征提取,3个3×3大小卷积核的膨胀率分别为1、2、3,用来提取影像块内不同尺度的地物特征。3×3的最大池化用来获取影像局部区域的最大值。

图1 MSFEA模块结构Fig.1 Structure of MSFEA module

卷积层得到的特征图在不同位置上的信息应有不同的权重,空间注意力机制(Spatial attention mechanism,SAM)可以突出特征图的重点信息,抑制非重点区域信息。本文在多尺度卷积层后加入了SAM模块,用以加强各尺度特征图的目标特征信息。

空间注意力模块的实现过程如图1黄色框内所示,将尺寸大小为C×H×W的特征图(C表示波段数,H表示高度,W表示宽度)分别在通道维度上进行全局平均池化和全局最大池化。

通道维度上的全局最大池化的表达式为

式中:pm(i,j)为第m个通道的特征图在(i,j)位置上的值;c为通道数;Pmax(i,j)为(i,j)位置上的最大值。

通道维度上全局平均池化的表达式为

式中:Pn(i,j)为第n个通道的特征图在(i,j)位置上的值;Pavg(i,j)为(i,j)位置上的各个波段的算术平均值。

将全局池化后的特征图Fmax、Favg进行通道维度上的叠加,1×1大小的卷积核学习特征并分别经过ReLU激活函数和Sigmoid函数获取空间注意力权重图Ws,表达式为

式中δ、σ分别表示ReLU函数和Sigmoid函数。

最后将空间注意力权重图Ws与原始的特征图F相乘,对特征图每个位置赋予权重,即

1.2 通道注意力机制

卷积神经网络中每一个卷积层都包含了若干卷积核,每个卷积核都会对当前输入的图像进行特征提取并产生相应的特征图。每个特征图所包含的信息不同,所以应当对每个特征图给予不同的权重,突出重要的特征图。

本文通道注意力模块结构如图2所示,将尺寸大小为C×H×W特征图分别通过空间维度上的全局平均池化和全局最大池化来获取特征图在每个波段中平均值和最大值,池化后的特征图大小为C×1×1。

图2 通道注意力模块结构Fig.2 Structure of channel attention module

空间维度上的全局最大池化的表达式为

式中:h表示特征图的高度;w表示特征图的宽度。

空间维度上的全局平均池化的表达式为

两种池化的特征图Fmax,Favg通过1×1大小的卷积核学习,得到的特征图相加后通过Sigmoid函数计算出最后的通道注意力权重图Wc。

最后将通道注意力权重图Wc与原始的特征图F相乘,对特征图每个通道赋予权重。

1.3 基于SMA‑Net的变化检测

本文结合多尺度特征提取和注意力机制(Siamese multi⁃scale attention network,SMA⁃Net)方法进行变化检测的步骤如图3所示。首先以训练样本中变化和未变化的像素点为中心像素,选取影像块,再将两时期影像对应的影像块作为SMA⁃Net两条支路的输入。

图3 SMA⁃Net变化检测流程Fig.3 Change detection workflow of SMA⁃Net

SMA⁃Net中所有卷积核大小为3×3,步长stride=1,零值填充padding=1。经过卷积层和MS⁃FEA模块提取特征后,将孪生网络两条支路各个层次对应的特征图作差,获取差异特征图。各层次的差异特征图在通道维度上进行叠加后输入通道注意力模块,对不同通道的特征图赋予权重。

对最后一个卷积层输出的特征图进行拉伸并输入全连接层。全连接层中使用Dropout[16]来防止过拟合。将全连接层的输出传递给Softmax函数得到影像块对应中心像素属于变化和未变化类别的概率。

2 实验过程及结果分析

2.1 实验数据

实验所用的第1组数据为资源三号卫星(ZY3)数据,如图4所示。2幅影像分别获取于2012年11月6日和2013年11月3日,数据的覆盖范围为江苏省徐州市云龙区。影像大小为450像素×450像素,包含了红、绿、蓝和近红外4个波段,空间分辨率为5.8 m。主要包含的变化类型为植被的增加与减少以及建筑物类型的变化。变化参考图由人工目视解译得到,黑色表示未发生变化的区域,白色表示发生了变化的区域。该组数据的训练集中包含了4 680个像素点,其中有1 609个变化的像素点和3 071个未变化的像素点;验证集包含了1 170个像素点,其中有410个变化的像素点和760个未变化的像素点。其余像素点作为测试集用于测试最终变化检测的精度。

图4 ZY3数据的原始影像和变化参考图Fig.4 Original image data and reference map of the ZY3 dataset

实验所用的第2组数据为高分二号卫星影像(GF2)数据,如图5所示。2幅影像分别获取于2016年11月3日和2017年10月9日。数据的覆盖范围为江苏省南京市秦淮区。影像大小为500像素×500像素,包含了红、绿、蓝和近红外4个波段,空间分辨率为4 m。主要变化类型包括植被与建筑之间的变化和植被向水体的转化等。该组数据的训练集中包含了5 744个像素点,其中有1 927个变化的像素点和3 817个未发生变化的像素点;验证集包含了1 426个像素点,其中有472个变化的像素点和954个未发生变化的像素点;其余像素点作为测试集用于测试最终变化检测的精度。

图5 GF2数据的原始影像和变化参考图Fig.5 Original image data and reference map of the GF2 dataset

2.2 噪声数据模拟

遥感影像在成像和传输过程中都有可能产生噪声,一般认为遥感影像中的噪声是由各类噪声混合组成[17]。本文选用遥感影像中常见的椒盐噪声和条带噪声作为模拟噪声加入原始影像数据。

椒盐噪声是一种点状的噪声,它随机出现在图像多个像素点的位置,受影响的像素点灰度值会变成该图像灰度值范围内的最大值或最小值。在本文中,椒盐噪声率定义为受椒盐噪声影响的像素点占整幅图像像素点总数的比例。实验中对ZY3和GF2原始的2个时期影像分别加入了噪声率为10%和50%的椒盐噪声。

传感器响应不均匀造成影像在一定方向上出现灰度值连续偏高或偏低,从而形成条带噪声[18]。条带噪声在遥感影像中表现为多行或多列的明暗条纹。条纹宽度可以为一个像素宽也可以为多个像素宽。明条纹的灰度值相较周围的正常像素点的灰度值偏高,暗条纹相较周围正常像素点的灰度值偏低。在本文中条带噪声率定义为明条纹和暗条纹的列数占影像总列数的比例。实验中对ZY3和GF2原始的2个时期影像分别加入了10%和50%噪声率的条带噪声。图6为ZY3数据加入噪声后的影像。

图6 ZY3加入噪声的影像数据Fig.6 ZY3 data image with noise

2.3 实验环境及参数设置

本文方法采用Python编程语言实现,使用的深度学习框架为Pytorch。所有实验的运行设备统一为64 GB内存,Intel Core i9⁃9900K CPU和NVIDIA GeForce RTX 2080Ti GPU的台式主机。

模型训练时使用了Adam参数优化器,初始学习率设置为0.000 2。损失函数为交叉熵(Cross en⁃tropy)损失函数。训练批次大小batch size设为48,训练迭代的最大次数epoch设为50。在模型训练过程中,每个epoch结束后验证当前模型在验证集上的误差,当验证集损失不再下降时,使当前学习率减少为原来的一半。当连续5个epoch验证集的损失没有下降时,结束模型训练。

2.4 评价指标

本文采用了二分类问题中常用的准确率(Precision)、召回率(Recall)、和F1值作为实验精度的评价指标。其中,准确率表示被预测为变化的像素中实际发生了变化的像素所占的比例;召回率表示被预测为变化的像素占所有实际变化像素的比例;F1值是准确率和召回率的加权调和平均值,其值越高表示检测的精度越高。3个指标的表达式为

式中:TP表示将变化的像素预测为变化的像素的个数;TN表示将未变化的像素预测为未变化的个数;FP表示将未变化的像素预测为变化的个数;FN表示将变化的像素预测为未变化的个数。

2.5 实验结果分析

本文采取的对比算法包括了SVM[10]、MLP、CNN、BCNNs[11]和STA⁃Net[14]。其中,SVM与MLP方法采用2个时期影像叠加后单个像素的光谱特征值作为输入;CNN方法的输入方式为2个时期影像块叠加;BCNNs[11]是一种孪生结构的卷积神经网络;STA⁃Net[14]在孪生网络中加入金字塔自注意力机制;本文将STA⁃Net的解码端的卷积层换成了全连接层以输出单个像素的预测结果。CNN、BCNNs、STA⁃Net与本文的SMA⁃Net方法都采用了影像块输入预测中心像素的方式。考虑到输入不同大小的影像块会影响检测精度,CNN、BCNNs、STA⁃Net和SMA⁃Net方法输入的影像块大小均设为9×9。

首先对ZY3、GF2原始数据进行变化检测实验。由图7、8可以看出,SVM和MLP方法得到的结果都存在部分虚检情况,在一些未变化区域部分像素点被识别为变化类型的像素。CNN、BCNNs、STA⁃Net和SMA⁃Net方法采用了影像块作为输入预测中心像素结果的方式,在预测影像边缘的像素时,对影像块进行了零值填充,所以在变化检测结果图的边缘出现了虚检情况。但总体来看,CNN、BCNNs、STA⁃Net和SMA⁃Net方法得到结果的虚检情况有明显改善,检测结果图中的虚检噪声点数量明显下降。STA⁃Net和SMA⁃Net方法精度相对较高,其中SMA⁃Net在2组数据中都取得了最高的精度,F1值分别为0.734 4,0.709 5,具体精度指标如表1,2所示。

图7 使用不同方法对ZY3原始数据的变化检测结果Fig.7 Change detection results of ZY3 original data using different algorithms

图8 使用不同方法对GF2原始数据的变化检测结果Fig.8 Change detection results of GF2 original data using different algorithms

表1 ZY3原始数据的变化检测精度Table 1 Change detection accuracy of original ZY3 data

表2 GF2原始数据的变化检测精度Table 2 Change detection accuracy of original GF2 data

然后对ZY3、GF2噪声数据进行变化检测实验,检测精度如表3、4所示。从表3,4的结果可以看出,在ZY3、GF2原始影像加入10%的椒盐噪声后,SVM和MLP结果的F1值出现了较为明显的下降。其中SVM下降最多,分别为0.103 3和0.092 1,下降幅度分别为15.38%和14.68%。加入10%椒盐噪声的检测结果如图9、10所示,可以看出SVM和MLP两种方法的变化检测结果图中均出现了明显的点状噪声。但在CNN、BCNNs、STA⁃Net和SMA⁃Net方法的结果中,F1值下降幅度远小于SVM和MLP方法,变化检测的结果图中也无明显的点状噪声,受椒盐噪声影响较小。

图9 ZY3数据加入10%椒盐噪声的变化检测结果Fig.9 Change detection results of ZY3 data with 10% salt and pepper noise

图10 GF2数据加入10%椒盐噪声数据的变化检测结果Fig.10 Change detection results of GF2 data with 10% salt and pepper noise

表3 ZY3噪声数据的变化检测精度Table 3 Change detection accuracy of ZY3 dataset with noise

表4 GF2噪声数据的变化检测精度Table 4 Change detection accuracy of GF2 dataset with noise

在ZY3和GF2原始影像中加入50%的椒盐噪声后,由于影像中噪声点的数量大幅增加,SVM和MLP方法的F1值都出现了大幅度的下降。其中SVM方法下降最多,分别为0.323 0和0.338 4,下降幅度分别达到了48.08%和52.24%。加入50%椒盐噪声的检测结果如图11、12所示,可以看出在SVM和MLP方法的结果中出现了大量虚检的噪声点,SVM方法虚检的噪声点虽相对较少,但出现了大量漏检的区域。CNN、BCNNs、STA⁃Net和SMA⁃Net方法在影像加入50%的椒盐噪声后精度也出现了一定幅度下降,但降幅远小于SVM和MLP方法,SMA⁃Net方法在2组数据中仍取得了最高的精度。

图11 ZY3数据加入50%椒盐噪声数据的变化检测结果Fig.11 Change detection results of ZY3 data with 50% salt and pepper noise

图12 GF2数据加入50%椒盐噪声数据的变化检测结果Fig.12 Change detection results of GF2 data with 50% salt and pepper noise

在ZY3和GF2原始影像加入10%的条带噪声后,SVM、MLP、CNN、BCNNs、STA⁃Net和SMA⁃Net方法的F1值均无明显变化,说明10%的条带噪声对变化检测结果的影响较小。加入10%条带噪声的检测结果如图13、14所示,可以看出2组数据的实验结果中只有SVM方法出现了轻微的条带噪声的影响,部分条带位置上的未变化像素被预测为变化像素。而MLP、CNN、BCNNs、STA⁃Net和SMA⁃Net的变化检测结果图中无明显的条带噪声影响。

图13 ZY3数据加入10%条带噪声数据的变化检测结果Fig.13 Change detection results of ZY3 data with 10% stripe noise

图14 GF2数据加入10%条带噪声数据的变化检测结果Fig.14 Change detection results of GF2 data with 10% stripe noise

在ZY3和GF2原始影像加入50%的条带噪声后,SVM、MLP、CNN、BCNNs、STA⁃Net和SMA⁃Net方法的精度均出现了一定程度的下降。加入50%条带噪声的检测结果如图15、16所示,可以看出SVM和MLP方法的结果图中受条带噪声影响出现了明显的条带状的虚检和漏检区域。在CNN、BCNNs、STA⁃Net和SMA⁃Net方法的结果图中无明显的条带噪声影响,SMA⁃Net方法在2组数据受条带噪声影响下仍取得了最高的精度。2组数据中各方法的F1值变化情况如图17、18所示。

图15 ZY3数据加入50%条带噪声数据的变化检测结果Fig.15 Change detection results of ZY3 data with 50% stripe noise

图16 GF2数据加入50%条带噪声数据的变化检测结果Fig.16 Change detection results of GF2 data with 50% stripe noise

图17 ZY3数据上各方法F1变化Fig.17 F1 scores of six methods on ZY3 dataset

图18 GF2数据上各方法F1变化Fig.18 F1 scores of six methods on GF2 dataset

为了验证MSFEA和CAM以及MSFEA中的SAM对网络整体性能的影响,本文在ZY3和GF2的原始数据上进行了2组消融实验。

消融实验1分为实验A和实验B,结果如表5,6所示。实验A中删除CAM,保留MSFEA模块;实验B中删除MSFEA模块,保留CAM模块。从表3结果可以看出,在只删除CAM模块的情况下,ZY3数据检测结果的F1值下降了0.004 7,GF2数据的检测结果下降了0.003 9;在只删除MSFEA模块的情况下,ZY3数据检测结果的F1值下降了0.009 9,GF2数据检测结果的F1值下降了0.008 4。删除MS⁃FEA模块后网络的检测精度下降较多,说明MSFEA对网络性能的提升大于CAM。两者对网络的检测精度都有一定程度的提升作用。

表5 ZY3数据消融实验1结果Table 5 Result of ablation study 1 on ZY3 data

表6 GF2数据消融实验1结果Table 6 Result of ablation study 1 on GF2 data

在消融实验2中,本文针对MSFEA模块中SAM模块的影响进行了研究,结果如表7,8所示。在删除MSFEA模块中的SAM模块后,ZY3数据检测结果的F1值下降了0.002 9,GF2数据检测结果的F1值下降了0.002 3,说明SAM对网络性能的提升有一定作用。

表7 ZY3数据消融实验2结果Table 7 Result of ablation study 2 on ZY3 data

表8 GF2数据消融实验2结果Table 8 Result of ablation study 2 on GF2 data

上述实验结果表明,包含卷积层的CNN、BCNNs、STA⁃Net和SMA⁃Net方法的精度受噪声影响较小,在影像中含有大量噪声的情况下仍能保持较高精度。相比只利用了单个像素光谱特征的SVM和MLP方法,SMA⁃Net这类包含卷积层的方法在提取特征的过程中,卷积层能够充分利用相邻像素之间的空间关系,对影像的光谱和空间特征的提取较为充分,所以不容易受噪声这类局部异常值影响。此外,本文SMA⁃Net方法中的MSFEA模块和CAM模块对于变化检测的精度有一定的提升作用,相较其他算法取得了最优的检测精度。

3 结束语

本文提出了一种结合多尺度特征提取和注意力机制的遥感变化检测方法SMA⁃Net,并针对遥感影像的噪声在变化检测中的影响展开研究。利用SVM、MLP、CNN、BCNNs和STA⁃Net作为对比方法分别对含椒盐噪声、条带噪声的遥感影像进行了变化检测实验。实验结果表明,SVM和MLP这类利用单个像素的光谱值作为输入的方法受噪声影响较大,且椒盐噪声对于检测精度的影响大于条带噪声;含有卷积层的CNN、BCNNs、STA⁃Net和SMA⁃Net方法受噪声影响较小,且本文SMA⁃Net方法的精度高于其他对比方法。本文SMA⁃Net方法在保持了良好的抗噪能力的同时有效地提升了检测精度,为实际的遥感影像变化检测任务提供了一种有效的方案。

猜你喜欢
变化检测像素点像素
用于遥感图像变化检测的全尺度特征聚合网络
像素前线之“幻影”2000
图像二值化处理硬件加速引擎的设计
遥感影像变化检测综述
基于多尺度纹理特征的SAR影像变化检测
基于局部相似性的特征匹配筛选算法
“像素”仙人掌
基于像素点筛选的舰船湍流尾迹检测算法
基于canvas的前端数据加密
基于Landsat影像的黄丰桥林场森林变化检测研究