Link to this sectionDataset DOTA com OBB#
O DOTA é um dataset especializado, focado em object detection em imagens aéreas. Originado da série de datasets DOTA, ele oferece imagens anotadas que capturam uma grande variedade de cenas aéreas com Oriented Bounding Boxes (OBB).

Link to this sectionPrincipais recursos#
Watch: How to Train Ultralytics YOLO26 on the DOTA Dataset for Oriented Bounding Boxes in Google Colab
- Coleta proveniente de vários sensores e plataformas, com tamanhos de imagem que variam de 800 × 800 a 20.000 × 20.000 pixels.
- Apresenta mais de 1,7 milhão de caixas delimitadoras orientadas em 18 categorias.
- Abrange a detecção de objetos em múltiplas escalas, graças à ampla variação de tamanhos de objetos por imagem.
- As instâncias são anotadas por especialistas usando quadriláteros arbitrários (8 d.o.f.), capturando objetos de diferentes escalas, orientações e formas.
Link to this sectionVersões do Dataset#
Link to this sectionDOTA-v1.0#
- Contém 15 categorias comuns.
- Composto por 2.806 imagens com 188.282 instâncias.
- Proporções de divisão: 1/2 para treinamento, 1/6 para validação e 1/3 para teste.
Link to this sectionDOTA-v1.5#
- Incorpora as mesmas imagens do DOTA-v1.0.
- Instâncias muito pequenas (menos de 10 pixels) também são anotadas.
- Adição de uma nova categoria: "container crane".
- Um total de 403.318 instâncias.
- Lançado para o DOAI Challenge 2019 on Object Detection in Aerial Images.
Link to this sectionDOTA-v2.0#
- Coletas do Google Earth, Satélite GF-2 e outras imagens aéreas.
- Contém 18 categorias comuns.
- Composto por 11.268 imagens com impressionantes 1.793.658 instâncias.
- Novas categorias introduzidas: "airport" e "helipad".
- Divisões de imagem:
- Treinamento: 1.830 imagens com 268.627 instâncias.
- Validação: 593 imagens com 81.048 instâncias.
- Test-dev: 2.792 imagens com 353.346 instâncias.
- Test-challenge: 6.053 imagens com 1.090.637 instâncias.
Link to this sectionEstrutura do Dataset#
O DOTA exibe um layout estruturado, feito sob medida para desafios de detecção de objetos OBB:
- Images (Imagens): Uma vasta coleção de imagens aéreas de alta resolução capturando diversos terrenos e estruturas.
- Oriented Bounding Boxes (Caixas Delimitadoras Orientadas): Anotações na forma de retângulos rotacionados que encapsulam objetos independentemente de sua orientação, ideal para capturar objetos como aviões, navios e edifícios.
Link to this sectionAplicações#
O DOTA serve como referência para treinar e avaliar modelos especificamente voltados para análise de imagens aéreas. Com a inclusão de anotações OBB, ele apresenta um desafio único, permitindo o desenvolvimento de modelos de object detection especializados que atendem às nuances da imagem aérea. O dataset é particularmente valioso para aplicações em sensoriamento remoto, vigilância e monitoramento ambiental.
Link to this sectionYAML do Dataset#
Um arquivo YAML (Yet Another Markup Language) de dataset especifica as raízes de imagens/rótulos, nomes de classes e outros metadados importantes. A Ultralytics mantém arquivos YAML oficiais para os dois lançamentos mais usados:
Use o YAML que corresponde ao lançamento que você baixou, ou crie um YAML personalizado se estiver trabalhando com o DOTA-v2 ou outro derivado.
# 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
# └── DOTAv1 ← 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.zipLink to this sectionDividir imagens DOTA#
As imagens brutas rotineiramente excedem 10.000 pixels de lado, portanto, o mosaico (tiling) é necessário antes de alimentar os dados ao YOLO. Use o auxiliar abaixo para fatiar a imagem de origem em recortes sobrepostos de 1024 × 1024 em várias escalas, mantendo as anotações sincronizadas.
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,
)Mantenha o diretório de saída organizado no layout padrão do YOLO (images/train, labels/train, etc.) para que você possa referenciá-lo diretamente do YAML do dataset.
Link to this sectionUso#
Para treinar um modelo no dataset DOTA v1, você pode utilizar os trechos de código a seguir. Sempre consulte a documentação do seu modelo para obter uma lista completa de argumentos disponíveis. Para quem deseja experimentar primeiro com um subconjunto menor, considere usar o dataset DOTA8, que contém apenas 8 imagens para testes rápidos.
Observe que todas as imagens e anotações associadas no dataset DOTAv1 podem ser usadas para fins acadêmicos, mas o uso comercial é proibido. Sua compreensão e respeito aos desejos dos criadores do dataset são muito apreciados!
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 sectionDados de Amostra e Anotações#
Dar uma olhada no dataset ilustra sua profundidade:

- Exemplos do DOTA: Este instantâneo destaca a complexidade das cenas aéreas e a importância das anotações de Bounding Box Orientadas, capturando objetos em sua orientação natural.
A riqueza do dataset oferece insights inestimáveis sobre desafios de detecção de objetos exclusivos de imagens aéreas. O dataset DOTA-v2.0 tornou-se particularmente popular para projetos de sensoriamento remoto e vigilância aérea devido às suas anotações abrangentes e diversas categorias de objetos.
Link to this sectionCitações e Agradecimentos#
Se você usar o DOTA em seu trabalho, cite os artigos de pesquisa relevantes:
@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}
}Um agradecimento especial à equipe por trás dos datasets DOTA pelo esforço louvável na curadoria deste dataset. Para uma compreensão exaustiva do dataset e suas nuances, visite o site oficial do DOTA.
Link to this sectionFAQ#
Link to this sectionO que é o dataset DOTA e por que ele é importante para a detecção de objetos em imagens aéreas?#
O dataset DOTA é um conjunto de dados especializado focado em detecção de objetos em imagens aéreas. Ele apresenta Oriented Bounding Boxes (OBB), fornecendo imagens anotadas de diversas cenas aéreas. A diversidade do DOTA na orientação, escala e forma dos objetos em suas 1,7 milhão de anotações e 18 categorias o torna ideal para desenvolver e avaliar modelos adaptados para análise de imagens aéreas, como os usados em vigilância, monitoramento ambiental e gestão de desastres.
Link to this sectionComo o dataset DOTA lida com diferentes escalas e orientações nas imagens?#
O DOTA utiliza Oriented Bounding Boxes (OBB) para anotação, que são representadas por retângulos rotacionados que encapsulam objetos independentemente de sua orientação. Esse método garante que os objetos, sejam eles pequenos ou em ângulos diferentes, sejam capturados com precisão. As imagens multiescala do dataset, que variam de 800 × 800 a 20.000 × 20.000 pixels, permitem ainda a detecção eficaz de objetos pequenos e grandes. Essa abordagem é particularmente valiosa para imagens aéreas, onde os objetos aparecem em vários ângulos e escalas.
Link to this sectionComo posso treinar um modelo usando o dataset DOTA?#
Para treinar um modelo no dataset DOTA, você pode usar o seguinte exemplo com 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)Para mais detalhes sobre como dividir e pré-processar as imagens DOTA, consulte a seção de divisão de imagens DOTA.
Link to this sectionQuais são as diferenças entre DOTA-v1.0, DOTA-v1.5 e DOTA-v2.0?#
- DOTA-v1.0: Inclui 15 categorias comuns em 2.806 imagens com 188.282 instâncias. O dataset é dividido em conjuntos de treinamento, validação e teste.
- DOTA-v1.5: Baseia-se no DOTA-v1.0 anotando instâncias muito pequenas (menos de 10 pixels) e adicionando uma nova categoria, "container crane", totalizando 403.318 instâncias.
- DOTA-v2.0: Expande ainda mais com anotações do Google Earth e Satélite GF-2, apresentando 11.268 imagens e 1.793.658 instâncias. Inclui novas categorias como "airport" e "helipad".
Para uma comparação detalhada e especificidades adicionais, confira a seção de versões do dataset.
Link to this sectionComo posso preparar imagens DOTA de alta resolução para treinamento?#
As imagens DOTA, que podem ser muito grandes, são divididas em resoluções menores para um treinamento gerenciável. Aqui está um trecho em Python para dividir imagens:
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,
)Este processo facilita uma melhor eficiência de treinamento e desempenho do modelo. Para instruções detalhadas, visite a seção de divisão de imagens DOTA.