coco format dataset split하기

개발하는 G0·2024년 9월 1일
0

supervision 라이브러리를 이용하니 단 몇 줄로 split이 가능해서 매우 편리하다.

https://roboflow.com/split-datasets/coco-json
https://supervision.roboflow.com/datasets/

import supervision as sv

ds = sv.DetectionDataset.from_coco(
    images_directory_path=f"data_before/data_name/images",
    annotations_path=f"data_before/data_name/annotations/instances_default.json",
)

train_ds, test_ds = ds.split(split_ratio=0.9,
                             random_state=42, shuffle=True)

print(len(train_ds), len(test_ds))
# (900, 100)

이렇게 from_coco 메소드로 coco format을 불러와서 split으로 자른 다음 as_coco 메소드를 사용하여 coco format으로 다시 저장이 가능하다.

sv.DetectionDataset.as_coco(
    train_ds,
    images_directory_path=f"data_after/data_name/train/images",
    annotations_path=f"data_after/data_name/train/annotations/instances_default.json",
)

sv.DetectionDataset.as_coco(
    test_ds,
    images_directory_path=f"data_after/data_name/test/images",
    annotations_path=f"data_after/data_name/test/annotations/instances_default.json",
)
profile
초보 개발자

0개의 댓글