新一代backbone

源码https://github.com/microsoft/Swin-Transformer

ICCV 2021最佳论文

解决问题:

图像中像素太多,需要更多特征就需要很长的序列

血猎榷场注意力越慢

本质:

用窗口和分层的形式代替长序列

使用分层来代替CNN的感受野

摘要

提出一个Swin Transformer, 可以用作骨干网络,直接把transformer用在CV领域,有挑战:1.多尺度物体2.序列长度太长。基于挑战,提出了hierarchical transformer,使用一种一种窗口的方法,现在自注意力在窗口内算,seq很短,而且通过移动窗口,上下层之间会产生交互(cross-window connection),这个层级窗口可以提供各个尺度的信息,而且他的复杂度是随着分辨率提高线性增长(不是平方)

Intro

Vit把图片打成16*16的patch,也就是说每一层token看到的都是这个分辨率,对多尺寸的物体效果就不好,也就是low-resolution、单一尺度

FPN每一层的感受野不一样,可以处理不同尺寸的问题,检测

UNet提出Skip connection,下采样之后不光从bottom里拿特征,还从下采样的结果拿 分割

方法

patch partition

patchsize是4X4,48=4X4X3

linear embeding

对每个像素的channel做线性变换(前两步加起来和ViT中liear projection一样)(源码中直接卷积实现)

对于Swin-T版本,超参数C=96 > 56X56X96=3136X56 (token个数 X token向量维度)

swin transfomer

后面谈,维度不变

patch Merging

主要是降维(下采样、类似池化)(类似pixel shuffle的反过程)。把每个小窗口中相同位置的值取出来,拼成新的patch,再把所有patch在cannel维度上concat起来。(此时通道数应该变成4C),然后为了和resNet等网络保持一致,再在cannel维度上做一个1X1的卷积,把维度降一半,变成2C

在Swin Transformer中,每个stage的降低分辨率的过程都是通过Patch Merging实现的。

重复进行三次

这个过程完全类似CNN,特征图降到7X7X768

分类头

如果做分类任务,在7X7X768的基础上添加一个“分类头”,做一个平均池化,变成1X768,再变成1X1000(如果在imageNet上做分类)

基于移动窗口的自注意力
窗口

问题:对于密集预测任务和大分辨率的图片,全局的自注意力有平方倍的复杂度

和标准的复杂度对比

这楼里每个窗口有49个patch

移动窗口

问题:只基于窗口丢失了全局信息

往右下移动窗口3个patch,带来的问题:窗口数增多了,而且窗口大小不一样

一种简单解决,在周围的窗口直接padding-0但是复杂度太高了

解决:一种掩码方式,做一次循环移位

如此得到的窗口数量还是四个,对于左上角的窗口,做自注意力没问题

位置信息

放在了attention矩阵当中,可以学习,使用相对位置信息

对比

分为T、S、B、L四种,其中SwinT和Res50参数相当、SwinS和Res101相当,具体区别如下

ref:

source code:https://github.com/SwinTransformer/Swin-Transformer-Object-Detection

使用:https://www.cnblogs.com/isLinXu/p/15880039.html

测试命令:

python demo/image_demo.py demo/demo.jpg configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_1x_coco.py mask_rcnn_swin_tiny_patch4_window7_1x.pth

知乎:https://zhuanlan.zhihu.com/p/468495919

知乎:https://zhuanlan.zhihu.com/p/443418635

披着transformer皮的CNN:SwinTransformer相关推荐

  1. 用Transformer完全替代CNN?

    作者丨小小理工男@知乎 来源丨https://zhuanlan.zhihu.com/p/266311690 编辑丨极市平台 这里将介绍一篇我认为是比较新颖的一篇文章 --<An Image Is ...

  2. NLP/CV模型跨界进行到底,视觉Transformer要赶超CNN?

    机器之心报道 机器之心编辑部 在计算机视觉领域中,卷积神经网络(CNN)一直占据主流地位.不过,不断有研究者尝试将 NLP 领域的 Transformer 进行跨界研究,有的还实现了相当不错的结果.近 ...

  3. 用Transformer完全代替CNN:AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

    原文地址:https://zhuanlan.zhihu.com/p/266311690 论文地址:https://arxiv.org/pdf/2010.11929.pdf 代码地址:https://g ...

  4. 我国自主开发的编程语言“木兰”是又一个披着“洋”皮的红芯浏览器吗?

    究竟是真"自主",还是又一个披着"洋"皮的"红芯浏览器"? 作者 | 沉迷单车的追风少年 出品 | CSDN博客 昨天看到新闻: 心头一震, ...

  5. 虎年到,新年用Python与人工智能一起写春节对联 python+pytorch+Transformer+BiLSTM+ATTN+CNN

    艾薇巴迪大家好,虎年春节就要到了,首先在此祝大家新春快乐.虎年大吉. 用Python与人工智能一起写春联 前言 1.分析 2.配置对联项目 2.1.配置下载 2.2.数据预处理 2.3.训练 2.4. ...

  6. CNN+Transformer=SOTA!CNN丢掉的全局信息,Transformer来补

    转自:新智元 在计算机视觉技术发展中,最重要的模型当属卷积神经网络(CNN),它是其他复杂模型的基础. CNN具备三个重要的特性:一定程度的旋转.缩放不变性:共享权值和局部感受野:层次化的结构,捕捉到 ...

  7. 论文阅读(9)---基于Transformer的多模态CNN心电图心律失常分类

    Multi-module Recurrent Convolutional Neural Network with Transformer Encoder for ECG Arrhythmia Clas ...

  8. 披着 Chromium 皮的微软 Edge 浏览器到底长什么样?

    作者 | 局长 本文经授权转载自开源中国(ID:oschina2013) 人工智能的现状及今后发展趋势如何?  https://edu.csdn.net/topic/ai30?utm_source=c ...

  9. 披着人皮的幽灵们……(读《死亡清扫日记》有感)

    封面 书评·文字版 如今的人是人还是被炼成了永世不得超生的幽魂?如今的人是提线的木偶丧失了思考能力吗?如今这个社会是能让人有尊严的活着的社会吗? 被蚕食的人,被逼迫的人,被规训的人,丧失了批判能力的人 ...

最新文章

  1. 加性注意力机制、训练推理效率优于其他Transformer变体,这个Fastformer的确够快...
  2. 用命令行查看局域网的其他在线的ip
  3. tcpdump基础教程
  4. jQuery的jquery-1.10.2.min.map触发404(未找到)
  5. 关于dbutils中QueryRunner看批量删除语句batch
  6. python动态显示数据_python中plot实现即时数据动态显示方法
  7. php模拟环境搭建,PHP环境搭建最新方法
  8. linux集成开发环境
  9. python requests返回值为200 但是text无内容_接口测试入门神器 - Requests
  10. 数据库热备份 Xtrabackup安装及使用
  11. 四十六 常用内建模块 itertools
  12. Vue源码分析 - watcher.js
  13. C#调用exe工作目录
  14. 树莓派raspberrypi系统安装docker以及编译nginx和php镜像
  15. 《宏观经济学》第一章
  16. 宇视网络视频录像机添加摄像机提示离线
  17. 经典c程序100例详解
  18. 无线局域网打印服务器,无线局域网环境下怎么连接网络打印机
  19. specular BRDF
  20. dropify图片上传插件的上传数据

热门文章

  1. 精品微信小程序springboot服装企业人事管理系统+后台管理系统
  2. 英伟达TX2烧录系统_99美元AI计算机:英伟达推出嵌入式电脑Jetson Nano
  3. [八方旅人] 魔大公攻略, 可行的一种打法
  4. RPA的特点有哪些?
  5. 关于Drools:kie引擎的rest接口调用学习笔记
  6. 获取QQ邮箱的授权码和SMTP server
  7. ffmpeg源码跟踪笔记之av_write_frame 与 av_interleaved_write_frame
  8. 世界中を敵にしても君を守る
  9. JVM中TLAB初认识
  10. 2-3 Python后端技术栈