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

news2024/11/25 3:07:06

【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)

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

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

相关文章

【每日随笔】马太效应 ② ( 马太效应因果分析 | 规模效应 | 齿轮效应 | 资源优势 | 抗风险能力 | 领先效应 )

文章目录 一、规模效应二、齿轮效应三、资源优势四、抗风险能力五、领先效应 在本文中 , 分析马太效应产生的原因 ; 一、规模效应 自然界中的规模效应 : 体型庞大的动物 , 如 大象 , 犀牛 , 雄狮 , 河马 , 很少被弱小的动物击败 , 都是自然死亡 , 老死 , 病死 , 同类厮杀 ; 经济…

多源BFS-- 矩阵距离

关于多源BFS,基本上就是单源BFS的简单升级了一下,比如在queue中队头开始时只有一个,我们通过这一个队头去推导其他的东西。而多源最短路就是队头一开始有1-n个可能的数,一个一个去BFS。 题目思路: 这个题就直接把所有的…

苹果开发“Apple GPT”AI科技迎来新格局

根据彭博社的马克・古尔曼(Mark Gurman)报道,苹果内部正在开发“Apple GPT”人工智能项目,足以媲美 OpenAI 的 ChatGPT ,预计明年推出。就在彭博社消息发出之后,苹果股价上涨了2.3%,市值顶峰时增…

深入解析 Kubernetes 架构:掌握主节点、工作节点和容器运行时

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

【Linux后端服务器开发】协议定制(序列化与反序列化)

目录 一、应用层协议概述 二、序列化与反序列化 Protocal.h头文件 Server.h头文件 Client.h头文件 server.cpp源文件 client.cpp源文件 一、应用层协议概述 什么是应用层?我们通过编写程序解决一个个实际问题、满足我们日常需求的网络程序,都是应…

CMU15-445 2022 Fall 通关记录 —— Project 3:Query Execution(上篇)

前言 我在初次实现的时候并没有做 三个“选做”的排行榜任务,所以这只是上篇内容,等完成 Pro4 后再完成下篇。 Project 3: Query Execution Project #3 - Query Execution | CMU 15-445/645 :: Intro to Database Systems (Fall 2022) — 项目 #3 - 查…

R语言机器学习之影像组学分析的原理详解

概要 影像组学从常规医学图像中高通量提取大量的放射学定量数据,并以非侵入性方式探索它们与临床结果的相关性,在医学研究中得到广泛的应用。 01 影像组学(Radiomics)的概念: 影像组学(Radiomics&#xff…

JVM堆内存介绍

一:JVM中内存 JVM中内存通常划分为两个部分,分别为堆内存与栈内存,栈内存主要用运行线程方法 存放本地暂时变量与线程中方法运行时候须要的引用对象地址。 JVM全部的对象信息都 存放在堆内存中。相比栈内存,堆内存能够所大的多&am…

图为科技应邀出席第38届中国计算机应用大会

第38届中国计算机应用大会(CCF NCCA 2023)暨2023年人工智能应用学术会议于7月16日-19日在苏州召开。 本次会议由中国计算机学会(CCF)主办,CCF计算机应用专业委员会承办,苏州大学、苏州科技大学、南京理工大学等单位协办&#xff0…

数字孪生搭高台,温控节能唱新戏

“孪生”的基本思想最早起源于1969年的阿波罗计划,通过留在地球上的航天器对发射到太空的航天器进行工作状态的仿真模拟,进而辅助航天员完成决策,减少各种操作结果的未知性。 从2002年开始,数字孪生的概念和定义在不同领域逐渐被提…

三种数据库架构模式

数据架构设计模式 数据架构主要有三种模式: Shared Everything、Shared Disk、Shared Nothing。 Shared Disk 各处理单元使用本地的私有CPU和Memory,共享磁盘系统,分布式数据库。 典型的代表是Oracle RAC、DB2 PureScale。 例如&#xf…

Navicat远程连接服务器失败 2002 - Can‘t connect to server on ...(10060)

报错如下: 2002 - Can’t connect to server on ‘192.168.33.59’(10060) 解决方案: 下面列举可能出现的几种情况: 1.防火墙原因,需要关闭防火墙 systemctl stop firewalld systemctl disable firewalld2.数据库未开启&#x…

基于机器学习的情绪识别算法matlab仿真,对比SVM,LDA以及决策树

目录 1.算法理论概述 2.部分核心程序 3.算法运行软件版本 4.算法运行效果图预览 5.算法完整程序工程 1.算法理论概述 情绪识别是一种重要的情感分析任务,旨在从文本、语音或图像等数据中识别出人的情绪状态,如高兴、悲伤、愤怒等。本文介绍一种基于…

Linux软件/系统看门狗嵌入式独立看门狗

updating linux看门狗的使用 freertos看门狗的使用 一、看门狗简介 看门狗,又叫Watchdog timer(看门狗定时器)是一种电子计时器,其用于检测和恢复计算机故障。一般有一个输入和一个输出,其中的输入叫做喂狗( kickingthe dog or service the dog)。输出一般连接到另外一个部…

HP暗影精灵9 Plus OMEN 17.3英寸游戏本17-ck2000出厂Win11系统原厂预装OEM系统

惠普暗影9笔记本电脑原装Windows11系统ISO镜像包 适用机型17-ck2000TX,17-ck2001TX,17-ck2002TX,17-ck2003TX 自带所有驱动、出厂主题壁纸LOGO、Office办公软件、惠普电脑管家、OMEN Command Center等预装程序 所需要工具:32G或以上的U盘 文件格式:IS…

软件外包开发可行性调研

软件开发的可行性调研对软件工程来说是必要的,也是开启软件工程建设的第一步。在进行软件外包开发的可行性调研时,需要调查的内容比较多,同时调查研究并不是一次性完成的任务,而是一个持续过程,应随着项目进行进行调整…

FPGA开发:按键消抖

按键是FPGA开发板上的重要交互元件,因为按键的内部的结构设计,在按下和松开按键时,按键会无法避免地产生机械抖动,因此要对按键输入进行特殊处理,否则可能会因为机械抖动产生意外的重复触发。 按键消抖有很多方法&…

Git-分布式版本控制工具

Git仓库:本地和远程 获取git仓库: 本地初始化Git仓库(创建空目录,右键git bansh,执行git init)远程仓库克隆,git clone 远程仓库地址 版本库:.git隐藏文件夹,储存配置信…

【C++初阶】:优先队列(仿函数)

优先队列 一.基本使用二.模拟实现三.仿函数1.优先队列里的使用2.概念3.模拟 一.基本使用 优先队列的底层默认是使用vector构造的,也就是使用数组模拟(二叉树)堆。并且默认是按大堆存放数据(也就是父节点>子节点,左节…

51单片机串口

该部分的笔记来自视频教程链接https://www.bilibili.com/video/BV1bt4y197NR/?spm_id_from333.788&vd_sourceb91967c499b23106586d7aa35af46413 一、51单片机串口基础介绍 一般的应用层的协议中采用和校验或CRC校验,而奇偶校验还是解决基本通信中的帧格式中的…