MENU

【神经网络】浅析一种新的目标识别网络——Swin-Unet

March 10, 2022 • 神经网络

最近写了一篇应用类论文,这也是我在初期学习 Swin-Unet 时所作的归纳笔记。突然想起自己还有个博客(笑),遂将他们整理起来放在这里以备日后查阅。

前言

深度学习是机器学习领域中一个新的研究方向,其在视觉处理、数据挖掘、自然语言处理等领域都取得了很好的成果。目标识别作为其中的一种,已经在人脸识别、车辆检测、卫星图像分析当中取得了广泛的应用。在遥感领域,基于深度学习来进行云分割的方法也受到了研究人员的青睐。在之前的研究中,卷积神经网络(CNN)在目标识别网络中取得了里程碑式的进展,在多种图像处理任务中取得了优秀的成绩,但是,由于卷积操作的局限性所限,其无法学习全局,完成远端的信息交互。Swin-Unet 是一种基于图像分割经典模型 U-Net 改进的纯 Transformer 模型,相比于其他图像分割算法,其在 U 型架构中,将图像块通过跳跃连接送到基于 Transformer 的 U 形编码器-译码器架构中,更好的进行了局部以及全局的语义特征学习,取得了更优的性能。后续,Swin-Unet 也被应用于包括车辆检测在内的其他图像分割领域,提升分割的准确率。

transformer 架构的优势

目前的图像分割主要基于全卷积神经网络(FCNN),其中以 U 型网络结构最为常用。传统的 U 型网络,如 U-Net,是一个对称的编码-解码网络结构,并且包含跨层连接(skip connection)。编码器通过一系列卷积和下采样操作提取不同感受野下的语义特征;解码器通过上采样操作将提取到的特征图恢复到原始分辨率,进行像素级别的密集预测;跨层连接则负责将同层的编码器提取的信息与解码器进行融合,从而减少因为下采样操作导致的空间信息丢失问题。通过精巧的结构设计,U-Net 已经在诸多图像分割任务中取得优异的效果,但其仍然局限于 CNN 模型,无法捕捉全局和长程的语义信息。

Transformer 最早出现在论文 Attention is all you need 当中,随后在 NLP 领域中受到了广泛的应用。受 Transformer 在 NLP 领域中的启发,目前研究人员整将 Transformer 迁移到计算机视觉领域。本文中使用的 Swin-Unet 即是一种纯 Transformer 架构。具体的架构长什么样网上都有详尽的解释。总而言之,与 CNN 相比,其计算两个位置之间的关联所需的操作次数不随距离增长,这意味着其可以更好地捕捉到全局的语义信息。此外,Transformer 的自注意力(Self-attention)机制可以产生更具可解释性的模型,各个注意头 (Attention head) 可以学会执行不同的任务。

Swin-Unet 网络

整个 Swin-Unet 网络框架可以分为以下三个部分:编码器(左侧部分),解码器(右侧部分)以及 skip
connection(中间跨线部分),如图 所示。

image.png

1)编码器

该模块首先将输入的图片切分成大小互不重叠的分块,随后度输入分块进行线性映射。
随后映射过的 token 被送入 Swin Transformer 模块和 patch merge 层用来生成不同尺度的特征表述;Swin Transformer 模块负责学习特征,patch merge 层负责下采样操作。

2)解码器

解码器由多个 Swin Transformer 模块和 patch expanding 层组成,跨线依旧负责特征融合,弥补原始信息的丢失,patch
expanding 层则进行的是上采样操作,将该层 feature map 扩充至 2x 分辨率;最后一个 patch expanding 层会扩充至 4X 分辨率;然后通过线性层 进行像素级别的预测。

3)跨线连接

和传统的 U-Net 一样,跨线会以级联的方式将特征图输送到解码器当中,以此来融合多尺度特征。

4)Swin Transformer 基础模块

Swin Transformer 是整个网络最基础的模块,和传统的 MSA 结构并不一样,Swin Transformer 主要是基于滑动窗口(shifted window)构建的,下图展示了两个串联的 SwinTransformer 模块。

image.png

每个 Swin Transformer 由层归一化(Layer Norm, LN)层、多头自注意力模块、残差连接和 2 个包含有激活函数 GELU 的多层感知机组成。

在 2 个连续的 Transformer 模块中分别采用了基于窗口的多头自注意力模块(Window-based Multi-head
Self-attention)和 基于移动窗口的多头自注意力模块(Shifted Window-based Multi-head Self attention),前者用 w(·)表示,后者用 s(·)表示。因此,基于这种窗口划分机制的连续 Swin Transformer Block 可表示为:

image.png