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

PVT(Pyramid Vision Transformer):金字塔结构,适合检测/分割

源码、配套笔记&讲解视频,点击文末名片

  1. PVT 的研究背景和动机
    在 计算机视觉 领域,过去的主力军是 卷积神经网络(CNN),比如 ResNet、VGG、Inception。这些 CNN 模型之所以成功,一个关键原因是它们采用了 金字塔结构 —— 从高分辨率的特征图逐渐下采样,得到多尺度的特征表示。这个特性对 目标检测、实例分割、语义分割 等“密集预测任务”至关重要,因为这些任务需要模型理解物体在不同尺度下的细节。
    后来,ViT 出现了,把 NLP 的 Transformer 思路引入到视觉任务中。ViT 在 图像分类 上表现非常好,因为它能捕捉全局依赖关系。但是,ViT 有两个重大问题:
  2. 输出只有单一尺度:ViT 把整张图片切成大块(比如 16×16),然后一次性处理。最终得到的特征图分辨率太低,不适合像检测、分割这样需要精细定位的任务。
  3. 计算/显存消耗巨大:如果强行用小块(比如 4×4)去分割输入,显存马上爆炸,训练根本跑不动。
    所以,ViT 更像是“分类专用工具”,而不是通用视觉骨干。

PVT 的动机
研究者们提出 PVT,就是要解决 ViT 不能很好用于密集预测任务 的问题。
PVT 的设计目标是:

  • 继承 Transformer 的全局建模能力(能捕捉远距离关系);
  • 融合 CNN 的金字塔思想(能逐层下采样,获得多尺度特征);
  • 降低资源消耗(能在有限显存下处理高分辨率特征图)。
    换句话说,PVT 想做的就是:
    👉 把 ViT 从“只能分类”扩展为“通用视觉骨干”,让它在检测、分割这些任务里也能替代 CNN。
    研究者的核心问题是:
  • CNN 在密集预测任务中表现好,但缺乏全局建模;
  • ViT 有全局建模,但对密集预测任务不友好;
  • PVT 结合两者优势,在保持 Transformer 架构的同时,引入 金字塔+多尺度特征图,让它能适应检测、分割等复杂任务。

2、PVT 的创新点
[图片]

(1) 引入金字塔结构(Pyramid)

  • 问题(ViT 的缺陷):ViT 只输出单一尺度的特征(比如 14×14),不适合检测和分割这种需要多尺度特征的任务。
  • PVT 的创新:借鉴 CNN 的“金字塔”思想,从高分辨率到低分辨率,逐层下采样,得到多层次的特征图(比如 56×56 → 28×28 → 14×14 → 7×7)。
  • 好处:能够兼顾大物体和小物体,成为目标检测、分割等任务的通用骨干网络。
    👉 类比:ViT 像一个人只看“缩略图”,只能粗略识别;PVT 像拿了显微镜和望远镜,可以在不同尺度下看清楚细节和整体。

(2) 空间降采样注意力(Spatial-Reduction Attention, SRA)

  • 问题:ViT 的注意力计算复杂度是 O(N²),输入分辨率一大就爆显存。
  • PVT 的创新:在计算注意力时,先对 Key 和 Value 做空间下采样(Spatial Reduction),降低 token 数量,从而大幅减少计算量。
  • 好处:
    • 可以在显存有限的情况下处理更大分辨率图像;
    • 在保证精度的同时,大幅提升计算效率。
      👉 类比:ViT 开会时要求“全员发言”,人越多越慢;PVT 先挑代表来开会(下采样),效率更高。

(3) 通用性强,可替代 CNN Backbone

  • 问题:ViT 只能做分类,不能直接迁移到检测/分割。
  • PVT 的创新:设计时就兼容了 FPN(特征金字塔网络) 思路,直接输出多尺度特征。
  • 好处:PVT 可以像 ResNet 一样,成为检测(Mask R-CNN、RetinaNet)、分割(Semantic FPN、SegFormer)等下游任务的 backbone。
    👉 类比:ViT 是“单科选手,只擅长做选择题(分类)”;PVT 是“全能选手,既能考选择题(分类),也能写大题(检测、分割)”。

(4) 简洁优雅的设计

  • PVT 没有搞太复杂的模块,而是用很直接的方式(分层金字塔 + SRA 下采样)就解决了 ViT 的大部分缺陷。
  • 这使得它在学术界很受欢迎,成为后续很多视觉 Transformer 的基线(比如 SegFormer、BEiT)。
    👉 类比:PVT 就像在 ViT 的“框架房子”上,加了楼梯(金字塔)和电梯(SRA),让整栋楼更实用。

✅ 总结一句话
PVT 的核心创新点是:在 ViT 基础上引入金字塔结构和空间缩减注意力,使得 Transformer 不再只是分类工具,而成为能适配检测、分割等下游任务的通用视觉骨干网络。

3、空间降采样注意力 SRA
[图片]

普通的多头注意力(左边图)
在 Transformer 里,有一个核心模块叫 多头注意力 (Multi-Head Attention, MHA)。
它的输入有三种东西:

  • Q (Query):可以理解为“我要找的信息”。
  • K (Key):可以理解为“信息的标签或关键字”。
  • V (Value):可以理解为“信息的具体内容”。
    普通的注意力机制就是:
    👉 每个 Query 去和所有 Key 对比,算出哪些 Key 跟自己相关,然后再根据相关性加权取对应的 Value。
    这样,模型就能学到“谁和谁相关”,从而实现 全局信息交互。
    ⚠️ 问题:如果输入图片很大(比如 224×224 的图像被切成很多 patch),Key 和 Value 的数量会非常多,计算和显存开销就会爆炸式增长。

空间降采样注意力 SRA(右边图)
为了降低计算量,引入了 Spatial Reduction Attention (SRA)。
从图里可以看到,区别就在于:

  • 在进入 Multi-Head Attention 之前,Key 和 Value 先经过一个“Spatial Reduction(空间降采样)”模块。
  • Query 不变(因为查询需求还是完整的),但是 Key/Value 会变少。
    直观类比:
  • 普通注意力:开大会 → 所有人都要发言 → 很耗时。
  • SRA:开大会前,先选出代表(下采样) → 只有部分人发言,但大部分信息仍能覆盖到 → 节省计算量和显存。

好处

  1. 减少计算量:Key/Value 数量减少,注意力计算更快。
  2. 节省显存:不用存储庞大的全量 K/V。
  3. 保持全局建模能力:虽然少了一些细节,但仍然能看全局(因为 Query 还是完整的)。

4、PVT 的网络结构

PVT 和 CNN 类似,采用了 金字塔式的多阶段结构。整张图分为 4 个阶段,每个阶段都会把输入特征图的分辨率减半、通道数增加,逐步提取更深层的特征。
[图片]

🔹 (1) 输入与 Patch Embedding

  • 输入:大小为 H×W×3的彩色图像。
  • 处理:先切成小 patch(比如 4×4),再用 线性映射 (Linear Projection) 把每个 patch 转换为向量(类似 ViT 的操作)。
  • 结果:得到第一个特征图 F1,分辨率缩小 1/4,通道数变成 C1。
    👉 类比:把一张大照片切成小块,再把每个小块压缩成一个“数字 ID 卡”。

🔹 (2) 四个 Stage(金字塔结构)
整个网络由 Stage 1 → Stage 4 组成,每一层都会进一步缩小分辨率,增加通道数:

  1. Stage 1:
  • 输入:原图(切分后)。
  • 输出:H/4×W/4×C1。
  • 特点:保留了比较高的分辨率,适合捕捉细节。
  1. Stage 2:
  • 输出:H/8×W/8×C2。
  • 分辨率减半,通道数增加,特征更抽象。
  1. Stage 3:
  • 输出:H/16×W/16×C3
  • 进入更深层的语义特征(类似 ResNet 的 C3 层)。
  1. Stage 4:
  • 输出:H/32×W/32×C4
  • 最深层,分辨率最小,但通道最多,信息最抽象。
    👉 类比:就像看地图,从“街道地图(Stage1,高分辨率)”到“城市地图(Stage4,低分辨率但全局视野更强)”。

🔹 (3) Transformer Encoder(每个 Stage 内部)
在每个 Stage 内,都会经过一个 Transformer Encoder,里面的关键模块是:

  1. Norm:归一化,稳定训练。
  2. Spatial Reduction Attention (SRA):
  • 对 Key/Value 特征先下采样,减少注意力计算量。
  • 保证全局建模的同时节省显存。
    👉 类比:开会前先挑选代表(下采样),不需要所有人都发言。
  1. Multi-Head Attention:多头自注意力,捕捉远距离关系。
  2. Feed Forward 网络 (FFN):全连接层 + 激活函数,增强特征表达能力。

🔹 (4) 输出特征

  • 最终输出 四个不同分辨率的特征图:
    [图片]
    👉 这些多尺度特征可以直接送进 FPN、检测头、分割头,替代 ResNet 等 CNN Backbone。

5、PVT(Pyramid Vision Transformer)的重大缺点

  1. 局部特征建模不足
  • PVT 使用 spatial-reduction attention 来降低计算量,但没有像 CNN 的卷积核或 Swin Transformer 的窗口机制那样,显式增强局部感受野。
  • 导致在处理 小目标检测、精细分割、纹理信息建模 时性能不足。
  1. 细粒度信息丢失
  • PVT 采用金字塔下采样结构来压缩特征,但这种方式容易丢失空间细节,限制了对 高分辨率图像 的建模能力。
  • 在 医学影像、遥感图像 等需要保留丰富细节的任务上表现较弱。
  1. 计算效率仍然不够理想
  • 虽然相比原始 ViT 已经降低了复杂度,但在高分辨率下,内存开销和推理速度仍然不及高效 CNN。
  • 在 移动端或实时应用 中,PVT 的能效比偏低。
  1. 对大规模预训练依赖强
  • 和大多数 Transformer 一样,PVT 在小数据集上直接训练时效果不佳,必须依赖 大规模预训练。
  • 在数据有限的场景(如医疗影像)应用受限。

6、 后续的改进模型
PVT 作为早期探索性工作,启发了许多改进模型,主要集中在 增强局部建模能力 和 提升计算效率 上:

  1. Swin Transformer
  • 引入 shifted window attention(滑动窗口注意力),强化局部建模并保持跨窗口信息交互。
  • 兼顾局部与全局,成为图像识别、检测、分割任务的新基准。
  • 明显提升了 精度-效率平衡。
  1. CvT(Convolutional Vision Transformer)
  • 在 Transformer 前引入卷积操作(卷积投影),结合 CNN 的局部感知与 Transformer 的全局建模。
  • 改善了 小目标感知能力 和 低层特征表达。
  1. ViL(Vision Longformer)
  • 采用局部窗口 + 稀疏全局 token 的机制,提升长程依赖建模能力,降低注意力复杂度。
  1. PVT v2
  • PVT 作者后续提出的改进版本,增强了表示能力并优化了效率,解决了部分细节丢失问题。
  1. 其他方向
  • MobileViT、LeViT:面向移动端优化,进一步降低计算量。
  • CoAtNet:结合卷积与 Transformer 的混合架构,强化泛化能力。
http://www.dtcms.com/a/499100.html

相关文章:

  • SSRF 漏洞深度剖析:从原理到实战
  • Python第十八节 命名空间作用域详细介绍及注意事项
  • 网站怎么做跳转链接域名备案要多少钱
  • 哪个网站查公司信息比较准网站设计像素
  • mq和rocketmq
  • AI搜索自由:Perplexica+cpolar构建你的私人知识引擎
  • C++基础:(十五)queue的深度解析和模拟实现
  • VSR 项目解析
  • 软件工程新纪元:AI协同编程架构师的修养与使命
  • 一、RPA基础认知与环境搭建
  • 网站域名过期了怎么办怎样做网站导航界面
  • armbian 滚动更新锁定
  • Rust 设计模式 Marker Trait + Blanket Implementation
  • 在 MacOS Tahoe 上使用VMware虚拟机安装 ARM版 Windows11
  • 苏州手机网站建设报价下载好的字体怎么安装到wordpress
  • 品牌出海进入精细化阶段,全球业财一体化成为系统选型关键
  • K8S(十二)—— Kubernetes安全机制深度解析与实践:从认证到RBAC授权
  • 【Zephyr存储专题】16_内存泄露检测可视化脚本自动化
  • 云服务器怎么建网站wordpress 仿 主题下载
  • 怎么搭建手机网站m国内最近重大新闻2024
  • 企业微信ipad协议接口优势
  • AI协同编程架构师如何解决技术债问题
  • 官方网站下载打印机驱动网站服务商
  • 解决部分程序中文乱码的问题
  • 三次到达:理解二叉树非递归遍历
  • AI驱动的专业报告撰写:从信息整合到洞察生成的全新范式
  • JVM(Java虚拟机)~
  • 南充网站建设略奥网络地宝网招聘信息网
  • mmdetection训练 测试步骤
  • 【基础算法】01BFS