Meet YOLO26: next-gen vision AI.

Link to this sectionОбзор наборов данных с ориентированными ограничивающими рамками (OBB)#

Обучение точной модели обнаружения объектов с использованием ориентированных ограничивающих рамок (OBB) требует тщательной подготовки набора данных. В этом руководстве объясняются различные форматы наборов данных OBB, совместимые с моделями Ultralytics YOLO, а также приводятся сведения об их структуре, применении и методах преобразования форматов.

Link to this sectionПоддерживаемые форматы наборов данных OBB#

Link to this sectionФормат 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

Link to this sectionФормат 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

Link to this sectionИспользование#

Чтобы обучить модель с использованием этих форматов 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)

Link to this sectionПоддерживаемые наборы данных#

В настоящее время поддерживаются следующие наборы данных с ориентированными ограничивающими рамками:

  • DOTA-v1: Первая версия набора данных DOTA, предоставляющая полный набор аэрофотоснимков с ориентированными ограничивающими рамками для обнаружения объектов.
  • DOTA-v1.5: Промежуточная версия набора данных DOTA, предлагающая дополнительные аннотации и улучшения по сравнению с DOTA-v1 для более эффективных задач обнаружения объектов.
  • DOTA-v2: DOTA (крупномасштабный набор данных для обнаружения объектов на аэрофотоснимках) версии 2, ориентирован на обнаружение с воздуха и содержит ориентированные ограничивающие рамки с 1,7 млн экземпляров и 11 268 изображениями.
  • DOTA8: Небольшой набор из 8 изображений, входящий в полный набор данных DOTA, подходящий для тестирования рабочих процессов и проверок непрерывной интеграции (CI) обучения OBB в репозитории ultralytics.
  • DOTA128: Подмножество набора данных DOTA из 128 изображений, где все изображения находятся в папке train (используется как для обучения, так и для валидации), что обеспечивает хороший баланс между размером и разнообразием для тестирования моделей OBB.

Link to this sectionДобавление собственного набора данных OBB#

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

Link to this sectionПреобразование форматов меток#

Link to this sectionПреобразование формата набора данных 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.

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

Link to this sectionFAQ#

Link to this sectionЧто такое ориентированные ограничивающие рамки (OBB) и как они используются в моделях Ultralytics YOLO?#

Ориентированные ограничивающие рамки (OBB) — это тип аннотации, при котором рамка может быть повернута для более точного соответствия обнаруживаемому объекту, а не просто выровнена по осям. Это особенно полезно при анализе аэрофотоснимков или спутниковых изображений, где объекты могут быть не выровнены по осям изображения. В моделях Ultralytics YOLO рамки OBB представлены четырьмя угловыми точками в формате YOLO OBB. Это позволяет повысить точность обнаружения объектов, так как ограничивающие рамки могут вращаться для лучшего охвата объектов.

Link to this sectionКак преобразовать существующие метки набора данных 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.

Link to this sectionКак обучить модель 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 для повышения точности обнаружения.

Link to this sectionКакие наборы данных в настоящее время поддерживаются для обучения OBB в моделях Ultralytics YOLO?#

В настоящее время Ultralytics поддерживает следующие наборы данных для обучения OBB:

  • DOTA-v1: Первая версия набора данных DOTA, предоставляющая полный набор аэрофотоснимков с ориентированными ограничивающими рамками для обнаружения объектов.
  • DOTA-v1.5: Промежуточная версия набора данных DOTA, предлагающая дополнительные аннотации и улучшения по сравнению с DOTA-v1 для более эффективных задач обнаружения объектов.
  • DOTA-v2: Этот набор данных включает 1,7 млн экземпляров с ориентированными ограничивающими рамками и 11 268 изображений, в основном ориентирован на обнаружение объектов с воздуха.
  • DOTA8: Подмножество набора данных DOTA из 8 изображений, используемое для тестирования и проверок непрерывной интеграции (CI).
  • DOTA128: Подмножество из 128 изображений, где все изображения находятся в папке train (используется как для обучения, так и для валидации), что предлагает большее разнообразие, чем DOTA8, оставаясь при этом удобным для начальной разработки и экспериментов с моделью OBB.

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

Link to this sectionМогу ли я использовать свой собственный набор данных с ориентированными ограничивающими рамками для обучения YOLO26, и если да, то как?#

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

Комментарии