一、准备深度学习环境

首先,确保你的计算机上已经安装了Python、PyTorch以及CUDA等必要的深度学习框架和库。YOLOv5对Python版本和PyTorch版本有一定的要求,通常建议使用Python 3.8及以上版本,PyTorch 1.6及以上版本。此外,CUDA的安装可以加速模型的训练和推理过程。

接下来,从YOLOv5的开源网址下载代码仓库。你可以选择手动下载zip包,也可以使用git clone命令远程克隆仓库。下载完成后,在代码文件夹中找到requirements.txt文件,并根据该文件安装所需的依赖包。

二、准备自己的数据集

在训练YOLOv5模型之前,你需要准备自己的数据集。数据集通常包括图像和对应的标注文件。这里以VOC格式的数据集为例进行说明。

创建数据集目录结构:在YOLOv5文件夹中的data目录下创建一个自定义的文件夹(如mydata),并在其下创建images、xml和dataSet三个子文件夹。images文件夹用于存放图像文件,xml文件夹用于存放标注文件(.xml格式),dataSet文件夹用于存放划分后的训练集、验证集、测试集文件(.txt格式)。

标注图像:使用labelImg等标注工具对图像进行标注,生成对应的.xml标注文件。这些文件包含了目标的位置、类别等信息。

划分数据集:编写一个Python脚本(如split_train_val.py),用于将数据集划分为训练集、验证集和测试集。该脚本会读取xml文件夹下的所有.xml文件,并根据设定的比例随机划分数据集,然后在dataSet文件夹下生成train.txt、val.txt、test.txt和trainval.txt四个文件。

转换数据集格式:YOLOv5需要特定的数据集格式(yolo_txt格式)。因此,你需要编写另一个Python脚本(如voc_label.py),用于将.xml标注文件转换为.txt格式的文件。每个图像对应一个.txt文件,文件中每一行表示一个目标的信息,包括类别、中心点坐标、宽度和高度。

三、模型训练

在准备好数据集之后,就可以开始训练YOLOv5模型了。

  • 下载预训练模型:为了加速训练过程并提高模型的准确性,通常会选择下载一个预训练的YOLOv5模型作为起点。你可以在YOLOv5的官方仓库中找到这些预训练模型。
  • 配置训练参数:在YOLOv5目录下找到data文件夹,并在其中创建一个与你的数据集相对应的.yaml配置文件(如mydata.yaml)。该文件包含了数据集的路径、类别信息以及训练集和验证集的划分文件等。
  • 开始训练:在YOLOv5目录下运行训练命令,指定配置文件、模型配置文件(如yolov5x.yaml)以及其他必要的参数(如学习率、训练轮数等)。训练过程中,模型会在训练集上进行学习,并在验证集上进行评估。

trian.py 参数

--data yaml文件

--weights 预模型模型文件

--epochs 训练轮次

python train.py --data bvn.yaml --weights yolov5s.pt --epochs 5

四、模型测试与推理

训练完成后,你需要对模型进行测试和推理,以验证其性能。

  • 模型测试:使用测试集对模型进行测试,评估其准确性、召回率等指标。你可以编写一个Python脚本或使用YOLOv5提供的测试工具来完成这一任务。
  • 模型推理:将训练好的模型应用于新的图像或视频流中,进行目标检测。你可以使用YOLOv5提供的推理脚本或将其集成到你的应用程序中。

python detect.py --weights yolov5s.pt

五、关键注意事项

在训练YOLOv5模型时,有几个关键注意事项需要牢记:

确保数据集的质量和多样性,以提高模型的泛化能力。

根据硬件条件合理设置训练参数,如批量大小、学习率等。

定期监控训练过程中的损失函数和评估指标,以及时调整模型结构和训练策略。

使用数据增强技术(如旋转、翻转、裁剪等)来增加数据集的多样性,提高模型的鲁棒性。

命令:

1.配置并安装环境

2.测试并检测训练集

--weight 模型文件

--scource 识别设备数据

--view-imgs 在线识别

python detect.py --weight yolov5s.pt

3.安装labelimg标注工具,对图片数据打标,并按规定格式排放

对训练集文件挑选部分数据作为val测试集

  • datasets
  • images
  • train
  • val
  • labels
  • train
  • val

4.ten

5.测试训练集

python detect.py --weights runs/train/exp5/weights/best.pt --source your_img --view-img

报错记录

Dataset not found , missing paths ['C:\Users\16673\Desktop\Yolov5\datasets\images\val']

Downloading https://github.com/ultralytics/assets/releases/download/v0.0.0/coco128.zip to coco128.zip...

Traceback (most recent call last):

yolov5常用命令记录的更多相关文章

  1. Centos下磁盘管理的常用命令记录(如查找大文件)

    Centos下磁盘管理的常用命令记录 查看系统磁盘空间占用,使用命令: df -h 结果: 查看磁盘inode使用情况,如果inode用完了,磁盘就没法写入新的内容了: df -i 结果: 如何查找磁 ...

  2. etcd常用命令记录

    etcd常用命令记录   1.查看etcd的版本 [root@etcd01 ssl]# curl -L http://127.0.0.1:2379/version {"etcdserver& ...

  3. Git的常用命令记录

    Git的常用命令记录 1.与远程仓库建立连接,即关联一个远程库 git remote add origin git@server-name:path/repo-name.git; 2.查看当前分支  ...

  4. 【命令】MongoDB常用命令记录

    如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库 ...

  5. k8s常用命令记录

    目录 kubectl常用命令 kubectl get pod -n dev 查看日志 查看pod详情 删除pod 删除job 进入pod里面 查看namespace 创建namespace 删除nam ...

  6. adb+monkey常用命令记录升级版

    为什么要叫升级版呢,本来打算自己写一下adb常用命令的,但是在网上看到一个比较好的,就没有自己从头开始写,但是该博主写的有点小瑕疵就是缺少日志过滤和关于monkey的命令,笔者就加了关于日志和monk ...

  7. gdb常用命令记录

    gdb常用命令 最近在研究nginx源码,gdb用于调试非常方便,之前这篇有研究过如何使用gdb调试nginx:https://www.cnblogs.com/yjf512/archive/2012/ ...

  8. CentOS7学习笔记(四) 常用命令记录

    查看命令的帮助信息 man 命令查看帮助信息 在想要获取帮助信息的命令前面加上man即可,例如查看ls命令的帮助信息 [root@localhost ~]# man ls help 命令查看帮助信息 ...

  9. Vim常用命令记录

    (本文仅记录了Vim常用的按键功能和操作,用于备忘和查阅.若为Vim小白,建议先通过列出的参考资源获得对Vim更全面的了解.Vi 是几乎所有Linux发行版都支持的文字编辑工具,也是许多Linux下工 ...

  10. 【开发记录】Linux常用命令记录(一)【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

随机推荐

  1. biancheng-Redis教程

    目录http://c.biancheng.net/redis/ 1Redis是什么2Windows下载安装Redis3Ubuntu下载安装Redis4Redis配置文件5Redis数据类型6Redis ...

  2. 分圆多项式(cyclotomic polynomial)

    最近论文中经常遇到分圆多项式,现在系统的学习一下! 本原单位根 之前介绍n次单位根,现在详细学习一下n次本原单位根(n-th primitive unit root) 一个复数是n次单位根,当且仅当具 ...

  3. 微信小程序slot(二)

    在组件的 wxml 中可以包含 slot 节点,用于承载组件使用者提供的 wxml 结构. 默认情况下,一个组件的 wxml 中只能有一个 slot .需要使用多 slot 时,可以在组件 js 中声 ...

  4. SQL SERVER日常运维(一)

    以下语句请使用SA用户或者有DBA权限的用户进行执行,否则可能会出现权限不足报错 一.基础命令 查看当前数据库的版本 SELECT @@VERSION; 查看服务器部分特殊信息 select SERV ...

  5. 在SOUI4中使用非客户区自绘

    前段时间用sdl嵌入SOUI做视频播放器,由于SOUI习惯屏蔽系统默认的非客户区,而在窗口自己的客户区分出一块来模拟非客户区,导致窗口在拉伸的时候,SOUI窗口会出现比较严重的闪烁(不光是SOUI这样 ...

  6. 耳分解、双极定向和 P9394 Solution

    耳分解 设无向图 \(G'(V',E')\subset G(V,E)\),简单路径或简单环 \(P:x_1\to \dots \to x_k\) 被称为 \(G\) 关于 \(G'\) 的耳,当且仅当 ...

  7. Luogu P4933 大师 题解 [ 绿 ] [ 线性 dp ] [ dp 细节处理 ] [ 限制转移条件优化 ]

    依据值域的 \(O(n^2)\) 做法 这种做法只适用于这种值域小的题,下一种做法才是求等差数列的通解. 我们定义 \(f[i][j]\) 表示以 \(h_i\) 为最后一个数,公差为 \(j\) 的 ...

  8. 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-14- iframe操作-下篇(详细教程)

    1.简介 通过前边两篇的学习,想必大家已经对iframe有了一定的认识和了解,是不是感觉和Python语言中的差不了多少,大同小异,最多就是不同开发语言的一些语法差异.今天这一篇主要是对iframe做 ...

  9. 从龟速乘到 $Miller-Rabin$ 算法(数论算法总结)

    发现自己竟然菜到不太会龟速乘,所以把 \(Miller-Rabin\) 算法所需要用到的算法全学了一遍-- 龟速乘 龟速乘是一种 \(O(\log n)\) 的乘法计算方法. 考虑有时普通乘法取模会爆 ...

  10. autMan奥特曼机器人-定时推送的用法

    一.定时推送功能简介 "定时推送"位于"系统管理"目录 主要有两个功能: 一是定时向某人或某群发送信息. 二是定时运行某指令,就是机器人给自己发指令,让自己运行 ...