使用yolov5训练自己的数据集

使用Yolov5训练自己的数据集

need:

本文以没有cpu为例。
anaconda
安装包下载链接:https://pan.baidu.com/s/13Mb7jKFxiSIDNKcdp3XTew?pwd=99o3
提取码:99o3
安装教程:
pycharm
安装教程及安装包:https://www.yutu.cn/softhtml/showsoft_4446.html
yolov5文件下载地址:
https://github.com/ultralytics/yolov5
点击code,再点击Download ZIP

使用yolov5训练自己的数据集
权重文件
链接:https://pan.baidu.com/s/1NX23otAPdndwoBw7TRHxDQ?pwd=buky
提取码:buky

; 一、环境搭建

新建一个文件夹,起名yolov5train,注意该文件路径是不能有中文。
打开该文件,在此处输入cmd

使用yolov5训练自己的数据集
再输入 conda activate,创建conda环境
使用yolov5训练自己的数据集

再输入以下命令,更改下载源

conda config --remove-key channels
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple

使用yolov5训练自己的数据集

再将你下载的yolov5项目文件解压到这个文件夹内,并打开yolov5项目文件,并在标识处输入cmd

使用yolov5训练自己的数据集
创建环境:
conda create -n py15 python==3.8.5

其中的py15是创建环境的名称
输入后,有个步骤要你输入y,回车
完成后

使用yolov5训练自己的数据集

激活虚拟环境:

使用yolov5训练自己的数据集
conda activate py15

安装pytouch
yolov5都可以使用cpu或gpu,只是cpu慢的抠se子使用gpu的小伙伴参考这个https://blog.csdn.net/ECHOSON/article/details/118420968

我用的cpu,输入命令:

conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cpuonly

弹出

使用yolov5训练自己的数据集
输入y,回车
完成后
使用yolov5训练自己的数据集

cd到yolov5代码的目录下,直接执行下列指令即可完成包的安装。
pip install -r requirements.txt

安装图形化界面库
pip install pyqt5

将下载好的权重文件解压到yolov5-master的
pretrained目录下

使用yolov5训练自己的数据集

使用yolov5训练自己的数据集

测试一下可不可以使用
在终端中输入:

python detect.py --source data/images/bus.jpg --weights pretrained/yolov5s.pt

其中,data/images/bus.jpg代表你要检测的图片,pretrained/yolov5s.pt表示使用的权重文件。

使用yolov5训练自己的数据集
要检测的图片:
使用yolov5训练自己的数据集
检测结果放在yolov5-maskruns\detect\exp2目录下
使用yolov5训练自己的数据集
好了,现在开始制作数据集。
使用labelimg工具,用于图片的标注
使用pip安装
输入
pip install labelimg -i https://mirror.baidu.com/pypi/simple

使用yolov5训练自己的数据集
在终端中输入labelimg就会弹出窗口。
使用yolov5训练自己的数据集

使用yolov5训练自己的数据集
labelimg使用
注释:
使用yolov5训练自己的数据集

首先点击open Dir 选择你要标注的图片的文件位置,

使用yolov5训练自己的数据集
然后就会弹出下面的窗口,选择你保存标注的txt(就是你标注的bbox的标签会写入txt)。
使用yolov5训练自己的数据集
然后开始标注:
使用yolov5训练自己的数据集
点击next image
使用yolov5训练自己的数据集
点击create Rectbox,再选中你要标记的物体,再输入类别,再点击ok。
使用yolov5训练自己的数据集
然后右边的boxlabel就会出现你的标记
使用yolov5训练自己的数据集
如果要修改类别,右键点击你要修改的标签,点击edit label
使用yolov5训练自己的数据集
使用yolov5训练自己的数据集
修改后点击ok。
如果要调整边界框的大小,点击edit rectbox
这张图片标记完后,点击next image,进行下一张图片的标注,所有图片标注完后,点击save,保存。
然后看看这波操作的结果
打开保存边界框的txt文件 ,
使用yolov5训练自己的数据集
使用yolov5训练自己的数据集
打开文件,其中数据的注释,每一行代表一个物体。
使用yolov5训练自己的数据集

要使用的数据集目录:

使用yolov5训练自己的数据集
其中dataset存放训练集、测试集,train是训练集,vaild是测试集,测试集、训练集的目录下都必须有images和labels文件,images中放的是图片,labels放的对应图片的标注文件。
使用yolov5训练自己的数据集
使用yolov5训练自己的数据集

开始训练
右键点击项目文件

使用yolov5训练自己的数据集
项目文件配置:
1、新建一个data_yaml
使用yolov5训练自己的数据集

train: D:/wxl/test2/train/images
val: D:/wxl/test2/vaild/images

nc: 7
names: ['Motor Vehicle', 'Non_motorized Vehicle', 'Pedestrian', 'Traffic Light-Red Light' ,'Traffic Light-Yellow Light', 'Traffic Light-Green Light', 'Traffic Light-Off']

2、本案例使用yolov5s权重文件,修改models目录下的yolov5s.yaml,将nc后的数字修改成你的数据集中标注的种类数量

使用yolov5训练自己的数据集

3、开始训练,打开终端,进入项目文件的目录,激活conda环境。输入

python train.py --data data.yaml --cfg models/yolov5s.yaml --weights pretrained/yolov5s.pt --epoch 100 --batch-size 4 --device cpu

data.yaml指的是数据集的配置文件
mask_yolov5s.yaml 指的是模型的配置文件
pretrained/yolov5s.pt 使用yolov5spt的权重文件
size 后面的数字指是多少张图片一起训练
epoch 后面的数字表示跑的次数
cpu 指用cpu训练

使用yolov5训练自己的数据集
训练结果保存在项目文件的run\train\exp文件中
使用yolov5训练自己的数据集
我跑的数据较少,就准确率就很低了,
其中的weight存放的就是训练出来的模型,其中,best.pt是效果最好的,last.pt是最后一个。
使用yolov5训练自己的数据集
来试下用训练出来的模型来预测。

在终端中输入:

python val.py --data data.yaml --weights runs/train/exp/weights/best.pt

data.yaml 存放你要预测的图片数据位置。 runs/train/exp_yolov5s/weights/best.pt 使用的模型。

使用yolov5训练自己的数据集
预测的数据放在了项目文件中的runs\val\exp8中
使用yolov5训练自己的数据集

结束,谢谢。菜鸟一个,如有错误,欢迎留言指正。

Original: https://blog.csdn.net/asd590/article/details/124783642
Author: F.one
Title: 使用yolov5训练自己的数据集

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/710558/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球