披着transformer皮的CNN:SwinTransformer
新一代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相关推荐
- 用Transformer完全替代CNN?
作者丨小小理工男@知乎 来源丨https://zhuanlan.zhihu.com/p/266311690 编辑丨极市平台 这里将介绍一篇我认为是比较新颖的一篇文章 --<An Image Is ...
- NLP/CV模型跨界进行到底,视觉Transformer要赶超CNN?
机器之心报道 机器之心编辑部 在计算机视觉领域中,卷积神经网络(CNN)一直占据主流地位.不过,不断有研究者尝试将 NLP 领域的 Transformer 进行跨界研究,有的还实现了相当不错的结果.近 ...
- 用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 ...
- 我国自主开发的编程语言“木兰”是又一个披着“洋”皮的红芯浏览器吗?
究竟是真"自主",还是又一个披着"洋"皮的"红芯浏览器"? 作者 | 沉迷单车的追风少年 出品 | CSDN博客 昨天看到新闻: 心头一震, ...
- 虎年到,新年用Python与人工智能一起写春节对联 python+pytorch+Transformer+BiLSTM+ATTN+CNN
艾薇巴迪大家好,虎年春节就要到了,首先在此祝大家新春快乐.虎年大吉. 用Python与人工智能一起写春联 前言 1.分析 2.配置对联项目 2.1.配置下载 2.2.数据预处理 2.3.训练 2.4. ...
- CNN+Transformer=SOTA!CNN丢掉的全局信息,Transformer来补
转自:新智元 在计算机视觉技术发展中,最重要的模型当属卷积神经网络(CNN),它是其他复杂模型的基础. CNN具备三个重要的特性:一定程度的旋转.缩放不变性:共享权值和局部感受野:层次化的结构,捕捉到 ...
- 论文阅读(9)---基于Transformer的多模态CNN心电图心律失常分类
Multi-module Recurrent Convolutional Neural Network with Transformer Encoder for ECG Arrhythmia Clas ...
- 披着 Chromium 皮的微软 Edge 浏览器到底长什么样?
作者 | 局长 本文经授权转载自开源中国(ID:oschina2013) 人工智能的现状及今后发展趋势如何? https://edu.csdn.net/topic/ai30?utm_source=c ...
- 披着人皮的幽灵们……(读《死亡清扫日记》有感)
封面 书评·文字版 如今的人是人还是被炼成了永世不得超生的幽魂?如今的人是提线的木偶丧失了思考能力吗?如今这个社会是能让人有尊严的活着的社会吗? 被蚕食的人,被逼迫的人,被规训的人,丧失了批判能力的人 ...
最新文章
- 加性注意力机制、训练推理效率优于其他Transformer变体,这个Fastformer的确够快...
- 用命令行查看局域网的其他在线的ip
- tcpdump基础教程
- jQuery的jquery-1.10.2.min.map触发404(未找到)
- 关于dbutils中QueryRunner看批量删除语句batch
- python动态显示数据_python中plot实现即时数据动态显示方法
- php模拟环境搭建,PHP环境搭建最新方法
- linux集成开发环境
- python requests返回值为200 但是text无内容_接口测试入门神器 - Requests
- 数据库热备份 Xtrabackup安装及使用
- 四十六 常用内建模块 itertools
- Vue源码分析 - watcher.js
- C#调用exe工作目录
- 树莓派raspberrypi系统安装docker以及编译nginx和php镜像
- 《宏观经济学》第一章
- 宇视网络视频录像机添加摄像机提示离线
- 经典c程序100例详解
- 无线局域网打印服务器,无线局域网环境下怎么连接网络打印机
- specular BRDF
- dropify图片上传插件的上传数据
热门文章
- 精品微信小程序springboot服装企业人事管理系统+后台管理系统
- 英伟达TX2烧录系统_99美元AI计算机:英伟达推出嵌入式电脑Jetson Nano
- [八方旅人] 魔大公攻略, 可行的一种打法
- RPA的特点有哪些?
- 关于Drools:kie引擎的rest接口调用学习笔记
- 获取QQ邮箱的授权码和SMTP server
- ffmpeg源码跟踪笔记之av_write_frame 与 av_interleaved_write_frame
- 世界中を敵にしても君を守る
- JVM中TLAB初认识
- 2-3 Python后端技术栈