Ultralytics YOLO27:

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

Фреймворк Ultralytics использует формат YAML для определения конфигурации набора данных и модели при обучении моделей OBB. Ниже приведён пример формата 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

# Load a pretrained YOLO26n-OBB model
model = YOLO("yolo26n-obb.pt")

# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)

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

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

  • DOTA-v1: первая версия набора данных DOTA, содержащая обширный набор аэрофотоснимков с ориентированными ограничивающими рамками для обнаружения объектов.
  • DOTA-v1.5: промежуточная версия набора данных DOTA с дополнительной разметкой и улучшениями по сравнению с DOTA-v1 для более эффективного решения задач обнаружения объектов.
  • DOTA-v2: версия 2 набора данных DOTA (крупномасштабный набор данных для обнаружения объектов на аэрофотоснимках), ориентированная на обнаружение объектов с воздуха и содержащая ориентированные ограничивающие рамки для 1,7 миллиона экземпляров на 11 268 изображениях.
  • DOTA8: небольшой набор из 8 изображений, выделенный из полного набора данных DOTA и подходящий для тестирования рабочих процессов и проверок непрерывной интеграции (CI) при обучении OBB в репозитории ultralytics.
  • DOTA8 Multispectral: набор из 8 изображений в формате TIFF с 10 каналами для тестирования обучения мультиспектральных моделей OBB на Ultralytics Platform.
  • DOTA128: набор из 128 изображений, выделенный из набора данных DOTA, причём все изображения находятся в папке train (используются и для train, и для val), что обеспечивает хороший баланс между размером и разнообразием при тестировании моделей 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, поскольку обеспечивает их соответствие формату Ultralytics YOLO OBB.

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

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

  • Ориентированные ограничивающие рамки (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
    
    # Create a new YOLO26n-OBB model from scratch
    model = YOLO("yolo26n-obb.yaml")
    
    # Train the model on the custom dataset
    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 (используются и для train, и для val); он обеспечивает большее разнообразие, чем DOTA8, и при этом остаётся удобным для первоначальной разработки и экспериментов с моделями OBB.

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

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

Комментарии