yolov9,使用自定义的数据训练推理
[源码 🐋]( GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information)
[论文 📘](arxiv.org/pdf/2402.13616.pdf)
论文摘要:本文介绍了一种新的目标检测算法YOLOv9,该算法利用可编程梯度信息来学习用户想要学习的内容。通过在网络的反向传播过程中引入可编程梯度信息,我们可以指导网络学习特定的目标,从而提高检测的准确性和效率。
1. 源码下载
- git clone GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information
- cd yolov9
2. 配置
依赖库:torch
3. Data
YOLO format.
# class_id center_x center_y bbox_width bbox_height
Organize your directory of custom dataset as follows:
custom_dataset:/data/custom_data
├── images
│ ├── train
│ │ ├── train0.jpg
│ │ └── train1.jpg
│ └── test
│ ├── test0.jpg
│ └── test1.jpg
└── labels
├── train
│ ├── train0.txt
│ └── train1.txt
└── test
├── test0.txt
└── test1.txt
然后生成图像索引的txt文件
- Train
-
# python train.py --workers 8 --device 0 --batch 32 --data data/coco.yaml --img 640 --cfg models/detect/gelan-c.yaml --weights '' --name gelan-c --hyp hyp.scratch-high.yaml --min-items 0 --epochs 500 --close-mosaic 15
- # train gelan models
-
python train_dual.py --data data/coco_wj.yaml --img 640 --cfg models/detect/yolov9-c.yaml --weights '' --name yolov9-c --hyp hyp.scratch-high.yaml --min-items 0 --close-mosaic 15
- # train yolov9 models
-
- Evaluation
-
# evaluate converted yolov9 models python val.py --data data/coco.yaml --img 640 --batch 32 --conf 0.001 --iou 0.7 --device 0 --weights './yolov9-c-converted.pt' --save-json --name yolov9_c_c_640_val# evaluate yolov9 models #python val_dual.py --data data/coco.yaml --img 640 --batch 32 --conf 0.001 --iou 0.7 --device 0 --weights './yolov9-c.pt' --save-json --name yolov9_c_640_val# evaluate gelan models # python val.py --data data/coco.yaml --img 640 --batch 32 --conf 0.001 --iou 0.7 --device 0 --weights './gelan-c.pt' --save-json --name gelan_c_640_val
-
- Inference
- Python detect.py
- 下载权重yolov9-c.pt,并放在yolov9下,然后在代码中指定权重和图片
- 错误:nms:官方解释The first prediction is from aux branch, so choose second prediction.
-
# prediction = prediction[0] # select only inference outputprediction = prediction[0][1] # zqj20240226 prediction[0][0]两个结果不同
- Python detect.py
- Deploy
- 转onnx
- 使用第三方的转换+NMSPlugin
- 使用自带的export.py,可以生成onnx,但是转engine报错“/weight.28 ****”
- 转onnx
[博客 📰](https://github.com/thaitc-hust/yolov9-tensorrt/blob/main/torch2onnx.py)
Torch2onnx.py
add_nms_plugins.py # add BatchedNMSDynamic_TRT
也可以将这两个文件拷贝到yolov9下,生成onnx和onnx-nms
2. 转engine:trtexec
- 测试结果
- 耗时统计-640-batch4-rtx3060
显存1877MB cpu负载86% 内存12.1% 耗时57ms
未完待续
相关文章:

yolov9,使用自定义的数据训练推理
[源码 🐋]( GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information) [论文 📘](arxiv.org/pdf/2402.13616.pdf) 论文摘要:本文介绍了一种新的目标检测…...

企业文件图纸加密有哪些?图纸文件加密防泄密软件如何选?
在现在的市场发展中,对于企业的图纸文件安全问题越来越重视,如设计图纸,重要文件等,一旦泄漏就会给企业造成巨大的经济损失。所以对企业管理者来讲,如何才能选择一款好用的适合本企业的图纸文件加密软件是非常重要的&a…...

phpldapadmin This base cannot be created with PLA
phpldapadmin This base cannot be created with PLA 1、问题描述2、问题分析3、解决方法:创建根节点 1、问题描述 安装phpldapadmin参考链接: https://blog.csdn.net/OceanWaves1993/article/details/136048686?spm1001.2014.3001.5501 刚安装完成phpldapadmin&…...

如何开发自己的npm包并上传到npm官网可以下载
目录 搭建文件结构 开始编写 发布到npm 如何下载我们发布的npm包 搭建文件结构 先创建新文件夹,按照下面的样子布局 .├── README.md //说明文档 ├── index.js //主入口 ├── lib //功能文件 └── tests //测试用例 然后再此根目录下初始化package包 npm init…...

Linux Shell脚本练习(一)
一、 Linux下执行Shell脚本的方式: 1、用shell程序执行脚本: a、根据你的shell脚本的类型,选择shell程序,常用的有sh,bash,tcsh等 b、程序的第一行#!/bin/bash里面指明了shell类型的,比如#!/…...

面试数据库篇(mysql)- 11主从同步
原理 MySQL主从复制的核心就是二进制日志 二进制日志(BINLOG)记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但不包括数据查询(SELECT、SHOW)语句。 复…...

Python中的os库
一.OS库简介 OS是Operating System的简写,即操作系统。 OS库是一个操作系统接口模块,提供一些方便使用操作系统相关功能的函数。 二.OS库常用函数 2.1文件和目录 2.1.1:os.getcwd() 作用:返回当前工作目录,结果是…...
C++ | 使用正则表达式匹配特定形式的字符串
C | 使用正则表达式匹配特定形式的字符串 在 C 中,可以使用 <regex> 头文件提供的正则表达式库来对特定形式的字符串进行匹配操作。 常用的正则表达式模式语法 普通字符: 普通字符会按照其字面意义进行匹配,例如 a 会匹配字符 a。 转…...

计算机组成原理-第一/二章 概述和数据的表示和运算【期末复习|考研复习】
文章目录 前言第一章 计算机组成原理 概述及各种码1.1 计算机硬件的基本组成1.1.1 存储器1.1.2 运算器1.1.3 控制器 1.2 计算机的工作过程1.3 计算机的性能指标1.4 各个字长区别与联系 第二章 数据的表示与运算2.1 ASCII码2.2 各种码2.3 浮点数 总结 前言 给大家整理了一下计算…...

基于transform的scale属性,动态缩放整个页面,实现数据可视化大屏自适应,保持比例不变形,满足不同分辨率的需求
文章目录 一、需求背景:二、需求分析:三、选择方案:四、实现代码:五、效果预览:六、封装组件: 一、需求背景: 数据可视化大屏是一种将数据、信息和可视化效果集中展示在一块或多块大屏幕上的技…...

Linux第67步_linux字符设备驱动_注册和注销
1、字符设备注册与注销的函数原型” /*字符设备注册的函数原型*/ static inline int register_chrdev(unsigned int major,\ const char *name, \ const struct file_operations *fops) /* major:主设备号,Limnux下每个设备都有一个设备号,设备号分…...
设计模式:软件工程的艺术
引言 设计模式是软件工程中一种解决常见问题的经验总结,是一套可复用的设计思想。它们提供了在特定情境下的解决方案,有助于构建可维护、灵活、可复用、可扩展的软件系统。设计模式是对软件设计中通用问题的抽象,提供了一种共享的语言和思维…...
试题 算法训练 数的潜能
资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 将一个数N分为多个正整数之和,即Na1a2a3…ak,定义Ma1*a2*a3*…*ak为N的潜能。 给定N,…...

OpenAI Triton 入门教程
文章目录 Triton 简介背景Triton 与 CUDA 的关系 Triton 开发样例样例一:Triton vector addition 算子Triton kernel 实现kernel 函数封装函数调用性能测试 样例二:融合 Softmax 算子动机Triton kernel 实现kernel 封装单元测试性能测试 样例三ÿ…...
【flask+python】利用魔术方法,更优雅的封装model类
定义model # Time :2024-2024/2/27-14:49 # Email :514422868qq.com # Author :Justin # file :user.py # Software :01-fishbook from app.model.base import Base from sqlalchemy import Column, Integer, SmallInteger, String from werkzeug.security …...
Qt程序设计-报警灯自定义控件实例
本文讲解Qt报警灯自定义控件实例。 实现功能 设置边框和内部颜色。 设置是否闪烁点亮。 添加的报警灯类 #ifndef LIGHT_H #define LIGHT_H#include <QWidget> #include <QDebug> #include <QPainter> #include <QTimer>class Light : public QWid…...

Linux之定时任务02
一、什么是crond Linux 中 crond 就是定时任务,即根据 crond 指定的时间,由系统按指定的时间,周期性,自动触发的事件。 crond 服务在默认的情况下会每分钟检查系统中是否有定时任务,如果有且符合触发条件,…...
PHP堆栈+errLog定位
调用堆栈(Call Stack)是一个记录了程序在运行时所有活动子例程的栈结构。它以函数调用的方式描述了程序的执行流程和调用关系。 在PHP中,我们可以通过打印PHP调用堆栈来辅助调试和定位代码中的问题。本文将介绍如何在PHP中打印调用堆栈&…...
【大数据】Flink SQL 语法篇(七):Lookup Join、Array Expansion、Table Function
《Flink SQL 语法篇》系列,共包含以下 10 篇文章: Flink SQL 语法篇(一):CREATEFlink SQL 语法篇(二):WITH、SELECT & WHERE、SELECT DISTINCTFlink SQL 语法篇(三&…...

【云原生】Spring Cloud Gateway的底层原理与实践方法探究
🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《Spring 狂野之旅:从入门到入魔》 🚀 本…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...