【SMBCNet】一种基于transformer的语义分割遥感图像变化检测方法(Remote Sensing收录)

摘要

  • 基于Transformer的方法在RSCD任务中有强大的建模能力,但是,会受到时间和计算资源的严重限制。
  • 于是,提出Segmentation Multi-Branch Change Detection Network(SMBCNet),
    • SMBCNet结合了分层结合的transformer编码器和cross-scale enhancement module (CEM),能以较低的计算复杂度提取全局信息。
    • 考虑变化的多样性,引入一个集成了时间特性的即插即用的multi-branch change fusion module (MCFM)。在这个模块中,将变化检测任务转换成一个语义分割问题。
    • 此外,Temporal Feature Aggregation Module (TFAM)用于整合来自不同空间尺度的特征。
  • 结果表明,语义分割时解决遥感图像中变化检测问题的有效方法。
  • 论文链接:Remote Sensing | Free Full-Text | SMBCNet: A Transformer-Based Approach for Change Detection in Remote Sensing Images through Semantic Segmentation

动机

大多数研究方法未能捕捉到RSCD和语义分割之间的相互转换关系,因此,有必要开发基于transformer的RSCD方法,可以有效地学习全局依赖关系并捕捉局部细节,同时降低计算成本。通过实现这一点,可以使模型更具有可纠正性,并最终适用于更广泛的RSCD任务。

将RSCD简化为语义分割问题,这就需要定义一个强大的语义分割网络来解决CD任务。

方法

SMBCNet结构如下图所示:

首先,给出了大小为H×W×3的双时间图像对,并由transformer编码器生成四个不同尺寸的特征图。随后,所有的特征图都通过CEM来增强双时间特征的表征能力。最后,一个有效的解码器执行自上而下的多级特征融合,预测变化图。

SMBCNet由三部分组成:

  • transformer encoder
    • transformer blocks:提取特征,如图3所示。
      • 分层转换器编码器产生了多级特性(四个尺度,通道数量分别为32, 64, 160, 256),包括高分辨率粗特性和低分辨率细粒度特性。
      • 为了保证transformer减少参数量的同时维持特征提取能力,使用更有效地注意力机制代替了传统自注意力机制。在传统的自注意力机制中矩阵Q,K,V维数均为N×C,其中N = H×W表示序列的长度。传统自注意力机制计算复杂度为O(N^2),使得它不适合在高分辨率RSIs上部署。为此,采用缩减策略,引入缩减比R来截断序列长度,将计算复杂度降低为O(\frac{N^2}{R}),并保持了从RSIs中提取特征的能力。
      • 为了使transformer模型能够有效地合并位置信息,使用两个MLP层,加上3×3深度卷积。
      • 为了减少特征图的分辨率,采用overlapped patch merging strategy。为了保持不同斑块之间的局部一致性,定义了斑块大小K、相邻斑块之间的步幅S和填充大小Pa。其中overlapping patch merging设置K = 7, S = 4, Pa = 3;non-overlapping patch merging设置K = 3, S = 2, and Pa = 1。
    • Cross-scale Enhancement Module (CEM):改进时间特征
      • CEM通过结合来自相邻阶段的特征来丰富语义信息并捕获细粒度的对象细节,高级特征负责定位对象并包含语义信息,而低级特征则提供更细粒度的边界和纹理信息,如图3所示。
      • 对于Top特征,分为两个处理分支,一个执行3×3卷积,另一个执行随机池化(stochastic pooling。只需要对Feature Map中的元素按照其概率值大小随机选择),并对两个分支结果进行相加操作,降采样降低分辨率同时减少通道数量;对于Mid特征使用3×3卷积调整通道数;对于Bottom特征使用3×3卷积,归一化和ReLU激活函数,并且使用了线性插值将高度和宽度提高到两倍。最后级联三个分支结果,通过1×1卷积融合特征缩减通道数量和经过1×1卷积处理的Mid特征相加得到最终特征。
  • Multi-Branch Change Fusion Module (MCFM)
    • 本文方法方法强调了将与不同变化类型相关的信息合并到融合特征中的重要性。因此引出MCFM,将变化划分为三种类型Apper、Disapper、Exchange,对每种类型分别学习。MCFM使用多分支结构将各种变化类型集成到变化检测任务中。可以有效的保留一对多时间图像中与变化区域相关的语义信息,同时有效的从不变区域中过滤背景信息。这将变化检测问题转化成了二值语义分割问题,其中像素值为0和1分别表示不变和变化的区域。这种转变使我们能够利用先进的语义分割网络来解决RSCD任务,从而提高信息提取和提高准确性。
    • 如图5所示,Apper、Disapper、Exchange三个分支使用减法捕获三种不同类型的变化,Distance分支用于生成差异图。Exchange分支中采用通道注意力原因如下:Apper、Disapper分支分别有 从“0”到“1”或从“1”到“0”的过渡,变化对象的空间信息能有效捕捉这些状态的差异。但是Exchange分支转换发生在 “1”的两个实例之间(如原本的建筑被另一个新的建筑取代)。因此,在“交换”分支中,关注特征图的信道信息变化更为恰当。
  • transformer decoder
    • Temporal Feature Aggregation Module(TFAM)
      • TFAM能够有效地重新校准多级特征,并实现渐进学习。受特征金字塔网络(FPN)启发,利用一个简化的FPN来合并空间特征。
      • 如图6所示,使用自上而下的策略,对于四种不同的尺度特征(1/4、1/8 、1/16和1/32),所有特征图都经过3×3卷积进一步处理,然后对降尺度的特征图进行2×双线性上采样,并通过元素加法与原始的低级特征图进行合并处理。(论文中描述是这样,但是论文中给的图感觉跟描述不符)。
      • 这种简单的架构允许融合多尺度的特征图,并略微增加了参数的计数,从而提高了最终预测结果的准确性。
    • MLP Lightweight Decoder
      • 受SegFormer启发,使用一个简单的All-MLP解码器,如图7所示。解码器主要目的是减少参数,同时保持强大的解码能力。
      • 首先使用一个MLP来调整特征图的通道维度,接着上采样到原始分辨率的1/4倍,并级联起来,集成多级信息。然后使用MLP减少级联之后的通道数量,并上采样特征分辨率到原始大小。最后使用一个分类器预测变化图。
  • Hybrid Loss Function
    • 变化检测任务从本质上讲是二元分类问题。然而,输入数据中变化区域和不变区域的高度不平衡比例会对模型的性能产生显著的有害影响。为了解决这个问题并指导网络从复杂的场景中学习,提出了一个混合损失函数,它由三个部分组成:二元交叉熵(BCE)损失、dice (Dice)损失和一个附加项。总体损失函数为:

实验

Compared with the State-of-the-Art

Ablation Study

Effectiveness of transformer backbone.
Effectiveness of MCFM
Influence of the size of the transformer blocks
Influence of C_{ebd} , the MLP decoder channel dimension.
  • 27
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个基于NDVI指数的图像变化检测的matlab代码示例: ```matlab % 读取两幅图像 img1 = imread('T1.jpg'); img2 = imread('T2.jpg'); % 预处理图像 img1 = imadjust(img1); % 调整亮度和对比度 img2 = imadjust(img2); % 计算NDVI指数 ndvi1 = ndvi(img1); ndvi2 = ndvi(img2); % 计算NDVI差异图 diff = ndvi2 - ndvi1; diff = imadjust(diff); % 调整差异图亮度和对比度 % 阈值分割 threshold = graythresh(diff); % 自适应阈值 bw = imbinarize(diff, threshold); % 形态学处理 se = strel('disk', 5); % 定义一个5像素的圆形结构元素 bw = imclose(bw, se); % 先闭运算,填补空洞 bw = imopen(bw, se); % 再开运算,去除噪声 % 连通区域分析 cc = bwconncomp(bw); % 获取连通区域信息 props = regionprops(cc, 'BoundingBox', 'Area'); % 获取连通区域的外接矩形框和面积信息 % 在原图像上标注变化区域 imshow(img2); hold on; for i = 1:cc.NumObjects bbox = props(i).BoundingBox; rectangle('Position', bbox, 'EdgeColor', 'r', 'LineWidth', 2); end hold off; function ndvi_img = ndvi(img) % 计算NDVI指数 % img: RGB图像,要求第1个通道为红波段,第2个通道为近红外波段 % ndvi_img: 单通道NDVI指数图像,范围为[-1, 1] red = double(img(:,:,1)); % 红波段 nir = double(img(:,:,2)); % 近红外波段 ndvi_img = (nir - red) ./ (nir + red); % 计算NDVI指数 end ``` 需要注意的是,上述代码中ndvi函数的输入要求第1个通道为红波段,第2个通道为近红外波段,如果您的图像通道顺序不同,需要进行调整。另外,阈值分割和形态学处理中的参数也可以根据实际情况进行调整,以获得更好的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值