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

Обзор наборов данных ориентированных ограничивающих рамок (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

Формат YAML набора данных

Платформа Ultralytics использует формат YAML-файлов для определения набора данных и конфигурации модели для обучения моделей OBB. Вот пример формата YAML, используемого для определения набора данных OBB:

ultralytics/cfg/datasets/dota8.yaml

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# DOTA8 dataset 8 images from split DOTAv1 dataset by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/obb/dota8/
# Example usage: yolo train model=yolov8n-obb.pt data=dota8.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── dota8 ← downloads here (1MB)

# 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: dota8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images

# Classes for DOTA 1.0
names:
  0: plane
  1: ship
  2: storage tank
  3: baseball diamond
  4: tennis court
  5: basketball court
  6: ground track field
  7: harbor
  8: bridge
  9: large vehicle
  10: small vehicle
  11: helicopter
  12: roundabout
  13: soccer ball field
  14: swimming pool

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/dota8.zip

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

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

Пример

from ultralytics import YOLO

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

# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)
# Train a new YOLO11n-OBB model on the DOTAv1 dataset
yolo obb train data=DOTAv1.yaml model=yolo11n-obb.pt epochs=100 imgsz=1024

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

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

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

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

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

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

Формат набора данных DOTA в формат YOLO OBB

Перенос меток из формата набора данных 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.

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

Часто задаваемые вопросы

Что такое ориентированные ограничивающие рамки (OBB) и как они используются в моделях Ultralytics YOLO?

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

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

Вы можете преобразовать метки набора данных 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.

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

Обучение модели YOLO11 с OBB включает в себя обеспечение того, чтобы ваш набор данных был в формате YOLO OBB, а затем использование Ultralytics API для обучения модели. Вот пример как в Python, так и в CLI:

Пример

from ultralytics import YOLO

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

# Train the model on the custom dataset
results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)
# Train a new YOLO11n-OBB model on the custom dataset
yolo obb train data=your_dataset.yaml model=yolo11n-obb.yaml epochs=100 imgsz=640

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

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

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

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

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

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

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



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

Комментарии