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

Обзор наборов данных Oriented Bounding Box (OBB)

Обучение точной модели обнаружения объектов с помощью ориентированных ограничительных коробок (OBB) требует тщательного набора данных. В этом руководстве рассказывается о различных форматах наборов данных OBB, совместимых с моделями Ultralytics YOLO , дается представление об их структуре, применении и методах преобразования форматов.

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

YOLO Формат OBB

Формат YOLO OBB обозначает ограничивающие рамки четырьмя угловыми точками с координатами, нормализованными между 0 и 1. Он следует этому формату:

class_index x1 y1 x2 y2 x3 y3 x4 y4

Внутри YOLO обрабатывает потери и выходы в xywhr Формат, в котором представлены центральная точка (xy), ширина, высота и поворот ограничительной рамки.

Примеры формата OBB

Пример *.txt Файл метки для приведенного выше изображения, который содержит объект класса 0 в формате OBB может выглядеть так:

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

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

Чтобы обучить модель, использующую эти форматы OBB:

Пример

from ultralytics import YOLO

# Create a new YOLOv8n-OBB model from scratch
model = YOLO("yolov8n-obb.yaml")

# Train the model on the DOTAv2 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the DOTAv2 dataset
yolo detect train data=DOTAv1.yaml model=yolov8n.pt epochs=100 imgsz=640

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

В настоящее время поддерживаются следующие наборы данных с ориентированными ограничительными рамками:

  • DOTA-v2: DOTA (A Large-scale Dataset for Object Detection in Aerial Images) версии 2 делает упор на обнаружение объектов с воздушных ракурсов и содержит ориентированные ограничивающие рамки с 1,7 миллионами экземпляров и 11 268 изображениями.
  • DOTA8: Небольшое подмножество из 8 изображений полного набора данных DOTA, подходящее для тестирования рабочих процессов и проверки непрерывной интеграции (CI) тренировки OBB в ultralytics хранилище.

Включение собственного набора данных OBB

Для тех, кто хочет представить свои собственные наборы данных с ориентированными ограничительными рамками, обеспечь совместимость с форматом "YOLO OBB", о котором говорилось выше. Преобразуй свои аннотации в этот необходимый формат и подробно укажи пути, классы и имена классов в соответствующем конфигурационном файле YAML.

Преобразование форматов этикеток

DOTA Dataset Format to YOLO OBB Format

Переход меток из формата набора данных DOTA в формат YOLO OBB можно осуществить с помощью этого скрипта:

Пример

from ultralytics.data.converter import convert_dota_to_yolo_obb

convert_dota_to_yolo_obb("path/to/DOTA")

Этот механизм преобразования полезен для наборов данных в формате DOTA, обеспечивая их соответствие формату Ultralytics YOLO OBB.

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

ВОПРОСЫ И ОТВЕТЫ

Что такое Oriented Bounding Boxes (OBB) и как они используются в моделях Ultralytics YOLO ?

Ориентированные ограничительные рамки (Oriented Bounding Boxes, OBB) - это тип аннотации ограничительных рамок, в котором рамка может быть повернута, чтобы более точно совместиться с обнаруживаемым объектом, а не просто выровнена по оси. Это особенно полезно при работе с воздушными или спутниковыми снимками, где объекты могут быть не выровнены по осям изображения. В моделях Ultralytics YOLO OBB представлены четырьмя угловыми точками в формате YOLO OBB. Это позволяет более точно определять объекты, так как ограничительные рамки могут поворачиваться, чтобы лучше соответствовать объектам.

Как преобразовать существующие ярлыки наборов данных DOTA в формат YOLO OBB для использования с Ultralytics YOLOv8 ?

Ты можешь конвертировать метки наборов данных DOTA в формат YOLO OBB, используя convert_dota_to_yolo_obb Функция из Ultralytics. Это преобразование обеспечивает совместимость с моделями Ultralytics YOLO , позволяя тебе использовать возможности OBB для улучшенного обнаружения объектов. Вот быстрый пример:

from ultralytics.data.converter import convert_dota_to_yolo_obb

convert_dota_to_yolo_obb("path/to/DOTA")

Этот скрипт переформатирует твои аннотации к DOTA в YOLO-совместимый формат.

Как обучить модель YOLOv8 с ориентированными ограничительными рамками (OBB) на своем наборе данных?

Для обучения модели YOLOv8 с помощью OBB необходимо убедиться, что твой набор данных имеет формат YOLO OBB, а затем использовать API Ultralytics для обучения модели. Вот пример в формате Python и CLI:

Пример

from ultralytics import YOLO

# Create a new YOLOv8n-OBB model from scratch
model = YOLO("yolov8n-obb.yaml")

# Train the model on the custom dataset
results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the custom dataset
yolo detect train data=your_dataset.yaml model=yolov8n.pt epochs=100 imgsz=640

Это гарантирует, что твоя модель использует подробные аннотации OBB для повышения точности обнаружения.

Какие наборы данных в настоящее время поддерживаются для обучения OBB в моделях Ultralytics YOLO ?

В настоящее время Ultralytics поддерживает следующие наборы данных для обучения OBB:

  • DOTA-v2: Этот набор данных включает в себя 1,7 миллиона экземпляров с ориентированными ограничительными рамками и 11 268 изображений, в основном ориентированных на обнаружение воздушных объектов.
  • DOTA8: меньшее, 8-ми образное подмножество набора данных DOTA, используемое для тестирования и проверки непрерывной интеграции (CI).

Эти наборы данных предназначены для сценариев, в которых БДБ дают значительное преимущество, например, для анализа аэро- и спутниковых снимков.

Могу ли я использовать свой собственный набор данных с ориентированными ограничительными рамками для обучения YOLOv8 , и если да, то как?

Да, ты можешь использовать свой собственный набор данных с ориентированными ограничительными рамками для обучения YOLOv8 . Убедись, что аннотации твоего набора данных преобразованы в формат YOLO OBB, который предполагает определение ограничительных коробок по их четырем угловым точкам. Затем ты можешь создать конфигурационный файл YAML, указав пути к набору данных, классы и другие необходимые детали. Более подробную информацию о создании и настройке наборов данных ты найдешь в разделе " Поддерживаемые наборы данных ".



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

Комментарии