大白话Pyramid Vision Transformer
本文转载自知乎,已获作者授权转载。
链接:https://zhuanlan.zhihu.com/p/353222035
TL;DR
这个工作把金字塔结构引入到Transformer[1]中,使得它可以像ResNet[2]那样无缝接入到各种下游任务中(如:物体检测,语义分割),同时也取得了非常不错的效果。
希望这些尝试能够促进更多下游任务的进一步发展,将NLP领域中Transformer的火把传递到CV的各个任务上。欢迎各位看官试用~
我们主要做了以下几个微小的工作:
1. 分析ViT[3]遗留的问题
大家都知道,在ViT中,作者为图像分类提出了一个纯Transformer的模型,迈出了非常重要的一步。相信大家看到ViT后的第一个想法就是:要是能替代掉恺明大佬的ResNet用在下游任务中岂不是美滋滋。
但是,ViT的结构是下面这样的,它和原版Transformer一样是柱状结构的 。
这就意味着:
1)它全程只能输出16-stride或者32-stride的feature map;
2)一旦输入图像的分辨率稍微大点,占用显存就会很高甚至显存溢出。
2. 引入金字塔结构
计算机视觉中CNN backbone经过多年的发展,沉淀了一些通用的设计模式。
最为典型的就是金字塔结构。
简单的概括就是:
1)feature map的分辨率随着网络加深,逐渐减小;
2)feature map的channel数随着网络加深,逐渐增大。
几乎所有的密集预测(dense prediction)算法都是围绕着特征金字塔设计的,比如SSD[4],Faster R-CNN[5], RetinaNet[6]。
这个结构怎么才能引入到Transformer里面呢?
试过一堆胡里花哨的做法之后,我们最终还是发现:简单地堆叠多个独立的Transformer encoder效果是最好的(奥卡姆剃刀定律,yes)。
然后我们就得到了PVT,如下图所示。在每个Stage中通过Patch Embedding来逐渐降低输入的分辨率。
其中,除了金字塔结构以外。为了可以以更小的代价处理高分辨率(4-stride或8-stride)的feature map,我们对Multi-Head Attention也做了一些调整。
为了在保证feature map分辨率和全局感受野的同时降低计算量,我们把key(K)和value(V)的长和宽分别缩小到以前的1/R_i。
通过这种方法,我们就可以以一个较小的代价处理4-stride,和8-stride的feature map了。
3. 应用到检测分割上
接下来,我们可以把PVT接入到检测和分割模型上试试水了。PVT替换ResNet非常容易,以大家常用的mmdetection[7]为例,放置好模型的代码文件之后,只需要修改模型的config文件就可以了。
从上面的图中可以看到,PVT在RetinaNet上的效果还是非常不错的。在和ResNet50相同的参数量下,PVT-S+RetinaNet在COCO val2017上的AP可以到40+。
另外我们还基于PVT+DETR[8]和Trans2Seg[9]构建了纯transformer的检测和分割网络,效果也不错。具体参考论文Section 5.4。
最后分享一下我个人的一些不成熟的看法吧。
1. 为什么PVT在同样参数量下比CNN效果好?
我认为有两点 :1)全局感受野和 2)动态权重。
其实本质上,Multi-Head Attention(MHA)和Conv有一些相通的地方。MHA可以大致看作是一个具备全局感受野的,且结果是按照attention weight加权平均的卷积。因此Transformer的特征表达能力会更强。
关于MHA和Conv之间的联系,更多有意思的见解可以拜读下代季峰大佬的An Empirical Study of Spatial Attention Mechanisms in Deep Networks[10]。
2. 后续可扩展的思路
1)效率更高的Attention:随着输入图片的增大,PVT消耗资源的增长率要比ResNet要高,所以PVT更适合处理中等输入分辨率的图片(具体见PVT的Ablation Study)。所以找到一种效率更高的Attention方案是很重要的。
2)Position Embedding:PVT的position embedding是和ViT一样,都是随机的参数,然后硬学的。而且在改变输入图像的分辨率的时候,position embedding还需要通过插值来调整大小。所以我觉得这也是可以改进的地方,找到一种更适合2D图像的方法。
3)金字塔结构:PVT只是一种较简单的金字塔式Tranformer。中间是通过Patch Embedding连接的,或许有更优美的方案。
最后的最后,PVT在分类/检测/分割或其他一些领域上的应用(code/config/model)都会在github.com/whai362/PVT上发布,大家可以star一下,方便后面查看。
论文:https://arxiv.org/abs/2102.12122
源码:https://github.com/whai362/PVT
参考资料
[1]^Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Proceedings of the 31st International Conference on Neural Information Processing Systems. 2017: 6000-6010.
[2]^He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.
[3]^Dosovitskiy A, Beyer L, Kolesnikov A, et al. An image is worth 16x16 words: Transformers for image recognition at scale[J]. arXiv preprint arXiv:2010.11929, 2020.
[4]^Liu W, Anguelov D, Erhan D, et al. Ssd: Single shot multibox detector[C]//European conference on computer vision. Springer, Cham, 2016: 21-37.
[5]^Ren S, He K, Girshick R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[C]//Proceedings of the 28th International Conference on Neural Information Processing Systems-Volume 1. 2015: 91-99.
[6]^Lin T Y, Goyal P, Girshick R, et al. Focal loss for dense object detection[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2980-2988.
[7]^Chen K, Wang J, Pang J, et al. MMDetection: Open mmlab detection toolbox and benchmark[J]. arXiv preprint arXiv:1906.07155, 2019.
[8]^Carion N, Massa F, Synnaeve G, et al. End-to-end object detection with transformers[C]//European Conference on Computer Vision. Springer, Cham, 2020: 213-229.
[9]^Xie E, Wang W, Wang W, et al. Segmenting transparent object in the wild with transformer[J]. arXiv preprint arXiv:2101.08461, 2021.
[10]^Zhu X, Cheng D, Zhang Z, et al. An empirical study of spatial attention mechanisms in deep networks[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019: 6688-6697.
END
备注:TFM
Transformer交流群
2D、3D目标检测等最新资讯,若已为CV君其他账号好友请直接私信。
我爱计算机视觉
微信号:aicvml
QQ群:805388940
微博知乎:@我爱计算机视觉
投稿:amos@52cv.net
网站:www.52cv.net
在看,让更多人看到
大白话Pyramid Vision Transformer相关推荐
- 论文:Pyramid Vision Transformer
Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions 金字塔视觉Tran ...
- PVT(Pyramid Vision Transformer)学习记录
引言与启发 自从ViT之后,关于vision transformer的研究呈井喷式爆发,从思路上分主要沿着两大个方向,一是提升ViT在图像分类的效果:二就是将ViT应用在其它图像任务中,比如分割和检测 ...
- Pyramid Vision Transformer(PVT): 纯Transformer设计,用于密集预测的通用backbone
论文地址:https://arxiv.org/pdf/2102.12122.pdf 官方代码:https://github.com/whai362/PVT 目录 0.摘要 1.引言 2.相关工作 2. ...
- 基于Pyramid Vision Transformer(PVT-v2)实现奥特曼识别
前言 大家好,我是阿光. 本专栏整理了<PyTorch深度学习项目实战100例>,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集. 正在更新 ...
- 论文精读:PVT v2: Improved Baselines with Pyramid Vision Transformer
论文地址:https://arxiv.org/abs/2106.13797 源码地址:https://github.com/whai362/PVT Abstract 在这项工作中,作者改进了PVT v ...
- 【深度学习】(ICCV-2021)PVT-金字塔 Vision Transformer及PVT_V2
目录 0. 详情 1. 简述 2.主要工作 2.1 ViT遗留的问题 2.2 引入金字塔结构 3.PVT的设计方案 3.1 Patch embedding 代码 3.2position embeddi ...
- VIT Adapter【Vision Transformer Adapter for Dense Predictions】论文笔记
Vision Transformer Adapter for Dense Predictions 论文地址:2205.08534.pdf (arxiv.org) 代码地址:https://github ...
- 【读点论文】Swin Transformer: Hierarchical Vision Transformer using Shifted Windows通过窗口化进行局部MSA,sw-MSA融合信息
Swin Transformer: Hierarchical Vision Transformer using Shifted Windows abstract 本文提出了一种新的视觉transfor ...
- 【读点论文】A Survey on Vision Transformer,2022年华为诺亚最新综述研究,从发展到任务,整体到局部。ViT有研究价值在于有很多问题还没有解决,真理是阶段性的产物
A Survey on Vision Transformer Abstract transformer最早应用于自然语言处理领域,是一种主要基于自注意机制的深度神经网络.由于其强大的表示能力,研究人员 ...
最新文章
- 2022-2028年中国科学仪器行业研究及前瞻分析报告
- 更多 Kinect for Windows 项目揭示
- java如何画百分比圆环_canvas绘制百分比圆环进度条
- crmeb pc端模板下载_PC端人人影视下载速度如何提高
- C/C++ 常见编程技巧!你学会了吗?
- 3d游戏编程大师技巧 源代码_C/C++编程入门基础系列:俄罗斯方块小游戏制作,直接源代码分享...
- SpringCloud工作笔记0104---SpringCloud和SpringCloudAlibaba的区别
- java的equals什么作用_java当中equals函数的作用小结
- Linux 开源词典工具及下载链接
- DoIP协议设计思路浅析
- windows上搭建NFS服务器--haneWIN
- Unity实现打飞碟小游戏
- 零基础快速入门(二)爬取豆瓣电影——python爬虫实例
- 星浩资本-以流程为中心
- 传说中 VUE 的“语法糖”到底是啥?
- 【Windows】关于Windows Powershell找不到打不开修复方法
- 第十一届“认证杯”数学中国数学建模国际赛 (2022 CERTIFICATE AUTHORITY CUP INTERNATIONAL
- 【技美百人计划】图形 4.2 SSAO算法 屏幕空间环境光遮蔽(&HBAO)
- python导入股票_利用Python将股票代码表导入表格
- 2022 CCF中国软件大会(CCF ChinaSoft)“人工智能安全专刊”论坛成功召开
热门文章
- 基于模型协同过滤推荐离线召回:ALS
- Matlab 图像采集工具的使用 - Image Acquisition Toolbox【IAT】 + 大恒相机的应用【1】+多个摄像头支持
- [ARM]【编译】【实践】 - 浮点编译选项NEON引发的Skia的库Illegal instruction运行错误和解决办法
- 【环境搭建005】UBUNTU13.04 android4.08 源码编译实践中遇到的问题
- python技术文档_Python技术文档最佳实践
- python 找出图片中的差异点,python opencv对目录下图片进行去重的技巧
- java函数返回多个值_深入理解被调函数与主调函数之间的传值、传址、值返回、址返回...
- 360安全浏览器兼容模式怎么设置_360浏览器及安全卫士怎么减少广告弹出?
- html表格展开明细,展开/折叠HTML表格
- java中session源码_Spring Session原理及源码分析