数据集制作-目标检测
# 数据集制作-目标检测
目标检测是计算机视觉领域的一个重要研究方向,其核心任务是从图像中检测出目标物体,并对其进行分类、定位、跟踪等。本文将介绍目标检测数据集(YOLO为例)的制作方法。
# 图像分类数据集结构(以 YOLOv8 为例)
以下是YOLO数据集的标准结构及核心规范说明(以YOLOv5/v8为例):
# 数据集目录结构
dataset_root/ # 数据集根目录
├── images/ # 图像文件夹
│ ├── train/ # 训练集图像
│ │ ├── img1.jpg
│ │ └── ...
│ ├── val/ # 验证集图像
│ └── test/ # 测试集图像(可选)
│
├── labels/ # 标注文件夹
│ ├── train/ # 训练集标注文件
│ │ ├── img1.txt
│ │ └── ...
│ ├── val/ # 验证集标注文件
│ └── test/ # 测试集标注文件(可选)
│
└── data.yaml # 数据集配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 标注文件格式(.txt)
每行描述一个目标对象,格式为:
<class_id> <x_center> <y_center> <width> <height>
参数说明:
字段 | 含义 | 取值范围 |
---|---|---|
class_id | 类别索引(整数,从0开始) | 0,1,2,... |
x_center | 边界框中心点x坐标(相对图像宽度比例) | [0, 1] |
y_center | 边界框中心点y坐标(相对图像高度比例) | [0, 1] |
width | 边界框宽度(相对图像宽度比例) | [0, 1] |
height | 边界框高度(相对图像高度比例) | [0, 1] |
示例标注:
0 0.45 0.63 0.12 0.25
→ 表示类别0的目标,中心点位于(45%宽度, 63%高度),宽占图像12%,高占25%。
# 归一化坐标计算
若图像尺寸为 1000×800
像素,实际边界框参数为:
- 左上角坐标
(x_min=200, y_min=300)
- 右下角坐标
(x_max=600, y_max=500)
则归一化值为:
x_center = (200 + 600) / (2 * 1000) = 0.4
y_center = (300 + 500) / (2 * 800) = 0.5
width = (600 - 200) / 1000 = 0.4
height = (500 - 300) / 800 = 0.25
1
2
3
4
2
3
4
对应标注行:0 0.4 0.5 0.4 0.25
# 配置文件 data.yaml
train: ../dataset/images/train/ # 训练集路径
val: ../dataset/images/val/ # 验证集路径
test: ../dataset/images/test/ # 测试集路径(可选)
nc: 80 # 类别总数(number of classes)
names: ['person', 'bicycle', ...] # 类别名称列表
1
2
3
4
5
6
2
3
4
5
6
# 关键注意事项
- 文件名对应
images/train/img1.jpg
的标注文件必须为labels/train/img1.txt
,名称严格一致。 - 数据划分比例 建议:训练集70-80%、验证集10-20%、测试集10-20%。
- 类别索引映射
需提供
classes.txt
或直接在data.yaml
中定义类别名称与索引的映射关系。
# 标注工具推荐
- LabelImg(支持YOLO格式导出)
编辑 (opens new window)
上次更新: 2025/06/07, 21:53:36