【论文笔记】STANet:基于孪生神经网络的时空注意力变化检测模型

本文是论文《A Spatial-Temporal Attention-Based Method and a New Dataset for Remote Sensing Image Change Detection》的阅读笔记,由于原文比较长,本文有很多省略,着重介绍该模型是怎么运作的。

一、相关工作

文章针对遥感图像变化检测问题提出了一个基于孪生神经网络的时空注意力变化检测模型STANet,其中的自注意力模块可以计算任意两张拍摄于不同日期和位置的图像的注意力权重,并产生更具辨别性的特征。考虑到物体可能具有不同的大小,文章还将图像分割成了多尺度的子区域,并在每个子区域中引入了自注意力机制。此外还创建了新的变化检测数据集LEVIR-CD。

【论文笔记】STANet:基于孪生神经网络的时空注意力变化检测模型_第1张图片

上图a是时空注意力的示意图,b是图像误配准的情况。

大多数基于机器学习的变化检测方法都包括两步:单元分析和变化识别。单元分析是分析单元的原数据的特征,分析单元可以分为图像像素和图像物体两大类。变化识别使用手工或学习到的规则来计算特征差图并使用阈值分割得到不同的变化区域。

基于深度学习的变化检测方法主要可以分为两类:基于度量的方法和基于分类的方法。基于度量的方法通过对比图像之间参数化的距离来决定是否发生变化。每一对点之间的特征的度量表示是否发生了变化。基于分类的方法通过对提取到的图像特征进行分类,从而识别变化的类别。STANet属于基于度量的方法。

二、方法和网络结构

1. motivation

文章的motivation如下:

  • 变化检测数据是有时间维度和空间维度的光谱向量组成的,开发不同时空位置之间的关系可以提升变化检测方法的效果。因此提出了时空自注意力机制。
  • 由于变换物体可能具有不同的大小,从一个合适的范围内提取特征可以更好地表示一定尺度的对象。可以通过从不同大小区域提取得到的特征结合起来以获得不同尺度的特征。因此将图像分割成了多尺度的子区域,并在每个子区域中引入了自注意力机制。

2. 网络结构

文章设计了两种自注意力模块,一是基本的时空注意力模块BAM,二是金字塔时空注意力模块PAM。BAM任意两个位置之间的时空独立性注意力权重,并通过时空中所有位置特征的加权和来计算每个位置的响应。PAM将BAM嵌入得到一个金字塔结构以产生多尺度的注意力表示。

【论文笔记】STANet:基于孪生神经网络的时空注意力变化检测模型_第2张图片

上图是STANet的结构示意图,图中的 C × H × W C\times H\times W C×H×W C C C是通道数, H H H W W W是特征图的高和宽。

STANet包括特征提取器、注意力模块、度量模块三部分。首先两张图像被喂入到两个特征提取器中获得两个特征图 X ( 1 ) X^{(1)} X(1) X ( 2 ) X^{(2)} X(2),经过注意力模块的处理后得到两张注意力特征图 Z ( 1 ) Z^{(1)} Z(1) Z ( 2 ) Z^{(2)} Z(2),在将注意力特征图resize到输入图像大小之后,度量模块会计算两个注意力特征图的每个像素对之间的距离,并产生一个距离图 D D D,然后通过简单的阈值法得到最终的变化标签图 P P P

特征提取器

特征提取器中用到了ResNet-18,由于ResNet是用来进行图像分类任务而变化检测是密集分类任务,所以省略了ResNet中的全局池化层和全连接层。

BAM

在BAM中,特征图 X X X首先通过三个不同的 1 × 1 1\times1 1×1的卷积层得到三个特征向量 Q , K , V Q, K, V Q,K,V,分别表示查询、键和值。然后对其reshape得到矩阵 Q ˉ , K ˉ , V ˉ \bar Q,\bar K,\bar V Qˉ,Kˉ,Vˉ,并使用转置后的 K ˉ \bar K Kˉ Q ˉ \bar Q Qˉ进行矩阵乘法并使用softmax计算一个相似矩阵 A A A,该相似矩阵与 V ˉ \bar V Vˉ进行矩阵乘法得到输出矩阵 Y ˉ \bar Y Yˉ,对其进行reshape得到注意力 Y Y Y Y Y Y X X X进行像素级乘法得到最终的注意力特征图 Z Z Z

PAM

而PAM有4个分支,每个分支将特征图 X X X分成了不同大小的子区域,并在每个子区域中应用BAM,每个分支的输出拼接起来和输入大小相同,将4个分支的输出concate起来并用 1 × 1 1\times1 1×1的卷积层进行处理得到注意力 Y Y Y Y Y Y X X X进行像素级乘法得到最终的注意力特征图 Z Z Z

度量模块

度量模块首先将特征图使用双线性插值resize到和输入相同的大小,然后计算两个特征图之间像素级的欧氏距离图 D D D,在训练阶段,用其来计算损失值,在测试阶段使用一个固定的阈值方法进行分割。

3. 损失函数

文章设计了一个批量平衡对比损失(BCL),利用批次权重对原始对比损失的类权重进行修正,其定义如下:
L ( D ∗ , M ∗ ) = 1 2 1 n u ∑ b , i , j ( 1 − M b , i , j ∗ ) D b , i , j ∗ + 1 2 1 n c ∑ b , i , j M b , i , j ∗ Max ⁡ ( 0 , m − D b , i , j ∗ ) \begin{aligned}L\left(D^{*}, M^{*}\right) &=\frac{1}{2} \frac{1}{n_{u}} \sum_{b, i, j}\left(1-M_{b, i, j}^{*}\right) D_{b, i, j}^{*} \\&+\frac{1}{2} \frac{1}{n_{c}} \sum_{b, i, j} M_{b, i, j}^{*} \operatorname{Max}\left(0, m-D_{b, i, j}^{*}\right)\end{aligned} L(D,M)=21nu1b,i,j(1Mb,i,j)Db,i,j+21nc1b,i,jMb,i,jMax(0,mDb,i,j)
其中, M ∗ M^* M是二值标签图的一个批次, b , i , j b,i,j b,i,j表示批次的下标、高度、宽度。 m m m是margin, n u , n C n_u,n_C nu,nC是未变化和变化了的像素对的个数,其计算公式如下:
n u = ∑ b , i , j 1 − M b , i , j ∗ n c = ∑ b , i , j M b , i , j ∗ \begin{array}{c}n_{u}=\sum_{b, i, j} 1-M_{b, i, j}^{*} \\n_{c}=\sum_{b, i, j} M_{b, i, j}^{*}\end{array} nu=b,i,j1Mb,i,jnc=b,i,jMb,i,j

3. LEVIR-CD数据集

【论文笔记】STANet:基于孪生神经网络的时空注意力变化检测模型_第3张图片

上图是生成的LEVIR-CD数据集的样例。

【论文笔记】STANet:基于孪生神经网络的时空注意力变化检测模型_第4张图片

LEVIR-CD数据集的总体情况。

【论文笔记】STANet:基于孪生神经网络的时空注意力变化检测模型_第5张图片

与其他数据集的对比

三、实验

实验使用的数据集有SZTAKI AirChange Benchmark Set (SZTAKI)、The Onera Satellite Change Detection dataset (OSCD)、The Aerial Imagery Change Detection dataset (AICD)以及LEVIR-CD数据集。

使用的评价指标是每一类的准确率、召回率和F1值。使用的baseline是FCN-Network、FCN-Network+BAM、FCN-Network+PAM。

【论文笔记】STANet:基于孪生神经网络的时空注意力变化检测模型_第6张图片

上图是在LEVIR-CD数据集上的消融实验结果表。

【论文笔记】STANet:基于孪生神经网络的时空注意力变化检测模型_第7张图片

在LEVIR-CD数据集上的结果。

【论文笔记】STANet:基于孪生神经网络的时空注意力变化检测模型_第8张图片

上图是BCL损失函数在LEVIR-CD数据集上的消融实验结果表。

【论文笔记】STANet:基于孪生神经网络的时空注意力变化检测模型_第9张图片
在这里插入图片描述

以上两图是不同方法在SZTAKI数据集上的结果对比。

【论文笔记】STANet:基于孪生神经网络的时空注意力变化检测模型_第10张图片

注意力图的可视化结果。

你可能感兴趣的:(变化检测,STANet,变化检测,时空注意力,孪生神经网络)