Перейти к содержанию

Обзор наборов данных для обнаружения объектов

Для обучения надежной и точной модели обнаружения объектов требуется обширный набор данных. В этом руководстве представлены различные форматы наборов данных, совместимые с моделью 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 ниже.

Пример структуры каталогов наборов данных

Использование

Вот как можно использовать эти форматы для обучения модели:

Пример

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

Поддерживаемые наборы данных

Ниже приведен список поддерживаемых наборов данных и краткое описание каждого из них:

  • 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 с помощью следующего фрагмента кода:

Пример

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/")

Этот инструмент конвертации можно использовать для преобразования набора данных 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. Для начала обучения используйте следующий скрипт:

Пример

from ultralytics import YOLO

model = YOLO("yolo11n.pt")  # Load a pretrained model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=path/to/your_dataset.yaml model=yolo11n.pt epochs=100 imgsz=640

Более подробная информация об использовании различных режимов, включая команды CLI , приведена в разделе " Использование".

Где можно найти практические примеры использования Ultralytics YOLO для обнаружения объектов?

Ultralytics содержит множество примеров и практических руководств по использованию YOLO11 в различных приложениях. Для получения полного обзора посетите блогUltralytics , где вы найдете тематические исследования, подробные руководства и истории сообщества, демонстрирующие обнаружение объектов, сегментацию и многое другое с помощью YOLO11. Конкретные примеры можно найти в разделе "Использование" в документации.

📅 Создано 1 год назад ✏️ Обновлено 8 дней назад

Комментарии