自己总结yolov5运行训练和数据集制作

YOLOV5配置过程

1. 在ubuntu20.04运行YOLOV5

(1) 安装Anaconda

​ 进入Anaconda官方网站下载安装包。注意文件后缀,Anaconda的安装包后缀包括x86、amd64或aarch64,根据系统架构下载正确版本的安装包。在ubuntu系统终端,可以利用uname -a指令查看系统架构。

img

​ 进入Anaconda的下载目录,运行bash Anaconda3-xx-xx-xx(下载Anaconda的文件名).sh进行安装,会出现一下提示:

Welcome to Anaconda3 2022.05

In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>> 

​ 这里按ENTER继续。之后会出现以下提示:

Do you approve the license terms? [yes|no]

​ 这里输入yes继续,系统将提示选择安装位置:

Anaconda3 will now be installed into this location:
/home/zsy307/anaconda3

    - Press ENTER to confirm the location
    - Press CTRL-C to abort the installation
    - Or specify a different location below

​ 按ENTER继续运行,之后会提示是否需要进行conda init,输入yes。

Installation finished.
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]

​ 将conda添加到系统的PATH中。激活Anaconda安装,输入以下指令:

source ~/.bashrc

​ 创建一个python版本为3.8,名称为yolo的虚拟环境,利用指令:

conda create -n yolo python=3.8

​ 进入虚拟环境则需要输入指令:

conda activate yolo(虚拟环境名称)

(2) 配置YOLOV5环境

​ 从github官网上下载YOLOV5的开源代码,网络环境好的话可以直接把源码从github上拉下来:

git clone https://github.com/ultralytics/yolov5.git

​ 在YOLOV5官网下载预训练模型,模型共分为s,m,l,x四个尺寸,我下载的是yolov5s.pt。将下载好的模型文件放至yolov5的文件夹中,如下图所示:

img

​ 进入YOLOV5的文件夹中,开启终端进入我们之前已经创建好的yolo虚拟环境,如下图所示:

img

​ 此时,在终端输入如下指令,下载源修改为清华源,提高下载速度。

pip3 install -U -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

​ 全部下载完成后,效果类似于下图:

img

(3) 安装COCOAPI

​ 从github中把COCOAPI源码clone下来,在子文件夹PythonAPI中打开终端,输入make或者python setup.py --user进行安装。出现类似于以下界面则安装完成:

img

​ 至此yolov5的运行环境安装完成。

(3) 运行YOLOV5

​ 进入yolov5文件夹打开终端,运行指令:python detect.py --source 0,其中–source 0为启用摄像头指令,运行效果如下。

img

(4) 可能会出现的问题

​ 在进行编译COCOAPI或运行detect.py文件时,可能会出现AttributeError属性的错误,解决方法如下:

  • 根据报错提示找到Upsampling.py文件,可能会在root文件夹中,建议利用终端cd到Upsampling.py所处文件夹中,我的路径是:

    cd /root/anaconda3/envs/yolo/lib/python3.8/site-package/torch/nn/modules/Upsampling.py
    
  • 打开该文件,并进行修改,将下图中红框内容注释掉,并添加蓝框中的内容

    img

2. 准备数据集

​ YOLOV5所用数据集格式为图片与图片中待检测目标的标注文件组成,需要利用labelimg软件对图片进行标注,以获得可以进行训练的数据集。

(1) labelimg安装

​ 从自己的电脑上进入cmd命令,执行命令pip install labelimg对数据集标注软件进行安装,安装后会出现下图提示则为安装完成:

img

​ 随后,添加环境变量后可以在终端输入labelimg进入数据集标注软件,如果从终端打不开标注软件,可以进入下载路径双击labelimg.exe文件进行进入,下载路径在终端会有提示。例如,我的labelimg下载路径为:

c:\users\843473441\appdata\roaming\python\python38\Scripts\labelimg.exe

​ 软件界面如下图所示:

img

(2) 数据集标注

​ 点击Open Dir,选择图片所在文件夹,更改标注文件保存路径。打开一张图片,按下w出现标注十字光标,在需要检测出来的地方进行标记如下图所示, 随后输入识别类型,确定后可以选择Next Image来保存标注文件并标注下一张图片。

img

​ 标注文件的输出内容如下图所示,一共为5个数,第一个数是识别类型对应的数字代号,后四个数为标注框信息。值得注意的是,用于YOLOV5训练的标注文件应为txt文件,可以通过左侧第8个功能按键选择对应算法训练需要生成的文件格式。

img

​ 为了高效标注数据集,可以使用快捷键进行操作。常用的快捷键包括:

  • a—前一张图片
  • d—后一张图片
  • w—打开标注十字光标
  • View—Auto Save mode开启自动保存模式

(3) 数据集布局

​ 将所有图片标注完成后,将所有图片和所有标注文件分别放在两个文件夹内,并将这两个文件夹放在一个文件夹内,例如:

train(训练集)
|
|____images(图片)
|		|____.png/.jpg
|
|____labels(标注文件)
		|____.txt

3. 模型训练

​ 将数据集文件夹与yolov5源码文件夹进行整合,位置如下:

Dataset(数据集)
|
|____train(训练集)
|		|____images
|		|____labels
|
|____val(验证集)
|	|____images
|	|____labels
|
|____valid.yaml
|
|
yolov5————detect.py、train.py等

(1) 修改yaml配置文件

​ 在yaml文件中将训练集,验证集和测试集的文件路径进行修改,其中将标注好的图片按照3:1的比例分为train(训练集)和val(验证集),其中test(测试集)可以和val(验证集)共用。并在最后写好要训练的Classes(类)名和对应的数字。

img

(2) 运行train.py进行训练

​ 终端进入yolov5文件夹,运行以下指令:

python train.py  --batch 16 --epochs 200 --data ../MaskDataSet/valid.yaml --weights yolov5s.pt --device 0

​ 指令中各参数解释如下:

  • –batch:训练集分配批次;

  • –epochs:训练轮次;

  • –data:配置文件;

  • –device:选择的显卡编号

    ​ 训练模型需要运用NVIDIA显卡,所以需要在笔记本上或者服务器上进行训练。训练结束后生成的权重文件会储存在以下路径:

    yolov5/runs/train/exp/weights/best.pt
    

(3) 验证模型

​ 通过运行detect.py文件验证模型训练结果,输入指令:

python detect.py --weights runs/train/exp/weights/best.pt --source 0(可以选择检测摄像头、图片和视频) --device 0

​ 模型结果如图所示:

img

猜你喜欢

转载自blog.csdn.net/m0_61509658/article/details/127897386