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

【YOLO改进】换遍MMDET主干网络之Pyramid Vision Transformerv2(PVTv2)(基于MMYOLO)

Pyramid Vision Transformer v2(PVTv2)

Pyramid Vision Transformer v2(PVTv2)是在PVTv1的基础上进行改进的一种深度学习模型,它同样结合了Transformer架构和金字塔结构,旨在提供更强大的特征表示和更好的性能。

PVTv2的主要改进包括:

  1. 降低计算复杂度:通过引入线性复杂度注意层(Linear Complexity Attention Layer),PVTv2将PVTv1的计算复杂度从二次降低到线性,使得模型在处理高分辨率输入时更加高效。
  2. 重叠补丁嵌入:PVTv2采用了重叠补丁嵌入(Overlapping Patch Embedding)来替代PVTv1中的非重叠补丁嵌入。这种方法可以更好地保留图像的局部连续性,提高模型的性能。
  3. 卷积前馈网络:在PVTv2中,卷积前馈网络(Convolutional Feed-Forward Network)被用来替代PVTv1中的全连接前馈网络。这种方法可以引入卷积的局部性和层次性,进一步提高模型的性能。

通过这些改进,PVTv2在多个基本视觉任务(如分类、检测和分割)上实现了显著的性能提升,并且在参数量和计算量方面也具有更好的优化。

PVTv2作为YOLO主干网络的可行性分析

  1. 性能优势:PVTv2作为PVTv1的改进版本,具有更强的特征表达能力和更高的性能。将其作为YOLO的主干网络,可以使得YOLO能够更有效地提取图像中的特征信息,从而提高目标检测的精度和效率。特别是在处理多尺度目标时,PVTv2的金字塔结构和线性复杂度注意层能够提供更丰富的特征信息,进一步提高模型的性能。
  2. 兼容性:尽管PVTv2主要基于Transformer架构,但其金字塔结构的设计使其仍然可以与YOLO的检测头进行有效地融合。通过合理的网络结构和参数设置,可以将PVTv2作为YOLO的主干网络来使用,并形成完整的目标检测模型。
  3. 优化与改进:在实际应用中,可以根据具体任务需求对PVTv2进行进一步的优化和改进。例如,可以通过调整网络结构、深度、宽度等参数来平衡模型的性能和速度;也可以采用一些先进的优化技术(如剪枝、量化等)来减小模型的参数量和计算量,进一步提高模型的实时性和部署能力。

替换Pyramid Vision Transformerv2(PVTv2)(基于MMYOLO)

OpenMMLab 2.0 体系中 MMYOLO、MMDetection、MMClassification、MMSelfsup 中的模型注册表都继承自 MMEngine 中的根注册表,允许这些 OpenMMLab 开源库直接使用彼此已经实现的模块。 因此用户可以在 MMYOLO 中使用来自 MMDetection、MMClassification、MMSelfsup 的主干网络,而无需重新实现。

假设想将'Pyramid Vision Transformerv2(PVTv2)'作为 'yolov5' 的主干网络,则配置文件如下:

_base_ = './yolov5_s-v61_syncbn_8xb16-300e_coco.py'deepen_factor = _base_.deepen_factor
widen_factor = 1.0
channels = [64, 160, 256]
checkpoint_file = 'https://github.com/whai362/PVT/releases/download/v2/pvt_v2_b0.pth'  #model = dict(backbone=dict(_delete_=True, # 将 _base_ 中关于 backbone 的字段删除type='mmdet.PyramidVisionTransformerV2', # 使用 mmdet 中的 PyramidVisionTransformerV2embed_dims=32,num_layers=[2, 2, 2, 2],out_indices =(1, 2, 3), #设置PyramidVisionTransformerv2输出的stage,这里设置为1,2,3,默认为(0,1,2,3)init_cfg=dict(type='Pretrained', checkpoint=checkpoint_file)),neck=dict(type='YOLOv5PAFPN',deepen_factor=deepen_factor,widen_factor=widen_factor,in_channels=channels, # 注意:PyramidVisionTransformer 输出的3个通道是 [64, 160, 256],和原先的 yolov5-s neck 不匹配,需要更改out_channels=channels),bbox_head=dict(type='YOLOv5Head',head_module=dict(type='YOLOv5HeadModule',in_channels=channels, # head 部分输入通道也要做相应更改widen_factor=widen_factor))
)

相关文章:

【YOLO改进】换遍MMDET主干网络之Pyramid Vision Transformerv2(PVTv2)(基于MMYOLO)

Pyramid Vision Transformer v2(PVTv2) Pyramid Vision Transformer v2(PVTv2)是在PVTv1的基础上进行改进的一种深度学习模型,它同样结合了Transformer架构和金字塔结构,旨在提供更强大的特征表示和更好的…...

【漏洞复现】RuvarOA协同办公平台 WorkFlow接口处存在SQL注入

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…...

Kubelet containerd 管理命令 ctr常用操作

镜像常用操作 1. 拉取镜像 ctr images pull docker.io/library/nginx:alpine 指定平台 --all-platforms:所有平台(amd64 、arm、386 、ppc64le 等),不加的话下载当前平台架构 --platform:指定linux/amd64平台 ctr …...

求一个B站屏蔽竖屏视频的脚本

求一个B站屏蔽竖屏视频的脚本 现在B站竖屏竖屏越来越多了,手机还好点给我一个按钮,选择不喜欢,但是我一般都用网页版看视屏,网页版不给我选择不喜欢的按钮,目测大概1/4到1/3的视频都是竖屏视频。 目前网页版唯一的进…...

用Github+HUGO搭建博客的经验教训

1. 创建两个Github仓库 一个是博客源仓库(private),用于储存所有博客源文件(Markdown文件和图片文件等)。 另一个是GitHub Pages仓库(public),用于储存由 Hugo 从Markdown 文件生成的…...

MongoDB4.4操作命令

show dbs; // 显示所有数据的列表use mvx; //如果数据库不存在,则创建数据库,否则切换到指定数据库。db; // 查看当前数据库 db.mvx.insertOne({username: root}); // 插入数据 当你插入一些文档时,MongoDB 会自动创建集 db.dropDatabase(); …...

共享旅游革命:千益畅行卡的优势揭秘

在共享经济的快速发展中,共享旅游创业已成为许多创新者和投资者关注的重点。特别是千益畅行,作为共享旅游行业的新秀,其商业模型和经营策略引起了市场的高度讨论。然而,对于这个公司是否仅仅是新一轮的市场“收割者”,…...

【doghead】mac: clion2024.1启动崩溃

doghead 是在mac 下跑各种数据的因此,在配置了环境后, 进行mac 构建 【doghead】mac构建,首先对mac的clion进行安装 mac 下安装clion2024.1 之前可能装过crack的clion教育优惠的clion跟之前的应该不同clion2024.1 在mac的新系统下崩溃google下竟然没有…...

企业合规视角下的菜鸟网络与拼多多不正当竞争案

近日,浙江省高院对备受瞩目的“菜鸟网络诉拼多多不正当竞争案”做出终审判决。该案件从2022年初发酵至今,终于以法院驳回拼多多上诉、维持一审判决而告一段落。此案不仅在法律层面引起广泛关注,更在企业合规方面提供了重要的案例参考。 根据判…...

如何在Java中处理日期和时间?介绍Java 8中的时间API

在 Java 中处理日期和时间,您可以使用 Java 8 引入的新的日期时间 API,也被称为 JSR-310,位于 java.time 包中。这个新的 API 解决了旧的 java.util.Date 类和 java.util.Calendar 类的线程安全和设计问题,并提供了一组丰富的工具…...

24数维杯ABC题思路已更新!!!!

24数维杯A题保姆级思路+配套代码+后续参考论文 简单麦麦https://www.jdmm.cc/file/2710639/ 24数维杯B题保姆级思路+可执行代码+后续参考论文 简单麦麦https://www.jdmm.cc/file/2710640/ 24数维杯C题保姆级思路+可执…...

Fastapi+docker+tortoise-orm+celery

因为项目是后期引入celery,所以导致构建docker的时候只有fastapi的项目,celery的重启比较麻烦 1.docker安装celery pip install celery安装celery的时候注意python版本与celery版本的适配,有些celery的版本不支持python的版本,具体的版本请看…...

springBoot笔记五(pom.xml\yml)

1-pom.xml里的start表示会安装已经设置好的相关版本的依赖,起步依赖。 2-optional设置为ture,显示可选择的依赖 3-修改端口server.port9999 4-yml文件书写 (1)空格代表分级,值前面要写空格 (2)-…...

三生随记——耳机里的诅咒

深夜,城市的灯火已经渐渐熄灭,只剩下一轮明月孤独地悬挂在天空中,洒下银白色的光芒。在这样一个寂静的夜晚,李浩独自一人坐在昏暗的房间里,耳机紧紧贴在耳边,他正在观看一部知名的恐怖电影。 电影里的恐怖情…...

嵌入式学习<2>:EXTI、ADC、NVIC和AFIO

嵌入式学习_part2 本部分笔记用于学习记录,笔记源头 >>b站江科大_STM32入门教程_EXTI EXTI、ADC、NVIC和AFIO 开发环境:keil MDK、STM32F103C8T6 1 )EXTI STM32F10xxx参考手册(中文)-> 中断与事件 ->…...

Nginx - server、listen、server_name和多服务请求处理(三)

server 上下文 server { }server指令用于配置一个虚拟服务。listen指令描述了本服务可接受链接的所有地址和端口,server_name指令列举了所有服务的名字,例如 server {listen 80;server_name example.org www.example.org; }listen 指令 Syntax: …...

C语言/数据结构——(相交链表)

一.前言 今天在力扣上刷到了一道题,想着和大家一起分享一下这道题——相交链表https://leetcode.cn/problems/intersection-of-two-linked-lists废话不多说,让我们开始今天的分享吧。 二.正文 1.1题目描述 是不是感觉好长,我也这么觉得。哈…...

【二叉树算法题记录】二叉树的所有路径,路径总和——回溯

目录 257. 二叉树的所有路径题目描述题目分析cpp代码 112. 路径总和题目描述题目分析cpp代码 257. 二叉树的所有路径 题目描述 给你一个二叉树的根节点root ,按任意顺序,返回所有从根节点到叶子节点的路径。 题目分析 其实从根节点往下走&#xff0c…...

verilog基础语法之数据类型

verilog基础语法之数据类型 1、 wire类型2、 reg类型3、向量 Verilog最常用的数据类型有两种:线网(wire)和寄存器(reg)。其中,wire 类型表示硬件单元之间的物理连线,reg用来表示存储单元。 1、…...

ansible部署lamp架构

搭建参考:ansible批量运维管理-CSDN博客 定义ansible主机清单 [rootansible-server ~]# vim /etc/hosts 192.168.200.129 host01 192.168.200.130 host02 [rootansible-server ~]# vim /etc/ansible/hosts [webserver] host01 host02 在ansible端编写index.html…...

如何从零开始构建中国象棋AlphaZero AI:完整实战指南与进阶技巧

如何从零开始构建中国象棋AlphaZero AI:完整实战指南与进阶技巧 【免费下载链接】ChineseChess-AlphaZero Implement AlphaZero/AlphaGo Zero methods on Chinese chess. 项目地址: https://gitcode.com/gh_mirrors/ch/ChineseChess-AlphaZero 想要打造一个能…...

终极指南:如何从碧蓝航线中提取Live2D角色资源

终极指南:如何从碧蓝航线中提取Live2D角色资源 【免费下载链接】AzurLaneLive2DExtract OBSOLETE - see readme / 碧蓝航线Live2D提取 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneLive2DExtract 碧蓝航线Live2D提取工具是一个专门用于从Unity游戏…...

一文讲清楚 OpenClaw 是什么,以及 Windows 下的部署

OpenClaw 到底是什么1. 它在系统里干的事:接入层 运行时管理很多人第一次看到 OpenClaw,会把它当成“一个聊天 UI”。更工程化的视角是:它负责把外部请求接进来,并把后面的执行系统跑起来、管起来。接入层:把外部入口…...

Phi-3-mini-128k-instruct部署教程:基于vLLM的GPU显存优化方案(A10/A100实测)

Phi-3-mini-128k-instruct部署教程:基于vLLM的GPU显存优化方案(A10/A100实测) 1. 开篇:为什么选择Phi-3-mini-128k-instruct? 如果你正在寻找一个既轻量又强大的文本生成模型,那么Phi-3-mini-128k-instru…...

开箱即用体验:Z-Image-Turbo文生图镜像实战教程

开箱即用体验:Z-Image-Turbo文生图镜像实战教程 1. 为什么你需要这个镜像?一个真正“零等待”的AI绘图方案 如果你曾经尝试过部署一个AI文生图模型,大概率经历过这样的痛苦:花几个小时配置环境,然后面对几十GB的模型…...

CVPR2023新作DeSTSeg实战:用‘去噪学生’和‘分割网络’搞定工业缺陷检测

DeSTSeg工业缺陷检测实战:从顶会论文到产线落地的全链路指南 工业质检领域正经历一场静悄悄的革命——传统规则算法逐渐被基于深度学习的异常检测模型取代,但产线上随机出现的油渍、反光、机械划痕仍是算法工程师的噩梦。去年CVPR最佳论文提名作品DeSTSe…...

“COMSOL 18650电池组蛇形液冷模型:集总电池组耦合传热与流场模拟”

comsol18650电池组蛇形液冷模型 采用集总电池组耦合传热和流场 模拟圆柱形电池模组在外部液冷散热下的热性能,电性能等锂离子电池模组在快充场景下产生的热量能直接让表面温度突破60℃,这对电动车的安全性和寿命都是致命威胁。去年参与某车企电池包项目时…...

用Python玩转Iris数据集:从数据加载到可视化分析的完整指南

用Python玩转Iris数据集:从数据加载到可视化分析的完整指南 鸢尾花数据集(Iris dataset)是机器学习领域最经典的数据集之一,它就像编程界的"Hello World",是每个数据科学初学者必学的案例。这个数据集不仅结…...

springboot-vue基于web的智能家居控制应用的设计与实现

目录技术栈选择系统架构设计核心功能实现开发与测试计划关键代码示例(后端)前端交互示例部署方案项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术栈选择 后端采用Spring Boot框架,提供RE…...

uniapp安卓应用实现开机自启动的完整配置指南

1. 为什么需要开机自启动功能? 很多智能设备(如工业平板、广告机、自助终端)都需要在通电后立即运行指定应用。比如商场的导购系统、工厂的生产看板、医院的叫号终端,都需要保证设备重启后业务系统能自动恢复。传统方案需要人工点…...