Salta para o conte√ļdo

Descrição geral dos conjuntos de dados de deteção de objectos

O treino de um modelo de dete√ß√£o de objectos robusto e preciso requer um conjunto de dados abrangente. Este guia apresenta v√°rios formatos de conjuntos de dados que s√£o compat√≠veis com o modelo Ultralytics YOLO e fornece informa√ß√Ķes sobre a sua estrutura, utiliza√ß√£o e como converter entre diferentes formatos.

Formatos de conjuntos de dados suportados

Ultralytics YOLO formato

O formato Ultralytics YOLO é um formato de configuração do conjunto de dados que permite definir o diretório raiz do conjunto de dados, os caminhos relativos para os directórios de imagens de treino/validação/teste ou *.txt ficheiros que contêm caminhos de imagens e um dicionário de nomes de classes. Aqui tens um exemplo:

# 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/coco8  # dataset root dir
train: images/train  # train images (relative to 'path') 4 images
val: images/val  # val images (relative to 'path') 4 images
test:  # test images (optional)

# Classes (80 COCO classes)
names:
  0: person
  1: bicycle
  2: car
  # ...
  77: teddy bear
  78: hair drier
  79: toothbrush

As etiquetas para este formato devem ser exportadas para o formato YOLO com um *.txt por imagem. Se n√£o existirem objectos numa imagem, n√£o h√° *.txt √© necess√°rio. O ficheiro *.txt deve ser formatado com uma linha por objeto em class x_center y_center width height formato. As coordenadas da caixa devem estar em xywh normalizado (de 0 a 1). Se as tuas caixas estiverem em pixels, deves dividir x_center e width por largura de imagem, e y_center e height pela altura da imagem. Os n√ļmeros de classe devem ser indexados a zero (come√ßa com 0).

Exemplo de imagem rotulada

O ficheiro de etiquetas correspondente à imagem acima contém 2 pessoas (classe 0) e um empate (classe 27):

Exemplo de ficheiro de etiquetas

Ao usar o formato Ultralytics YOLO , organiza as imagens e rótulos de treinamento e validação como mostrado no exemplo abaixo.

Exemplo de estrutura de directórios de conjuntos de dados

Utilização

Eis como podes utilizar estes formatos para treinar o teu modelo:

Exemplo

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640

Conjuntos de dados suportados

Segue-se uma lista dos conjuntos de dados suportados e uma breve descrição de cada um:

  • Argoverso: Uma cole√ß√£o de dados de sensores recolhidos de ve√≠culos aut√≥nomos. Cont√©m anota√ß√Ķes de rastreio 3D para objectos de autom√≥veis.
  • COCO: Common Objects in Context (COCO) √© um conjunto de dados de dete√ß√£o, segmenta√ß√£o e legendagem de objectos em grande escala com 80 categorias de objectos.
  • COCO8: Um subconjunto mais pequeno do conjunto de dados COCO, o COCO8 √© mais leve e mais r√°pido de treinar.
  • GlobalWheat2020: Um conjunto de dados com imagens de cabe√ßas de trigo para o Global Wheat Challenge 2020.
  • Objectos365: Um conjunto de dados de dete√ß√£o de objectos em grande escala com 365 categorias de objectos e 600 mil imagens, destinado a fazer avan√ßar a investiga√ß√£o sobre dete√ß√£o de objectos.
  • AbrirImagensV7: Um conjunto de dados abrangente da Google com 1,7 milh√Ķes de imagens de treino e 42 mil imagens de valida√ß√£o.
  • SKU-110K: Um conjunto de dados que cont√©m imagens de produtos de retalho densamente embalados, destinado √† dete√ß√£o de objectos em ambientes de retalho.
  • VisDrone: Um conjunto de dados centrado em imagens baseadas em drones, contendo v√°rias categorias de objectos como carros, pe√Ķes e ciclistas.
  • COV: O PASCAL VOC √© um popular conjunto de dados de dete√ß√£o de objectos com 20 categorias de objectos, incluindo ve√≠culos, animais e mobili√°rio.
  • xVer: Um conjunto de dados contendo imagens de sat√©lite de alta resolu√ß√£o, concebido para a dete√ß√£o de v√°rias classes de objectos em vistas a√©reas.

Adicionar o teu próprio conjunto de dados

Se tiveres o teu pr√≥prio conjunto de dados e pretenderes utiliz√°-lo para treinar modelos de dete√ß√£o com o formato Ultralytics YOLO , certifica-te de que segue o formato especificado acima em "Ultralytics YOLO format". Converte as tuas anota√ß√Ķes para o formato necess√°rio e especifica os caminhos, o n√ļmero de classes e os nomes das classes no ficheiro de configura√ß√£o YAML.

Porta ou converte formatos de etiquetas

Formato do conjunto de dados COCO para YOLO Formato

Podes converter facilmente etiquetas do popular formato de conjunto de dados COCO para o formato YOLO utilizando o seguinte fragmento de código:

Exemplo

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir='path/to/coco/annotations/')

Esta ferramenta de convers√£o pode ser utilizada para converter o conjunto de dados COCO ou qualquer conjunto de dados no formato COCO para o formato Ultralytics YOLO .

Lembra-te de verificar se o conjunto de dados que pretendes utilizar √© compat√≠vel com o teu modelo e se segue as conven√ß√Ķes de formato necess√°rias. Os conjuntos de dados corretamente formatados s√£o cruciais para treinar modelos de dete√ß√£o de objectos bem sucedidos.



Criado em 2023-11-12, Atualizado em 2024-01-14
Autores: glenn-jocher (6)

Coment√°rios