yolov5常用命令记录
一、准备深度学习环境
首先,确保你的计算机上已经安装了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常用命令记录的更多相关文章
- Centos下磁盘管理的常用命令记录(如查找大文件)
Centos下磁盘管理的常用命令记录 查看系统磁盘空间占用,使用命令: df -h 结果: 查看磁盘inode使用情况,如果inode用完了,磁盘就没法写入新的内容了: df -i 结果: 如何查找磁 ...
- etcd常用命令记录
etcd常用命令记录 1.查看etcd的版本 [root@etcd01 ssl]# curl -L http://127.0.0.1:2379/version {"etcdserver& ...
- Git的常用命令记录
Git的常用命令记录 1.与远程仓库建立连接,即关联一个远程库 git remote add origin git@server-name:path/repo-name.git; 2.查看当前分支 ...
- 【命令】MongoDB常用命令记录
如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库 ...
- k8s常用命令记录
目录 kubectl常用命令 kubectl get pod -n dev 查看日志 查看pod详情 删除pod 删除job 进入pod里面 查看namespace 创建namespace 删除nam ...
- adb+monkey常用命令记录升级版
为什么要叫升级版呢,本来打算自己写一下adb常用命令的,但是在网上看到一个比较好的,就没有自己从头开始写,但是该博主写的有点小瑕疵就是缺少日志过滤和关于monkey的命令,笔者就加了关于日志和monk ...
- gdb常用命令记录
gdb常用命令 最近在研究nginx源码,gdb用于调试非常方便,之前这篇有研究过如何使用gdb调试nginx:https://www.cnblogs.com/yjf512/archive/2012/ ...
- CentOS7学习笔记(四) 常用命令记录
查看命令的帮助信息 man 命令查看帮助信息 在想要获取帮助信息的命令前面加上man即可,例如查看ls命令的帮助信息 [root@localhost ~]# man ls help 命令查看帮助信息 ...
- Vim常用命令记录
(本文仅记录了Vim常用的按键功能和操作,用于备忘和查阅.若为Vim小白,建议先通过列出的参考资源获得对Vim更全面的了解.Vi 是几乎所有Linux发行版都支持的文字编辑工具,也是许多Linux下工 ...
- 【开发记录】Linux常用命令记录(一)【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
随机推荐
- biancheng-Redis教程
目录http://c.biancheng.net/redis/ 1Redis是什么2Windows下载安装Redis3Ubuntu下载安装Redis4Redis配置文件5Redis数据类型6Redis ...
- 分圆多项式(cyclotomic polynomial)
最近论文中经常遇到分圆多项式,现在系统的学习一下! 本原单位根 之前介绍n次单位根,现在详细学习一下n次本原单位根(n-th primitive unit root) 一个复数是n次单位根,当且仅当具 ...
- 微信小程序slot(二)
在组件的 wxml 中可以包含 slot 节点,用于承载组件使用者提供的 wxml 结构. 默认情况下,一个组件的 wxml 中只能有一个 slot .需要使用多 slot 时,可以在组件 js 中声 ...
- SQL SERVER日常运维(一)
以下语句请使用SA用户或者有DBA权限的用户进行执行,否则可能会出现权限不足报错 一.基础命令 查看当前数据库的版本 SELECT @@VERSION; 查看服务器部分特殊信息 select SERV ...
- 在SOUI4中使用非客户区自绘
前段时间用sdl嵌入SOUI做视频播放器,由于SOUI习惯屏蔽系统默认的非客户区,而在窗口自己的客户区分出一块来模拟非客户区,导致窗口在拉伸的时候,SOUI窗口会出现比较严重的闪烁(不光是SOUI这样 ...
- 耳分解、双极定向和 P9394 Solution
耳分解 设无向图 \(G'(V',E')\subset G(V,E)\),简单路径或简单环 \(P:x_1\to \dots \to x_k\) 被称为 \(G\) 关于 \(G'\) 的耳,当且仅当 ...
- Luogu P4933 大师 题解 [ 绿 ] [ 线性 dp ] [ dp 细节处理 ] [ 限制转移条件优化 ]
依据值域的 \(O(n^2)\) 做法 这种做法只适用于这种值域小的题,下一种做法才是求等差数列的通解. 我们定义 \(f[i][j]\) 表示以 \(h_i\) 为最后一个数,公差为 \(j\) 的 ...
- 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-14- iframe操作-下篇(详细教程)
1.简介 通过前边两篇的学习,想必大家已经对iframe有了一定的认识和了解,是不是感觉和Python语言中的差不了多少,大同小异,最多就是不同开发语言的一些语法差异.今天这一篇主要是对iframe做 ...
- 从龟速乘到 $Miller-Rabin$ 算法(数论算法总结)
发现自己竟然菜到不太会龟速乘,所以把 \(Miller-Rabin\) 算法所需要用到的算法全学了一遍-- 龟速乘 龟速乘是一种 \(O(\log n)\) 的乘法计算方法. 考虑有时普通乘法取模会爆 ...
- autMan奥特曼机器人-定时推送的用法
一.定时推送功能简介 "定时推送"位于"系统管理"目录 主要有两个功能: 一是定时向某人或某群发送信息. 二是定时运行某指令,就是机器人给自己发指令,让自己运行 ...