Descrição geral dos conjuntos de dados OBB (Oriented Bounding Box)
O treino de um modelo de deteção de objectos preciso com caixas delimitadoras orientadas (OBB) requer um conjunto de dados completo. Este guia explica os vários formatos de conjuntos de dados OBB compatíveis com os modelos Ultralytics YOLO , oferecendo informações sobre a sua estrutura, aplicação e métodos de conversão de formatos.
Formatos de conjuntos de dados OBB suportados
YOLO Formato OBB
O formato YOLO OBB designa as caixas delimitadoras pelos seus quatro pontos de canto com coordenadas normalizadas entre 0 e 1. Segue este formato:
Internamente, YOLO processa as perdas e as saídas no xywhr
que representa o ponto central (xy), a largura, a altura e a rotação da caixa delimitadora.
Um exemplo de um *.txt
para a imagem acima, que contém um objeto da classe 0
no formato OBB, pode ter o seguinte aspeto:
Utilização
Para treinar um modelo utilizando estes formatos OBB:
Exemplo
Conjuntos de dados suportados
Atualmente, são suportados os seguintes conjuntos de dados com caixas delimitadoras orientadas:
- DOTA-v1: The first version of the DOTA dataset, providing a comprehensive set of aerial images with oriented bounding boxes for object detection.
- DOTA-v1.5: An intermediate version of the DOTA dataset, offering additional annotations and improvements over DOTA-v1 for enhanced object detection tasks.
- DOTA-v2: DOTA (A Large-scale Dataset for Object Detection in Aerial Images) versão 2, enfatiza a deteção a partir de perspectivas aéreas e contém caixas delimitadoras orientadas com 1,7 milhões de instâncias e 11.268 imagens.
- DOTA8: Um pequeno subconjunto de 8 imagens do conjunto completo de dados DOTA adequado para testar fluxos de trabalho e verificações de Integração Contínua (CI) da formação OBB no
ultralytics
repositório.
Incorporar o teu próprio conjunto de dados OBB
Para aqueles que pretendem introduzir os seus próprios conjuntos de dados com caixas delimitadoras orientadas, assegura a compatibilidade com o "formatoYOLO OBB" mencionado acima. Converte suas anotações para esse formato exigido e detalha os caminhos, as classes e os nomes das classes em um arquivo de configuração YAML correspondente.
Converte formatos de etiquetas
Formato DOTA Dataset para YOLO Formato OBB
A transição de etiquetas do formato de conjunto de dados DOTA para o formato YOLO OBB pode ser realizada com este script:
Exemplo
Este mecanismo de conversão é fundamental para os conjuntos de dados no formato DOTA, garantindo o alinhamento com o formato OBB de Ultralytics YOLO .
É imperativo validar a compatibilidade do conjunto de dados com o teu modelo e aderir às convenções de formato necessárias. Os conjuntos de dados corretamente estruturados são essenciais para treinar modelos de deteção de objectos eficientes com caixas delimitadoras orientadas.
FAQ
O que são caixas delimitadoras orientadas (OBB) e como são utilizadas nos modelos Ultralytics YOLO ?
As caixas delimitadoras orientadas (OBB) são um tipo de anotação de caixa delimitadora em que a caixa pode ser rodada para se alinhar mais de perto com o objeto a ser detectado, em vez de estar apenas alinhada com o eixo. Isto é particularmente útil em imagens aéreas ou de satélite, onde os objectos podem não estar alinhados com os eixos da imagem. Nos modelos Ultralytics YOLO , os OBBs são representados pelos seus quatro pontos de canto no formato YOLO OBB. Isto permite uma deteção de objectos mais precisa, uma vez que as caixas delimitadoras podem rodar para se ajustarem melhor aos objectos.
Como é que converto as minhas etiquetas de conjuntos de dados DOTA existentes para o formato YOLO OBB para utilização com Ultralytics YOLOv8 ?
Podes converter as etiquetas do conjunto de dados DOTA para o formato YOLO OBB utilizando o convert_dota_to_yolo_obb
UltralyticsEsta conversão assegura a compatibilidade com os modelos Ultralytics YOLO , permitindo-te tirar partido das capacidades OBB para uma melhor deteção de objectos. Vê aqui um exemplo rápido:
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")
Este script irá reformatar as tuas anotações DOTA para um formato compatível com YOLO.
Como posso treinar um modelo YOLOv8 com caixas delimitadoras orientadas (OBB) no meu conjunto de dados?
Treinar um modelo YOLOv8 com OBBs implica garantir que o teu conjunto de dados está no formato OBB YOLO e depois utilizar a API Ultralytics para treinar o modelo. Aqui está um exemplo em Python e CLI:
Exemplo
Isto garante que o teu modelo aproveita as anotações detalhadas do OBB para melhorar a precisão da deteção.
Que conjuntos de dados são atualmente suportados para a formação OBB nos modelos Ultralytics YOLO ?
Atualmente, Ultralytics suporta os seguintes conjuntos de dados para formação OBB:
- DOTA-v1: The first version of the DOTA dataset, providing a comprehensive set of aerial images with oriented bounding boxes for object detection.
- DOTA-v1.5: An intermediate version of the DOTA dataset, offering additional annotations and improvements over DOTA-v1 for enhanced object detection tasks.
- DOTA-v2: Este conjunto de dados inclui 1,7 milhões de instâncias com caixas delimitadoras orientadas e 11.268 imagens, centrando-se principalmente na deteção de objectos aéreos.
- DOTA8: Um subconjunto mais pequeno, de 8 imagens, do conjunto de dados DOTA utilizado para testes e verificações de integração contínua (CI).
Estes conjuntos de dados são adaptados a cenários em que os OBB oferecem uma vantagem significativa, como a análise de imagens aéreas e de satélite.
Posso utilizar o meu próprio conjunto de dados com caixas delimitadoras orientadas para o treino de YOLOv8 e, em caso afirmativo, como?
Sim, podes utilizar o teu próprio conjunto de dados com caixas delimitadoras orientadas para o treino YOLOv8 . Certifica-te de que as anotações do teu conjunto de dados são convertidas para o formato YOLO OBB, que envolve a definição de caixas delimitadoras pelos seus quatro pontos de canto. Em seguida, é possível criar um arquivo de configuração YAML especificando os caminhos do conjunto de dados, as classes e outros detalhes necessários. Para obter mais informações sobre como criar e configurar os conjuntos de dados, consulte a secção Conjuntos de dados suportados.