WT-yolo数据集配置文件data.yaml的写法示例

YOLO 的 data.yaml 配置文件用于定义数据集的结构和类别信息。这里列出几种常见的写法和示例,在正式训练时需要根据实际需求正确配置 data.yaml 文件。

1. 基础配置(相对路径)

这是最常见的写法,使用相对路径来指定训练集、验证集和测试集的路径。

# 数据集根目录(可选)
path: ../datasets  # 相对于当前文件的路径

# 训练、验证和测试集的路径(相对于 path)
train: images/train  # 训练集图像路径
val: images/val      # 验证集图像路径
test: images/test    # 测试集图像路径(可选)

# 类别数量
nc: 5  # 假设有 5 个类别

# 类别名称列表
names: ['class1', 'class2', 'class3', 'class4', 'class5']

2. 使用绝对路径

如果项目需要在不同环境中运行,可以使用绝对路径来指定数据集的位置。

# 绝对路径
train: /absolute/path/to/train/images  # 训练集图像路径
val: /absolute/path/to/val/images      # 验证集图像路径
test: /absolute/path/to/test/images    # 测试集图像路径(可选)

nc: 5  # 类别数量
names: ['class1', 'class2', 'class3', 'class4', 'class5']  # 类别名称

3. 多数据集配置

如果需要同时使用多个数据集(例如,分别训练和验证),可以在 trainval 中指定多个路径。

# 多数据集配置
train:
  - /path/to/dataset1/train/images  # 数据集 1 的训练集
  - /path/to/dataset2/train/images  # 数据集 2 的训练集

val:
  - /path/to/dataset1/val/images    # 数据集 1 的验证集
  - /path/to/dataset2/val/images    # 数据集 2 的验证集

test: /path/to/test/images  # 测试集路径(可选)

nc: 5  # 类别数量
names: ['class1', 'class2', 'class3', 'class4', 'class5']  # 类别名称

4. 无测试集的配置

如果项目中没有测试集,可以省略 test 字段。

path: ../datasets  # 数据集根目录(可选)

train: images/train  # 训练集路径
val: images/val      # 验证集路径

nc: 5  # 类别数量
names: ['class1', 'class2', 'class3', 'class4', 'class5']  # 类别名称

5. 类别名称的字典格式(不推荐)

虽然 YOLO 通常使用列表格式定义类别名称,但某些版本可能支持字典格式。不过,建议使用列表格式以确保兼容性。

path: ../datasets

train: images/train
val: images/val

nc: 5
names:
  0: class1
  1: class2
  2: class3
  3: class4
  4: class5

注意事项

  1. 路径的正确性:确保路径正确指向图像文件夹。如果使用相对路径,path 字段是相对于 data.yaml 文件的位置。
  2. 类别数量和名称匹配nc 的值必须与 names 列表的长度一致。
  3. 缩进和格式:YAML 文件对缩进和格式非常敏感,确保使用正确的缩进(通常为 2 个空格)。
  4. 测试集可选test 字段是可选的,如果项目中没有测试集,可以省略。

示例项目结构

假设你的项目结构如下:

yolovX/
├── data/
│   └── datasets/
│       ├── images/
│       │   ├── train/
│       │   ├── val/
│       │   └── test/
│       └── labels/
│           ├── train/
│           ├── val/
│           └── test/
└── configs/
    └── data.yaml

对应的 data.yaml 文件可以这样写:

path: ../datasets  # 数据集根目录

train: images/train  # 训练集图像路径
val: images/val      # 验证集图像路径
test: images/test    # 测试集图像路径

nc: 5  # 类别数量
names: ['class1', 'class2', 'class3', 'class4', 'class5']  # 类别名称

总而言之

  • 使用相对路径更灵活,便于项目迁移。
  • 确保 ncnames 的值匹配。
  • 如果有多个数据集,可以在 trainval 中指定多个路径。
  • 避免使用字典格式定义类别名称,建议使用列表格式。
### YOLO目标检测数据集配置文件YAML格式 YOLO系列模型的数据集配置通常通过`yaml`文件来完成。此文件主要用于定义数据集中各个类别的名称以及训练和验证集的位置。 #### 配置文件结构示例 ```yaml train: ./datasets/train/images/ # 训练图像路径 val: ./datasets/validation/images/ # 验证图像路径 nc: 80 # 类别总数 names: ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', ... ] # 类别列表, 总数应等于 nc 的值 ``` 对于特定应用场景下的自定义数据集,比如昆虫分类检测数据集[^3],其对应的`data.yaml`可能如下所示: ```yaml train: ../insect_dataset/images/train/ val: ../insect_dataset/images/valid/ nc: 7 names: ['bee', 'ant', 'moth', 'beetle', 'fly', 'dragonfly', 'grasshopper'] ``` 上述例子展示了如何指定训练集与验证集所在的目录位置,并列出了所有参与学习过程的目标类别及其标签名。值得注意的是,在实际操作过程中,这些路径应当根据实际情况调整至正确的本地存储位置。 #### YAML 文件中的关键参数解释 - `train`: 定义了训练样本所在的具体路径。 - `val`: 指定了用于评估模型性能的测试样本集合的位置。 - `nc`: 表明整个数据集中共有多少种不同类型的对象需要被识别出来。 - `names`: 提供了一个字符串数组形式的列表,其中包含了每一个可辨识物体的名字;这个顺序非常重要,因为它决定了预测结果输出时所使用的索引关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值