Обзор датасетов для обнаружения объектов#
Для обучения надежной и точной модели обнаружения объектов нужен полноценный датасет. В этом руководстве описаны различные форматы датасетов, совместимые с моделью Ultralytics YOLO, а также их структура, использование и преобразование между форматами.
Поддерживаемые форматы датасетов#
Формат Ultralytics YOLO#
Формат Ultralytics YOLO — это формат конфигурации датасета, который позволяет указать корневой каталог датасета, относительные пути к каталогам с изображениями для обучения, валидации и тестирования либо к файлам *.txt со списками путей к изображениям, а также словарь имен классов. Пример:
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco8 ← downloads here (1 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: coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 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/coco8.zipДля каждого из train, val и test можно указать каталог, список каталогов или файл *.txt, в котором на каждой строке указан путь к одному изображению (пути, начинающиеся с ./, задаются относительно файла *.txt). Файл *.txt пригодится, если нужно обучаться на части изображений из каталога, пропускать изображения без разметки или объединить изображения из разных источников в одну выборку.
path: datasets/coco8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
0: personРазметку в этом формате нужно экспортировать в формат YOLO: для каждого изображения создается отдельный файл *.txt. Если на изображении нет объектов, файл *.txt не нужен. В файле *.txt должна быть одна строка на каждый объект в формате class x_center y_center width height. Координаты рамок должны быть нормализованы в формате xywh (от 0 до 1). Если координаты рамок заданы в пикселях, раздели x_center и width на ширину изображения, а y_center и height — на его высоту. Нумерация классов начинается с нуля.

Файл разметки для изображения выше содержит 2 человек (класс 0) и галстук (класс 27):

При использовании формата Ultralytics YOLO организуй изображения и разметку для обучения и валидации, как показано ниже на примере датасета COCO8.

Пример использования#
Вот как использовать датасеты в формате YOLO для обучения модели:
from ultralytics import YOLO
# Загрузить модель
model = YOLO("yolo26n.pt") # загрузить предварительно обученную модель (рекомендуется для обучения)
# Обучить модель
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Формат Ultralytics NDJSON#
Формат NDJSON (JSON с разделителями в виде символов новой строки) — это альтернативный способ описания датасетов для моделей Ultralytics YOLO. В этом формате метаданные датасета и разметка хранятся в одном файле, где каждая строка содержит отдельный объект JSON.
Файл датасета NDJSON содержит:
- Запись датасета (первая строка): Метаданные датасета, включая тип задачи, имена классов и общую информацию
- Записи изображений (следующие строки): Данные отдельных изображений, в том числе размеры, разметка и пути к файлам
{
"type": "dataset",
"task": "detect",
"name": "Example",
"description": "COCO NDJSON example dataset",
"url": "https://platform.ultralytics.com/user/datasets/example",
"class_names": { "0": "person", "1": "bicycle", "2": "car" },
"bytes": 426342,
"version": 0,
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}Пользовательские метаданные изображения#
В каждой записи изображения может содержаться JSON-объект metadata с контекстной информацией для конкретного приложения, например об условиях съемки, идентификаторах оборудования или статусе проверки. Поддерживаются вложенные значения. При импорте в Ultralytics Platform метаданные сохраняются вместе с изображением; их можно просматривать и редактировать на полноэкранной панели информации.
{
"type": "image",
"file": "airbus-wing.jpg",
"url": "https://example.com/airbus-wing.jpg",
"split": "train",
"metadata": {
"aircraft": { "family": "A350", "section": "wing" },
"inspectionStatus": "reviewed"
}
}Платформа ограничивает длину ключей метаданных верхнего уровня 128 символами, длину сериализованного объекта метаданных каждого изображения — 500 000 символами, а общий объем эффективных метаданных в одном импорте NDJSON — 500 000 символами.
Пример использования#
Чтобы использовать датасет NDJSON с YOLO26, укажи путь к файлу .ndjson:
from ultralytics import YOLO
# Загрузить модель
model = YOLO("yolo26n.pt")
# Обучение на датасете NDJSON
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)Преимущества формата NDJSON#
- Один файл: Вся информация о датасете хранится в одном файле
- Потоковая обработка: Большие датасеты можно обрабатывать построчно, не загружая их целиком в память
- Интеграция с облаком: Поддерживаются удаленные URL изображений для обучения в облаке
- Расширяемость: Пользовательские поля метаданных легко добавлять
- Контроль версий: Формат с одним файлом хорошо сочетается с git и системами контроля версий
Поддерживаемые датасеты#
Ниже приведен список поддерживаемых датасетов с кратким описанием каждого. Большинство из них также размещено на Ultralytics Platform, где можно просматривать изображения и разметку, изучать статистику датасетов и клонировать датасеты для обучения в облаке.
- African-wildlife: Датасет с изображениями африканских диких животных, в том числе буйволов, слонов, носорогов и зебр.
- Argoverse: Датасет Argoverse-HD для 2D-обнаружения объектов: 54 446 городских изображений для автономного вождения с 8 классами дорожных объектов.
- Brain-tumor: Датасет для обнаружения опухолей мозга, содержащий снимки МРТ или КТ с информацией о наличии, расположении и характеристиках опухолей.
- COCO: Common Objects in Context (COCO) — крупномасштабный датасет для обнаружения объектов, сегментации и создания описаний, содержащий 80 категорий объектов.
- COCO8: небольшой набор из первых 8 изображений COCO train2017: 4 для обучения и 4 для валидации; подходит для быстрых проверок.
- COCO8-Grayscale: версия COCO8 в градациях серого, созданная путем преобразования RGB-изображений; подходит для оценки моделей с одним каналом.
- COCO8-Multispectral: 10-канальная мультиспектральная версия COCO8, созданная интерполяцией длин волн RGB; подходит для оценки моделей, учитывающих спектральные характеристики.
- COCO12-Formats: Тестовый датасет из 12 изображений в 12 поддерживаемых форматах (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) для проверки конвейеров загрузки изображений.
- COCO16: Подмножество из первых 16 изображений COCO train2017 (8 для обучения и 8 для валидации), подходящее для быстрых тестов.
- COCO32: Подмножество из первых 32 изображений COCO train2017 (16 для обучения и 16 для валидации), подходящее для быстрых тестов.
- COCO64: Подмножество из первых 64 изображений COCO train2017 (32 для обучения и 32 для валидации), подходящее для быстрых тестов.
- COCO128: небольшой набор из первых 128 изображений COCO train2017, подходящий для тестирования.
- Construction-PPE: Датасет с изображениями работников на строительных площадках и разметкой средств индивидуальной защиты: касок, жилетов, перчаток, ботинок и очков. Также отмечено отсутствие средств защиты, например no_helmet и no_goggle, для контроля соблюдения требований в реальных условиях.
- Global Wheat 2020: набор изображений колосьев пшеницы для конкурса Global Wheat Challenge 2020.
- HomeObjects-3K: Датасет с изображениями предметов домашнего обихода, в том числе кроватей, стульев и телевизоров. Подходит для автоматизации умного дома, робототехники, дополненной реальности и анализа планировки помещений.
- KITTI: Датасет с реальными дорожными сценами и данными стереокамер, LiDAR и GPS/IMU. Здесь он используется для задач 2D-обнаружения объектов, например автомобилей, пешеходов и велосипедистов в городской, сельской местности и на шоссе.
- LVIS: крупномасштабный набор данных для обнаружения объектов и сегментации экземпляров, включающий 1 203 категории объектов.
- Medical-pills: Датасет с изображениями лекарственных таблеток и разметкой для контроля качества фармацевтической продукции, сортировки таблеток и соблюдения нормативных требований.
- Objects365: Качественный крупномасштабный датасет для обнаружения объектов с 365 категориями и более чем 1,7 млн изображений для обучения.
- OpenImagesV7: обширный набор данных Google с 1,7 млн изображений для обучения и 42 тыс. изображений для валидации.
- Roboflow 100: разнообразный бенчмарк для обнаружения объектов, включающий 100 наборов данных из семи областей изображения для комплексной оценки моделей.
- Signature: набор изображений различных документов с разметкой подписей для исследований в области проверки документов и обнаружения мошенничества.
- SKU-110K: набор данных для обнаружения объектов в условиях высокой плотности в розничной торговле: более 11 тыс. изображений и 1,7 млн ограничивающих рамок.
- TT100K: изучи набор данных дорожных знаков Tsinghua-Tencent 100K (TT100K): 16 817 изображений улиц с 221 категорией знаков для надежного обнаружения и классификации.
- VisDrone: набор данных для обнаружения и отслеживания нескольких объектов на изображениях и видеозаписях с дронов; содержит более 10 тыс. изображений и видеопоследовательностей.
- VOC: набор данных Pascal Visual Object Classes (VOC) для обнаружения и сегментации объектов, включающий 20 классов объектов и более 11 тыс. изображений.
- xView: набор для обнаружения объектов на аэрофотоснимках; содержит 60 категорий и более 1 млн размеченных объектов.
Добавление собственного набора данных#
Если у тебя есть собственный набор данных и ты хочешь использовать его для обучения моделей обнаружения в формате Ultralytics YOLO, убедись, что он соответствует формату, описанному выше в разделе «Формат Ultralytics YOLO». Преобразуй аннотации в требуемый формат и укажи пути, количество классов и названия классов в файле конфигурации YAML.
Перенос или преобразование форматов разметки#
Преобразование формата набора данных COCO в формат YOLO#
Ты можешь легко преобразовать метки из популярного формата набора данных COCO в формат YOLO с помощью следующего фрагмента кода:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")Этот инструмент преобразования можно использовать для преобразования набора данных COCO или любого набора данных в формате COCO в формат Ultralytics YOLO. В процессе аннотации COCO в формате JSON преобразуются в более простой текстовый формат YOLO, совместимый с моделями Ultralytics YOLO. Полное описание рабочего процесса — включая сопоставление идентификаторов классов, структуру каталогов и аннотации сегментации или позы — см. в разделе «Преобразование аннотаций COCO в формат YOLO».
Не забудь еще раз проверить, совместим ли нужный тебе набор данных с моделью и соответствует ли он необходимым соглашениям о формате. Правильное форматирование наборов данных крайне важно для успешного обучения моделей обнаружения объектов.
Что дальше#
После форматирования набора данных приступай к обучению модели. Не знаешь, с какой предварительно обученной модели начать? Сравни варианты в семействе моделей YOLO26.
Часто задаваемые вопросы#
Формат Ultralytics YOLO — это структурированная конфигурация для определения наборов данных в проектах обучения. В ней задаются пути к изображениям для обучения, валидации и тестирования, а также к соответствующим меткам. Например:
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license # COCO8 dataset (first 8 images from COCO train2017) by Ultralytics # Documentation: https://docs.ultralytics.com/datasets/detect/coco8 # Example usage: yolo train data=coco8.yaml # parent # ├── ultralytics # └── datasets # └── coco8 ← downloads here (1 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: coco8 # dataset root dir train: images/train # train images (relative to 'path') 4 images val: images/val # val images (relative to 'path') 4 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/coco8.zipМетки сохраняются в файлах
*.txt, по одному файлу на изображение. Формат данных —class x_center y_center width heightс нормализованными координатами. Подробное руководство см. в примере набора данных COCO8.Ты можешь преобразовать набор данных COCO в формат YOLO с помощью инструментов преобразования Ultralytics. Вот быстрый способ:
from ultralytics.data.converter import convert_coco convert_coco(labels_dir="path/to/coco/annotations/")Этот код преобразует аннотации COCO в формат YOLO, обеспечивая простую интеграцию с моделями Ultralytics YOLO. Дополнительную информацию см. в разделе «Перенос или преобразование форматов разметки».
Ultralytics YOLO поддерживает широкий спектр наборов данных, в том числе:
На странице каждого набора данных приведена подробная информация о его структуре и использовании для эффективного обучения YOLO26. Полный список см. в разделе «Поддерживаемые наборы данных».
Чтобы начать обучение модели YOLO26, убедись, что набор данных правильно отформатирован, а пути указаны в файле YAML. Используй следующий скрипт, чтобы начать обучение:
Примерfrom ultralytics import YOLO model = YOLO("yolo26n.pt") # Загрузи предварительно обученную модель results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)Подробнее об использовании разных режимов, включая команды CLI, см. в разделе «Использование».
Ultralytics предлагает множество примеров и практических руководств по использованию YOLO26 в различных приложениях. Полный обзор см. в блоге Ultralytics: там ты найдешь разборы реальных примеров, подробные руководства и истории сообщества об обнаружении объектов, сегментации и других задачах с YOLO26. Конкретные примеры см. на странице документации о режиме Predict.