Saltar para o conteúdo

Conjunto de dados DOTA com OBB

O DOTA é um conjunto de dados especializado, que dá ênfase à deteção de objectos em imagens aéreas. Originário da série de conjuntos de dados DOTA, oferece imagens anotadas que capturam um conjunto diversificado de cenas aéreas com Oriented Bounding Boxes (OBB).

Visual das classes DOTA

Caraterísticas principais

  • Recolha a partir de vários sensores e plataformas, com tamanhos de imagem que variam entre 800 × 800 e 20.000 × 20.000 pixéis.
  • Inclui mais de 1,7 milhões de caixas delimitadoras orientadas em 18 categorias.
  • Engloba a deteção de objectos em várias escalas.
  • As instâncias são anotadas por especialistas utilizando quadriláteros arbitrários (8 d.o.f.), capturando objectos de diferentes escalas, orientações e formas.

Versões do conjunto de dados

DOTA-v1.0

  • Contém 15 categorias comuns.
  • Inclui 2.806 imagens com 188.282 instâncias.
  • Rácios de divisão: 1/2 para treino, 1/6 para validação e 1/3 para teste.

DOTA-v1.5

  • Incorpora as mesmas imagens do DOTA-v1.0.
  • As instâncias muito pequenas (menos de 10 pixéis) também são anotadas.
  • Aditamento de uma nova categoria: "grua para contentores".
  • Um total de 403.318 ocorrências.
  • Lançado para o DOAI Challenge 2019 sobre deteção de objectos em imagens aéreas.

DOTA-v2.0

  • Colecções de Google Earth, Satélite GF-2 e outras imagens aéreas.
  • Contém 18 categorias comuns.
  • Inclui 11.268 imagens com um número impressionante de 1.793.658 instâncias.
  • Foram introduzidas novas categorias: "aeroporto" e "heliporto".
  • Divisões de imagens:
    • Treino: 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.
    • Teste-desafio: 6.053 imagens com 1.090.637 instâncias.

Estrutura do conjunto de dados

O DOTA apresenta um layout estruturado adaptado aos desafios da deteção de objectos OBB:

  • Imagens: Uma vasta coleção de imagens aéreas de alta resolução que captam diversos terrenos e estruturas.
  • Caixas delimitadoras orientadas: Anotações sob a forma de rectângulos rodados que encapsulam objectos independentemente da sua orientação, ideais para capturar objectos como aviões, navios e edifícios.

Aplicações

O DOTA serve de referência para a formação e avaliação de modelos especificamente concebidos para a análise de imagens aéreas. Com a inclusão de anotações OBB, proporciona um desafio único, permitindo o desenvolvimento de modelos especializados de deteção de objectos que respondem às nuances das imagens aéreas.

Conjunto de dados YAML

Normalmente, os conjuntos de dados incorporam um ficheiro YAML (Yet Another Markup Language) que detalha a configuração do conjunto de dados. Para DOTA v1 e DOTA v1.5, Ultralytics fornece DOTAv1.yaml e DOTAv1.5.yaml ficheiros. Para mais informações sobre estes ficheiros, bem como sobre o DOTA v2, consulte o repositório e a documentação oficial do DOTA.

DOTAv1.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 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: ../datasets/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

Imagens de DOTA divididas

Para treinar o conjunto de dados DOTA, dividimos as imagens DOTA originais de alta resolução em imagens com resolução de 1024x1024 de forma multiescala.

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,
)

Utilização

Para treinar um modelo no conjunto de dados DOTA v1, você pode utilizar os seguintes trechos de código. Consulte sempre a documentação do seu modelo para obter uma lista completa dos argumentos disponíveis.

Aviso

Note-se que todas as imagens e anotações associadas no conjunto de dados DOTAv1 podem ser utilizadas para fins académicos, mas a utilização comercial é proibida. A sua compreensão e respeito pelos desejos dos criadores do conjunto de dados são muito apreciados!

Exemplo de comboio

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

Dados de amostra e anotações

Um olhar sobre o conjunto de dados ilustra a sua profundidade:

Imagem de amostra do conjunto de dados

  • Exemplos de DOTA: Este instantâneo sublinha a complexidade das cenas aéreas e a importância das anotações Oriented Bounding Box, capturando os objectos na sua orientação natural.

A riqueza do conjunto de dados oferece informações valiosas sobre os desafios da deteção de objectos exclusivos das imagens aéreas.

Citações e agradecimentos

Para aqueles que utilizam o DOTA nos seus esforços, é pertinente citar os documentos de investigação 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}
}

Uma nota especial de gratidão à equipa responsável pelos conjuntos de dados DOTA pelo seu esforço louvável na curadoria deste conjunto de dados. Para uma compreensão exaustiva do conjunto de dados e das suas nuances, visite o sítio Web oficial do DOTA.

FAQ

O que é o conjunto de dados DOTA e porque é importante para a deteção de objectos em imagens aéreas?

O conjunto de dados DOTA é um conjunto de dados especializado centrado na deteção de objectos em imagens aéreas. Inclui Oriented Bounding Boxes (OBB), fornecendo imagens anotadas de diversas cenas aéreas. A diversidade do DOTA em termos de orientação, escala e forma dos objectos nas suas 1,7 milhões de anotações e 18 categorias torna-o ideal para desenvolver e avaliar modelos adaptados à análise de imagens aéreas, tais como os utilizados na vigilância, monitorização ambiental e gestão de catástrofes.

Como é que o conjunto de dados DOTA lida com diferentes escalas e orientações nas imagens?

O DOTA utiliza caixas delimitadoras orientadas (OBB) para anotação, que são representadas por rectângulos rodados que encapsulam objectos independentemente da sua orientação. Este método garante que os objectos, quer sejam pequenos ou em diferentes ângulos, são capturados com precisão. As imagens multiescala do conjunto de dados, que variam entre 800 × 800 e 20.000 × 20.000 pixels, permitem ainda a deteção eficaz de objectos pequenos e grandes.

Como posso treinar um modelo utilizando o conjunto de dados DOTA?

Para treinar um modelo no conjunto de dados DOTA, pode utilizar o seguinte exemplo com Ultralytics YOLO :

Exemplo de comboio

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

Para mais detalhes sobre como dividir e pré-processar as imagens DOTA, consulte a secção dividir imagens DOTA.

Quais 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 conjunto de dados está dividido em conjuntos de treino, validação e teste.
  • DOTA-v1.5: Baseia-se no DOTA-v1.0 anotando instâncias muito pequenas (menos de 10 píxeis) e adicionando uma nova categoria, "guindaste de contentor", totalizando 403.318 instâncias.
  • DOTA-v2.0: Expande-se ainda mais com anotações de Google Earth e GF-2 Satellite, apresentando 11.268 imagens e 1.793.658 instâncias. Inclui novas categorias como "aeroporto" e "heliporto".

Para uma comparação pormenorizada e especificações adicionais, consulte a secção de versões do conjunto de dados.

Como é que posso preparar imagens DOTA de alta resolução para formação?

As imagens do DOTA, que podem ser muito grandes, são divididas em resoluções mais pequenas para um treino mais fácil de gerir. Aqui está um trecho de Python para dividir imagens:

Exemplo

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 treino e desempenho do modelo. Para obter instruções detalhadas, visite a secção de imagens DOTA divididas.

📅C riado há 1 ano ✏️ Atualizado há 2 meses

Comentários