Fusing SwinTransformer and Convolutional Neural Network for Remote Sensing Image Semantic Segmentation

  • Abstract
  • Method
    • A. Overview
    • B. STransFuse Overall Architecture
    • C. Swin Transformer Block
    • D. AFM Block

Swin Transformer + CNN

Abstract

卷积神经网络(CNN)推动了遥感图像的应用研究,由于感知场的大小固定,CNN无法建模全局语义相关性。利用基于自注意变压器的模型,可以对全局语义信息进行建模。然而,变压器用于自注意计算的斑块计算方法忽略了每个patch内部的空间信息。为了解决这些问题,我们提出了STransFuse模型作为一种新的遥感图像语义分割方法。该模型结合了变压器与CNN的优点,提高了各种遥感图像的分割质量,我们使用一个分阶段的模型来在不同的语义尺度上提取粗粒度和细粒度的特征表示,而不像早期基于变压器模型融合的技术。为了充分利用在不同阶段获得的特征,我们设计了一个自适应融合模块,该模块利用自注意机制,自适应地在不同尺度上的特征之间融合语义信息。我们提出的模型在 Vaihingen 数据集上的总体精度(OA)比基线高了1.36%,在 Potsdam 数据集上的OA比基线提高了1.27%.

本文主要贡献:

  • A framework for Swin Transformer and CNN parallelism was designed with STransFuse model. 首先,STransFuse通过变换网络将特征图的全局语义信息引入到模型中,并利用CNN提取低层次特征图的空间上下文信息。其次,STransFuse 通过不需要创建非常深的网络,避免了梯度消失和特征图信息丢失的困难。然后,实验证明,所采用的双分支结构使模型在性能和计算速度方面都很有效。最后,设计的分阶段融合结构允许高级特征图包含更丰富的特征信息。
  • 设计了一个特征映射融合模块,通过自适应融合特征映射与自注意结构来改进模型的特征表示。
  • 所提出的 STransFuse 模型在 Vaihingen 和Potsdam 数据集上取得了较好的效果。

Method

A. Overview

本文提出了STransFuse模型作为一种新的语义分割方法,可以有效地获取遥感图像中的全局语义上下文信息和空间上下文信息。我们使用Swin变换器和CNN来处理图像,在不同的阶段融合特征图,最后将特征图恢复到它们的原始大小。

B. STransFuse Overall Architecture

为了提高模型分割的准确性,图像中的语义和空间上下文信息至关重要。CNN受到卷积核的固定大小的限制,不能建模全局语义信息。变换器可以通过自注意计算获得全局语义信息,但自注意计算需要将 patch 扩展成一维 token,patch 内部的空间信息是丢失的,为了解决这些问题,我们设计了具有两个编码器的模型来提取特征。我们使用具有训练权重的Resnet34作为CNN分支的编码器。通过融合从变压器分支和Resnet34分支中提取的特征,提高了模型的特征表示能力。

如图1(a)所示,将图像 x ∈ R H × W × C x∈R^{H×W×C} x∈RH×W×C 分别输入Swin变压器网络和Resnet34网络,其中H表示图像的高度,W表示图像的宽度,C表示图像中的通道数。

模型在不同阶段提取的特征图大小不同,对应于特征粒度的不同语义尺度。为了使特征映射能够包含丰富的语义信息和特征细节信息,我们使用了一种分阶段的融合策略。

在Swin变压器网络中,有四个阶段分别获取 x s 1 , x s 2 , x s 3 , x s 4 x_{s_1},x_{s_2},x_{s_3},x_{s_4} xs1​​,xs2​​,xs3​​,xs4​​ 特征图,每个阶段都包含 p a t c h m e r g i n g a n d S w i n T r a n s f o r m e r . patch \ merging \ and \ Swin \ Transformer. patch merging and Swin Transformer.
补丁合并的工作方式类似于CNN的池化层,因为它会对图像进行降采样。补丁合并通过滑动输入图像上滑动窗口将图像分割成不重叠的补丁。每个补丁都被认为是一个“token”。我们最初将patch 的大小固定为 4 × 4 4×4 4×4. 然后,通过线性嵌入层将特征图中的特征值投影到C维数上。最后,将Swin变压器块应用于这些补丁标记。输出特征图的分辨率为 H / 4 × W / 4 H/4×W/4 H/4×W/4. 上述步骤统称为“第一阶段”。在下面的“阶段2”中,补丁合并连接了每一组 2 × 2 2×2 2×2 个相邻补丁的特征,如图2所示。补丁合并采用线性嵌入层将输出尺寸改变为2C,并采用Swin变换器进行特征变换。在“阶段2”中,输出特征图的分辨率保持在 H / 8 × W / 8 H/8×W/8 H/8×W/8 。“阶段3”和“阶段4”与“阶段2”相似,输出的特征图分辨率分别为 H / 16 × W / 16 H/16×W/16 H/16×W/16 和 H / 32 × W / 32 H/32×W/32 H/32×W/32.

将图像输入Resnet34网络得到特征图,特征图由层4分别作为特征图 x c 2 , x c 3 x_{c2},x_{c3} xc2​,xc3​输出到层4,这些特征图的大小分别为 H / 8 × W / 8 , H / 16 × W / 16 H/8×W/8,H/16×W/16 H/8×W/8,H/16×W/16 和 H / 32 × W / 32 H/32×W/32 H/32×W/32。将Resnet34生成的特征图与Swin变压器不同阶段生成的特征图合并,利用Swin变压器收集特征的全局语义上下文信息的能力。最后,将融合后的特征图进行两次上采样,并将特征图恢复到输入图像的大小。

C. Swin Transformer Block

图像的上下文信息对于提高语义分割精度至关重要,而远程语义信息可以作为一种识别辅助手段,使模型不仅仅依赖于图像的光谱信息。因此,我们在模型中引入了变压器网络作为特征提取。有许多研究表明,变压器中的自我注意可以模拟全局语义信息[11]、[39]、[40]。

在标准变压器块中使用的自我注意是通过将其中一个令牌与所有其他令牌相关联来计算的。这种计算使网络的计算工作量相对于图像的分辨率大小呈二次增长,对于一些密集的预测任务(如语义分割),该模型将需要高端的计算设备。Swin变压器将在一个局部窗口中执行自注意计算。这些图像由不重叠的窗口进行分割。每个窗口都包含M×个M补丁。值得注意的是,为了确保图像(h×w)可以被窗口(M×M)整除,我们使用了一种填充方法,并在计算注意力时掩盖了填充值。在这种情况下,多头自注意(MSA)的计算复杂度如(1)所示,窗口MSA(W-MSA)的计算复杂度如(2)所示。

在(1) 中,MSA的计算复杂度与h和w的产生是二次的。在(2)中,当M是固定大小(默认设置为7)时,W-MSA的计算复杂度与h和w的产生呈线性相关。

Swin变压器是用W-MSA替换变压器模块中的MSA。如图1(b)所示,Swin变压器将拼接合并处理后的特征图输入到Swin变压器块中。然后,特征图通过LayerNorm层进入W-MSA模块,每个模块与另一个LayerNorm层之间存在残差连接。

由于W-MSA进行了滑动窗口分割操作,裁剪后的补丁不重叠,窗口之间缺乏有效的信息交互。存在一个移位窗口MSA(SW-MSA)网络,进一步提高了模型的性能。与W-MSA相比,SW-MSA执行窗口转换。SW-MSA的想法是将图像周期性地向上移动,并周期性地离开窗口大小的一半。在窗口之外的图像上的区域将分别移动到窗口的下方和右侧。然后,通过在移位之上根据W-MSA对窗口进行切片,我们将得到一种与W-MSA不同的窗口切片方法。SW-MSA的公式如下所示:

D. AFM Block

为了有效地融合了CNN和Swin变压器的编码特征,我们设计了一个基于自注意机制的AFM。通过自注意计算得到特征权矩阵,选择性地增强空间细节或抑制其他区域,从而提高了密集预测的分化能力。AFM的结构如图3所示。我们将用以下的方程式来进行特征的融合:


其中, x f , i x_{f,i} xf,i​ 表示AFM第 i i i 级输出的特征矩阵, x c , i x_{c,i} xc,i​ 表示CNN第 i i i 层输出的特征矩阵, x s , i x_{s,i} xs,i​ 表示Swin变压器第 i i i 级输出的特征矩阵, x B N , i x_{BN,i} xBN,i​ 表示第 i i i 个AFM块融合特征图, x q x_q xq​ 是自注意计算中的query.

由于使用了三个分支的特征映射,特征融合计算密集型。为了缓解这一问题,我们在AFM中添加了自适应aviavgpool2d方法,使AFM能够构建每个像素和一些收敛中心之间的关系。通过从输入张量中像素子集的特征向量集合,AFM在计算上是可接受的。AFM中语义相关性的计算公式如下所示:

x f , i x_{f,i} xf,i​中每个位置的特征值是所有位置的特征与原始特征的加权之和。因此,AFM能够基于全局视图中的注意特征图,选择性地聚合上下文信息,提高模型区分密集的像素的能力。每个像素的信息将传递给与其语义相关的像素,提高语义一致性。

图像分割(六) —— STransFuse相关推荐

  1. [Python从零到壹] 六十一.图像识别及经典案例篇之基于纹理背景和聚类算法的图像分割

    祝大家新年快乐,阖家幸福,健康快乐! 欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所 ...

  2. 数字图像处理实验(六)|图像分割{阈值分割、直方图法、OTUS最大类间方差法(edge、im2dw、imfilter、imresize)、迭代阈值法、点检测}(附matlab实验代码和截图)

    文章目录 一.实验目的 二.实验原理 (一) 阈值分割 1. 直方图法 2.OTSU法(最大类间方差法)确定阈值 3. 迭代阈值法 4. 点检测 (二)边缘检测 三.实验内容 (一)阈值分割 1. 直 ...

  3. 第六章 医学图像分割

    第六章 医学图像分割 第一节 医学图像分割的意义.概念.分类和研究现状 所谓医学图像分割,就是根据医学图像的某种相似性特征(如亮度.颜色.纹理.面积等)将医学图像划分为若干个互不相交的"连通 ...

  4. [Python从零到壹] 六十.图像识别及经典案例篇之基于阈值及边缘检测的图像分割

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  5. 数字图像处理:实验六 图像分割

    实验六 图像分割 数据分割是由图像处理到图像分析的关键步骤,是图像识别和计算机视觉至关重要的预处理,图像分割后提取的目标可用于图像识别.特征提取,图像搜索等领域.图像分割的基本策略主要是基于图像灰度值 ...

  6. 第十六课.基于K-means的图像分割

    本实验基于图像,使用 K-means 算法进行像素聚类,将一幅图像分解成若干互不相交区域的集合,从而实现图像分割:本次实验分割的对象是遥感图像,图像来自GID(Gaofen Image Dataset ...

  7. 图像分割之(六)交叉视觉皮质模型(ICM)

    我以前是不知道这个图像分割方法的.之前有个朋友看到我之前图像分割系列的博文,然后就和我说有这么一个东西.所以当时我就稍微看了下.主要还是参考下面这篇论文的,然后按照论文所说的算法自己实现了一部分的代码 ...

  8. 数字图像处理之matlab实验(六):图像分割

    在图像处理领域,我们更关注的是一些关于目标的分析或者描述信息,比如图片里面是否有猫,以及是什么品种的猫?在在做这一步之前,我们需要先把图像中的猫分割出来.可以说图像分割是最基础也是最重要的一步操作,会 ...

  9. (脑肿瘤阅读笔记:四十六)KIU-Net用于医学图像分割和体积分割的过完备卷积网络架构

    目录 Title:KiU-Net: Overcomplete Convolutional Architectures for Biomedical Image and Volumetric Segme ...

最新文章

  1. 分享一款Markdown的css样式
  2. pyqt5实战之透明样式和页面切换和弹出新窗口
  3. d3.js 入门指南
  4. jq之animate()队列
  5. 如何在网中使用百度地图API自定义个性化地图
  6. JMeter中使用“用户自定义变量”实现参数化
  7. mysql删除表外键_MySQL删除所有表的外键约束、禁用外键约束
  8. Spring AOP 本质(1)
  9. linux比较两个文件的内容,[Linux] 使用awk比较两个文件的内容
  10. ant接口用什么天线_天线接口 一个叫SMA 另一个叫TNC
  11. 删除win10易升更新的办法
  12. NOI题库1.1-1.10答案
  13. 会议论文参考文献格式(待更新)
  14. HTML中abbr标记,html中abbr和acronym标签的区别
  15. GAN之野狼DiscoGAN
  16. 你为什么要去做微商?
  17. python综合应用名片管理系统_综合应用——名片管理系统
  18. python-igraph基本用法(一)
  19. 生物信息学数据库资源 {#database}
  20. pg数据库numeric对应oracle,Oracle类型number与PG类型numeric对比和转换策略

热门文章

  1. 2021-10-30
  2. 开源CRM+SaaS云服务的生态模式能否撬动中国管理软件市场?
  3. java如何继承两个类?以及讨论一下多继承的利弊。
  4. 7-23 币值转换 (20 分)
  5. CSMACA 与 CSMA/CD 区别
  6. 使用node读取文件内容并且替换文件中的内容
  7. 如何下载透明底校徽校名、企业logo,无需抠图
  8. Swift强大的数组
  9. 相似度计算之(二)——余弦距离
  10. 常用符号计算机输入法,玩电脑必备:一些特殊符号的组合输入法