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

Пример файла меток *.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
# Create a new YOLO26n-OBB model from scratch
model = YOLO("yolo26n-obb.yaml")
# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)Поддерживаемые наборы данных#
В настоящее время поддерживаются следующие наборы данных с ориентированными ограничивающими рамками:
- 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 изображений и 10 каналов в формате TIFF для тестирования многоспектрального обучения OBB на платформе Ultralytics.
- 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, обеспечивая совместимость с форматом OBB Ultralytics YOLO.
Крайне важно проверять совместимость набора данных с твоей моделью и придерживаться необходимых конвенций формата. Правильно структурированные наборы данных имеют решающее значение для обучения эффективных моделей обнаружения объектов с ориентированными ограничивающими рамками.
FAQ#
Ориентированные ограничивающие рамки (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, после чего для обучения используется Ultralytics API. Вот пример для 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: Небольшое подмножество набора данных DOTA из 8 изображений, используемое для тестирования и проверок непрерывной интеграции (CI).
- DOTA128: Подмножество из 128 изображений со всеми изображениями в папке train (используется как для train, так и для val), предлагающее большее разнообразие, чем DOTA8, но остающееся удобным для первоначальной разработки и экспериментов с моделью OBB.
Эти наборы данных адаптированы для сценариев, где OBB дают значительное преимущество, например, при анализе аэрофотоснимков и спутниковых изображений.
Да, ты можешь использовать собственный набор данных с ориентированными ограничивающими рамками для обучения YOLO26. Убедись, что аннотации твоего набора данных конвертированы в формат YOLO OBB, который подразумевает задание ограничивающих рамок четырьмя угловыми точками. Затем ты можешь создать файлы конфигурации YAML, указав пути к набору данных, классы и другие необходимые детали. Дополнительную информацию о создании и настройке твоих наборов данных см. в разделе Поддерживаемые наборы данных.



