Набор данных DOTA с OBB

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

Классы объектов набора данных DOTA для обнаружения с воздуха

Основные характеристики



Watch: How to Train Ultralytics YOLO26 on the DOTA Dataset for Oriented Bounding Boxes in Google Colab
  • Коллекция собрана с различных датчиков и платформ, размеры изображений варьируются от 800 × 800 до 20 000 × 20 000 пикселей.
  • Включает более 1,7 млн ориентированных ограничивающих рамок по 18 категориям.
  • Поддерживает многомасштабное обнаружение объектов благодаря широкому диапазону размеров объектов на каждом изображении.
  • Экземпляры аннотированы экспертами с использованием произвольных (8 степеней свободы) четырехугольников, охватывающих объекты различных масштабов, ориентаций и форм.

Версии набора данных

DOTA-v1.0

  • Содержит 15 распространенных категорий.
  • Включает 2806 изображений и 188 282 экземпляра.
  • Коэффициенты разделения: 1/2 для обучения, 1/6 для валидации и 1/3 для тестирования.

DOTA-v1.5

DOTA-v2.0

  • Коллекция включает снимки Google Earth, спутника GF-2 и другие аэрофотоснимки.
  • Содержит 18 распространенных категорий.
  • Включает 11 268 изображений и внушительные 1 793 658 экземпляров.
  • Представлены новые категории: "аэропорт" и "вертолетная площадка".
  • Разделение изображений:
    • Обучение: 1830 изображений с 268 627 экземплярами.
    • Валидация: 593 изображения с 81 048 экземплярами.
    • Тестовая разработка (Test-dev): 2792 изображения с 353 346 экземплярами.
    • Тестовое соревнование (Test-challenge): 6053 изображения с 1 090 637 экземплярами.

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

DOTA обладает структурированной разметкой, адаптированной для задач обнаружения объектов с помощью OBB:

  • Изображения: Обширная коллекция аэрофотоснимков высокого разрешения, охватывающая разнообразные ландшафты и структуры.
  • Ориентированные ограничивающие рамки: Аннотации в виде повернутых прямоугольников, охватывающих объекты независимо от их ориентации, что идеально подходит для захвата таких объектов, как самолеты, корабли и здания.

Приложения

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

YAML набора данных

Файл YAML (Yet Another Markup Language) набора данных определяет пути к изображениям/меткам, имена классов и другие важные метаданные. Ultralytics поддерживает официальные файлы YAML для двух наиболее часто используемых выпусков:

Используй тот YAML, который соответствует загруженному тобой выпуску, или создай свой собственный, если ты работаешь с DOTA-v2 или другим производным набором.

DOTAv1.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# DOTA 1.0 dataset https://captain-whu.github.io/DOTA/index.html for object detection in aerial images by Wuhan University
# Documentation: https://docs.ultralytics.com/datasets/obb/dota-v2/
# Example usage: yolo train model=yolov8n-obb.pt data=DOTAv1.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── dota1 ← downloads here (2 GB)

# 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: DOTAv1 # dataset root dir
train: images/train # train images (relative to 'path') 1411 images
val: images/val # val images (relative to 'path') 458 images
test: images/test # test images (optional) 937 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/DOTAv1.zip

Разделение изображений DOTA

Исходные изображения часто превышают 10 000 пикселей по стороне, поэтому перед подачей данных в YOLO требуется их тайлинг. Используй приведенный ниже вспомогательный инструмент, чтобы нарезать исходные изображения на перекрывающиеся фрагменты размером 1024 × 1024 в разных масштабах, сохраняя при этом синхронизацию аннотаций.

Разделить изображения
from ultralytics.data.split_dota import split_test, split_trainval

# Split train and val set, with labels.
split_trainval(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)
# Split test set, without labels.
split_test(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)
Совет

Организуй выходную директорию в стандартной структуре YOLO (images/train, labels/train и т. д.), чтобы на нее можно было ссылаться непосредственно из YAML набора данных.

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

Чтобы обучить модель на наборе данных DOTA v1, ты можешь использовать следующие фрагменты кода. Всегда обращайся к документации своей модели для получения полного списка доступных аргументов. Если ты хочешь сначала поэкспериментировать с небольшим подмножеством, рассмотри использование набора данных DOTA8, который содержит всего 8 изображений для быстрой проверки.

Предупреждение

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

Пример обучения
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 с аннотациями ориентированных ограничивающих рамок

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

Богатство набора данных дает неоценимые знания о проблемах обнаружения объектов, характерных именно для аэрофотоснимков. Набор данных DOTA-v2.0 стал особенно популярным для проектов дистанционного зондирования и воздушного наблюдения благодаря своим всеобъемлющим аннотациям и разнообразным категориям объектов.

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

Если ты используешь 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={2021},
  volume={},
  number={},
  pages={1-1},
  doi={10.1109/TPAMI.2021.3117983}
}

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

Часто задаваемые вопросы (FAQ)

Что такое набор данных DOTA и почему он важен для обнаружения объектов на аэрофотоснимках?

Набор данных DOTA — это специализированный набор, ориентированный на обнаружение объектов на аэрофотоснимках. Он содержит ориентированные ограничивающие рамки (OBB) и предоставляет аннотированные изображения различных аэросцен. Разнообразие ориентаций, масштабов и форм объектов в 1,7 млн аннотаций DOTA по 18 категориям делает его идеальным для разработки и оценки моделей, адаптированных для анализа аэрофотоснимков, например, используемых в наблюдении, экологическом мониторинге и управлении стихийными бедствиями.

Как набор данных DOTA обрабатывает различные масштабы и ориентации изображений?

DOTA использует ориентированные ограничивающие рамки (OBB) для аннотирования, которые представляются в виде повернутых прямоугольников, заключающих в себе объекты независимо от их ориентации. Этот метод гарантирует, что объекты, будь то маленькие или расположенные под разными углами, будут точно зафиксированы. Многомасштабные изображения набора данных размером от 800 × 800 до 20 000 × 20 000 пикселей дополнительно позволяют эффективно обнаруживать как мелкие, так и крупные объекты. Такой подход особенно ценен для аэрофотосъемки, где объекты отображаются под разными углами и в разных масштабах.

Как я могу обучить модель, используя набор данных DOTA?

Чтобы обучить модель на наборе данных DOTA, ты можешь использовать следующий пример с Ultralytics YOLO:

Пример обучения
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, см. в разделе раздела разделения изображений DOTA.

В чем различия между DOTA-v1.0, DOTA-v1.5 и DOTA-v2.0?

  • DOTA-v1.0: Включает 15 распространенных категорий, распределенных по 2806 изображениям, с 188 282 экземплярами. Набор данных разделен на обучающий, валидационный и тестовый наборы.
  • DOTA-v1.5: Основан на DOTA-v1.0, содержит аннотации очень мелких экземпляров (менее 10 пикселей) и добавляет новую категорию «контейнерный кран», в общей сложности 403 318 экземпляров.
  • DOTA-v2.0: Дальнейшее расширение с аннотациями из Google Earth и спутника GF-2, включающее 11 268 изображений и 1 793 658 экземпляров. В него добавлены новые категории, такие как «аэропорт» и «вертолетная площадка».

Для детального сравнения и дополнительных подробностей ознакомься с разделом версий набора данных.

Как я могу подготовить аэрофотоснимки DOTA высокого разрешения для обучения?

Изображения DOTA, которые могут быть очень большими, делятся на меньшие разрешения для удобства обучения. Вот фрагмент кода на Python для разделения изображений:

Пример
from ultralytics.data.split_dota import split_test, split_trainval

# split train and val set, with labels.
split_trainval(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)
# split test set, without labels.
split_test(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)

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

Комментарии