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



