Обзор наборов данных для обнаружения объектов
Для обучения надежной и точной модели обнаружения объектов требуется обширный набор данных. В этом руководстве представлены различные форматы наборов данных, совместимые с моделью Ultralytics YOLO , а также даны сведения об их структуре, использовании и способах конвертации между различными форматами.
Поддерживаемые форматы наборов данных
Ultralytics YOLO формат
Формат Ultralytics YOLO - это формат конфигурации набора данных, который позволяет определить корневой каталог набора данных, относительные пути к каталогам изображений для обучения/оценки/тестирования или *.txt
файлы, содержащие пути к изображениям, и словарь имен классов. Вот пример:
# 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: ../datasets/coco8 # dataset root dir (absolute or relative; if relative, it's relative to default datasets_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 (80 COCO classes)
names:
0: person
1: bicycle
2: car
# ...
77: teddy bear
78: hair drier
79: toothbrush
Этикетки для этого формата должны быть экспортированы в формат YOLO с одним *.txt
файл на одно изображение. Если в изображении нет объектов, не *.txt
требуется файл. Сайт *.txt
Файл должен быть отформатирован с одной строкой для каждого объекта в class x_center y_center width height
формат. Координаты коробки должны быть в формате нормализованный xywh формат (от 0 до 1). Если ваши поля в пикселях, вам следует разделить x_center
и width
по ширине изображения, и y_center
и height
по высоте изображения. Номера классов должны иметь нулевую индексацию (начинаться с 0).
Файл этикеток, соответствующий приведенному выше изображению, содержит 2 человека (класс 0
) и ничья (класс 27
):
При использовании формата Ultralytics YOLO организуйте учебные и проверочные изображения и метки, как показано в примере набора данных COCO8 ниже.
Использование
Вот как можно использовать эти форматы для обучения модели:
Пример
Поддерживаемые наборы данных
Ниже приведен список поддерживаемых наборов данных и краткое описание каждого из них:
- Argoverse: Набор данных, содержащий данные 3D-слежения и прогнозирования движения в городской среде с богатыми аннотациями.
- COCO: Common Objects in Context (COCO) - это крупномасштабный набор данных по обнаружению, сегментации объектов и созданию надписей, включающий 80 категорий объектов.
- LVIS: крупномасштабный набор данных для обнаружения, сегментации и создания титров, содержащий 1203 категории объектов.
- COCO8: меньшее подмножество первых 4 изображений из COCO train и COCO val, подходящее для быстрого тестирования.
- COCO128: меньшее подмножество первых 128 изображений из COCO train и COCO val, подходящее для тестов.
- Глобальная пшеница 2020: Набор данных, содержащий изображения головок пшеницы для Глобального пшеничного вызова 2020.
- Objects365: Высококачественный крупномасштабный набор данных для обнаружения объектов, включающий 365 категорий объектов и более 600 тыс. аннотированных изображений.
- OpenImagesV7: обширный набор данных от Google с 1,7 млн обучающих и 42 тыс. проверочных изображений.
- SKU-110K: Набор данных для обнаружения плотных объектов в условиях розничной торговли, содержащий более 11 тыс. изображений и 1,7 млн ограничивающих рамок.
- VisDrone: Набор данных, содержащий данные по обнаружению и отслеживанию объектов на снимках, полученных с помощью дронов, с более чем 10 тыс. изображений и видеопоследовательностей.
- VOC: Набор данных Pascal Visual Object Classes (VOC) для обнаружения и сегментации объектов, включающий 20 классов объектов и более 11 тысяч изображений.
- xView: Набор данных для обнаружения объектов на снимках сверху, включающий 60 категорий объектов и более 1 миллиона аннотированных объектов.
- Roboflow 100: Разнообразный эталон обнаружения объектов со 100 наборами данных, охватывающими семь областей изображений, для всесторонней оценки моделей.
- Опухоль головного мозга: Набор данных для обнаружения опухолей мозга включает изображения МРТ или КТ с подробной информацией о наличии, расположении и характеристиках опухоли.
- African-wildlife: Набор данных, содержащий изображения диких животных Африки, включая буйволов, слонов, носорогов и зебр.
- Подпись: Набор данных, содержащий изображения различных документов с аннотированными подписями, поддерживающий исследования по проверке документов и выявлению мошенничества.
- Медицинские таблетки: Набор данных, содержащий изображения медицинских таблеток, аннотированных для таких применений, как контроль качества фармацевтической продукции, сортировка таблеток и соблюдение нормативных требований.
Добавление собственного набора данных
Если у вас есть собственный набор данных и вы хотите использовать его для обучения моделей обнаружения в формате Ultralytics YOLO , убедитесь, что он соответствует формату, указанному выше в разделе "ФорматUltralytics YOLO ". Преобразуйте аннотации в нужный формат и укажите пути, количество классов и имена классов в конфигурационном файле YAML.
Перенос или преобразование форматов этикеток
Формат набора данных COCO в формат YOLO
Вы можете легко преобразовать метки из популярного формата наборов данных COCO в формат YOLO с помощью следующего фрагмента кода:
Пример
Этот инструмент конвертации можно использовать для преобразования набора данных COCO или любого другого набора данных в формате COCO в формат Ultralytics YOLO . Процесс преобразует аннотации COCO на основе JSON в более простой текстовый формат YOLO , делая его совместимым с моделямиUltralytics YOLO .
Не забудьте перепроверить, совместим ли набор данных, который вы хотите использовать, с вашей моделью и соблюдает ли он необходимые соглашения о формате. Правильно отформатированные наборы данных очень важны для обучения успешных моделей обнаружения объектов.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Что такое формат набора данных Ultralytics YOLO и как его структурировать?
Формат Ultralytics YOLO - это структурированная конфигурация для определения наборов данных в ваших учебных проектах. Он включает в себя указание путей к тренировочным, проверочным и тестовым изображениям и соответствующих меток. Например:
path: ../datasets/coco8 # dataset root directory
train: images/train # training images (relative to 'path')
val: images/val # validation images (relative to 'path')
test: # optional test images
names:
0: person
1: bicycle
2: car
# ...
Ярлыки сохраняются в *.txt
файлы с одним файлом на изображение, отформатированные как class x_center y_center width height
с нормализованными координатами. Для получения подробного руководства см. Пример набора данных COCO8.
Как преобразовать набор данных COCO в формат YOLO ?
Вы можете преобразовать набор данных COCO в формат YOLO с помощью инструментов преобразованияUltralytics . Вот быстрый метод:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")
Этот код преобразует ваши аннотации COCO в формат YOLO , обеспечивая беспрепятственную интеграцию с моделями Ultralytics YOLO . Дополнительные сведения см. в разделе Перенос или преобразование форматов меток.
Какие наборы данных поддерживаются Ultralytics YOLO для обнаружения объектов?
Ultralytics YOLO поддерживает широкий спектр наборов данных, включая:
На странице каждого набора данных представлена подробная информация о его структуре и использовании для эффективного обучения YOLO11 . Ознакомьтесь с полным списком в разделе "Поддерживаемые наборы данных".
Как начать обучение модели YOLO11 с использованием моего набора данных?
Чтобы начать обучение модели YOLO11 , убедитесь, что ваш набор данных правильно отформатирован и пути определены в файле YAML. Для начала обучения используйте следующий скрипт:
Пример
Более подробная информация об использовании различных режимов, включая команды CLI , приведена в разделе " Использование".
Где можно найти практические примеры использования Ultralytics YOLO для обнаружения объектов?
Ultralytics содержит множество примеров и практических руководств по использованию YOLO11 в различных приложениях. Для получения полного обзора посетите блогUltralytics , где вы найдете тематические исследования, подробные руководства и истории сообщества, демонстрирующие обнаружение объектов, сегментацию и многое другое с помощью YOLO11. Конкретные примеры можно найти в разделе "Использование" в документации.