STANet: 基于时空自注意力的遥感图像变化检测模型,提出一个新的大型变化检测数据集LEVIR-CD

论文链接

Github链接-pytorch

LEVIR-CD数据集下载(百度云)

STANet代码实现


目录

 

A Spatial-Temporal Attention-Based Method and a New Dataset for Remote Sensing Image Change Detection

Abstract:

Introduction:

2.1. STANet: Spatial–Temporal Attention Neural Network

2.1.1. Overview

2.1.2 Feature Extractor

2.1.3 Spatial–Temporal Attention Module

2.1.4 Metric Module

2.1.5 Loss Layer Design

2.2 LEVIR-CD: A New Remote Sensing Image Change Detection Dataset

2.3 Implementation Details

3. Results

3.1 Comparisons on LEVIR-CD

3.2 Comparisons on SZTAKI (略去)

3.3 Speed Performance

4. Discussion

5. Conclusions


A Spatial-Temporal Attention-Based Method and a New Dataset for Remote Sensing Image Change Detection

2020年5月发表 北航

 

Abstract:

背景:给定两幅在不同时间拍摄的共配准图像,光照变化和配准误差淹没了真实物体的变化。探索不同时空像素之间的关系可能会改善CD方法的性能。

提出的方法:本文提出了一种新的基于孪生网络的时空注意神经网络。与以往方法不同的是,我们利用时空依赖性。我们设计了一种CD自注意力机制来对时空关系进行建模,在特征提取过程中增加了一个CD自注意力模块。我们的自我注意模块计算任意两个像素在不同时间和位置之间的注意权重,并使用它们来生成更具区别性的特征。由于目标可能会有不同的尺度,我们将图像分割成多尺度的子区域,并在每个子区域引入自注意,这样就可以在不同尺度捕获时空依赖性,从而生成更好的表示,以适应各种大小的对象。

本文的另一个贡献就是提出一个新的变化检测数据集LEVIR-CD,比该领域的其他公共数据集大两个数量级。

图片来源:双时态谷歌地球图片;

数据集大小:637对1024x1024的图片,超过31k个独立标记的变更实例。

在可接受的计算开销下,我们提出的注意力模块将基线模型的f1得分从83.9提高到87.3。在一个公共遥感图像CD数据集上的实验结果表明,我们的方法优于其他几种先进的方法。

Keywords: image change detection; attention mechanism; multi-scale; spatial–temporal dependency; image change detection dataset; fully convolutional networks (FCN)

 

  1. Introduction:

大多数变化检测方法包含两步: unit analysis and change identification.单元分析和变化识别。

单元分析旨在从单元的原始数据中构建信息特征。图像像素pixel和图像对象object是分析单元的两个主要类别。变化识别通过比较分析单元的特征表示来判断变化类别。一种简单的方法是计算特征差异图,通过阈值分割变化区域。

高度对光照、透视变化具有不变性,因此3D信息也有助于变化检测,也有着广泛的应用。但是3D数据获取代价比较大(LiDAR),卫星立体影像的质量比较低。因此本文着手于2D光谱图像数据。

基于深度学习的变化检测方法可大致分为两类:基于度量的方法;基于分类的方法。

基于度量的方法通过比较双时相数据的参数化距离来确定变化。(学习embedding space,embedding vectors)深度Siamese全卷积网络可以学习嵌入空间,它包含两个共享相同权值的相同网络,每个网络独立地生成每个时间图像的feature map。通过每对特征点之间的度量(如L1距离),判断是否发生了变化,训练过程中尝试采用不同的损失函数。然而,现有的基于度量的方法没有利用双时态图像之间的时间依赖性。

基于分类的方法通过对提取的双时态数据特征进行分类来识别变化类别。一般的方法是给图像的每个位置分配一个变化分数,其中变化的位置比没有变化的位置的得分高。CNN的方法;RNN的方法,捕获序列关系,建模时间依赖性。但是空间信息没有利用上。一些结合CNN和RNN的模型,对时空信息的利用非常有限。

在不同时间拍摄的两幅共配准图像中,光照变化和光照角度变化引起的配准误差压倒了真实物体的变化,对CD算法提出了挑战。从图1a中我们可以看到,两幅图像的对比度和亮度,以及建筑的空间纹理是不同的。在双时相图像中,由于太阳位置的变化,会产生不同的建筑阴影。从图1b可以看出,在两幅共配准图像中,对应建筑物的边缘出现了明显的误配误差。如果不小心处理,它们可能会在未改变的建筑的边界上造成错误的检测。     

光照变化和光照角度变化引起的配准误差。

       图像边缘的配准误差。

 

       在本文中,我们设计的CD自注意力机制,可以捕获丰富的时空关系,从而获取光照不变和误配的鲁棒特征。

利用目标之间在不同时刻的全局关系,可以减少误配误差的影响。

自注意力机制建模长期时空依赖关系非常有效。

变化对象可能有不同的尺度,我们通过对不同大小区域的特征进行组合,可以得到多尺度的特征。在此动机的驱动下,将图像空间平均划分为一定尺度下的子区域,并在每个子区域引入自注意机制,利用该尺度下对象的时空关系。通过将图像划分为多尺度的子区域,可以获得多尺度的特征表示,以更好地适应目标的尺度变化。我们称这种结构为金字塔注意模块(pyramid attention module),是因为自注意模块被整合到多尺度子区域的金字塔结构中。通过这种方式,我们可以捕获不同尺度下的时空依赖关系,从而生成更好的表示来适应不同大小的对象。

 

因此我们提出一个用于变化检测的时空注意力神经网络STANet,属于基于度量的方法。孪生FCN网络用于提取双时相图片的特征图。我们的自注意模块通过利用个体像素在不同位置和时间的时空相关性更新这些特征图。

在计算嵌入空间某个位置的响应时,位置利用时空关系关注时空中的其他重要位置。这里,嵌入空间具有高度、宽度和时间的维度,即嵌入空间中的某个位置可以描述为(h,w,t)。为简单起见,我们将嵌入空间表示为时空。如图1a所示,红边界框内的像素(属于building)在整个时空内的响应更关注同类别的像素,说明同类别的像素具有较强的时空相关性;这种相关性可以被利用来产生更有区别的特征。

我们设计了两种自注意力模块:一个基础的时空注意力模块(BAM),一个金字塔时空注意力模块(PAM)。BAM学习捕捉任意两个位置之间的时空相关性(注意力权重),并通过时空中所有位置特征的加权和计算每个位置的响应。PAM将BAM嵌入到金字塔结构中,去生成多尺度注意力表示。

与之前的方法不同,我们的注意力模块可以捕捉远距离的、丰富的时空关系。

此外,我们将自我注意模块整合到一个金字塔结构中,以捕获不同尺度的时空相关性。

之前的方法是分别处理两个时态的图片,我们在特征提取时用到了时空注意力模块。

实验结果表明,我们的注意力模块能够很好地缓解双时相图像配准引起的误检问题,并且对颜色和尺度的变化具有较强的鲁棒性。

我们还引入了一个新的大型变化检测数据集LEVIR-CD。

  1. Materials and Methods

本章包括:对提出方法详细的描述;介绍一个新的遥感影像变化检测数据集;实验实施的细节。

2.1. STANet: Spatial–Temporal Attention Neural Network

2.1.1. Overview

Pipeline

 

Feature extractor:  ResNet-18 去掉全连接层,FCN。生成feature map X1, X2

Attention module: BAM,PAM。更新特征图 Z1, Z2

Metric Module:计算两个特征图中每个像素对之间的距离,生成距离图D。(distance map)

       训练阶段:在距离图和groundtruth-label map之间min loss。

       测试阶段:在距离图上做threshold,通过阈值计算得到label map。

2.1.2 Feature Extractor

遥感图像CD需要像素级预测,并通过基于FCN的方法从密集特征中获益。

我们的CD任务是一个密集分类任务,需要获得与输入图像相同大小的change。

Feature extractor 基于ResNet-18,删掉了全局池化层和全连接层。

CNN的高级特征语义准确但位置粗糙,低级特征细节精细但缺乏语义信息。因此,我们将高级语义信息和低级空间信息融合起来,以产生更精细的表示。

 

2.1.3 Spatial–Temporal Attention Module

自注意机制在模拟长时间的时空依赖中是有效的。我们设计了一个CD自注意机制,该机制捕获了整个时空中单个像素之间丰富的全局时空关系,从而获得更有区别性的特征。——BAM, PAM

Basic spatial–temporal attention module:(BAM)

注意力机制:

将Source中的构成元素想象成是由一系列的<Key,Value>数据对构成,此时给定Target中的某个元素Query,通过计算Query和各个Key的相似性或者相关性,得到每个Key对应Value的权重系数,然后对Value进行加权求和,即得到了最终的Attention数值。 

query张量、key张量和value张量分别由输入特征张量通过三个不同的卷积层得到(输入特征张量是双时相图像特征图在时间维度上的拼接)。(X∈RC×H×W×2)

Attention机制就是将一个query张量和一组key-value向量对映射为一个输出张量。

输出张量由value向量的加权和计算得出,其中分配给每个value向量的权重由query和对应的key张量计算相关性(similarity matrix)计算得出。

                                                                                       Y= V*A

最后将注意力机制学到的特征张量Y(视为残差特征张量residual tensor)加上原始输入特征张量X得到BAM模块输出的updated feature map:

                                                                      Output_tensor Z = Y +X

由此我们通过自注意力模块得到输出特征张量,它的每个位置都可以顾及输入特征张量中的所有位置。将自注意机制引入图像CD的直觉是充分利用像素间的时空依赖关系可以获得光照不变性和误配鲁棒性特征。

注意力机制核心思想:

“generate a set of key vectors (keys), value vectors (values) and query vectors (queries) from the input tensor, and learn the weighted sum of the values to generate each output vector, where the weight assigned to each value depends on the similarity of the query and the corresponding key.”

Pyramid spatial–temporal attention module:

目的:获取多尺度上下文信息

受到PSPNet金字塔结构的启发,我们提出了一个PAM,通过聚合多尺度的时空注意上下文来提高识别细节的能力。

PAM有四个分支;每一个分支都将特征张量等分成一定尺度的若干子区域。在每个分支中,PAM对每个子区域的像素应用BAM,得到该尺度下的局部注意表示。然后,通过聚合四个分支的输出张量,得到多尺度的注意力表示。

      将输入特征张量(X∈RC×H×W×2)平均分为sxs的子区域(s=1,2,4,8,共四个分支),分别对四个分支实施BAM。对于每个分支分别对每个子区域(Rs,i,j ∈ RC× H/s × W/s ×2)实施BAM,在拼接。最后将四个分支拼接起来送到1x1卷积层,得到输出张量Y ∈RC×H×W×2。最后原始输入张量X加上最后输出的残差特征张量Y,得到PAM模块的输出Z ∈ RC×H×W×2。

2.1.4 Metric Module

深度度量学习(Deep metric learning)包括训练一个网络来学习从输入到嵌入空间的非线性转换,相似性大的样本对应的嵌入向量距离近,反之则远。

在这里,我们采用了对比损失,使得在嵌入空间里(embedding space)每个无变化像素对的距离较小,每个有变化的像素对距离较大。

通过BAM/PAM产生的Z(1), Z(2),首先通过双线性插值使他们和输入的双时相图片一样大。(resize)然后通过计算这一对resize后的feature map的欧氏距离,生成distance map D ∈ RH0×W0。

训练阶段我们采用的对比损失(Contrastive Loss),学习网络的参数。

”””

Contrastive Loss(对比损失):

https://blog.csdn.net/qq_37053885/article/details/79325892

孪生神经网络(siamese network)中,其采用的损失函数是contrastive loss,这种损失函数可以有效的处理孪生神经网络中的paired data的关系。contrastive loss的表达式如下: 

其中d=||anbn||2,代表两个样本特征的欧氏距离,y为两个样本是否匹配的标签,y=1代表两个样本相似或者匹配,y=0则代表不匹配,margin为设定的阈值。

”””

在测试阶段,通过固定阈值分割得到变化图P(change map)。

i,j分别是图片高度和宽度的索引。(距离map和原图一样大。)阈值θ本文设为1,是下一节BCL损失函数中margin的一半。(margin设为2。)

2.1.5 Loss Layer Design

Class imbalance problem

类别不均衡是一个常见的问题。在遥感影像变化检测中,变化样本和未变化样本的数量差距也是非常大的。大多数情况,变化的像素只占全部像素的一小部分。

为了减少类别不均衡的影像,我们设计了一个类别敏感损失(class-sensitive loss),称为batch-balanced contrastive loss (BCL). 批量平衡对比损失。它利用批权重对原对比损失的类权重进行修正。“It utilizes the batch-weight prior to modify the class weights of the original contrastive loss.”  (修正类别权重)

BCL loss—L 定义为:

D:distance map  M:label map(ground truth)

下标b, i, j (1 ≤ b ≤ B, 1 ≤ i ≤ H0, 1 ≤ j ≤ W0)分别是batch, height和width 的索引。nu, nc分别是没有变化的像素数,和变化的像素数。m是margin,我们设为2。参数化距离大于边距m的改变像素对,对损失函数没有贡献。(参考对比损失。)

2.2 LEVIR-CD: A New Remote Sensing Image Change Detection Dataset

在遥感影像CD领域,缺少公开的,大型的遥感影像变化检测数据集,我们提出LEVIR-CD数据集,我们希望填补这一空白,并为评估CD算法提供一个更好的基准。

通过谷歌Earth API,我们收集了637个大小为1024×1024像素的非常高分辨率(VHR, 0.5 m/pixel)谷歌Earth (GE)图像patch对。这些双时相图像来自美国德克萨斯州几个城市的20个不同地区。收集时间从2002年到2018年。

建筑物变化标注,我们关注两个方面:建筑的生长(building growth)(从土壤/草/硬化的地面或正在施工的建筑到新建区域的变化)和建筑的衰败(building decline)。

所有数据都由AI数据服务公司的专家进行标注,他们在解译遥感图像和对变化检测任务的理解都有丰富的经验。

完整标注的LEVIR-CD包含总共31,333个单独的变更建筑。平均每对图像中约有50个变化建筑。值得注意的是,大多数变化是由于新建筑的建设。每个变化区域的平均大小约为987像素。下表是该数据集的总结:

还简单介绍了其他三种数据集:SZTAKI AirChange Benchmark Set (SZTAKI),The Onera Satellite Change Detection dataset (OSCD),The Aerial Imagery Change Detection dataset (AICD)。

这些公开数据集存在的问题,数据量非常少,可能会引起过拟合问题。分辨率比较低,变化目标的轮廓模糊,给标注后的图像带来模糊。通过统计变化实例,和变化像素数,我们的数据比这些公开数据大1~2个量级。

我们创建了一个直方图来显示LEVIR-CD和SZTAKI的所有变更实例的大小。我们的LEVIR-CD数据集存在更多的变化实例。

 

2.3 Implementation Details

评价指标:precision (Pr), recall (Re) and F1-score (F1)

70%train,10%valid,20%test. Img:256x256

我们对前100个epoch保持相同的学习速率,并在剩余的100个epoch中将其线性衰减为0。

数据增强:随机翻转,随机旋转(-15°~15°)。

实验结果对比:3个模型

  1. baseline: FCN网络

其他两个是基于baseline增加了时空模块的改进。

  1. FCN-networks + BAM (BAM);
  2. FCN-networks + PAM (PAM).

所有的对比采用同样的超参设置。

3. Results

不仅有我们本文提到的三个模型的对比,还有其他先进的CD方法对比。实验是在LEVIR-CD和SZTAKI数据集上进行。

3.1 Comparisons on LEVIR-CD

对比BASE, BAM 和 PAM以验证时空注意力模块(spatial–temporal module)的有效性。PAM的变体结果最好。

使用BCL损失函数时,在每次训练迭代中,少数(change)和多数(no change)对loss的贡献在数量上动态平衡,降低了网络对某一类别的偏倚可能性,提高了性能。

我们的BAM和PAM模型获得更细的细节(第1和第7行),具有更低的误报率(第2、3和4行)和更高的召回率(第5、6和7行)。

我们的模型对配准误差也有包容性。

 

3.2 Comparisons on SZTAKI (略去)

3.3 Speed Performance

实验采用一台PC equipped with an Intel i7-7700K CPU and an NVIDIA  GTX 1080Ti graphic card.

三个模型所需时间均小于另一种先进的CD方法TBSRL。

总的来说,我们提出的模块具有竞争性的时间性能和可接受的时间消耗。

4. Discussion

可视化注意力模块。探索PAM金字塔的哪一层最重要。

可视化学习到的注意力图:

每个图选取两个点,1,2,用红色的点在图中表示,右边显示了他们相应的注意力地图(1和2)。

红色代表高注意力,蓝色表示低注意力。

第一行图片,1标在了空地上,attention map#1中,红色的部分就是空地,树,草地之类和空地高度相关的,而建筑物呈现蓝色。2标记在了建筑物上building,因此在attention map#2中,建筑物的注意力高,而空地呈现蓝色。

可视化结果表明,我们的注意力模块能够捕获语义相似度和长期的时空依赖关系。

 

方法和未来工作:

本文提出一个基于注意力机制的孪生网络结构,用于遥感影像变化检测。

我们发现通过探索时空依赖性可以缓解在双时态图像变化检测中由图像误配准引起的误检测问题。我们还发现PAM可以挖掘比BAM更精细的特征,得益于PAM提取的多尺度注意力特征。多尺度上下文信息对于识别变化是重要的。未来的研究方向是寻求更好的方法去捕获时空依赖关系和多尺度上下文信息,计划设计更多注意力模块,探索级联模块的效果。还想将强化学习加到变化检测任务中去,去设计更好的网络架构。

 

5. Conclusions

  1. spatial–temporal attention neural network  STANet
  2. Provide a new dataset
  3. BAM,PAM捕获长期的时空依赖,学习更好的表征。我们的注意力模块对颜色和尺度变化更有鲁棒性。PAM比BAM更能捕获精细细节。
  4. Attention module 可以缓解双时态图像误配准对检测的影响。
  5. 提出一个新的大型的遥感影像变化检测数据集,为研究遥感影像CD算法提供机会。

 

  • 23
    点赞
  • 220
    收藏
    觉得还不错? 一键收藏
  • 54
    评论
评论 54
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值