最近在研究YOLO V5的用法,借此机会整理一下,希望对大家有参考。
搭建教程请见: Win10 超详细 0基础 搭建YOLOV5教程【环境搭建篇】
此文对YOLO V5性能不多做介绍,由于网上许多教程都略微有些繁杂,因此本文旨在展示 最简单 的 【搭建方法】和【用法】,供0基础的初学者也能上手。
本文将涵盖【用YOLOV5做检测】、【训练自己的数据集】等内容,并提供相关工具的下载和基本用法。
#本文不涉及调参,或模型修改
1.本文简介
2. 关于YOLO V5【简介】
3.如何用YOLO V5进行检测
4.如何用自己的数据集来训练
YOLO V5内置4种大小不同的默认模型
【s版】小、快、精度低,【x版】大、慢、精度高
调用yolov5检测时,在控制台cmd按以下规则输入指令
python detect.py --source 【输入文件】 --weights 【权重文件】
1.【detect.py】代表检测模式,用【train.py】则是训练自己的程序。
2.【source】代表图像输入,训练时为yaml格式文件,检测时为图片路径。
3.【weights】代表权重文件,训练结果。yolov5内置一些训好的权重文件。
4.【yolov5s.pt】代表选择了yolov5s模型,可以用【yolo5m.pt】等其他模型去替换
yolo v5支持用 图片、视频、文件夹 等多种格式的图像作输入。
1.打开【anaconda navigator】→【CMD.exe Prompt】进入控制台
2.将图片放在【C:\Users\用户名\yolov5\inference\images】内
3.在CMD输入指令开始test
cd yolov5
activate yolov5 //若没有创建环境则不需要这一步
python detect.py --source ./inference/images/ --weights yolov5s.pt --conf 0.3 //阈值0.3可自行设定
test结果在【C:\Users\用户名\yolov5\inference\output】文件夹
3.1.步骤不变,划线部分【yolov5s.pt】改为自己的权重文件即可,
【默认权重】python detect.py --source ./inference/images/ --weights yolov5s.pt --conf 0.3
【更改后例】python detect.py --source ./inference/images/ --weights ./runs/exp**/weights/test.pt --conf 0.3
本节将使用【yolov5s.pt】模型举例如何进行训练。
#数据制作方法暂未更新#
这里用roboflow提供的Mask Wearing Dataset(416×416,149imgs)进行训练演示
选择格式为YOLO v5 PyTorch进行下载并解压。
把【train】、【valid】、【test】放到【C:\Users\用户名\yolov5\data\】内
images里的图片 跟 labels里的标签,是按文件名 1:1对应的(如:1.jpg 对应 1.txt标签文件)
训练自己的数据时也需要分成【train】、【valid】、【test】并放在【C:\Users\用户名\yolov5\data\】内
训练前需要配置2个yaml格式文件,便可进行训练。
在【C:\Users\用户名\yolov5】内新建一个test.txt,右键【编辑】,
根据下面格式,写入训练集和验证集的路径,并把后缀【txt】改为【yaml】。(nc是类的数量)
———————test.yaml———————
train: data/train/images
val: data/valid/images
nc: 2
names: ['mask', 'no-mask']
—————————————————
在【C:\Users\用户名\yolov5\models】内新复制一个【yolov5s.yaml】(可用别的模型)
并将新复制出来的文件改名为【masktest.yaml】,右键【编辑】把nc修改为2,保存即可。
训练自己的数据时,请按需选择并修改yaml文件。要注意nc的值
订正:depth和width如果没有特殊需求不需要修改。我的图片是x版本,但文字标注写的s!只改nc即可。
CMD输入以下命令并执行
python train.py --data test.yaml --cfg ./models/masktest.yaml --weights '' --batch-size 16
提示:训练自己的数据时修改下划线部分即可,记得激活环境
训练结束,打开【C:\Users\用户名\yolov5\runs\exp**\weights\】
best.pt就是我们需要的检测用的weights文件