Ultralytics YOLO27:
Get Started

Обзор датасетов с ориентированными ограничивающими рамками (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), ширину, высоту и угол поворота.

Oriented bounding box annotation format examples

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

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

Формат YAML-файла набора данных#

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

ultralytics/cfg/datasets/dota8.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# DOTA8 dataset (8 images from the DOTAv1 split) 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 (1 MB)

# 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

Для каждого из train, val и test можно указать каталог, список каталогов или файл *.txt, в котором на каждой строке указан путь к одному изображению (пути, начинающиеся с ./, задаются относительно файла *.txt). Файл *.txt пригодится, если нужно обучаться на части изображений из каталога, пропускать изображения без разметки или объединить изображения из разных источников в одну выборку.

Пути к изображениям в файле `*.txt`
path: datasets/dota8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
  0: plane

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

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

Пример
from ultralytics import YOLO

# Загрузи предварительно обученную модель YOLO26n-OBB
model = YOLO("yolo26n-obb.pt")

# Обучи модель на датасете DOTAv1
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)

Поддерживаемые датасеты#

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

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

Добавление собственного датасета 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 и обеспечивает совместимость с форматом OBB Ultralytics YOLO.

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

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

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

  • Ты можешь преобразовать разметку датасета 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.

  • Чтобы обучить модель YOLO26 с OBB, подготовь датасет в формате YOLO OBB, а затем используй API Ultralytics для обучения модели. Вот пример для Python и CLI:

    Пример
    from ultralytics import YOLO
    
    # Создай новую модель YOLO26n-OBB с нуля
    model = YOLO("yolo26n-obb.yaml")
    
    # Обучи модель на пользовательском датасете
    results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)

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

  • Сейчас Ultralytics поддерживает следующие датасеты для обучения OBB:

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

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

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

Комментарии