Перейти к содержимому

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

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

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

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

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

Пример

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.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=yolov8n.pt epochs=100 imgsz=640

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

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

  • Арговерс: Коллекция данных датчиков, собранных с автономных автомобилей. Она содержит аннотации 3D-слежения за автомобильными объектами.
  • COCO: Common Objects in Context (COCO) - это масштабный набор данных для обнаружения, сегментации и создания надписей, включающий 80 категорий объектов.
  • КОКО8 (COCO8): Меньшее подмножество набора данных COCO, COCO8 является более легким и быстрым в обучении.
  • GlobalWheat2020: Набор данных, содержащий изображения головок пшеницы для Global Wheat Challenge 2020.
  • Объекты365: Крупномасштабный набор данных для обнаружения объектов, включающий 365 категорий объектов и 600 тысяч изображений, направленный на развитие исследований в области обнаружения объектов.
  • OpenImagesV7: Обширный набор данных от Google, содержащий 1,7 млн обучающих и 42 тыс. проверочных изображений.
  • SKU-110K: Набор данных, содержащий изображения плотно упакованных розничных товаров, предназначенный для обнаружения объектов в розничной среде.
  • VisDrone: Набор данных, посвященный изображениям, сделанным с помощью дронов, содержащий различные категории объектов, такие как автомобили, пешеходы и велосипедисты.
  • VOC: PASCAL VOC - популярный набор данных для обнаружения объектов, включающий 20 категорий объектов, в том числе транспортные средства, животных и мебель.
  • xView: Набор данных, содержащий спутниковые снимки высокого разрешения, предназначенный для обнаружения различных классов объектов на видах сверху.

Добавление собственного набора данных

Если у тебя есть свой собственный набор данных и ты хочешь использовать его для обучения моделей обнаружения с форматом 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 .

Не забудь перепроверить, совместим ли набор данных, который ты хочешь использовать, с твоей моделью и соблюдает ли он необходимые соглашения о формате. Правильно отформатированные наборы данных очень важны для обучения успешных моделей обнаружения объектов.



Создано 2023-11-12, Обновлено 2024-01-14
Авторы: glenn-jocher (6)

Комментарии