YOLO算法改进Backbone系列之:PVTv2

news2024/9/17 7:29:26

摘要:最近,Transformer在计算机视觉方面取得了令人鼓舞的进展。在本研究中,本文通过增加(1)线性复杂度注意层、(2)重叠贴片嵌入和(3)卷积前馈网络三种设计,改进了原始的金字塔视觉转换器(PVT v1),提出了新的基线。通过这些改进,PVT v2将PVT v1的计算复杂度降为线性,并在分类、检测和分割等基本视觉任务上实现了显著改进。值得注意的是,PVT v2与Swin Transformer等最近的作品相比,取得了相当或更好的性能。本文希望这项工作将促进最先进的变压器在计算机视觉的研究。

相较于PVT,PVTv2增加了三部分 (1) Linear complexity attention layer, (2) Overlapping patch embedding (3) Convolutional feed-forward network.
PVT存在的三点限制:
(1)与ViT类似,当处理高分辨率输入时,PVT v1的计算复杂度相对较大
(2)PVT v1将图像视为非重叠块序列,这在一定程度上失去图像的局部连续
(3)PVT v1中的位置编码是固定大小,这对于任意大小的处理图像是不灵活的

Linear Spatial Reduction Attention (Linear SRA)

在这里插入图片描述

首先为了降低注意操作引起的高计算成本,本文提出了线性空间注意(Linear SRA)层,与使用卷积进行空间约简的SRA不同,线性SRA使用平均池化将空间维数(即h×w)降低到固定的大小(即P×P)。因此线性SRA就像卷积层一样具有线性计算和内存成本

Overlapping Patch Embedding (OPE)

在这里插入图片描述

其次,为了对局部连续性信息进行建模,本文利用重叠斑块嵌入技术对图像进行标记化。本文扩大了补丁窗口,使相邻的窗口重叠了一半的区域,并用零填充特征图以保持分辨率。在这项工作中,本文使用卷积与零的padding来实现重叠的补丁嵌入。具体来说,给定大小为h×w×c的输入,本文将其与S的stride、2S−1的核kernel、S−1的padding进行卷积

Convolutional Feed-Forward Network

在这里插入图片描述

第三本文删除了固定大小的位置编码,并在PVT中引入零填充位置编码,本文在前馈网络中第一个全连接层和GELU之间添加了3×3的深度可分离卷积。 在PVT V1中,位置编码是使用nn.Parameter生成一组可学习的位置编码,在PVT V2中,直接删除了位置编码(作者直接删除了位置编码,在MLP层中添加了深度卷积,用0进行权重初始化)。

PVTv2变体的具体参数配置如下表所示:

在这里插入图片描述

在YOLOv5项目中添加PVTv2模型作为Backbone使用的教程:

(1)将YOLOv5项目的models/yolo.py修改parse_model函数以及BaseModel的_forward_once函数
在这里插入图片描述
在这里插入图片描述

(2)在models/backbone(新建)文件下新建pvtv2.py,添加如下的代码:

在这里插入图片描述

(3)在models/yolo.py导入模型并在parse_model函数中修改如下:
在这里插入图片描述

(4)在model下面新建配置文件:yolov5_pvtv2.yaml
在这里插入图片描述

(5)运行验证:在models/yolo.py文件指定–cfg参数为新建的yolov5_pvtv2.yaml

在这里插入图片描述

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

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

相关文章

机器学习笔记 YOLOv9模型相关论文简读

一、YOLOv9简述 自 2015 年 Yolov1 推出以来,已经出现了多个版本。 基于Darknet的YOLOv2、YOLOv3和YOLOv4 YOLOv5 YOLOv8 基于 Ultralytics。 SCALED-YOLOv4 使用 Pytorch 而不是 Darknet。 YOLOR是YOLOv4的改进。 YOLOX是YOLOv3的改进。 YOLOv6专注于工业应用。 YOLOv7 来自 …

iOS消息转发流程

当向Objc对象发送消息时,如果找到对象对应的方法,就会进入消息转发流程,给开发者提供一些最后的机会处理消息无法发送问题,以免出现程序崩溃。 1. 回调对象的resolveInstanceMethod方法,在这个方法中,允许开…

【golang】go module依赖的git tag被覆盖 如何处理 | 因测试产生大量的git tag 如何清除 最佳实践

一、场景 当我们把本地和远程git仓库的 tag全部删除,我们另外的项目依赖于这个被删除tag无法更新版本 如何处理? 如上图: 这里我创建了一个 v0.0.1 的tag,然后删除了这个tag,然后又创建了一个新的 v0.0.1的tag&#xf…

【图论】【并集查找】【C++算法】928. 尽量减少恶意软件的传播 II

作者推荐 动态规划的时间复杂度优化 涉及知识点 图论 并集查找 LeetCode928. 尽量减少恶意软件的传播 II 给定一个由 n 个节点组成的网络,用 n x n 个邻接矩阵 graph 表示。在节点网络中,只有当 graph[i][j] 1 时,节点 i 能够直接连接到…

(每日持续更新)jdk api之PipedOutputStream基础、应用、实战

博主18年的互联网软件开发经验,从一名程序员小白逐步成为了一名架构师,我想通过平台将经验分享给大家,因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验,晚上进行用心精简、整理、总结、定稿&…

7. 构建简单 IPv6 网络

7.1 实验介绍 7.1.1 关于本实验 IPv6(Internet Protocol Version 6)也被称为IPng(IP Next Generation)。它是Internet工程任务组IETF(Internet Engineering Task Force)设计的一套规范,是IPv4…

Android minigbm框架普法

Android minigbm框架普法 引言 假设存在这么一个场景,我的GPU的上层实现走的不是标准的Mesa接口,且GPU也没有提专门配套的gralloc和hwcompoer实现。那么我们的Android要怎么使用到EGL和GLES库呢,并且此GPU驱动是支持drm实现的,也有…

Docker中使用Tomcat并部署war工程

系列文章目录 文章目录 系列文章目录前言一、构建镜像二、运行镜像三、列出正在运行的容器四、停止正在运行的容器 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文…

蓝桥杯Python B组练习——python复习2

蓝桥杯Python B组练习——python复习2 一、简介 复习python,参考书《Python编程从入门到实践》,[美]Eric Mathes著。前一部分见专栏——蓝桥杯Python B组练习 这一部分不全,不想写了 二、字典 1.一个简单的字典 来看一个游戏&#xff0…

Vue2:用node+express写一个轻量级的后端服务

1、桌面创建demo文件夹 进入demo,执行如下命令 npm init输入名称: test_server然后一路回车 2、安装express框架 npm i express3、新建server.js 在demo文件夹中,新建server.js const express require(express) const app express()…

系统集成Prometheus+Grafana

根据产品需求在自己的系统中添加一个系统监控的页面,其中有主机信息的显示,也有一些业务信息的显示。调研后的方案是 主机信息通过Prometheus采集和存储,业务信息通过自己系统的调度任务统计后存储在Mysql中,使用Grafana对接Prome…

LeetCode383. 赎金信(C++)

LeetCode383. 赎金信 题目链接代码 题目链接 https://leetcode.cn/problems/ransom-note/description/ 代码 class Solution { public:bool canConstruct(string ransomNote, string magazine) {int record[26] {0};if(ransomNote.size() > magazine.size()) return fa…

EasyRecovery2024国产免费的手机数据恢复软件

一、功能介绍 EasyRecovery手机数据恢复软件是一款功能全面的数据恢复工具,专为移动设备设计。其主要功能包括: 文件恢复:能够恢复手机中因各种原因丢失的文件,如照片、视频、音频、文档等。深度扫描:通过深度扫描手…

element-plus+vue3表单含图片(可预览)(线上图片)

一、要实现的效果: 二、如果期间出现这样的效果(表格穿透过来了),加上了这行代码就可以了: preview-teleported“true” 如果仅测试用,建议使用线上图片链接的形式,免得本地地址不生效&#xf…

Leetcoder Day25| 回溯part05:子集+排列

491.递增子序列 给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。 示例: 输入:[4, 7, 6, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [6, 7], [7,7], [4,7,7]] 说明: 给定数组的长度不会超过15。数组中的整数范围是 [-100,100]。给定数…

2.模拟问题——1.输出梯形

补充:每行需要加两颗星 这种类型题目难度不大,一般是签到题。 规律总结 第一行是h个*;(h2*0)第二行是h2个*;(h2*1)…第i行是h2*(i-1)个*第h行是h2*(h-1)个* 注意,第h行表示梯形的底边长度&a…

Highest Price in Supply Chain (25)

1、题目: A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone involved in moving a product from supplier to customer. Starting …

MYSQL--锁机制*

一.对锁机制的大概介绍: 1.大概的来说,MYSQL当中的锁实际上就是合理的管理多个服务器对于同一个共享资源的使用,是计算机协调多个进程或者是线程并发访问某一资源的机制(避免争抢资源的现象发生) 2.在数据库当中,数据是一种可以供许多的用户进行共享使用的资源,如何保证数据并发…

pclpy 点云法线

pclpy 点云法线 一、算法原理1.理论入门2.选择正确的比例 二、代码三、结果四、相关数据 一、算法原理 表面法线是几何表面的重要属性,在许多领域(例如计算机图形应用程序)中大量使用,以应用正确的光源来生成阴影和其他视觉效果。…

先进电机技术 —— 通用变频器

一、变频器名称定义 通用变频器(Variable Frequency Drive, VFD)是一种广泛应用于工业控制领域的电力电子设备,其主要功能是改变供电电源的频率和电压,以达到对交流电动机转速进行精确、连续调节的目的。通用变频器通常具备以下特…