使用yolov5训练自己的目标检测数据集

yolov4出来后不久,又出现了yolov5,没有论文。虽然作者没有放上和yolov4的直接测试对比,但在COCO数据集的测试效果还是很可观的。很多人考虑到YOLOv5的创新性不足,对算法是否能够进化,因此yolov5的名头仍有争议。但是既然github上有如此多的star,说明还是受到大多数人认可的一个工程。

并且yolov5是十分容易上手使用的一个目标检测开源项目,只需要改几个文件,配置好自己的数据集格式和目录结构,即可开始训练,对新手十分友好。可以先把训练跑起来,在根据需要去细扣其中的模块设计。

并且,yolov5项目一直在更新维护,除了日常处理bug,还有更优算法的版本(如激活函数的更新)更迭和新的训练可视化工具wandb的加入等,这也是十分难得的。

今天,笔者就来介绍一下自己第一次使用yolov5训练自己的数据集的过程。

工程项目准备

PyTorch等其他依赖的安装这里就不说了,网上有很多教程。

首先从yolov5 github上克隆下代码:

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

然后从github下载预训练权重(.pt文件),没有百度云版本,这里笔者提供下载好的权重文件放到云盘(密码: afp3)供不方便的朋友直接下载。下载好后放到yolov5/weights文件夹下。

数据集准备

yolov5项目所需的数据集文件路径格式如下:

---yolov5
---yolo_data---train---images---labels---val---images---labels---data.yaml

数据集文件夹放在与工程文件同级的目录下。其中包含两个子文件夹和一个配置文件data.yaml,两个子文件夹分别存放训练样本和验证样本,注意images和labels文件夹的名字不要改

先说一下data.yaml配置文件内的内容

train: ../yolo_data/train
val: ../yolo_data/valnc: [你的检测数据集的类别数]
names: [你的检测数据集的类别名称列表]

共有四个键值对,train,val,nc,names,分别对应如下表:

train 你的训练数据的文件夹路径
val 你的验证数据的文件夹路径
nc 你的检测数据集的类别数(如COCO数据集中nc=80)
names 你的检测数据集的类别名称列表(如:[‘plane’, ‘car’, ‘dog’, …])

然后说一下数据集格式的要求:

在train/val目录下要有images和labels两个目录,分别存放图像和标签,其中的文件名要相互对应,分别为.jpg格式和.txt格式,即:

---train---imagesaaaa.jpg    ...---labelsaaaa.txt...

其中图像不必多说,放入你的数据集图像即可,而标签label目录下的txt文件要求格式如下:

类别索引           x           y             w               h
0           0.53857421875 0.8779296875 0.158203125 0.06184895833333333

第一列是图像中每个object的类别索引,注意这里要与data.yaml配置文件中的names相互对应。后面四个列就是该object的检测框坐标了,这里采用的是经过归一化的中心长宽xywh格式,如果你的数据集原生不是这种格式(如对角坐标xyxy)的话,请注意调整。

开始训练

直接运行yolov5/train.py即可,注意配置好参数

python train.py \
--data ../yolo_data/data.yaml \
--cfg models/yolov5s.yaml \
--weights weights/yolov5s.yaml \
--batch-size 8 \
--epochs 100

yolov5最近一次更新增加了wandb(weights and biases,其官网,直接访问不太稳定,建议科学上网访问)训练可视化工具,没有安装的话需要先安装一下,直接pip安装即可

pip install wandb

第一次使用的话会需要注册账号,访问站点https://wandb.ai/authorize,拿到API Key,复制到终端中即可,首次绑定API Key账号后再训练就不在需要输入API Key了,直接将训练可视化结果送到你的wandb账号,可在该站点登录查看。

不仅有训练过程可视化,loss曲线等


甚至还有训练过程中系统的信息的展示:

还是非常简单实用的一个训练可视化工具。

训练完成后再yolov5/runs/train/exp文件夹下可查看一些结果PR曲线,F1曲线等,还有一些样本可视化的结果。

可以看到效果还是可以的(我这个数据集只有猪仔一个类 ^^可爱小猪仔)。

测试

训练完成后可以运行yolov5.detect.py文件,指定一个文件夹,测试其中的图像。

python detect.py \
--weights runs/train/exp/weights/best.pt \
--source ../images/test \
--save-txt

如果设置打开–save-txt,则会保存结果文件。

测试结果会保存在yolov5/runs/detect内。txt结果文件则会保存在yolov5/runs/detect/labels内。

使用yolov5训练自己的数据集就先介绍到这里,如果有问题欢迎留言讨论。

使用yolov5训练自己的目标检测数据集相关推荐

  1. 使用yolov5训练自动驾驶目标检测数据集BDD100K

    文章目录 一.什么是BDD100K 二.数据预处理 三.环境配置 四.修改模型结构 五.迁移学习 六.训练BDD100K 七.评估性能 八.结语 一.什么是BDD100K BDD100K是伯克利发布的 ...

  2. 使用 YOLOv5 训练自动驾驶目标检测网络

    本文会详细介绍YOLO V5的网络结构及组成模块,并使用YOLO V5s在BDD100K自动驾驶数据集上进行迁移学习,搭建属于自己的自动驾驶交通物体对象识别网络. 本文来源:知乎-自动驾驶全栈工程师 ...

  3. keras版Mask-RCNN来训练自己的目标检测数据集

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 一.运行环境的安装: 1.下载好cuda9跟cudnn7,然后在安装好后,cuda其会自动添加 ...

  4. detectron2训练自己的数据集_keras版MaskRCNN来训练自己的目标检测数据集

    向AI转型的程序员都关注了这个号

  5. 目标检测-使用YOLOV5搭建自己的目标检测平台(手把手)

    鄙人刚接触目标检测,将自己的心得体会写出来,希望对大家有帮助 文章目录 一.说在前面 二.实验步骤 1.搭建实验环境 2.数据集的标注与划分 3.使用YOLOV5训练自己的目标检测模型 三.参考文章 ...

  6. 100种目标检测数据集【voc格式yolo格式json格式coco格式】+YOLO系列算法源码及训练好的模型

    提示:本文介绍并分享了应用于各行业.各领域非常有用的目标检测数据集(感谢您的关注+三连,数据集持续更新中-),其中绝大部分数据集作者已应用于各种实际落地项目,数据集整体质量好,标注精确,数据的多样性充 ...

  7. 目标检测---以制作yolov5的数据集为例,利用labelimg制作自己的深度学习目标检测数据集(正确方法)

    以制作yolov5的数据集为例,利用labelimg制作自己的深度学习目标检测数据集的正确方法 文章目录 前言 一.labelimg简单介绍 1 VOC标签格式,保存为xml文件. 2 yolo标签格 ...

  8. 【yolo5】目标检测数据集制作

    目录 1.先验知识 2. VOC和COCO数据集: 2.1 VOC形式及其数据结构XML特点(好像可以使用py库中工具直接进行清洗) 2.1.1 VOC数据集的组织结构如下所示 2.1.2 XML的操 ...

  9. 基于yolov5的Android版本目标检测app开发(部署安卓手机)

    基于yolov5的Android版本目标检测app开发(部署安卓手机) 0.项目开发需求 (1)开发app部署到安卓手机 (2)支持VOC数据集上所有的目标检测 1.开发环境搭建 windows10+ ...

最新文章

  1. python爬虫图片-如何用Python来制作简单的爬虫,爬取到你想要的图片
  2. php安装redis扩展详细步骤 不会可以加QQ
  3. LibreOj 6279数列分块入门 3 练习了一下set
  4. 高并发高可用的 架构实践
  5. Maven 仓库使用与私有仓库搭建
  6. led灯光衰怎么解决_如何解决LED灯具照明光衰问题
  7. Django SCRF跨站点请求伪造
  8. Java AJAX开发系列 - 5,ZK参考资料
  9. [转载]数字全息与计算全息
  10. 管家婆显示服务器端没有软件狗,管家婆找不到加密狗怎么办.doc
  11. 《和平精英》枪械怎么搭配最无敌?大神竟然都爱平底锅?
  12. 深度学习-lecture1李飞飞计算机视觉
  13. 办公室计算机网络使用情况,办公室中有多台电脑上网需求的解决方法
  14. python转cython_说说cython的缺点
  15. Datax-web版安装(含安装包)
  16. 河北最新食品安全管理员模拟真题集及答案解析
  17. 修改字段类型 Alter table 表名 modify 字段名 字段类型mysql数据库概念及入门语句...
  18. 正则表达式的条件用法
  19. Unity一键将Text替换成TextMeshPro
  20. 开源MPEG-4编码器 XviD简介

热门文章

  1. java通过HTTPS协议POST提交接收JSON格式数据
  2. Centos出现-bash: unzip: command not found的解决办法
  3. VBA 自制 TreeView 树视图,附加控件 TreeView 最优替代方案
  4. Excel 数据导入到Access数据库,报错“找不到可安装的ISAM”的解决办法
  5. 编写一个C程序,实现以下功能:用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:int strcmp(char *p1,char *p2);设p1指向字符串s
  6. bucket sort sample sort 并行_IBM布局AI硬件大杀器:硬软件并行开发、开源模拟AI工具包...
  7. IOS – OpenGL ES 调节图像色彩替换 GPUImageFalseColorFilter
  8. C语言 break 和 continue - C语言零基础入门教程
  9. C语言实现用星号在屏幕上打印菱形
  10. istio springcloud_手牵手一起学Springcloud(1)微服务这么流行,你理解了嘛?