P2T: Pyramid Pooling T ransformer for Scene Understanding

news2025/1/8 19:43:55

论文链接:
https://arxiv.org/abs/2106.12011
中文版本:
https://mmcheng.net/wp-content/uploads/2022/08/22PAMI_P2T_CN.pdf
代码链接:
https://github.com/yuhuan-wu/P2T

P2T: Pyramid Pooling T ransformer for Scene Understanding

  • 一、摘要
  • 二、研究动机
  • 三、实现细节
    • (一)、金字塔池化
    • (二)、P2T
    • (三)、金字塔池化 Transformer
    • (四)、基于池化的多头自注意力模块(P-MHSA)
  • 四、实验验证
    • (一)、分类
    • (二)、分割
    • (三)、检测
    • (四)消融实验

一、摘要

金字塔池化计算方式由于其出色的上下文提取能力,从而在各项视觉任务中取得了很好的效果。然而,金字塔池化在骨干网络的设计中至今并没有被探索过。因此,本文提出将金字塔池化引入到视觉 Transformer 中的多
头自注意力模块(Multi-Head Self-Attention,MHSA)里面,既减少了图像词符序列的长度,同时提取到更好的语境特征。基于本文提出的金字塔池化多头注意力,提出金字塔池化 Transformer(Pyramid Pooling Transformer,P2T)骨干网络。

二、研究动机

金字塔池化是一种具有较长历史的计算机视觉技术,它通过提取上下文信息并利用具有不同感受野的多层池化操作在输入特征上进行多尺度运算。这种简单的技术已在各种下游视觉任务中被证明有效,例如语义分割和物体检测。然而,最近的金字塔池化方法高度依赖于预训练的卷积神经网络骨干,因此它们仅限于一些特定的视觉任务。换言之,金字塔池化技术在具有广泛应用的骨干网络设计中尚未被探索。为了弥补这一个差距,本文
将金字塔池化应用于视觉 Transformer 模块中,从而减少序列长度并且同时学习到强大的上下文表征。金字塔池化的计算效率也非常高,它给视觉 Transformer 带来的计算开支几乎可以忽略不计。
通过提出一个新的 Transformer 骨干网络来实现这一目标,即金字塔池化 Transformer(Pyramid PoolingTransformer,P2T)。将金字塔池化的想法应用于视觉Transformer 的多头自注意力模块中,不但减少了该模块的
计算开支,同时也获取到了丰富的上下文信息。通过将基于新池化的多头自注意力模块用于 Transformer 中,P2T 在特征学习和视觉识别方面的表现都比其他基于单层池化操作的PVT 和 MViT更加强大。利用各种典型的视觉任务,例如图像分类、语义分割、物体检测和实例分割等基础视觉任等来评估 P2T 的性能。大量实验表明,对于这些基本视觉任务,P2T 的性能优于所有以前基于卷积神经网络和Transformer 的骨干网络(有关语义分割的比较,请参见下图)。
在这里插入图片描述
总而言之,本文的主要贡献包括:
• 将金字塔池化封装到多头自注意力模块中,不但减少了图像特征序列的长度,同时也提取了强大的上下文特征。
• 将基于金字塔池化的多头自注意力模块引入到视觉Transformer 中来构建一种灵活并且对视觉任务有效的新骨干网络,称之为金字塔池化 Transformer(Pyramid Pooling Transformer,P2T)。
• 充分的实验证明,当将 P2T 用作各种场景理解任务的骨干网络时,P2T 的性能明显优于以前那些基于卷积神经网络或者 Transformer 的网络。

三、实现细节

PVT和 MViT利用单层池化操作提取的池化特征看起来不那么强大。跟他们不一样的是,本文将金字塔池化的想法应用于视觉 Transformer 来减少了序列长度的同时,也学习到了更加有效的上下文特征。有了更加有效的上下文特征,金字塔池化可能比单层池化更好地计算多头自注意力模块中的自注意力关系。金字塔池化计算效率非常高,因此引入带来的计算开支可以忽略不计。实验表明,本文所提出的P2T 比以前的基于卷积神经网络和基于 Transformer 的网络的性能要好得多。

(一)、金字塔池化

何恺明等人将金字塔池化引入深度卷积神经网络里面进行图像分类和物体
检测。他们采用了几种池化操作将卷积神经网络骨干网络的最终卷积特征图池化为几个固定大小的特征图。然后将这些得到的特征图扁平化并拼接成固定长度的特征表示,从而实现了具有鲁棒性的视觉识别。之后,赵恒爽等人应用金字塔池化于语义分割任务。他们没有采用扁平化操作,而是将池化后的固定大小特征图上采样为原始大小,并将上采样后的特征图拼接起来进行后续预测。他们的成功表明金字塔池化在网络预测中的有效性。在此之后,金字塔池化已经被广泛应用于语义分割和物体检测等各种视觉任务。
与在特定任务下探索卷积神经网络中金字塔池化的现有文献不同,本文建议将金字塔池化的概念引入到视觉 Transformer 骨干网络里面。有了这个想法,首先将金字塔池化嵌入到 P2T 骨干网络的普通注意力模块中,这可以减少词符序列的长度,同时学习到强大的上下文特征表示。P2T 可
以很容易地被各种视觉任务用于特征表示的学习,而之前关于金字塔池化的工作仅限于特定的视觉任务。本文在图像分类、语义分割、对象检测和实例分割方面的大量实验证明了P2T 与现有的基于卷积神经网络或Transformer 的网络相比的优越性。因此,这项工作的独特性将有利于后续对各种视觉任务的研究。

(二)、P2T

P2T 的整体架构在下图中可以详细看到。以自然彩色图像作为输入,P2T 首先将其拆分为 H / 4 × W / 4 H/4 ×W/4 H/4×W/4个块,每个块都被展平为 48 (4 × 4 × 3)个元素。将这些扁平化后的图像块输入到一个图像块编码模块中;它由一个线性投影层组成;然后加上可学习的位置编码。图像块编码模块将 48 的特征维度扩展到 C1。整个网络可以分为四个阶段,分别具有特征维度为 C i ( i = 1 , 2 , 3 , 4 ) C_i (i = {1, 2, 3, 4}) Ci(i=1,2,3,4)。在每两个阶段之间,每个 2 × 2 图像块组被拼接起来,并从 4 × C i 4 × C_i 4×Ci线性投影到 C i + 1 C_{i+1} Ci+1维度 (i = {1, 2, 3})。这样,四个阶段的尺度就变成了 H / 4 × W / 4 , H / 8 × W / 8 , H / 16 × W / 16 ,和 H / 32 × W / 32 H/4 ×W/4 ,H/8 ×W/8 , H/16 ×W/16,和 H/32 ×W/32 H/4×W/4H/8×W/8H/16×W/16,和H/32×W/32。从四个阶段,可以分别推导出四个特征表示 {B1, B2, B3, B4}。其中只有 B4 将用于图像分类的最终预测,但是所有金字塔特征都可以用于下游场景理解任务。
在这里插入图片描述

(三)、金字塔池化 Transformer

金字塔池化已被广泛用于许多与卷积神经网络协作的场景理解任务中。然而,现有文献通常基于已设计好的骨干网络,并在它们基础之上利用金字塔池化额外设计一些模块,用于提取特定任务的全局上下文信息。相比之
下,本文首次探索了 Transformer 和骨干网络之中的金字塔池化,目的是为了普遍改善各种场景理解任务。为此,金字塔池化的想法Transformer 结合,同时减少多头自注意力模块的计算负荷并捕获丰富的上下文信息。
P2T 的基本单元结构在下图中进行了展示。输入特征首先通过基于金字塔池化的多头自注意力模块,其输出与映射的自身相加,然后是 LayerNorm。如同传统的 Transformer模块,接下来是一个前馈网络(FFN)用于特征投影。一个残差连接和 LayerNorm被再次应用。上述过
程可以被表述为:
在这里插入图片描述

在这里插入图片描述

(四)、基于池化的多头自注意力模块(P-MHSA)

基于池化的多头自注意力模块的设计。其结构如图 上(b)所示。首先,输入的 X 被重塑为二维空间。然后,在重塑的 X 上应用不同比例的多个平均池层,用以生成金字塔特征图,具体如下所示:
在这里插入图片描述
其中 P 1 , P 2 , . . . , P n P_1, P_2, ..., P_n P1,P2,...,Pn表示生成的金字塔特征图,n 是池化层的数量。接下来,将金字塔特征图送入深度卷积进行相对位置编码:
在这里插入图片描述
其中 DWConv(·) 表示深度卷积,核大小为 3 × 3, P i e n c P^{enc}_i Pienc 为相对位置编码的 P i P_i Pi。由于 P i P_i Pi是池化特征,所以在 式 (3) 中的操作只需要一点计算开支。之后,对这些金字塔特征图进行扁平化和串联:
在这里插入图片描述
公式中为了简单起见,省略了扁平化操作。这样,如果池化率足够大,P 可以是一个比输入 X 更短的序列。此外,P 包含了输入 X 的上下文抽象,因此在计算多头自注意力模块时可以作为输入 X 的有力替代。
假设多头自注意力模块 中的查询、键和值张量分别为 Q、K 和 V。与其采用传统的如下方法:
在这里插入图片描述
本文提出采用:
在这里插入图片描述
然后,Q, K, V 被送入注意力模块,以计算注意力特征 A。它可以被表述为如下形式:
在这里插入图片描述
其中 d K d_K dK 是 K 的通道尺寸。和 √ d K √dK dK可以作为一个近似的标准化。Softmax 函数是沿着矩阵的行来应用的。为了简介,上式省略了多头的概念。
由于 K 和 V 的长度比 X 小,所提出的 P型多头自注意力模块比传统的多头自注意力模块更有效率。此外,由于 K和 V 包含高度抽象的多尺度信息,所提出的 P型多头自注意力模块在全局上下文依赖性建模方面有更强的能力,这对场景理解很有帮助。从不同的角度来看,金字塔池化通常被用作连接在已有骨干网络基础之上的有效技术;相比之下,本文首先通过 Transformer 在骨干网络内利用金字塔池化,从而为场景理解提供强大的特征表示学习。通过上述分析P型多头自注意力模块有望比传统的多头自
注意力模块更高效、更有效。

四、实验验证

不同深度的 P2T 设置:
在这里插入图片描述
金字塔池化设置:
将 P型多头自注意力模块中并行池化操作的数量设置为 4。在不同的阶段,金字塔池化的池化比率 Transformer 是不同的。第一阶段的池化比
率根据经验设定为 {12, 16, 20, 24}。除了在最后阶段,接下来每个阶段的池化比率都除以 2。在最后阶段,它们被设定为1, 2, 3, 4。在每个 Transformer 块中,P-型多头自注意力模块的所有深度卷积都有相同的参数。
其他设置:
虽然深度卷积的内核大小较大(如5 × 5)可以带来更好的性能,但为了提高效率,所有深度卷积的内核大小被设置为 3 × 3。选择Hardswish 作为非线性激活函数,因为它比 GELU节省了很多内存。除
此之外,Hardswish在实际使用上也很有效。和 PVTv2一样, 采用了重叠图像块编码。也就是说,使用3 × 3 的卷积,跨度为 2,用于从第二阶段到最后阶段的图像块编码,应用 7 × 7 的卷积,跨度为 4,用于第一阶段
的图像块编码。

(一)、分类

使用 AdamW作为优化器,初始学习率为 10−3,权重衰减为 0.05,每个小批次为 1024 张图像。用余弦学习率衰减策略训练 P2T 300 个迭代单位。用于训练和测试的图像大小被调整为 224 × 224。模型在前五个迭
代单位中进行预热。
在这里插入图片描述

(二)、分割

应用 AdamW作为网络优化器,初始学习率为 10−4,权重衰减为 10−4。采用 γ = 0.9 的 poly 学习率计划。每个小批次有 16 张图像;用于训练的图像被调整大小并随机裁剪为 512 × 512。还启用了跨 GPU 的同步批次规范化。在测试过程中,图像短边被调整到 512,长边按比例进行调整。多尺度测试和翻转功能被禁用。
在这里插入图片描述

(三)、检测

在这里插入图片描述

(四)消融实验

探究多种金字塔池化比率:
为了验证使用多种池化比率的意义,进行了实验,以评估 P2T 与一个/两个/四个平行池化操作的性能。基线是没有相对位置编码、IRB 和重叠图像块编码的 P2T-Small。结果如下。可以看出,具有大池化比率的单一池化操作(例如 16, 24)对序列长度有很大的下采样比率。尽管如此,它在图像分类和语义分割方面的性能都非常差。然而,当单一池化操作的池化率为 12 时,如果进一步降低池化率,性能将达到饱和。当采用两个平行的池化操作时,即使有很高的下采样比率,对图像分类和语义分割来说,性能仍然变得更好。当四个并行的池化操作时,下采样率与池化率为 8(PVT 中的设置)的下采样率相同,且达到了最佳性能。
在这里插入图片描述
探究金字塔池化对不同阶段的意义:
对 P2T 的金字塔池化设计进行了不同阶段的消融研究。由于第 1 阶段只包含下采样的卷积,不在第 1 阶段进行这种消融研究。基线与上次消融研究相同。单个池化操作的池化率被设置为 8,以确保相同的下采样率。结果显示如下。可以看到金字塔池化可以提高所有阶段的性能。当更多的阶段应用多个池化操作时,性能变得更高。从结果来看,在第 4 阶段应用多个池化操作的改进比其他阶段更大,因为第 4 阶段比第 [2, 3] 阶段和第 5 阶段有更多的基本模块数。
在这里插入图片描述
探究池化操作的选择: 对不同的池化操作进行了实验,如下所示。有三种典型的选择,即最大池化、深度卷积和默认的平均池化。深度卷积的核大小与最大/平均池化相同,以保持相同的下采样率。很明显,不同的池化类型并不影响计算的复杂性,它们只影响下采样核的参数数量。关于
ImageNet 分类准确率的结果 和 ADE20K 分割 mIoU 的结果 ,平均池化要比其他两种选择好得多。因此,应用平均池化作为默认的池化选择。
在这里插入图片描述
探究固定的池化大小: 当使用固定的池化比率时,池化特征图的尺寸会随着输入特征图的变化而变化。在这里,试图将所有阶段的池化大小固定为:1, 2, 3, 6。同时在所有阶段,都使用自适应平均池化。结果显示在如下。与默认设置相比,固定的池化大小大约节省了 10% 的内存用量和
12% 的计算开支。然而,top-1 的分类精度下降了 0.3%。而语义分割的性能则降低了 2.4%。因此,选择使用固定的池化比率,而不是固定的池化大小。
在这里插入图片描述
探究激活函数的选择: 使用 Hardswish 函数进行非线性激活函数,以减少训练阶段的 GPU 内存使用。通常情况下,当在 ImageNet上训练 P2T-Small、批次大小为 64 的情况下时,GELU的 GPU 内存使用量为 10.5GB,比 Hardswish 多 3.6 GB(+52%)。如果采用 Hardswish ,准确率没有明显下降。
探究其他设计: 为了验证其他设计选择的有效性,如相对位置编码、IRB 和重叠图像块编码,在基线上逐一添加这些组件。实验结果显示如下。可以看出,相对位置编码对图像分类和语义分割都有明显的改善。在大的池化比率下,池化后的特征会有较小的尺度,所以相对位置编码只需要可忽略的计算开支(对于 224 × 224 的输入大小,仅需 5M Flops)。
前馈网络中额外的深度卷积,即 IRB,也显示出明显的性能提升,证明了捕捉二维近邻关系的重要性。进一步增加重叠图像块编码,对于图像分类和语义分割,分别观察到 0.2%/1.4% 的精度提升。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/172594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年网络安全比赛--JavaScript安全绕过中职组(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 1.使用渗透机场景kali中工具扫描服务器,将服务器上apache版本号作为flag提交; 2.使用渗透机场景windows7访问服务其场景中的网站(网站路径为IP/javascript),找到网站首页中flag并提交; 3.使用渗透机场景windows7根据第二题的…

2. 拍照的基础知识

1. 单反相机的全称为单镜头反光相机 单反相机的原理就体现在“单”和“反”上,单字就是单镜头,就是说单反相机只能安装一个镜头,光线或是影像通过单反镜头进行来取景的。 对于“反”来说就是相机系统内部有一个反光板。光线通过单反镜头投射…

你应该知道的 7 个最受欢迎的 Python 机器学习库

2023年你应该知道的 7 个最受欢迎的 Python 机器学习库 33/100 发布文章 weixin_38037405 未选择任何文件 new 有一句谚语“你不必重新发明轮子”,工具库就是最好的例子。它可以帮助您以简单的方式编写复杂且耗时的功能。在我看来,一个好的项目会使用一些…

LeetCode分类刷题----字符串篇

字符串字符串1.反转字符串344.反转字符串541.反转字符串||2.替换空格剑指offer05.替换空格3.翻转字符串里的单词151.反转字符串里的单词4.左旋转字符串剑指 Offer 58 - II. 左旋转字符串5.实现strStr函数()28.实现strStr()函数6.重复的子字符串459.重复的子字符串字符串 1.反转…

YOLOv1学习笔记

来源:投稿 作者:ΔU 编辑:学姐 论文笔记 《You Only Look Once:Unifified, Real-Time Object Detection》 Joseph Redmon∗ , Santosh Divvala∗†, Ross Girshick , Ali Farhadi∗† University of Washington∗ , Allen Institute for A…

【JavaGuide面试总结】计算机网络·上

【JavaGuide面试总结】计算机网络上1.OSI 七层模型是什么?每一层的作用是什么?2.TCP/IP 四层模型是什么?每一层的作用是什么?应用层传输层网络层网络接口层3.应用层有哪些常见的协议?4.为什么网络要分层?5.…

数据分析方法与模型

文章目录1 数据分析1.1 占比分析1.2 趋势分析1.3 对比分析1.4 象限分析1.5 排名分析1.6 维度分析2 分析模型2.1 费米问题-大致估算2.2 七问分析法-思考角度的拓展2.3 互联网通用模型AARRR、八角分析法2.3.1 AARRR2.3.2 游戏化用户增长策略-八角模型本文来源,为接地气…

基于RMI技术的数据库操作中间件设计 综合实践报告

前言 1.1 实践目的和要求 为了将理论用于实践,巩固所学知识,提高自己发现问题并用所学知识分析问题和解决问题的能力,锻炼自己的工作能力,适应社会能力,自我管理能力,了解目前软件的应用情况,需求情况,发展方向及前景。 要求: 要求在实习过程中认真学习技术知…

[疑难杂症2023-002]不就是Move一个文件吗,怎么会有这么多坑呢?

本文由Markdown语法编辑器编辑完成. 1. 前言: 近期在项目中遇到一个需求. 背景是,在一个QT封装的C/S架构的软件中,一个报告的预览页面,是由QT封装了QWebWidget, 里面放着一个网页.这个网页通过调用一定的…

论文解读 TOOD: Task-aligned One-stage Object Detection

github: https://github.com/fcjian/TOOD paper: https://arxiv.org/pdf/2108.07755.pdf 关键点 思考起点 指出传统one-stage算法在在优化目标分类和定位问题中的不足(DecoupledHead分离了分类任务和回归任务[yolox表示解耦这是优点,yolo1-5都是使用y…

[oeasy]python0054_三引号_原样显示字符串_triple_quoted

三引号 回忆上次内容 \ 首先是转义字符 可以 和别的字符 构成转义序列 \a是 ␇ (bell),\b 退回一格\t 水平制表符\v、\f LineFeed\\ 输出 \\" 输出 "\ 输出 \xhh 通过 16 进制数值转义\nnn 通过 8 进制数值转义\ 还是 续行字符 放在 行尾可以让 下一行和本行 连成一…

Linux2

4.Linux的文件系统4.1.linux中所有的一切都是文件万事万物皆文件windows是盘符,linux是树windows是\(翘)linux是/4.2.查找文件方式:1. 绝对路径 有/2. 相对路径 4.3.挂载:执行挂载命令:mount 设备文件名 挂…

CentOS 安装 MinIO Server

1) 下载 MinIO 服务 wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod x minio sudo mv minio /usr/local/bin/ 2) 创建systemd服务文件 sudo vim /etc/systemd/system/minio.service [Unit] DescriptionMinIO Documentationhttps:…

C语言文件操作(2) “流”的拓展介绍

tips 1. 打开一个文件 -> 内存里面就会创建一个对应关联的文件信息区 -> 文件信息区其实就是一个FILE类型的结构体 -> 各个结构体成员记录了该文件的种种信息 -> 结构体(文件信息区)由FILE* 结构体指针来维护 -> 有了指针,一切都好说了 2. 使用文…

文献阅读(45)——使用自监督学习对AMD分类

使用自监督学习对AMD分类 文章目录使用自监督学习对AMD分类一、简介二、先验知识三、文章核心内容四、使用方法1. 非参数化实例歧视(中文翻译过来总是奇奇怪怪,其实就是NPID)a 挑战b 解决方案c 转化!2. 数据集3. 数据预处理五、结…

Python之拉盖尔多项式

文章目录拉盖尔多项式简介微分与积分求根和反演采样和拟合拉盖尔多项式简介 拉盖尔多项式是拉盖尔方程的标准解,但其更著名的应用是薛定谔方程在解氢原子的时候,其径向函数最后要乘上一个Ln−l−12l1(2rnaμ)L^{2l1}_{n-l-1}(\frac{2r}{na_\mu})Ln−l−…

TCP/IP应用层常见协议总结

TCP/IP应用层常见协议总结1.HTTP:超文本传输协议2.SMTP:简单邮件传输(发送)协议3.POP3/IMAP:邮件接收的协议4.FTP:文件传输协议5.Telnet:远程登陆协议6.SSH:安全的网络传输协议1.HTTP:超文本传输协议 超文本传输协议 主要是为 Web 浏览器与 Web 服务器之间的通信而设计的。当我…

浏览器的通信能力

用户代理 浏览器可以代替用户完成http请求,代替用户解析响应结果,所以我们称之为:用户代理 user agent 在网络层面,对于前端开发者,必须要知道浏览器拥有的两大核心能力 自动发出请求的能力自动解析响应的能力 自动…

『51单片机』串口通信配置

🚩write in front🚩 🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🏅2021年度博客之星物联网与嵌入式开发TOP5&#xff5…

技术分享 | 黑盒测试方法论—因果图

因果图法是一种利用图解法分析输入与输出的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 因果图法比较适合输入条件比较多的情况,可以测试所有的输入条件的排列组合。因果图的 “ 因 ” 就是输入条件&…