【Attention】Visual Attention Network

文章目录

    • 一、背景
    • 二、动机
    • 三、方法
      • 3.1 Large Kernel Attention
      • 3.2 VAN
    • 四、效果
      • 4.1 分类
      • 4.2 目标检测
      • 4.3 语义分割

【Attention】Visual Attention Network_第1张图片

论文链接:https://arxiv.org/abs/2202.09741
代码链接:https://github.com/Visual-Attention-Network

一、背景

源于 NLP 的 self-attention 机制在应用于 2D 图像的时候,有三个问题:
将 2D 的结果看做 1D 的序列,会损失 2D 空间结构
高分辨率的图像会导致很大的计算复杂度
一般的 self-attention 都是只会捕捉空间上的相关性,忽略了通道上的相关性
【Attention】Visual Attention Network_第2张图片

二、动机

为了解决上述问题,本文提出了一个适用于视觉任务的 large kernel attention (LKA),使得 self-attention 能够自适应捕捉长距离关系。

三、方法

LKA 吸收了卷积和 self-attention 的优势——包括局部结构信息、长距离依赖、自适应性

基于 LKA,作者提出了新的视觉 backbone——visual attention network(VAN)。

3.1 Large Kernel Attention

【Attention】Visual Attention Network_第3张图片

如图 2,一个大尺寸的卷积可以分成三个部分:

  • 空间上的局部卷积(depth-wise convolution)
  • 空间上的 long-range convolution(depth-wise dilation convolution)
  • 通道上的卷积(1x1 convolution)

也就是说,一个 K × K K \times K K×K 的卷积可以被拆分如下:

  • 一个 $\frac{K}{d} \times \frac{K}{d} $ 的 depth-wise dilation convolution, d d d 为膨胀率
  • 一个 ( 2 d − 1 ) × ( 2 d − 1 ) (2d-1) \times (2d-1) (2d1)×(2d1) 的depth-wise convolution
  • 一个 1x1 卷积

【Attention】Visual Attention Network_第4张图片

拆分后的卷积可以捕捉长距离信息,并且节省计算资源,得到长距离关系后,能够估计每个点的重要程度,生成 attention map。

【Attention】Visual Attention Network_第5张图片

如图3a所示,LKA 模型如下:
在这里插入图片描述

3.2 VAN

VAN 结构简单,有四层,不同量级的模型结构如表 2 所示:
【Attention】Visual Attention Network_第6张图片

对图3d中的每个stage,首先将输入进行下采样,然后再进行后续操作。

复杂度分析:

【Attention】Visual Attention Network_第7张图片

实现细节如下,使用下面三种卷积实现类似 21x21 的卷积

  • 1 个 5x5 depth-wise convolution
  • 1 个 7x7 depth-wise convolution(d=3)
  • 1 个 1x1 卷积

四、效果

4.1 分类

【Attention】Visual Attention Network_第8张图片
【Attention】Visual Attention Network_第9张图片

【Attention】Visual Attention Network_第10张图片

【Attention】Visual Attention Network_第11张图片

4.2 目标检测

【Attention】Visual Attention Network_第12张图片

4.3 语义分割

【Attention】Visual Attention Network_第13张图片

你可能感兴趣的:(Attention,深度学习,计算机视觉)