新一代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. 一位老码农的分享:一线程序员该如何面对「中年危机」?
  2. 从VR到元宇宙:回顾30年,改变虚拟现实的18件大事
  3. 二.Python的基础语法知识
  4. 七牛技术总监陈超:记Spark Summit China 2015
  5. mySql存储过程,简单实现实例
  6. 计算机技能大赛文字录入试题,《文字录入与排版》试题.doc
  7. CentOS7下安装zookeeper3.4.9
  8. __attribute__ 详解
  9. Struts2源码阅读(五)_FilterDispatcher核心控制器
  10. Echars折线配置详解
  11. centos7环境下mysql5.7的安装与配置
  12. sql profiler_这是SQL Profiler的结尾吗?
  13. 微信小程序官方开发文档
  14. 一、Jquery入门(超详)
  15. 服务器自带软件怎么样卸载,如何安装和卸载远程服务器管理工具
  16. MATLAB绘制一幅中国地图
  17. Python关键词百度指数采集,抓包Cookie及json数据处理
  18. 十年终于读懂你——你从没见过的算法之美
  19. java 中介模式_中介者模式
  20. 图形世界分裂的两派——理清Direct3D和OpenGL的脉络

热门文章

  1. 【rmzt】梦幻个性女孩xp主题
  2. Cuckoo全部安装过程
  3. c语言实现rle算法,C语言课程设计---RLE压缩算法
  4. 根据Oracle数据库已存在的表生成其他数据库建表语句
  5. Ymodem协议详解
  6. 年月日时分秒的时间格式化
  7. fatal error: juce_core.h: No such file or directory
  8. Laravel5使用qq邮箱smtp发邮件配置及测试
  9. MFC对话框程序OnClose()和 OnDestroy()
  10. JavaFX战旗类游戏开发 第二课 游戏地图绘制