Ultralytics YOLO27:

Датасет DOTA128#

Введение#

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

Структура набора данных#

  • Изображения: 128 аэрофотоснимков (все в папке train, используются и для обучения, и для валидации) из набора DOTAv1.
  • Классы: 15 категорий DOTAv1, включая самолёт, корабль и крупное транспортное средство.
  • Аннотации: ограничивающие рамки с ориентацией в формате YOLO, сохранённые в файлах .txt рядом с каждым изображением.
  • Загрузка: 34 МБ; при первом запуске обучения файлы автоматически загружаются из ресурсов Ultralytics на GitHub.

Этот датасет предназначен для использования с платформой Ultralytics и YOLO26.

YAML-файл набора данных#

Для определения конфигурации датасета используется файл YAML. Он содержит информацию о путях к данным, классах и другие сведения. Для датасета DOTA128 файл dota128.yaml хранится по адресу https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/dota128.yaml.

ultralytics/cfg/datasets/dota128.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# DOTA128 dataset (128 images from the DOTAv1 split) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/obb/dota128
# Example usage: yolo train model=yolo26n-obb.pt data=dota128.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── dota128 ← downloads here (34 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: dota128 # dataset root dir
train: images/train # train images (relative to 'path') 128 images
val: images/train # val images (relative to 'path') 128 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/dota128.zip

Использование#

Чтобы обучить модель YOLO26n-obb на датасете DOTA128 в течение 100 эпох с размером изображения 640, используй следующие фрагменты кода. Полный список доступных аргументов смотри на странице Обучение модели.

Пример обучения
from ultralytics import YOLO

# Загрузить модель
model = YOLO("yolo26n-obb.pt")  # загрузить предварительно обученную модель (рекомендуется для обучения)

# Обучить модель
results = model.train(data="dota128.yaml", epochs=100, imgsz=640)

Примеры изображений и аннотаций#

Вот несколько примеров изображений из датасета DOTA128 с соответствующими аннотациями:

DOTA128 oriented bounding box dataset training mosaic
  • Изображение в виде мозаики: этот пример показывает обучающий батч, составленный из изображений датасета, объединённых в мозаику. Мозаика — это техника, используемая во время обучения: она объединяет несколько изображений в одно, чтобы увеличить разнообразие объектов и сцен в каждом обучающем батче. Это помогает модели лучше обобщать данные для объектов разных размеров и пропорций, а также в разных контекстах.

Пример демонстрирует разнообразие и сложность изображений в датасете DOTA128, а также преимущества мозаичного объединения изображений в процессе обучения.

Цитирование и благодарности#

Если ты используешь датасет DOTA в исследованиях или разработке, укажи в цитировании следующую статью:

Цитата
@article{9560031,
  author={Ding, Jian and Xue, Nan and Xia, Gui-Song and Bai, Xiang and Yang, Wen and Yang, Michael and Belongie, Serge and Luo, Jiebo and Datcu, Mihai and Pelillo, Marcello and Zhang, Liangpei},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  title={Object Detection in Aerial Images: A Large-Scale Benchmark and Challenges},
  year={2022},
  volume={44},
  number={11},
  pages={7778-7796},
  doi={10.1109/TPAMI.2021.3117983}
}

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

Часто задаваемые вопросы#

  • Датасет DOTA128 — универсальный датасет для детекции объектов с определением ориентации, состоящий из 128 изображений из набора DOTAv1. Все изображения хранятся в папке train. Для обучения и валидации используется один и тот же набор изображений, поэтому датасет идеально подходит для быстрой проверки и отладки моделей OBB, например Ultralytics YOLO26. Благодаря удобному размеру и разнообразию датасет помогает находить ошибки в конвейере и выполнять базовые проверки перед обучением на более крупных датасетах. Узнай больше о детекции OBB с помощью Ultralytics YOLO26.

  • Чтобы обучить модель YOLO26n-obb на датасете DOTA128 в течение 100 эпох с размером изображения 640, используй следующие фрагменты кода. Полный список аргументов смотри на странице Обучение модели.

    Пример обучения
    from ultralytics import YOLO
    
    # Загрузить модель
    model = YOLO("yolo26n-obb.pt")  # загрузить предварительно обученную модель (рекомендуется для обучения)
    
    # Обучить модель
    results = model.train(data="dota128.yaml", epochs=100, imgsz=640)
  • Датасет DOTA известен своим масштабным бенчмарком и сложностями, которые он представляет для детекции объектов на аэрофотоснимках. Подмножество DOTA128 разнообразнее DOTA8, но при этом подходит для начальных тестов. Файл dota128.yaml с путями, классами и сведениями о конфигурации можно найти по этой ссылке на GitHub.

  • По размеру DOTA128 (128 изображений) находится между DOTA8 (8 изображений) и полным набором DOTA-v1 (1 869 размеченных изображений для обучения и валидации):

    • DOTA8: Всего 8 изображений (4 для обучения, 4 для валидации) — идеально для быстрой проверки и отладки
    • DOTA128: 128 изображений (все в папке train, используются и для обучения, и для валидации) — оптимальный баланс между размером и разнообразием
    • Полный DOTA-v1: 1 869 размеченных изображений для обучения и валидации — полноценный датасет, но требовательный к ресурсам

    DOTA128 — удачный компромисс: он разнообразнее DOTA8, но гораздо удобнее полного датасета DOTA для экспериментов и начальной разработки моделей.

  • При мозаичном объединении во время обучения несколько изображений объединяются в одно, что увеличивает разнообразие объектов и контекстов в каждом пакете. Это помогает модели лучше обобщать данные для объектов разных размеров, с разными соотношениями сторон и в разных сценах. Этот метод можно наглядно продемонстрировать на пакете обучения, составленном из изображений датасета DOTA128, объединённых мозаичным способом, что способствует созданию более надёжных моделей. Подробнее о мозаичном объединении изображений и методах обучения читай на странице Обучение.

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

Комментарии