yolov5s 预训练模型_YOLO v5 实现目标检测(参考数据集&自制数据集)

YOLO v5 实现目标检测(参考数据集&自制数据集)

Author: Labyrinthine Leo   Init_time: 2020.10.26

GitHub: https://github.com/ultralytics/yolov5

Index Words: Object Detection、YOLO v5、YOLO Series

1、引言

1.1、写作动机

由于博主当前的研究问题涉及到图片的局部图像提取,于是决定使用目前比较流行且高效的目标检测网络框架YOLOv5(虽然其沿用了社区的版本号v5,但只是ultralytics团队的开源实现,并未获得官方的认可,此处暂且按下不表)来完成实验任务。博主之前并无目标检测方向的相关基础知识,因此在将其化为己用之前也趟了不少坑,这里特此记录为博客以备后用,同时将其微薄经验分享给大家,希望读者能够有所收获并对错误之处批评指正。

1.2、背景介绍

YOLOv5根据模型的规模不同设有4个模型:v5s、v5m、v5l、v5x,如上图所示是这些不同规模的模型与EfficientDet模型的性能对比图。而这些模型涉及的预训练权重数据该项目也已提供:checkpoints,只不过是存在谷歌云盘上,为了方便读者下载,笔者已将v5s和v5x的权重下载好放在了百度网盘上,以供大家使用:链接:https://pan.baidu.com/s/1_Abpe46JFevdBzOyBwGo-A 提取码:fuoe。由于博主硬件设备有限使用cpu运行项目,因此本文主要使用v5s的较小模型进行实验,实验数据包括官网提供的coco128的数据集,同时包含如何使用公开数据集(该部分实验使用roboflow上的Mask Wearing Dataset),最后博主还会讲解如何自制数据集进行训练。

1.3、文章结构引言

1.1 写作动机

1.2 背景介绍

1.3 文章结构

配置环境

2.1 下载源码

2.2 软硬件要求和安装依赖

相关数据下载

3.1 权重数据下载

3.2 coco128数据集的下载

训练coco128数据集

4.1 设置coco128.yaml文件

4.2 文件目录组织

4.3 选择模型

4.4 训练

4.5 训练数据可视化

4.6 推断/预测

训练公开数据集Mask Wearing Dataset

5.1 数据集的选择

5.2 标签格式说明

5.3 数据集的放置和配置文件的修改

训练自制数据集

6.1 标注工具的使用

6.1.1 LabelImg的安装

6.1.2 LabelImg的使用

6.2 自制数据集文件的设置

FAQ和总结

7.1 FAQ

7.2 总结

Reference

2、配置环境

在开始之前,我们可以看一下官网的训练定制数据的标准教程:Train Custom Data,先简单了解一下整体流程:1) 创建yaml文件(简单理解为项目读取训练数据路径的配置文件),2) 创建数据的labels信息,3)将项目和数据文件结构组织好,4) 选择上述中想要使用的模型并修改指定参数,5) 训练和检测。如果是新手可能还是一头雾水,无碍,Let’s Go!

2.1、下载源码

项目的源码可以直接使用Git Bash在指定文件夹目录下输入下面命令行来获取:

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

或者在github官网使用点击下载zip源码进行解压即可使用,如下图所示。

下载完成以后,下图即整个项目的文件结构,这里先简单的做个说明:data主要放置相关训练数据的配置文件(读取、解析等);models放置各模型的参数配置文件;weights则放置预训练模型的权重文件;inference放置预测/推理阶段的测试图片;runs则放置训练过程中保留下来的一些数据;当前目录下的文件重点关注train.py、test.py、detect.py,这些是网络模型的关键源码(待精读深读)。

2.2、软硬件要求和安装依赖

首先说明一下笔者的硬件配置:无GPU、16G内存,事实证明v5s模型可以跑,只不过耗时较长(建议夜间);依照下图所示当前Release的软件要求,所以软件的配置:window 10、IDE: pycharm 2020、Python: 3.8、PyTorch: 1.6.0 cpu版、torchvision: 0.7.0,笔者的软件环境均在anaconda中进行安装,这部分前置环境配置在此不赘述(插句题外话,使用anaconda将各个虚拟环境分隔开用于不同要求环境的项目中真的很nice!笔者之前是所有环境大杂烩在python终端中,会很乱,强推anaconda)。

接下来看看该项目运行起来需要哪些依赖库,如下图所示,在刚才了解过的文件结构中有一个requirements.txt文件。

文件打开以后其实就是我们需要pip insatll的第三方库列表(如下图所示),我们可以在终端中使用下列命令行进行一次性安装(终端下要进入该项目路径),当然也可以在终端中一个一个包的insatll或者在pycharm中进行导入安装(笔者是在anaconda虚拟环境中进行insatll然后在pycharm中导入整个虚拟环境,较为方便)。

pip install -U -r requirements.txt

3、相关数据下载

3.1、权重数据下载

我们首先需要下载的就是预训练模型的权重数据,这里主要放出笔者下载的v5s和v5x模型权重:链接:https://pan.baidu.com/s/1_Abpe46JFevdBzOyBwGo-A 提取码:fuoe,将下载好的yolov5s.pt文件放置在当前文件夹下,如图所示:

在进行下一步之前,我们就可以验证前面进行的操作包括环境的配置、权重数据的下载是否没有问题(如果按照笔者的顺序应该是没有问题的,嘿嘿),我们在pycharm的terminal中输入以下命令:

python detect.py --source inference/images/ --weights ./yolov5s.pt

这行命令其实就是进行模型的测试/推断了,测试的图片就是前面讲的inference目录下的图片,使用的权重数据就是刚才下载的yolov5s.pt,而推断后的输出图片存放在inference/output/中。

测试图片bus.jpg&zidane.jpg如下所示:

推断后的效果图片如下所示:

如果输出的效果图没有问题,那就证明环境以及代码都已准备无误,接下来就可以进行进一步的深入;不排除会有问题,那就将前面的步骤进行检查排错。

3.2、coco128数据集的下载

coco128数据集是COCO数据集的前128张图片,通常用作小型的教程数据集,这里面的128张图片即用作训练也用作验证。下载链接:https://github.com/ultralytics/yolov5/releases/download/v1.0/coco128.zip,当然笔者也将其放在了网盘链接里。下载解压以后我们将文件夹放置在与/yolov5同级目

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值