Source code for hello.fiftyone.dataset_yolov5

import fiftyone as fo


[docs]def load_yolov5_dataset(dataset_dir, dataset_name, label_field="ground_truth", splits=["train", "val"]): # https://voxel51.com/docs/fiftyone/user_guide/dataset_creation/datasets.html#yolov5dataset dataset = fo.Dataset(dataset_name) for split in splits: dataset.add_dir( dataset_dir=dataset_dir, dataset_type=fo.types.YOLOv5Dataset, label_field=label_field, tags=split, split=split, ) return dataset
[docs]def export_yolov5_dataset(export_dir, dataset_or_view, label_field): # https://voxel51.com/docs/fiftyone/user_guide/export_datasets.html#yolov5dataset # or https://docs.ultralytics.com/tutorials/train-custom-datasets/#3-organize-directories splits = dataset_or_view.distinct("tags") if not splits: splits = ["train"] dataset_or_view.tag_samples("train") for split in splits: print(f"\n[{split}]\n") split_view = dataset_or_view.match_tags(split) split_view.export( export_dir=export_dir, dataset_type=fo.types.YOLOv5Dataset, data_path=None, labels_path=None, label_field=label_field, classes=dataset_or_view.default_classes, split="val" if split == "validation" else split, ) return export_dir