【yolov7】训练自己的数据集-实践笔记

【yolov7】训练自己的数据集-实践笔记

使用yolov7训练自己的数据集,以RSOD数据集为例,图像数量976,一共四类。
yolov7源码:https://github.com/WongKinYiu/yolov7

同时在该网址下载好预训练文件,直接放到yolov7-main/下
在这里插入图片描述

文章目录

    • 【yolov7】训练自己的数据集-实践笔记
      • 1.环境配置
      • 2.数据集准备
        • 测试
      • 3.训练
        • 3.1.修改配置参数
        • 3.2.debug
        • 3.3.训练可视化
      • 4. 测试
      • 5.预测

1.环境配置

2.数据集准备

前两步与yolov5相同,参考【yolov5】训练自己的数据集-实践笔记

测试

直接执行detect.py 会使用yolov7.pth对项目下路径inference/images中的图片进行预测,预测结果保存在runs/detect/exp/下

3.训练

若之前使用其他版本的yolo训练过数据集,建议先删除数据集下的train2017.cache 和 val2017.cache 文件

3.1.修改配置参数

修改train.py中的参数:
a. 修改epochs,batch–size,根据自己的配置来,若报内存溢出就把batch–size调小一点,一般为2的倍数,
workers默认值为8,设置小一点,否则容易发生内存不够问题

b. 修改weights为预训练文件路径,修改data为自己的数据集配置yaml文件路径,cfg为 cfg/training/yolov7.yaml。
在这里插入图片描述
或使用命令行:

python train.py --workers 4 --device 0 --batch-size 8 --data data/ROSD.yaml --img 640 640 --cfg cfg/training/yolov7.yaml --weights '' --name yolov7 --hyp data/hyp.scratch.p5.yaml

3.2.debug

(1) [x[‘name’] for x in response[‘assets’]] # release assets KeyError: ‘assets’
CalledProcessError: Command ‘git tag’ returned non-zero exit status 128
这个错误是使用预训练权重,但没有下载好文件,自动下载出错导致的,所以要注意下载好预训练权重。
在这里插入图片描述
(2)tag = subprocess.check_output(‘git tag’, shell=True).decode().split()[-1] IndexError: list index out
原因:权重文件路径写错了

3.3.训练可视化

终端执行命令

tensorboard --logdir runs/train/exp --port=8008

训练结果:
在这里插入图片描述

4. 测试

修改test.py的参数 weights为训练得到的权重路径runs/train/exp/weights/best.pt,修改batch, data。

或使用命令行

python test.py --data data/ROSD.yaml --img 640 --batch 8 --conf 0.001 --iou 0.65 --device 0 --weights runs/train/exp/weights/best.pt --name yolov7_640_val

得到测试结果:

模型参数:‘layers’, ‘parameters’, ‘gradients’, ‘GFLOPs’
精度参数:‘P’, ‘R’, ‘mAP50’, ‘mAP50-95’
速度参数: ms inference, ms NMS ,ms total per 640x640 image at batch-szie 8

在这里插入图片描述
混淆矩阵,PR曲线一些图像会保存在runs/test/exp文件夹下

5.预测

修改detect.py中的参数weights和 source,weights为runs/train/exp/weights/best.pt
单张图像预测则 source 为图像路径,多张图像source为文件夹路径

或使用命令行:

python detect.py --weights runs/train/exp/weights/best.pt --conf 0.25 --img-size 640 --source inference/images/horses.jpg

预测结果保存在runs/detect/exp下
预测结果:
在这里插入图片描述

参考:
1.解决yolov7bug(Command ‘git tag‘ returned non-zero exit status 128.)(IndexError: list index out of ran)

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

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

相关文章

一份关于windows server服务器的安全漏洞处理建议(来自绿盟安全评估)

文章目录 前言一、服务器主机存在漏洞应该怎么修复? 二、报告中的高危漏洞(部分展示)1.Microsoft Windows CredSSP 远程执行代码漏洞(CVE-2018-0886)2.SSL/TLS协议信息泄露漏洞(CVE-2016-2183)3.SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566)4.SS…

opencv-21 alpha 通道详解(应用于 图像增强,合成,蒙版,特效 等)

什么是alpha 通道? Alpha通道是计算机图形学中用于表示图像透明度的一种通道。在一个图像中,通常会有三个颜色通道:红色(R)、绿色(G)、蓝色(B),它们合在一起…

CSDN周赛65期简要题解

最近几期周赛里,貌似 Python 又变成 C 站的亲儿子了。输入形式是列表还不过瘾,现在输出形式也要求是列表,而且是连一个逗号、空格、中括号都不能少的 Python 标准列表形式。虽然对 Python 来说是信手拈来,但总要考虑一下其他编程语…

基于vue实现权限控制,动态渲染菜单栏

Vue菜单权限动态路由 实现原理:用户登录,服务端返回相关权限,进行持久化存储,筛选动态路由,同时菜单栏也需动态渲染 静态路由 静态路由,也叫常量路由,即所有角色都可以访问到的路由界面。如:…

chrome解决http自动跳转https问题

1.地址栏输入: chrome://net-internals/#hsts 2.找到底部Delete domain security policies一栏,输入想处理的域名,点击delete。 3.再次访问http域名不再自动跳转https了。

使用的华为云RDS数据库不小心把数据删了

目录 前言恢复qp文件帮助文档表级时间点恢复删除数据的时候要注意 前言 华为云查数据的时候前面是有个序号的,删除数据的时候不小心把序号看成id了,导致误删数据。 注:图片如果看不清楚可以点击放大观看! 恢复qp文件 华为云每天…

宋浩线性代数笔记(二)矩阵及其性质

更新线性代数第二章——矩阵,本章为线代学科最核心的一章,知识点多而杂碎,务必仔细学习。 重难点在于: 1.矩阵的乘法运算 2.逆矩阵、伴随矩阵的求解 3.矩阵的初等变换 4.矩阵的秩 (去年写的字,属实有点ugl…

推荐几个Windows iso镜像下载的网站

文章目录 1. 微软官网2. MSDN网站3. 系统库(xitongku)4. 其他网站最后总结 给大家推荐几个 Windows iso镜像下载网站 1. 微软官网 入口地址:https://www.microsoft.com/zh-cn/software-download 以下载Windows11为例: 1)找到下载Windows11…

Modbus RTU通信应用

一、功能概述 1.1 概述 Modbus串行通信协议是Modicon公司在1970年开发的。 Modbus串行通信协议有Modbus ASCII和Modbus RTU两种模式,Modbus RTU协议通信效率较高,应用更加广泛。 Modbus RTU协议是基于RS232和RS485串行通信的一种协议,数据通…

#Gitee 的 WebHooks 实现代码自动化部署#

1:安装git 2:php同步脚本 3:配置webhook 一&#xff1a;安装git服务 // 查看是否安装了git git --version// 如果未安装&#xff0c;执行安装命令 yum install git 2&#xff1a;编写同步PHP脚本 <?php //理发店钩子 error_reporting(1); set_time_limit(0); // 部署目…

MySQL-Explain简版

文章目录 前言1.什么是explain2.explain有什么用3.explain怎么用理解explain的列代表的意思id列select_type列table列partitions列type列possible_keys列key列key_len列ref列rows列Extra列 前言 没必要记吧&#xff0c;忘了直接查 1.什么是explain 在select语句之前增加explai…

C++面向对象三大特性 -- 多态(重点)

目录 一、什么是多态&#xff1f;二、多态的定义和实现2.1 虚函数2.2 虚函数的重写2.3 多态的构成条件2.4 C11中的override和final2.5 重写(覆盖)&#xff0c;重载&#xff0c;重定义(隐藏)的对比 三、多态的原理3.1 虚函数表3.2 再谈多态的条件3.3 动态绑定和静态绑定3.4 单继…

微分流形2:流形上的矢量场和张量场

来了来了&#xff0c;切向量&#xff0c;切空间。流形上的所有的线性泛函的集合&#xff0c;注意是函数的集合。然后取流形上的某点p&#xff0c;它的切向量为&#xff0c;线性泛函到实数的映射。没错&#xff0c;是函数到实数的映射&#xff0c;是不是想到了求导。我们要逐渐熟…

基于FPGA实现OSD功能

简介 基于FPGA平台实现简单的OSD的功能,对于FPGA实现OSD只能实行简单的画框和文字叠加,如果实现复杂的车道线画框,则没法实现(起码我个人感觉,这个功能没有思路执行)。 FPGA实现OSD功能需要7系列平台,以及VDMA、OSD等Xilinx公司的IP使用(本功能工程采用Vivado2017.4平台…

OSCP最新考试QA

枚举提示 初始枚举 对你的目标进行光线扫描。 例如&#xff0c;扫描您的考试机器上的10个常见端口。 在等待彻底和更长时间的扫描时&#xff0c;手动与找到的服务交互。 仔细列举 避免对多个目标进行大量扫描。 运行不安全扫描后还原计算机。 重新运行扫描以确保所有信…

【Unity3D日常开发】Unity3D中比较string字符串的常用方法

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 字符串string的比较有很多方法&#xff0c;比如&#xff1a; …

MongoDB原生语句更新嵌套数组的值

一、更新一层嵌套数组 首先执行MongoDB原生语句脚本在user集合中产生一些样本数据,如下所示: db.user.insert({"_id":1,"title":"爱情公寓3","students":[{"student_id":1001,"student_name":"林宛瑜&quo…

表单验证:输入的字符串以回车分隔并验证是否有

公司项目开发时&#xff0c;有一个需求&#xff0c;需要对输入的字符串按回车分隔并验证是否有重复项&#xff0c;效果如下&#xff1a; 表单代码&#xff1a; <el-form-item label"IP地址条目&#xff1a;" prop"ipAddressEntry"><el-inputtype&…

计算机内存中的缓存Cache Memories

这篇写一下计算机系统中的缓存Cache应用场景和实现方式介绍。 Memory hierarchy 在讲缓存之前&#xff0c;首先要了解计算机中的内存结构层次Memory hierarchy。也就是下图金字塔形状的结构。 从上到下&#xff0c;内存层次结构如下&#xff1a; 寄存器&#xff1a;这是计算机…

FPGA_学习_13_方差计算小模块

测距器件APD的性能与器件本身的温度、施加在APD的偏置电压息息相关。 在不同的温度下&#xff0c;APD的偏压对测距性能的影响非常大。 要确定一个合适的APD的偏压Vopt&#xff0c;首先你要知道当前温度下&#xff0c;APD的击穿电压Vbr&#xff0c;一般来讲&#xff0c;Vopt Vb…