Перейти к содержанию

YAMLDataset

YAMLDataset загружает датасеты в формате Ultralytics/YOLO, описанные файлом data.yaml. Предоставляет выборки train, val и опционально test, поддерживает классификацию, детекцию и сегментацию в зависимости от формата разметки.

Файлы меток обрабатываются в двух режимах:

  1. Ограничивающий прямоугольник<class_id> <x_center> <y_center> <width> <height> (нормализованные координаты). Подходит для классификации и детекции.
  2. Полигональная маска<class_id> <x1> <y1> ... <xn> <yn>. Для сегментации возвращает маску; для детекции строит bbox по минимальным и максимальным координатам.
from hyppopipe.data.dataset import YAMLDataset

ds = YAMLDataset("datasets/my_task/data.yaml")
split_data = ds.as_split_data()
train_cls = split_data.train.as_classification_dataset()

Как и у датасетов на основе директорий, поддерживаются флаги absorb_folders (игнорировать готовое разбиение) и strict (проверка расширений и MIME-типов при загрузке).

Документация

Ultralytics/YOLOv5 YAML facade with lazy per-task split materialization.

Parses data.yaml, exposes train, val, and optional test as YAMLSplitResource objects, and provides as_split_data for training pipelines.

Examples:

Load splits and build a classification training set::

ds = YAMLDataset("datasets/my_task/data.yaml")
split_data = ds.as_split_data()
train_set = split_data.train.as_classification_dataset()

__init__(path_to_yaml, *, absorb_folders=False, detection_layout='auto', strict=True)

Load dataset YAML and prepare split resources.

Parameters:

Name Type Description Default
path_to_yaml str | Path

Path to the dataset YAML file.

required
absorb_folders bool

Allow nested top folders in classification layout.

False
detection_layout str

"auto", "nested_class", or "flat_yolo" for detection/segmentation path layout.

'auto'
strict bool

Passed when loading classification images.

True

as_split_data()

Return train/val (and optional test) resources for Trainer.

Returns:

Type Description
TrainVal | TrainValTest

TrainVal when the YAML has no test split, else TrainValTest.