Датасет COCO128#
Введение#
Ultralytics COCO128 — небольшой, но универсальный датасет обнаружения объектов, состоящий из первых 128 изображений набора COCO train 2017. Он отлично подходит для тестирования и отладки моделей обнаружения объектов, а также для экспериментов с новыми подходами к обнаружению. Благодаря 128 изображениям датасет достаточно мал, чтобы с ним было легко работать, и при этом достаточно разнообразен, чтобы проверять обучающие конвейеры на ошибки и проводить первичную проверку перед обучением на более крупных датасетах.
Смотри: Обзор датасета Ultralytics COCO
Этот датасет предназначен для использования с платформой Ultralytics и YOLO26.
Структура набора данных#
COCO128 содержит первые 128 изображений из набора COCO train 2017, размеченных с использованием 80 названий классов COCO (71 из них встречается на этих изображениях) в формате разметки YOLO. Одни и те же 128 изображений используются и для обучения, и для валидации, что делает датасет компактным и удобным для быстрой первичной проверки:
coco128/
├── images/
│ └── train2017/ # 128 images (used for both train and val)
└── labels/
└── train2017/Файл YAML набора данных#
Для задания конфигурации датасета используется YAML-файл. Он содержит сведения о путях к данным, классах и другие необходимые данные. Для датасета COCO128 файл coco128.yaml хранится по адресу https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco128.yaml.
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# COCO128 dataset https://www.kaggle.com/datasets/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco128
# Example usage: yolo train data=coco128.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco128 ← downloads here (7 MB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco128 # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes
names:
0: person
1: bicycle
2: car
3: motorcycle
4: airplane
5: bus
6: train
7: truck
8: boat
9: traffic light
10: fire hydrant
11: stop sign
12: parking meter
13: bench
14: bird
15: cat
16: dog
17: horse
18: sheep
19: cow
20: elephant
21: bear
22: zebra
23: giraffe
24: backpack
25: umbrella
26: handbag
27: tie
28: suitcase
29: frisbee
30: skis
31: snowboard
32: sports ball
33: kite
34: baseball bat
35: baseball glove
36: skateboard
37: surfboard
38: tennis racket
39: bottle
40: wine glass
41: cup
42: fork
43: knife
44: spoon
45: bowl
46: banana
47: apple
48: sandwich
49: orange
50: broccoli
51: carrot
52: hot dog
53: pizza
54: donut
55: cake
56: chair
57: couch
58: potted plant
59: bed
60: dining table
61: toilet
62: tv
63: laptop
64: mouse
65: remote
66: keyboard
67: cell phone
68: microwave
69: oven
70: toaster
71: sink
72: refrigerator
73: book
74: clock
75: vase
76: scissors
77: teddy bear
78: hair drier
79: toothbrush
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco128.zipИспользование#
Датасет COCO128 (7 МБ) загружается автоматически при первом запуске обучения. Чтобы обучить модель YOLO26n на COCO128 в течение 100 эпох с размером изображения 640, используй следующие фрагменты кода. Полный список доступных аргументов см. на странице обучения модели.
from ultralytics import YOLO
# Загрузить модель
model = YOLO("yolo26n.pt") # загрузить предварительно обученную модель (рекомендуется для обучения)
# Обучить модель
results = model.train(data="coco128.yaml", epochs=100, imgsz=640)Примеры изображений и аннотаций#
Вот несколько примеров изображений из датасета COCO128 с соответствующими аннотациями:
- Мозаичное изображение: на изображении показан обучающий батч, составленный из мозаично объединённых изображений датасета. Мозаичное объединение — это метод, применяемый во время обучения: несколько изображений объединяются в одно, чтобы увеличить разнообразие объектов и сцен в каждом обучающем батче. Это помогает модели лучше обобщать данные для объектов разных размеров, с разными соотношениями сторон и в разных контекстах.
Этот пример демонстрирует разнообразие и сложность изображений в датасете COCO128, а также преимущества использования мозаичного объединения изображений в процессе обучения.
Цитирование и благодарности#
Если ты используешь датасет COCO в исследовательской или разработческой работе, укажи в ссылках следующую статью:
@misc{lin2015microsoft,
title={Microsoft COCO: Common Objects in Context},
author={Tsung-Yi Lin and Michael Maire and Serge Belongie and Lubomir Bourdev and Ross Girshick and James Hays and Pietro Perona and Deva Ramanan and C. Lawrence Zitnick and Piotr Dollár},
year={2015},
eprint={1405.0312},
archivePrefix={arXiv},
primaryClass={cs.CV}
}Мы благодарим консорциум COCO за создание и поддержку этого ценного ресурса для сообщества компьютерного зрения. Подробнее о датасете COCO и его создателях можно узнать на сайте датасета COCO.
Часто задаваемые вопросы#
Датасет Ultralytics COCO128 — это компактная подвыборка из первых 128 изображений датасета COCO train 2017. В основном он используется для тестирования и отладки моделей обнаружения объектов, экспериментов с новыми подходами к обнаружению и проверки обучающих конвейеров перед переходом к более крупным датасетам. С ним удобно быстро перебирать варианты, а разнообразия данных достаточно, чтобы получить содержательный тестовый пример.
Для обучения модели YOLO26 на датасете COCO128 можно использовать Python или команды CLI. Вот как это сделать:
Пример обученияfrom ultralytics import YOLO # Загрузи предварительно обученную модель model = YOLO("yolo26n.pt") # Обучить модель results = model.train(data="coco128.yaml", epochs=100, imgsz=640)Дополнительные параметры и варианты обучения см. в документации по обучению.
Как показано на примерах изображений, мозаичное увеличение данных объединяет несколько обучающих изображений в одно составное изображение. Этот метод дает несколько преимуществ при обучении на COCO128:
- Увеличивает разнообразие объектов и контекстов в каждом обучающем батче
- Улучшает способность модели обобщать данные при разных размерах объектов и соотношениях сторон
- Повышает точность обнаружения объектов разных масштабов
- Позволяет извлечь максимум пользы из небольшого датасета, создавая более разнообразные обучающие примеры
Этот метод особенно полезен для небольших датасетов, таких как COCO128, поскольку помогает моделям извлекать более устойчивые признаки из ограниченного объема данных.
По размеру COCO128 (128 изображений) занимает промежуточное положение между COCO8 (8 изображений) и полным датасетом COCO (более 118 тыс. изображений):
- COCO8: Всего 8 изображений (4 для обучения, 4 для валидации) — идеально для быстрых тестов и отладки
- COCO128: 128 изображений — баланс между размером и разнообразием
- Полный COCO: Более 118 тыс. обучающих изображений — исчерпывающий датасет, но требующий значительных ресурсов
COCO128 — удачный компромисс: он разнообразнее COCO8, но гораздо удобнее полного датасета COCO для экспериментов и начальной разработки моделей.
Хотя COCO128 в первую очередь предназначен для обнаружения объектов, аннотации датасета можно адаптировать для других задач компьютерного зрения:
- Сегментация экземпляров: используй маски сегментации, предоставленные в аннотациях
- Обнаружение ключевых точек: для изображений с людьми, размеченными ключевыми точками
- Перенос обучения: используй датасет как отправную точку для дообучения моделей под собственные задачи
Для специализированных задач, таких как сегментация, рассмотрите специализированные варианты, например COCO8-seg, которые содержат подходящие аннотации.



