YOLOv5官方教程

传送门:
https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data
https://github.com/ultralytics/yolov5

📚 本指南介绍如何使用YOLOv5训练您自己的自定义数据集🚀。


在开始之前

克隆 repo 、下载教程数据集并且安装 requirements.txt,包括Python>=3.6.0和PyTorch>=1.7。

git clone https://github.com/ultralytics/yolov5  # clone repo
cd yolov5
pip install -r requirements.txt  # install

训练自定义数据

1. 创建dataset.yaml

COCO128是一个小型教程数据集,由cocotrain2017中的前128个图像组成。这些相同的128个图像用于训练和验证,以验证我们的训练管道能够进行过度拟合。data/coco128.yaml,如下所示,是数据集配置文件,它定义了

  1. 数据集根目录和到train/val/test映像目录的相对路径(或到带有映像路径的*.txt文件的路径)
  2. 类的数量和
  3. 类名列表:
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco128  # dataset root dir
train: images/train2017  # train images (relative to 'path') 128 images
val: images/train2017  # val images (relative to 'path') 128 images
test:  # test images (optional)

# Classes
nc: 80  # number of classes
names: [ 'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',
         'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
         'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
         'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard',
         'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple',
         'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',
         'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone',
         'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear',
         'hair drier', 'toothbrush' ]  # class names

2. 创建标签

使用CVAT或makesense.ai等工具标记图像后,将标签导出为YOLO格式,每个图像一个*.txt文件(如果图像中没有对象,则不需要*.txt文件)。*.txt文件规范为:

  • 每个对象一行
  • 每一行都是x_center y_center width height格式。
  • 框坐标必须是归一化的xywh格式(从0到1)。如果框是以像素为单位的,- - 请将x_center和width除以图像宽度,将y_center和height除以图像高度。
  • 类号索引为零(从0开始)

在这里插入图片描述

与上述图像相对应的标签文件包含2个人(类别0)和领带(类别27)
在这里插入图片描述

3. 整理目录

在这里插入图片描述

根据下面的示例组织train和val图像和标签。在本例中,我们假设/coco128位于/yolov5目录旁边。YOLOv5通过将每个图像路径中的最后一个/images/实例替换为/labels/来自动为每个图像定位标签。例如:

dataset/images/im0.jpg  # image
dataset/labels/im0.txt  # label

4. 选择模型

选择一个预训练模型开始训练。在这里,我们选择YOLOv5s,最小和最快的模式可用。请参阅我们的自述表,以获得所有模型的完整比较。
在这里插入图片描述

5. 训练

通过指定数据集、批量大小、图像大小以及预训练的–weights YOLOv5s.pt(推荐)或随机初始化的–weights’’–cfg YOLOv5s.yaml(不推荐),在COCO128上训练YOLOv5s模型。预训练的重量是从最新的YOLOv5版本中自动下载的。

# Train YOLOv5s on COCO128 for 5 epochs
$ python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

所有训练结果都保存到runs/train/中,运行目录递增,即runs/train/exp2、runs/train/exp3等。有关更多详细信息,请参阅我们的Google Colab笔记本的“训练”部分。开在Colab开在Kaggle

可视化

权重和偏差日志记录

权重和偏差(W&B)现在与YOLOv5集成,用于训练运行的实时可视化和云记录。这允许更好的运行比较和内省,以及改进团队成员之间的可见性和协作。要启用W&B日志记录,请安装wandb,然后正常训练(第一次使用时将指导您进行设置)。

pip install wandb

在训练期间,您将在https://wandb.ai,您可以使用W&B报告工具创建详细的结果报告。
在这里插入图片描述

本地日志记录

默认情况下,所有结果都记录到runs/train,并为每个新训练创建一个新的实验目录runs/train/exp2、runs/train/exp3等。查看train和val jpgs以查看马赛克、标签、预测和增强效果。注:马赛克数据加载器用于训练(如下所示),这是Ultralytics开发的新概念,首次出现在YOLOv4中。

train_batch0.jpg显示第0列马赛克和标签:
在这里插入图片描述
val_batch0_labels.jpg显示val batch 0标签:

在这里插入图片描述
训练结果将自动记录到Tensorboard并运行/train/exp/results.txt,在训练完成后,它将被标绘为results.png(如下)。也可以手动打印任何results.txt文件:

from utils.plots import plot_results 
plot_results(save_dir='runs/train/exp')  # plot all results*.txt files in 'runs/train/exp'

在这里插入图片描述

  • 4
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO系列是基于深度学习的端到端实时目标检测方法。 PyTorch版的YOLOv5轻量而性能高,更加灵活和易用,当前非常流行。 本课程将手把手地教大家使用labelImg标注和使用YOLOv5训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。 本课程的YOLOv5使用ultralytics/yolov5,在Windows系统上做项目演示。包括:安装YOLOv5、标注自己的数据集、准备自己的数据集、修改配置文件、使用wandb训练可视化工具、训练自己的数据集、测试训练出的网络模型和性能统计。 希望学习Ubuntu上演示的同学,请前往 《YOLOv5(PyTorch)实战:训练自己的数据集(Ubuntu)》课程链接:https://edu.csdn.net/course/detail/30793  本人推出了有关YOLOv5目标检测的系列课程。请持续关注该系列的其它视频课程,包括:《YOLOv5(PyTorch)目标检测实战:训练自己的数据集》Ubuntu系统 https://edu.csdn.net/course/detail/30793Windows系统 https://edu.csdn.net/course/detail/30923《YOLOv5(PyTorch)目标检测:原理与源码解析》课程链接:https://edu.csdn.net/course/detail/31428《YOLOv5目标检测实战:Flask Web部署》课程链接:https://edu.csdn.net/course/detail/31087《YOLOv5(PyTorch)目标检测实战:TensorRT加速部署》课程链接:https://edu.csdn.net/course/detail/32303《YOLOv5目标检测实战:Jetson Nano部署》课程链接:https://edu.csdn.net/course/detail/32451《YOLOv5+DeepSORT多目标跟踪与计数精讲》课程链接:https://edu.csdn.net/course/detail/32669《YOLOv5实战口罩佩戴检测》课程链接:https://edu.csdn.net/course/detail/32744《YOLOv5实战中国交通标志识别》课程链接:https://edu.csdn.net/course/detail/35209《YOLOv5实战垃圾分类目标检测》课程链接:https://edu.csdn.net/course/detail/35284       

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值