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

Yolov5训练自己的数据集

先看下模型pt说明

YOLOv5s:这是 YOLOv5 系列中最小的模型。“s” 代表 “small”(小)。该模型在计算资源有限的设备上表现最佳,如移动设备或边缘设备。YOLOv5s 的检测速度最快,但准确度相对较低。

YOLOv5m:这是 YOLOv5 系列中一个中等大小的模型。“m” 代表 “medium”(中)。YOLOv5m 在速度和准确度之间提供了较好的平衡,适用于具有一定计算能力的设备。

YOLOv5l:这是 YOLOv5 系列中一个较大的模型。“l” 代表 “large”(大)。YOLOv5l 的准确度相对较高,但检测速度较慢。适用于需要较高准确度,且具有较强计算能力的设备。

YOLOv5x:这是 YOLOv5 系列中最大的模型。“x” 代表 “extra large”(超大)。YOLOv5x 在准确度方面表现最好,但检测速度最慢。适用于需要极高准确度的任务,且具有强大计算能力(如 GPU)的设备。

YOLOv5n:这是 YOLOv5 系列中的一个变体,专为 Nano 设备(如 NVIDIA Jetson Nano)进行优化。YOLOv5n 在保持较快速度的同时,提供适用于边缘设备的准确度。
 

图片标注我们用到了一个名为labelimg的工具:https://github.com/tzutalin/labelImg

找一个编译好的运行程序

下载后删除自带的分类文件

我这里也简要介绍一遍过程,然后也为大家避坑,我们在训练前首先需要采集图片样本,然后再对图片中的待识别物体进行标注。
我们首先需要建立如下的文件夹:

选择yolo环境,配置自动保存

添加标签

标记图形

快捷键

Ctrl + u    Load all of the images from a directory
Ctrl + r    Change the default annotation target dir
Ctrl + s    Save
Ctrl + d    Copy the current label and rect box
Ctrl + Shift + d    Delete the current image
Space    Flag the current image as verified
w    Create a rect box
d    Next image
a    Previous image
del    Delete the selected rect box
Ctrl++    Zoom in
Ctrl--    Zoom out
↑→↓← | Keyboard arrows to move selected rect box

标记保存后会在相应目录生成txt文件,文件中就是标记的坐标,和编号

最后还要做的是建立yaml文件,文件的位置也不要放错,咱们去yolov5程序中,复制VOC.yaml成test.yaml

其中train和val都是我们images的目录,labels的目录不用写进去,会自动识别。nc代表识别物体的种类数目,names代表种类名称,如果多个物体种类识别的话,可以自行增加。

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
# PASCAL VOC dataset http://host.robots.ox.ac.uk/pascal/VOC by University of Oxford
# Example usage: python train.py --data VOC.yaml
# parent
# ├── yolov5
# └── datasets
#     └── VOC  ← downloads here (2.8 GB)# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
train: E:/hua/python/yolo_t/images/train/
val: E:/hua/python/yolo_t/images/val/
test: E:/hua/python/yolo_t/images/test/
# Classes
names:0: excav

进入环境

conda activate yolov5_cuda10.2

到目前,我们的训练的材料就已经准备好了,先测试下环境

python segment/predict.py --weights weights/yolov5m-seg.pt --data data/images/bus.jpg

测试环境提示保存环境就没有问题了

目录层级

修改train.py代码

import os下面添加
os.environ["GIT_PYTHON_REFRESH"] = "quiet"

 否则会出现 Example:
    export GIT_PYTHON_REFRESH=quiet错误

继续修改data文件

训练代码

python train.py 

出现如下错误

assert nf > 0 or not augment, f'{prefix}No labels found in {cache_path}, can not start training. {HELP_URL}'
AssertionError: train: No labels found in E:\hua\python\yolo_t\labels\train.cache, can not start training. See https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data

放弃挣扎了

直接使用现有例子

修改训练文件

进行训练 

python train.py 

训练完成

权重文件

可以自行修改添加数据

添加标记

添加类型

识别,修改detect.py

执行,等待出结果

相关文章:

Yolov5训练自己的数据集

先看下模型pt说明 YOLOv5s:这是 YOLOv5 系列中最小的模型。“s” 代表 “small”(小)。该模型在计算资源有限的设备上表现最佳,如移动设备或边缘设备。YOLOv5s 的检测速度最快,但准确度相对较低。 YOLOv5m&#xff1…...

Bert+FGSM中文文本分类

我上一篇博客已经分别用BertFGSM和BertPGD实现了中文文本分类,这篇文章与我上一篇文章BertFGSM/PGD实现中文文本分类(Loss0.5L10.5L2)_Dr.sky_的博客-CSDN博客的不同之处在于主要在对抗训练函数和embedding添加扰动部分、模型定义部分、Loss函数传到部分…...

爬楼梯问题-从暴力递归到动态规划(java)

爬楼梯,每次只能爬一阶或者两阶,计算有多少种爬楼的情况 爬楼梯--题目描述暴力递归递归缓存动态规划暴力递归到动态规划专题 爬楼梯–题目描述 一个总共N 阶的楼梯(N > 0) 每次只能上一阶或者两阶。问总共有多少种爬楼方式。 示…...

浏览器如何验证SSL证书?

浏览器如何验证SSL证书?当前SSL证书应用越来越广泛,我们看见的HTTPS网站也越来越多。点击HTTPS链接签名的绿色小锁,我们可以看见SSL证书的详细信息。那么浏览器是如何验证SSL证书的呢? 浏览器如何验证SSL证书? 在浏览器的菜单中…...

Linux :: 【基础指令篇 :: 文件及目录操作:(10)】:: ll 指令 :: 查看指定目录下的文件详细信息

前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C 入门到入土!!!学习合集Linux 从命令到网络再到内核!学习合集 目录索引&am…...

Java字符集/编码集

1 字符集/编码集 基础知识 计算机中储存的信息都是用二进制数表示的;我们在屏幕上看到的英文、汉字等字符是二进制数转换之后的结果 按照某种规则, 将字符存储到计算机中,称为编码。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码。这里强调一下: 按照…...

Apache配置与应用

目录 虚拟web主机httpd服务支持的虚拟主机类型基于域名配置方法基于IP配置方法基于端口配置方法 apache连接保持构建Web虚拟目录与用户授权限制Apache日志分割 虚拟web主机 虚拟Web主机指的是在同一台服务器中运行多个Web站点,其中每一个站点实际上并不独立占用整个…...

API自动化测试【postman生成报告】

PostMan生成测试报告有两种: 1、控制台的模式 2、HTML的测试报告 使用到一个工具newman Node.js是前端的一个组件,主要可以使用它来开发异步的程序。 一、控制台的模式 1、安装node.js 双击node.js进行安装,安装成功后在控制台输入node …...

探索OpenAI插件:ChatWithGit,memecreator,boolio

引言 在当今的技术世界中,插件扮演着至关重要的角色,它们提供了一种简单有效的方式来扩展和增强现有的软件功能。在本文中,我们将探索三个OpenAI的插件:ChatWithGit,memecreator,和boolio,它们…...

linux irq

中断上下部 软中断、tasklet、工作对列 软中断优点:运行在软中断上下文,优先级比普通进程高,调度速度快。 缺点:由于处于中断上下文,所以不能睡眠。 相对于软中断/tasklet,工作对列运行在进程上下文 h…...

串口流控(CTS/RTS)使用详解

1.流控概念 在两个设备正常通信时,由于处理速度不同,就存在这样一个问题,有的快,有的慢,在某些情况下,就可能导致丢失数据的情况。 如台式机与单片机之间的通讯,接收端数据缓冲区已满&#xff0…...

kube-proxy模式详解

1 kube-proxy概述 kubernetes里kube-proxy支持三种模式,在v1.8之前我们使用的是iptables 以及 userspace两种模式,在kubernetes 1.8之后引入了ipvs模式,并且在v1.11中正式使用,其中iptables和ipvs都是内核态也就是基于netfilter&…...

汽车EDI:如何与Stellantis建立EDI连接?

Stellantis 是一家实力雄厚的汽车制造公司,由法国标致雪铁龙集团(PSA集团)和意大利菲亚特克莱斯勒汽车集团(FCA集团)合并而成,是世界上第四大汽车制造商,拥有包括标致、雪铁龙、菲亚特、克莱斯勒…...

【SCI征稿】1区计算机科学类SCI, 自引率低,对国人友好~

一、【期刊简介】 JCR1区计算机科学类SCI&EI 【期刊概况】IF: 7.0-8.0,JCR1区,中科院2区; 【终审周期】走期刊系统,3-5个月左右录用; 【检索情况】SCI&EI双检; 【自引率】1.30% 【征稿领域】发表人工智能…...

Vue.js优化策略与性能调优指南

导语:Vue.js是一款出色的前端框架,但在处理大规模应用或复杂场景时,性能问题可能会出现。本文将介绍一些Vue.js优化策略和性能调优指南,帮助您提升应用的性能和用户体验。 延迟加载:将应用的代码进行按需加载&#xff…...

HEVC环路后处理核心介绍

介绍 为什么需要环路后处理技术 hevc采用基于快的混合编码框架,方块效应、振铃效应、颜色偏差、图像模糊等失真效应依旧存在,为了降低此类失真影响,需要进行环路滤波技术; 采用的技术 去方块滤波DF,为了降低块效应…...

从组件化角度聊聊设计工程化

目录 设计系统 设计系统的定义 设计系统的优势 设计系统存在的问题 设计工程化 设计系统探索 设计系统落地实践 Design Token Design Token 实践 设计工程化理想方案构想 展望 参考文献 近几年围绕业务中台化的场景,涌现出了许多低代码平台。面对多组件…...

apache的配置和应用

文章目录 一、httpd服务支持的虚拟主机类型包括以下三种:二、构建Web虚拟目录与用户授权限制三、日志分割 虚拟Web主机指的是在同一台服务器中运行多个Web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web 主机。通过虚拟 Web 主…...

Buf 教程 - 使用 Protobuf 生成 Golang 代码和 Typescript 类型定义

简介 Buf 是一款更高效、开发者友好的 Protobuf API 管理工具,不仅支持代码生成,还支持插件和 Protobuf 格式化。 我们可以使用 Buf 替代原本基于 Protoc 的代码生成流程,一方面可以统一管理团队 Protoc 插件的版本、代码生成配置&#xff…...

Java 锁 面试题(ReentrantLock、synchronized)

Java 锁 面试题(ReentrantLock、synchronized) 1. 锁2. ReentrantLock2.1 ReentrantLock 的实现原理2.2 AQS 是什么?2.3 CAS 是什么? 3. synchronized3.1 synchronized 的实现原理3.2 synchronized 的锁升级过程3.2.1 无锁3.2.2 偏…...

解锁英雄联盟智能游戏辅助:终极效率提升指南

解锁英雄联盟智能游戏辅助:终极效率提升指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在快节奏的英雄联盟对战中…...

Switch模拟器Ryujinx全攻略:从安装到优化的跨平台游戏体验

Switch模拟器Ryujinx全攻略:从安装到优化的跨平台游戏体验 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx Switch模拟器Ryujinx是一款用C#编写的开源项目,它能让…...

别再手动传文件了!用MinIO Java SDK的预签名URL功能,5分钟搞定安全文件分享

别再手动传文件了!用MinIO Java SDK的预签名URL功能,5分钟搞定安全文件分享 上周团队新来的架构师老张给我看了一个令人后怕的日志:某个内部系统的文件下载接口在24小时内被调用了17万次,而实际业务需求只有不到200次。调查发现是…...

2026秋招必备!大模型面试八股文精华(小白程序员必收藏)

本文整理了备战2026秋招时所需的大模型面试核心问题,涵盖LLM/VLM理论、RAG/Agent开发、RLHF对齐技术及模型评估等全链路知识。内容基于多次真实面试经历,建议读者先独立思考再对照答案,达到知其然更知其所以然的学习效果。预祝求职顺利&#…...

3大核心功能构建反检测浏览器:Camoufox实战指南

3大核心功能构建反检测浏览器:Camoufox实战指南 【免费下载链接】camoufox 🦊 Anti-detect browser 项目地址: https://gitcode.com/gh_mirrors/ca/camoufox 在当今数据驱动的时代,网站反爬虫系统日益严苛,传统浏览器在访问…...

Python实战:5分钟搞定睿尔曼机械臂与AGV底盘的Socket通信(附完整代码)

Python实战:5分钟搞定睿尔曼机械臂与AGV底盘的Socket通信(附完整代码) 在工业自动化领域,复合机器人正逐渐成为提升生产效率的关键设备。这类机器人通常由AGV(自动导引运输车)底盘和机械臂组成,…...

解密GPT:从架构解析到实战应用

1. GPT架构深度拆解 第一次接触GPT模型时,我被它流畅的文本生成能力震撼到了。记得当时用GPT-2生成了一篇伪莎士比亚风格的十四行诗,连文学系的朋友都分不清真假。这种"魔法"背后,其实是精妙的架构设计在支撑。 GPT的核心是Transfo…...

Magika:AI驱动的文件类型检测神器,准确率高达99%+

Magika:AI驱动的文件类型检测神器,准确率高达99% 【免费下载链接】magika 项目地址: https://gitcode.com/GitHub_Trending/ma/magika 你是否曾经遇到过这样的情况:下载了一个文件却不知道它是什么格式?或者在处理大量文件…...

不止是上网:用PVE虚拟的OpenWRT旁路由解锁Docker、AdGuard Home和异地组网玩法

解锁PVE虚拟OpenWRT旁路由的进阶玩法:从Docker到智能家居中枢 在家庭网络架构中,OpenWRT旁路由早已超越了简单的网关转发角色。当它运行在PVE虚拟化环境中时,这个轻量级Linux系统(仅需1G内存)可以变身为多功能家庭网络…...

基于DAMOYOLO-S与计算机网络技术:构建分布式视频分析集群

基于DAMOYOLO-S与计算机网络技术:构建分布式视频分析集群 想象一下,一个大型物流园区,上百个摄像头日夜不停地运转,管理者需要实时知道:哪条通道拥堵了?哪个区域有异常人员闯入?传统的监控方式…...