【Transformer】10、HRFormer:High-Resolution Transformer for Dense Prediction


在这里插入图片描述

论文链接:https://arxiv.org/abs/2110.09408

代码链接:https://github.com/HRNet/HRFormer

一、背景

ViT 的提出让人们看到了 Transformer 在 图像分类任务上的潜力,紧随其后还有很多相关的改进,如知识蒸馏、更深的网络结构、引入卷积等方法,但 ViT 及其类似的方法都缺失了局部空间的信息,难以用于密集预测。还有一些方法聚焦在了使用 Transformer 来实现分割、检测等密集预测任务。

由于 ViT 等方法使用 16x16 作为输入 patch 的大小,且网络是单个分辨率的,缺失了处理多尺度目标的能力,所以作者提出了一个 High-Resolution Transformer (HRFormer),来提出丰富的空间信息并且为密集预测提供多分辨率的特征表达。

HRFormer 的特点:

  • 还是使用 HRNet 的多层级融合(concat)的结构,把每个分辨率分支中的 conv+bn+relu 这种标准卷积操作,变成了如图 1 所示的 HRFormer block
  • HRFormer block:图 1 所示的整体都是 block 内部的结构,图 1 的整体结构就是图 2 中的一个小方块(也就是一个特征图)
    • 分块 MHSA:类似于 swin transformer 中的 windows 机制,HRFormer 也将输入分为了四个小块,每个小块内部做多头自注意力,降低计算量,然后将四个小块的注意力结果再整合起来(即恢复输入的放置形状,恢复成一幅图的样子)
    • 1x1 conv + 3x3 DW conv + 1x1 conv:1x1 conv 可以进行通道间的信息交互,3x3 的可分离卷积可以进行不同小块的信息交互(可分离卷积就是一个特征图使用一个卷积)

二、方法

HRFormer 的结构类似于 HRNet,其结构如图 1,图 1 的左半部分表示了 local-window self-attention 如何更新 2D 输入表达,每个 window 内部的 attention 是独立进行的:

  • 首先,在 stem 和第一个 stage 都使用了卷积,类似于 [11,49],它们也证明了在浅层使用卷积的效果是比较好的
  • 接着,通过并行的使用 medium 和 low resolution 的 streams 来加强高分辨率 stream,从而提升高分辨率特征的表达。使用多分辨率特征后,HRFormer 能够进行多尺度的建模。
  • 最后,HRFormer 通过 multi-scale fusion module 进行了 multi-resolution feature 交换,同时实现了对短距离信息和长距离信息的 attention。

如何减少计算量:

  • 在每个分辨率特征图内部,作者都使用了 local-window self-attention 来减少计算量,作者将特征图无重叠的划分为小的 windows,然后在每个 window 内部分别使用 self-attention
  • 并且,为了进行不同 window 间的信息交互,作者在 local-window self-attention 后面的前传网络 FFN 中引入了 3x3 的可分离卷积,有助于提高感受野

和不同方法的效果对比:

  • DeiT:在 ImageNet 上,HRFormer-B 比 DeiT-B 的 top-1 acc 高了 1.0%,参数量下降了 40%,FLOPs 下降了 20%
  • HRNet:在 COCO-val上, HRFormer-B 比 HRNet-W48 高了0.9% AP,参数量下降了 32%,FLOPs 下降了 19%
  • HRNet-OCR:在 PASCAL-Context test 和 COCO-Stuff test 分别提高了 1.2% 和 2.0% 的 mIoU,参数量下降了 25%。

1、Multi-resolution parallel transformer

图2展示了 HRFormer 的结构,每个 transformer block 的结构细节如图 1。

2、Local-window self-attention

首先,将特征图 X ∈ R N × D X \in R^{N \times D} XRN×D 切分为大小为 K × K K\times K K×K 的不重叠的 windows X → { X 1 , X 2 , . . . , X P } X \to \{X_1, X_2, ..., X_P\} X{X1,X2,...,XP}

然后,作者在每个 window 内使用 multi-head self-attention (MHSA),假设在第 p 个 window 使用,方式如下:

在这里插入图片描述

  • H H H 是 heads 的个数
  • D D D 是 channel 的个数
  • N N N 是输入分辨率
  • X ^ p \hat {X}_p X^p 是 MHSA 的输出特征
  • 同时,在每个 window 内部,都使用了相对位置编码(T5 model)

在获得了每个 window 的特征之后,将所有的输入 merge 起来:

在这里插入图片描述

3、FFN with depth-wise convolution

由于所有的 self-attention 只在 window 内部做,所以 window 之间没法进行信息交换。所以作者在 FFN 中的 MLP 之间加了 3x3 的可分离卷积,如图1右边所示。

4、Representation head designs

如图 2 所示,HRFormer 的输出包含了 4 种不同分辨率的特征图,对于不同的任务,作者罗列了不同的 head 设计方法:

  • 分类任务:把 4 个特征图送入 bottleneck,输出通道变化为 128、256、512、1024,然后使用卷积将它们聚合起来,输出一个最低维的特征图,最后使用avgpooling。
  • 姿态估计任务:仅仅使用最高维度的特征图
  • 语义分割任务:将所有的特征图上采样到相同的大小,然后concat起来

5、Instantiation

HRFormer 的整体结构如表1所示:

  • M:每个 stage 的modules 数量
  • B :每个 stage 的 blocks 数量
  • C:transformer block 中的 channel 个数
  • H:transformer block 中的 heads 个数
  • R:transformer block 中的 MLP expansion ratios (4,4,4,4 for all models)
  • 第一个 stage 使用 HRNet 的结构
  • 每个 transformer block 的组成:一个 local-window self-attention (7,7,7,7 for each resolution) + FFN (with 3x3 depth-wise conv)

在这里插入图片描述

在这里插入图片描述

6、分析

3x3 depth-wise convolution 的益处:

  • 加强局部特征
  • 在不同 window 间进行信息交换

在这里插入图片描述

在这里插入图片描述

三、效果

1、姿态识别

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、语义分割

在这里插入图片描述

在这里插入图片描述

3、图像分类

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值