当前位置: 首页 > news >正文

Transformer 无卷积骨干网络

今天还是磕 Transformer 刚是自然语言处理的 现在在说说视觉相关 ~ 提升目标检测/分割等任务精度  大佬们勿怪还是~~

还是论文先上!

论文地址:https://arxiv.org/pdf/2102.12122.pdf

源代码地址:https://github.com/whai362/PVT

具有自注意力的Transformer引发了自然语言处理领域的革命,最近还激发了Transformer式架构设计的出现,并在众多计算机视觉任务中取得了具有竞争力的结果。

如下是之前我们分享的基于Transformer的目标检测新技术!

 

 

研究者设计了一个新颖的Transformer模块,针对稠密预测任务的主干网络,利用Transformer架构设计进行了一次创新性的探索,将特征金字塔结构与Transformer进行了一次融合,使其可以更好的输出多尺度特征,进而更方便与其他下游任务相结合。

尽管卷积神经网络 (CNN) 在计算机视觉方面取得了巨大成功,但今天分享的这项工作研究了一种更简单、无卷积的主干网络,可用于许多密集预测任务。

与最近提出的专为图像分类设计的Vision Transformer(ViT)不同,研究者引入了Pyramid Vision Transformer(PVT),它克服了将Transformer移植到各种密集预测任务的困难。与当前的技术状态相比,PVT 有几个优点:

  1. 与通常产生低分辨率输出并导致高计算和内存成本的ViT不同,PVT不仅可以在图像的密集分区上进行训练以获得对密集预测很重要的高输出分辨率,而且还使用渐进式收缩金字塔以减少大型特征图的计算

  2. PVT继承了CNN和Transformer的优点,使其成为各种视觉任务的统一主干,无需卷积,可以直接替代CNN主干

  3. 通过大量实验验证了PVT,表明它提高了许多下游任务的性能,包括对象检测、实例和语义分割

例如,在参数数量相当的情况下,PVT+RetinaNet在COCO数据集上实现了40.4 AP,超过ResNet50+RetinNet(36.3 AP)4.1个绝对AP(见下图)。研究者希望PVT可以作为像素级预测的替代和有用的主干,并促进未来的研究。

基础回顾

CNN Backbones

CNN是视觉识别中深度神经网络的主力军。标准CNN最初是在【Gradient-based learning applied to document recognition】中区分手写数字。该模型包含具有特定感受野的卷积核捕捉有利的视觉环境。为了提供平移等方差,卷积核的权重在整个图像空间中共享。最近,随着计算资源的快速发展(例如,GPU),堆叠卷积块成功在大规模图像分类数据集上训练(例如,ImageNet)已经成为可能。例如,GoogLeNet证明了包含多个内核路径的卷积算子可以实现非常有竞争力的性能。

 

multi-path convolutional block的有效性在Inception系列、ResNeXt、DPN、MixNet和SKNet中得到了进一步验证。此外,ResNet将跳过连接引入到卷积块中,从而可以创建/训练非常深的网络并在计算机视觉领域获得令人印象深刻的结果。DenseNet引入了一个密集连接的拓扑,它将每个卷积块连接到所有先前的块。更多最新进展可以在最近的论文中找到。

 

 新框架

该框架旨在将金字塔结构嵌入到Transformer结构用于生成多尺度特征,并最终用于稠密预测任务。上图给出了所提出的PVT架构示意图,类似与CNN主干结构,PVT同样包含四个阶段用于生成不同尺度的特征,所有阶段具有相类似的结构:Patch Embedding+Transformer Encoder。

在第一个阶段,给定尺寸为H*W*3的输入图像,按照如下流程进行处理:

  • 首先,将其划分为HW/4^2的块,每个块的大小为4*4*3;

  • 然后,将展开后的块送入到线性投影,得到尺寸为HW/4^2 * C1的嵌入块;

  • 其次,将前述嵌入块与位置嵌入信息送入到Transformer的Encoder,其输出将为reshap为H/4 * W/4 * C1。

采用类似的方式,以前一阶段的输出作为输入即可得到特征F2,F3和F4。基于特征金字塔F1、F2、F3、F4,所提方案可以轻易与大部分下游任务(如图像分类、目标检测、语义分割)进行集成。

Feature Pyramid for Transforme

不同于CNN采用stride卷积获得多尺度特征,PVT通过块嵌入按照progressive shrinking策略控制特征的尺度。

假设第i阶段的块尺寸为Pi,在每个阶段的开始,将输入特征均匀的拆分为Hi-1Wi-1/Pi个块,然后每个块展开并投影到Ci维度的嵌入信息,经过线性投影后,嵌入块的尺寸可以视作Hi-1/Pi * Wi-1/Pi * Ci。通过这种方式就可以灵活的调整每个阶段的特征尺寸,使其可以针对Transformer构建特征金字塔。

Transformer Encoder

对于Transformer  encoder的第i阶段,它具有Li个encoder层,每个encoder层由注意力层与MLP构成。由于所提方法需要处理高分辨率特征,所以提出了一种SRA(spatial-reduction attention)用于替换传统的MHA(multi-head-attention)。

类似于MHA,SRA同样从输入端接收到了Q、K、V作为输入,并输出精炼后特征。SRA与MHA的区别在于:SRA会降低K和V的空间尺度,见下图。

 实验

ImageNet数据集上的性能对比,结果见上表。从中可以看到:

  • 相比CNN,在同等参数量与计算约束下,PVT-Small达到20.2%的误差率,优于ResNet50的21.5%;

  • 相比其他Transformer(如ViT、DeiT),所提PVT以更少的计算量取得了相当的性能。

  • 在语义分割中的性能对比,见上表。可以看到:不同参数配置下,PVT均可取得优于ResNet与ResNeXt的性能。这侧面说明:相比CNN,受益于全局注意力机制,PVT可以提取更好的特征用于语义分割。 

 

完事  whaosoft aiot http://143ai.com  

 

 

 

 

相关文章:

  • 服务器安全狗是什么意思?有什么功能?
  • MySQL主从复制与读写分离
  • Mysql 面试题
  • 找回过期的微信文件,赶紧收藏这4个方法!
  • dsox4034a是德科技Keysight DSOX4034A示波器
  • [网鼎杯 2018]Fakebook
  • 《32天SQL筑基》导读
  • 【云原生 | Kubernetes 系列】--Envoy Tcp请求静态配置
  • 【牛客 - 剑指offer】JZ61 扑克牌顺子 两种方案 Java实现
  • 写对比学习损失函数有感(关于速度差异、出现nan的情况)
  • Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day03】——Java高级篇
  • SHRM-人力资源必备的顶流证书
  • 【软件测试】软件测试的相关概念(面试常考)
  • 极光推送厂商通道(小米、华为)对接/问题排查
  • c#开发和学习(基础)
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • iOS编译提示和导航提示
  • jquery ajax学习笔记
  • js写一个简单的选项卡
  • node入门
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • scala基础语法(二)
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • 构造函数(constructor)与原型链(prototype)关系
  • 诡异!React stopPropagation失灵
  • 计算机在识别图像时“看到”了什么?
  • 来,膜拜下android roadmap,强大的执行力
  • 悄悄地说一个bug
  • 我有几个粽子,和一个故事
  • 小程序测试方案初探
  • 一个完整Java Web项目背后的密码
  • 一天一个设计模式之JS实现——适配器模式
  • 与 ConTeXt MkIV 官方文档的接驳
  • 运行时添加log4j2的appender
  • Nginx实现动静分离
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • (2)MFC+openGL单文档框架glFrame
  • (70min)字节暑假实习二面(已挂)
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (四)Controller接口控制器详解(三)
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET关于 跳过SSL中遇到的问题
  • .net专家(张羿专栏)
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • ::什么意思
  • @NoArgsConstructor和@AllArgsConstructor,@Builder