Salta para o conteúdo

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:

class_index x1 y1 x2 y2 x3 y3 x4 y4

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.

Exemplos de formatos OBB

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:

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

Utilização

Para treinar um modelo utilizando estes formatos OBB:

Exemplo

from ultralytics import YOLO

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

# Train the model on the DOTAv2 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the DOTAv2 dataset
yolo detect train data=DOTAv1.yaml model=yolov8n.pt epochs=100 imgsz=640

Conjuntos de dados suportados

Atualmente, são suportados os seguintes conjuntos de dados com caixas delimitadoras orientadas:

  • 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

from ultralytics.data.converter import convert_dota_to_yolo_obb

convert_dota_to_yolo_obb("path/to/DOTA")

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

from ultralytics import YOLO

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

# Train the model on the custom dataset
results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the custom dataset
yolo detect train data=your_dataset.yaml model=yolov8n.pt epochs=100 imgsz=640

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-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.



Criado em 2023-11-12, Atualizado em 2024-07-23
Autores: glenn-jocher (11)

Comentários