Формат выгрузки
Для выгрузки выбран формат COCO с изменением для поддержки выгрузки изображений масок. COCO — один из самых популярных форматов для разметки изображений, используемый в задачах компьютерного зрения: * детекция объектов (bounding box), * сегментация (polygon / mask), * классификация.
Ваш проект можно экспортировать в COCO-совместимый JSON, который поддерживается большинством ML-фреймворков (Detectron2, MMDetection, YOLOv8, TensorFlow Object Detection API и др.).
Структура данных
dataset/
├── images/
│ └── train/
│
├── annotations/
│ ├── instances_train.json
│ │
│ └── masks/ # маски для сегментации
│ └── instance/ # instance segmentation (объекты)
│ ├── train/0001_obj1.png
│ ├── train/0001_obj2.png
│ └── ...
группировка по классам (semantic) пока не включена
Пример записи в COCO JSON
{
"images": [
{
"id": 1,
"file_name": "train/0001.jpg",
"height": 720,
"width": 1280
}
],
"annotations": [
{
"id": 101,
"image_id": 1,
"category_id": 3,
"bbox": [100, 200, 80, 120], // [x, y, width, height]
"segmentation": [],
"mask_path": "masks/instance/train/0001_obj1.png"
"iscrowd": 0,
"area": 9600
}
],
"categories": [
{"id": 1, "name": "person"},
{"id": 2, "name": "car"},
{"id": 3, "name": "tree"}
]
}
Как устроены маски
Мы добавили модификацию COCO для удобной работы с масками:
- Добавлено дополнительное поле
mask_path
, это путь к PNG-файлу. - Маски лежат в папке
masks/
: instance/
— отдельные PNG-файлы для каждого объекта (0001_obj1.png
,0001_obj2.png
).
Поддержка в ML-фреймворках
- COCO JSON можно напрямую загрузить в большинство библиотек.
-
Если фреймворк не поддерживает
mask_path
, вы можете: -
Использовать только bbox/polygon (они стандартные).
- Легко конвертировать PNG-маски обратно в RLE (например, через
pycocotools
).