【Transformer】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,其结构如图 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∈RN×DX \in R^{N \times D}X∈RN×D 切分为大小为 K×KK\times KK×K 的不重叠的 windows X→{X1,X2,...,XP}X \to \{X_1, X_2, ..., X_P\}X→{X1,X2,...,XP}。
然后,作者在每个 window 内使用 multi-head self-attention (MHSA),假设在第 p 个 window 使用,方式如下:
- HHH 是 heads 的个数
- DDD 是 channel 的个数
- NNN 是输入分辨率
- X^p\hat {X}_pX^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、图像分类
【Transformer】HRFormer:High-Resolution Transformer for Dense Prediction相关推荐
- 【自然语言处理】【多模态】UniT:基于统一Transformer的多模态多任务学习
UniT:基于统一Transformer的多模态多任务学习 <UniT:Multimodal Multitask Learning with a Unified Transformer> ...
- 【CV】SwinIR:使用 Swin Transformer 进行图像恢复
论文名称:SwinIR: Image Restoration Using Swin Transformer 论文下载:https://arxiv.org/abs/2108.10257 论文年份:ICC ...
- 【自然语言处理】【多模态】CLIP:从自然语言监督中学习可迁移视觉模型
从自然语言监督中学习可迁移视觉模型 <Learning Transferable Visual Models From Natural Language Supervision> 论文地址 ...
- 【自然语言处理】【多模态】OFA:通过简单的sequence-to-sequence学习框架统一架构、任务和模态
OFA:通过简单的sequence-to-sequence学习框架统一架构.任务和模态 <Unifying Architectures, Task, and Modalities through ...
- 【自然语言处理】【多模态】BLIP:面向统一视觉语言理解和生成的自举语言图像预训练
BLIP: 面向统一视觉语言理解和生成的自举语言图像预训练 <BLIP: Bootstrapping Language-Image Pre-training for Unified Vision ...
- 【NLP】GPT:第一个引入Transformer的预训练模型
目前两种最重要的预训练语言模型,一种是前面介绍过的BERT,另外一种就是GPT. GPT出了两个版本,GPT1.0和GPT2.0,GPT2.0相对于GPT1.0差别不大,可以认为是它的增强版.本篇介绍 ...
- 论文笔记 |【CVPR2021】Uformer: A General U-Shaped Transformer for Image Restoration
论文笔记 |[CVPR2021]Uformer: A General U-Shaped Transformer for Image Restoration 文章目录 论文笔记 |[CVPR2021]U ...
- 【NLP】XLnet:GPT和BERT的合体,博采众长,所以更强
前面介绍过BERT,作为一种非常成功的预训练模型,取得了非常不错的成绩,那么,他还有改进的空间吗? 本文介绍BERT的改进版,XLnet.看看它用了什么方法,改进了BERT的哪些弱点. 作者& ...
- 【计算机视觉】MAE:Masked Autoencoder
有任何的书写错误.排版错误.概念错误等,希望大家包含指正. 在阅读本篇之前建议先学习: [自然语言处理]Transformer 讲解 [自然语言处理]BERT 讲解 [计算机视觉]ViT:Vision ...
最新文章
- R语言ggplot2可视化箱图(boxplot)时忽视异常值(outlier)并重新分配坐标轴的范围是的可视化的箱图可以有效显示箱体实战
- mysql备份命令和还原命令_mysql数据备份和还原命令
- greenPlum资源隔离
- css怎么把背景图片拉伸至100%
- java前言_Java Web前言
- linux加入微软,微软正式加入Linux基金会
- java statement 存储过程_Java+sql server+CallableStatement调用存储过程三种情况 (转)...
- if/else if多分支语句(JS)
- WinSCP无法连接linux,而secureCRT却可以
- 操作系统—内存的连续分配管理方式
- mybatis同时查询未知个数的表中数据(表名做为参数传递,联合查询union)
- 【软考软件评测师】2011年下案例分析历年真题
- 直播技术原理:CDN技术详解
- 安装丰桥(顺丰)电子面单自助打印SDK踩的坑
- hspace在表格中无效吗html,HTML代码汇总详解
- MNE-Python | 开源生理信号分析神器(一)
- 怎样快速制作GIF动图?教你一分钟在线制作GIF
- BroadcastReceiver插件化
- RGB 无限立方体(高级版)
- h5 使用canvas实现电子签名和图片的保存
热门文章
- Django学习(第四天:ORMModel)
- [Java] 实现多线程的两种方法
- 重新想象 Windows 8 Store Apps (59) - 锁屏
- HDU 2993 MAX Average Problem(斜率优化DP)
- 安装oracle解压版,oracle11g压缩解压版图文安装详细教程
- js 正则 显示千分号 支持整数和小数
- Hibernate配置数据源,数据库连接池
- oracle导入报错39002,oracle impdp ORA-39002
- model模型php,thinkphp的model模型的设计经验总结
- python输入一个数组输出24进制式的时间_【翻译】《利用Python进行数据分析·第2版》第4章(下)NumPy基础:数组和矢量计算...