YOLO v9训练自己数据集

原以为RT-DETR可以真的干翻YOLO家族,结果,!!!!

究竟能否让卷积神经网络重获新生?

1.数据准备

代码地址:https://github.com/WongKinYiu/yolov9

不能科学上网的评论区留言

数据集:东北大学缺陷检测数据集(6类别缺陷)

数据集百度网盘链接:链接:https://pan.baidu.com/s/1QktBnMcDdsQaT6JQXBjNPA 
提取码:cslw                 数据集有效期:一年

数据结构仍然采用VOC格式:

如果对制作数据集有问题,在下方留言或者看我以往YOLO v5的操作

另外,要在VOCdevkit文件夹下新建两个文件夹,分别为train.txt和val.txt(告知模型训练集和验证集所在的位置)。有需要的在之前yolov5的文件夹里提prepare_data.py或者留言评论区。

2.模型参数修改

1)找到models/detect/yolov9-c.yaml复制命名为yolov9_fast.yaml,修改nc为6

2)找到data/coco.yaml文件复制且命名为coco_fast.yaml。path就是数据集位置,train.txt和val.txt就是存放训练和验证数据集的相对路径

3)下载预训练文件

https://github.com/WongKinYiu/yolov9/releases/download/v0.1/yolov9-c-converted.pt

应该是对比s.pt的,但是官方还未放出预训练模型,所以先采用c.pty

在主目录下新建weights文件夹,将权重文件修改为yolov9c.pt放到下面

4)修改训练文件

进入train_dual.py中修改

       注意:项目中另一个文件train.py,是作者提出的另外一个模型 gelan,而train_dual才是yolov9模型。

3.训练

       我这里租用的是云服务器,因此要配置一些环境(如果是拿自己电脑训练的话,就可以跳过环境配置)。

其实也很简单:pip install -r requirements.txt     apt-get update   apt-get install libglib2.0-dev

之后开始训练:

给大家看看前十次的训练结果

咋们看看结果

再看看混淆矩阵

PR曲线,可以看出基本是吊打了之前的yolo

4.检测一下试试效果

先修改一下detect.py中的参数

1)这里需要将runs/train/exp5/weights中的best.pt复制到与detect.py同级目录下

2)在detect.py同级目录新建testfile文件夹,里面放你要检测的图像

3)修改coco128为coco_fast

好运行一下:python detect.py

这里就是一个坑,可能是原作者在写代码时留下的,看了官方提交的错误

进入utils/general.py的903行这样修改,是[0][1],而不是[0][0]

      这里对[0][0]和[0][1]比较有争论,但是经过尝试,这两种改法都行得通,但是在检测时间上存在区别 。大家对比斟酌

[0][0]下检测结果

[0][1]下检测结果

       从官方讨论区来看,应该[0][1]才是正解,其实代码刚发布难免会存在一些错误,大家可以等等看,官方应该很快就会更新。这是检测效果

这是验证的结果,可以看出这个检测效果非常不错

验证还是同样的,只不过执行的是python val_dual.py,修改参数和detect.py一样,大家自己修改,下图是验证结果

5.如果转载,请标明出处

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python】新手入门(2):避免将关键字作为标识符

Python新手入门(2):避免将关键字作为标识符 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1…

蓝桥杯-单片机组基础7-存储器映射扩展与PWM脉冲调制(附小蜜蜂课程代码)

蓝桥杯单片机组备赛指南请查看这篇文章:戳此跳转蓝桥杯备赛指南文章 本文章针对蓝桥杯-单片机组比赛开发板所写,代码可直接在比赛开发板上使用。 型号:国信天长4T开发板(绿板),芯片:IAP15F2K6…

【Python】matplotlib绘制图像时增加颜色条

一、需求 plt.imshow()是matplotlib中的一个函数,用于显示图像。它可以传递一个二维或三维数组作为image参数, 并将图像数据显示为图形,并对图像进行不同的可视化设置。 在显示的过程中,我们如果需要增加一个图例显示颜色条&…

Word转Excel怎么操作?4个实用技巧别忘了!

“我在处理一个Word文件时,需要将里面的一些表格内容转化为Excel。有什么比较好用的Word转Excel方法可以推荐吗?” 在互联网时代,数据处理和信息整合是工作中不可或缺的一部分。有时,我们可能会遇到需要将Word文档中的数据或内容转…

高性能深度学习库luminal

一、概述 Luminal是一个深度学习库,它使用可组合的编译器来实现高性能。 当前的机器学习库往往很庞大复杂,因为它们试图直接将高级操作映射到底层手工编写的内核上,并且专注于立刻执行(eager模式)。像PyTorch这样的库…

Java Web开发---复试Tips复习

(自用,摘录自各种文章和自己总结) 小知识点理解 Web Web应用开发主要是基于浏览器的应用程序开发。一个Web应用由多部分组成 Web应用程序编写完后,若想提供给外界访问,需要服务器来统一管理 常用的动态网页语言——…

react native中如何使用webView调用腾讯地图选点组件

react native中如何使用webView调用腾讯地图选点组件 效果示例图代码示例备注 效果示例图 代码示例 import React, {useEffect, useRef, useState} from react; import {Modal, StyleSheet} from react-native; import {pxToPd} from ../../common/js/device; import {WebView…

私有化部署自己的ChatGPT,免费开源的chatgpt-next-web搭建

随着AI的应用变广,各类AI程序已逐渐普及,尤其是在一些日常办公、学习等与撰写/翻译文稿密切相关的场景,大家都希望找到一个适合自己的稳定可靠的ChatGPT软件来使用。 ChatGPT-Next-Web就是一个很好的选择。它是一个Github上超人气的免费开源…

产品介绍二维码怎么做?多种内容组合二维码的方法

现在扫描二维码来获取内容的方式越来越常见,比如很多的产品介绍都会做成二维码图片后,在产品包装、传单、展板等印刷展示。而一般展示的内容类型多为文本、图片、视频等内容,那么这些类型的内容放入一个二维码中展示如何实现呢? …

白酒:制曲工艺的环境因素与微生物生态关系

在豪迈白酒的酿造过程中,制曲工艺是非常关键的一环。而环境因素与微生物生态关系对于制曲工艺的成功与否起着决定性的作用。云仓酒庄深谙此道,在制曲过程中注重环境因素的调控,并深入研究微生物生态关系,以提升豪迈白酒的品质和风…

Jmeter 命令启动 —— 动态参数化!

Jmeter命令行参数 1、在Linux中,使用非GUI的方式执行Jmeter。若需更改参数,必须先编辑jmx文件,找到对应变量进行修改,比较麻烦。 因此,可以参数化一些常用的变量,直接在Jmeter命令行进行设置 2、参数 -J…

draw.io设置矩形四个边的有无

第一步创建一个矩形 选中矩形,并编辑样式 然后在编辑框中输入 verticalLabelPositionbottom;verticalAligntop;html1;shapemxgraph.basic.rect;right1;将原来的内容覆盖掉 然后点击应用 然后发现 点击那四个设置就可以了

MyCAT集群——MyCAT2如何配置读写分离

先搭载MySQL一主两从 192.168.20.110MyCAT192.168.20.111Master192.168.20.112slave1192.168.20.113slave2 配置就不写了,比较基础,写一下步骤 1.进入mysql配置文件或者其子配置文件,添加server_id,开启gtidgtid_modeON,enforce-gtid-cons…

智慧公厕:改变城市公共卫生管理的未来

现代城市发展快速,人口不断增加,公共卫生管理面临着严峻的挑战。传统公厕的建设、管理和使用模式已经无法满足日益提高的卫生与环保需求。然而,随着科技的进步与智能化的发展,智慧公厕正成为一种全新的解决方案,为城市…

(十六)【Jmeter】取样器(Sampler)之测试活动(Test Action)

简述 操作路径如下: JMeter中的测试活动取样器实际上并不是一个具体的取样器类型,而是一种对测试计划中的多个取样器进行组合和执行的活动。常常被用作定时器,在某个请求之后等待多长时间。 参数说明 Logical Action on Thread(在线程上的逻辑操作) Pause Duration(mil…

Python知识汇总

重要链接: matplotlib库:matplotlib — Matplotlib 3.5.1 documentation DataFrame库:DataFrame — pandas 2.2.1 documentation (pydata.org) Python Matplotlib 实现散点图、曲线图、箱状图、柱状图示例:Python Matplotlib 实…

计算机网络-网络安全(二)

1.应用层安全协议: S-HTTP或SHTTP(Sec HTTP),安全超文本传输协议,是HTTP扩展,使用TCP的80端口。HTTPS:HTTPSSL,使用TCP的443端口。和TLS(传输层安全标准)是双…

Linux conntrack和iptables技术解析

Linux虚拟文件系统管理技术 1. netfilter解析1.1 netfilter的基础原理1.2 netfilter的相关hook 2. conntrack解析2.1 conntrack的基础原理2.2 conntrack的表记录解析 3. iptables解析3.1 iptables基础原理3.2 融合conntrack表的iptables规则 4. 疑问和思考4.1 conntrack和iptab…

从零开始学单片机,该怎么入门?

从零开始学单片机,该怎么入门? 在开始前我分享下我的经历,我刚入行时遇到一个好公司和师父,给了我机会,一年时间从3k薪资涨到18k的, 我师父给了一些 电气工程师学习方法和资料,让我不断提升自己…

神经网络推理优化方法总结

🎀个人主页: https://zhangxiaoshu.blog.csdn.net 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️,如有错误敬请指正! 💕未来很长,值得我们全力奔赴更美好的生活&…