问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

使用YOLOv8训练自定义数据集之二(数据集准备)

创作时间:
作者:
@小白创作中心

使用YOLOv8训练自定义数据集之二(数据集准备)

引用
CSDN
1.
https://m.blog.csdn.net/counsellor/article/details/141864308

YOLO(You Only Look Once)系列算法是当前最流行的实时目标检测算法之一。本文将介绍如何为YOLOv8训练准备自定义数据集,包括数据标注工具的选择、数据格式以及训练模型的建议。

0x01 准备数据集

1. 图像标注工具

数据集是训练模型的基础素材。对于初学者来说,可以从一些开放网站中下载现成的数据集使用。官方推荐了一个名为Roboflow的数据集网站。Roboflow是一个免费开源数据集管理平台,它不仅提供免费的数据集,还支持上传自己的数据集并进行格式转换,一键导出VOC、COCO、YOLO、CSV等格式。此外,Kaggle也是一个知名的数据分析竞赛平台,里面会有一些开源的数据集可供使用。

另一种方式是使用离线工具自己标注数据。这里推荐两款工具:LabelImg和Labelme。

  • LabelImg:虽然在2021年10月份已经停止了GitHub仓库更新,且不支持在Python 3.9以上环境安装,但在conda环境下安装简单,操作易上手。不过需要注意,由于项目已停止更新,未来的发展存在不确定性。

  • Labelme:这是一款Python的标注工具,项目创建于2019年左右,社区活跃,一直在更新代码,截至2024年9月已发布了200多个版本。支持多种功能,如标注分类、多边形分割等,推荐使用。

2. 标注数据格式

这里着重介绍YOLO的数据格式。在开始标注前,需要了解一些关键的数据格式。

2.1 YOLO 标注格式
  • yaml配置文件:在训练模型时需要指定数据集的配置文件,例如coco.yaml。配置文件中包含数据集的路径、训练集、验证集、测试集以及分类名称等信息。
# 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/coco8  # dataset root dir
train: images/train  # train images (relative to 'path') 4 images
val: images/val  # val images (relative to 'path') 4 images
test:  # test images (optional)
# Classes (80 COCO classes)
names:
  0: person
  1: bicycle
  2: car
  # ...
  77: teddy bear
  78: hair drier
  79: toothbrush
  • dataset数据集目录结构:训练集和验证集的结构相同,包含imageslabels两个目录,分别用于存储图片文件和txt标注文件。

  • txt标注文件格式:每个txt文件每行包含一个对象的标注信息,格式为class x_center y_center width height,其中坐标和尺寸需要归一化到0到1之间。分类标签号必须从0开始。

2.2 COCO 标注格式

COCO数据集的标注格式是JSON格式,包含图像及其上的对象的详细信息。主要结构包括infolicensesimagesannotationscategories

{
    "info": info,
    "licenses": [license],
    "images": [image],
    "annotations": [annotation],
    "categories": [category]
}

其中,annotations记录了每一张图片的标注信息,是JSON中最重要的组成部分。

0x02 标注数据

建议使用标注工具进行数据标注,效率较高。根据经验,每类图片数量建议不少于1500张,每类实例数量不少于10000个。标注时需要确保标签的准确性和一致性,所有图像中所有类别的所有实例都必须贴上标签。

0x03 训练模型的Tips

要训练好一个模型,总会有一些问题,比如数据集大小、框图大小等。根据ultralytics官网的建议:

  • 数据集大小:建议每类图片数量≥1500张,每类实例数量≥10000个。
  • 图像种类:必须能代表部署环境,包括不同时间、季节、天气、光线、角度、来源等。
  • 标签一致性:所有图像中所有类别的所有实例都必须贴上标签。
  • 标签准确性:标签必须紧密包围每个对象,对象与边界框之间不得有空隙。
  • 背景图像:建议使用约0-10%的背景图像来帮助减少误报率。

0x04 参考文献

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号