Перейти к содержанию

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

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

Визуализация классов DOTA

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



Смотреть: Как обучить Ultralytics YOLO11 на наборе данных DOTA для ориентированных ограничивающих рамок в Google Colab

  • Сбор данных с различных датчиков и платформ, с размерами изображений от 800 × 800 до 20 000 × 20 000 пикселей.
  • Содержит более 1,7 миллиона ориентированных ограничивающих рамок по 18 категориям.
  • Охватывает многомасштабное обнаружение объектов.
  • Экземпляры аннотируются экспертами с использованием произвольных четырехугольников (8 d.o.f.), захватывающих объекты разных масштабов, ориентаций и форм.

Версии Dataset

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: 2 792 изображения с 353 346 экземплярами.
    • Test-challenge: 6 053 изображения с 1 090 637 экземплярами.

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

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

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

Приложения

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

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

Как правило, наборы данных включают YAML-файл (Yet Another Markup Language), в котором подробно описывается конфигурация набора данных. Для DOTA v1 и DOTA v1.5 Ultralytics предоставляет DOTAv1.yaml и DOTAv1.5.yaml файлы. Для получения дополнительной информации об этом, а также о DOTA v2, пожалуйста, обратитесь к официальному репозиторию и документации DOTA.

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 (2GB)

# 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

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

Разделить изображения

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 v1, вы можете использовать следующие фрагменты кода. Всегда обращайтесь к документации вашей модели для получения полного списка доступных аргументов. Тем, кто хочет сначала поэкспериментировать с меньшим подмножеством, следует рассмотреть возможность использования набора данных DOTA8, который содержит всего 8 изображений для быстрого тестирования.

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

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

Пример обучения

from ultralytics import YOLO

# Create a new YOLO11n-OBB model from scratch
model = YOLO("yolo11n-obb.yaml")

# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)
# Train a new YOLO11n-OBB model on the DOTAv1 dataset
yolo obb train data=DOTAv1.yaml model=yolo11n-obb.pt epochs=100 imgsz=1024

Примеры данных и аннотации

Взгляд на набор данных иллюстрирует его глубину:

Образец изображения набора данных

  • Примеры 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.

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

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

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

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

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

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

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

Пример обучения

from ultralytics import YOLO

# Create a new YOLO11n-OBB model from scratch
model = YOLO("yolo11n-obb.yaml")

# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)
# Train a new YOLO11n-OBB model on the DOTAv1 dataset
yolo obb train data=DOTAv1.yaml model=yolo11n-obb.pt 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 Satellite, включая 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.



📅 Создано 1 год назад ✏️ Обновлено 3 месяца назад

Комментарии