撰文 | Fengwen, BBuf
本文主要介绍 One-YOLOv5 使用的数据集格式以及如何制作一个可以获得更好训练效果的数据集。本节教程的数据集标准部分翻译了 Ultralytics/YOLOv5 wiki 中对数据集相关的描述(https://github.com/ultralytics/yolov5/wiki/Tips-for-Best-Training-Results) 。
代码仓库地址:
https://github.com/Oneflow-Inc/one-yolov5
本系列教程原文点击
https://start.oneflow.org/oneflow-yolo-doc可达(保持动态更新教程和源码解读和修复一些bug)。
1
数据集结构解读
1. 创建dataset.yaml
COCO128是官方给的一个小的数据集 由COCO(https://cocodataset.org/#home)数据集前 128 张图片组成。这128幅图像用于训练和验证,判断 YOLOv5 脚本是否能够过正常进行。
数据集配置文件 coco128.yaml
(https://github.com/Oneflow-Inc/one-yolov5/blob/master/data/coco128.yaml) 定义了如下的配置选项:
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
# COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
# Example usage: python train.py --data coco128.yaml
# parent
# ├── one-yolov5
# └── datasets
# └── coco128 ← downloads here (7 MB)
# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]
# 训练和验证图像的路径相同
train: ../coco128/images/train2017/
val: ../coco128/images/train2017/
# number of classes
nc: 80 # 类别数
# class names 类名列表
names: ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'bo