Обзор наборов данных с ориентированными ограничивающими рамками (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Использование
Для обучения модели с использованием этих форматов 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: DOTA (крупномасштабный набор данных для обнаружения объектов на аэрофотоснимках) версии 2 делает упор на обнаружение с воздуха и содержит ориентированные ограничивающие рамки для 1,7 миллиона экземпляров на 11 268 изображениях.
- DOTA8: Небольшой поднабор из 8 изображений полного набора данных DOTA, подходящий для тестирования рабочих процессов и проверок непрерывной интеграции (CI) обучения 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.
Крайне важно проверять совместимость набора данных с твоей моделью и придерживаться необходимых соглашений по формату. Правильно структурированные наборы данных имеют решающее значение для обучения эффективных моделей обнаружения объектов с ориентированными ограничивающими рамками.
Часто задаваемые вопросы (FAQ)
Что такое ориентированные ограничивающие рамки (OBB) и как они используются в моделях Ultralytics YOLO?
Ориентированные ограничивающие рамки (OBB) — это тип аннотации ограничивающей рамки, при котором рамка может поворачиваться, чтобы более точно соответствовать обнаруживаемому объекту, а не просто выравниваться по осям. Это особенно полезно при анализе аэрофотоснимков или спутниковых изображений, где объекты могут быть не выровнены по осям изображения. В моделях Ultralytics YOLO OBB представлены четырьмя угловыми точками в формате YOLO OBB. Это позволяет выполнять более точное обнаружение объектов, так как ограничивающие рамки могут поворачиваться, лучше охватывая объекты.
Как преобразовать существующую разметку набора данных DOTA в формат YOLO OBB для использования с Ultralytics YOLO26?
Ты можешь преобразовать разметку набора данных 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) на своем наборе данных?
Обучение модели 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 для повышения точности обнаружения.
Какие наборы данных в настоящее время поддерживаются для обучения OBB в моделях Ultralytics YOLO?
В настоящее время 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, и если да, то как?
Да, ты можешь использовать свой набор данных с ориентированными ограничивающими рамками для обучения YOLO26. Убедись, что аннотации твоего набора данных преобразованы в формат YOLO OBB, который предполагает определение ограничивающих рамок по их четырем угловым точкам. Затем ты можешь создать YAML-файл конфигурации, указав в нем пути к набору данных, классы и другие необходимые детали. Для получения дополнительной информации о создании и настройке наборов данных обратись к разделу Поддерживаемые наборы данных.