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

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



