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 diretó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 está 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
ficheiro 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 suas caixas estiverem em pixéis, deve dividir x_center
e width
pela largura da imagem, e y_center
e height
pela altura da imagem. Os números de classe devem ser indexados a zero (começam com 0).
O ficheiro de etiquetas correspondente à imagem acima contém 2 pessoas (classe 0
) e um empate (classe 27
):
Ao utilizar o formato Ultralytics YOLO , organize as imagens de treino e validação e as etiquetas como mostrado no exemplo do conjunto de dados COCO8 abaixo.
Utilização
Eis como pode utilizar estes formatos para treinar o seu modelo:
Exemplo
Conjuntos de dados suportados
Segue-se uma lista dos conjuntos de dados suportados e uma breve descrição de cada um:
- Argoverse: Um conjunto de dados que contém dados de rastreio 3D e de previsão de movimento de ambientes urbanos com anotações ricas.
- 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.
- LVIS: Um conjunto de dados de deteção, segmentação e legendagem de objectos em grande escala com 1203 categorias de objectos.
- COCO8: Um subconjunto mais pequeno das primeiras 4 imagens de COCO train e COCO val, adequado para testes rápidos.
- COCO128: Um subconjunto mais pequeno das primeiras 128 imagens de COCO train e COCO val, adequado para testes.
- Global Wheat 2020: Um conjunto de dados com imagens de cabeças de trigo para o Global Wheat Challenge 2020.
- Objectos365: Um conjunto de dados de alta qualidade e em grande escala para deteção de objectos com 365 categorias de objectos e mais de 600 mil imagens anotadas.
- OpenImagesV7: 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 com deteção de objectos densos em ambientes de retalho com mais de 11 mil imagens e 1,7 milhões de caixas delimitadoras.
- VisDrone: Um conjunto de dados que contém dados de deteção de objectos e de seguimento de múltiplos objectos a partir de imagens captadas por drones, com mais de 10 mil imagens e sequências de vídeo.
- VOC: O conjunto de dados Pascal Visual Object Classes (VOC) para deteção e segmentação de objectos com 20 classes de objectos e mais de 11 mil imagens.
- xView: Um conjunto de dados para deteção de objectos em imagens aéreas com 60 categorias de objectos e mais de 1 milhão de objectos anotados.
- Roboflow 100: Uma referência de deteção de objectos diversificada com 100 conjuntos de dados que abrangem sete domínios de imagens para uma avaliação abrangente do modelo.
- Tumor cerebral: Um conjunto de dados para a deteção de tumores cerebrais inclui imagens de ressonância magnética ou de tomografia computorizada com detalhes sobre a presença, localização e caraterísticas do tumor.
- Vida selvagem africana: Um conjunto de dados com imagens da vida selvagem africana, incluindo búfalos, elefantes, rinocerontes e zebras.
- Assinatura: Um conjunto de dados que apresenta imagens de vários documentos com assinaturas anotadas, apoiando a verificação de documentos e a investigação sobre deteção de fraudes.
Adicionar o seu próprio conjunto de dados
Se tiver o seu próprio conjunto de dados e pretender utilizá-lo para treinar modelos de deteção com o formato Ultralytics YOLO , certifique-se de que segue o formato especificado acima em "Ultralytics YOLO format". Converta suas anotações para o formato necessário e especifique os caminhos, o número de classes e os nomes das classes no arquivo de configuração YAML.
Portar ou converter formatos de etiquetas
Formato do conjunto de dados COCO para YOLO Formato
Pode converter facilmente etiquetas do popular formato de conjunto de dados COCO para o formato YOLO utilizando o seguinte fragmento de código:
Exemplo
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 .
Lembre-se de verificar novamente se o conjunto de dados que pretende utilizar é compatível com o seu modelo e se segue as convenções de formato necessárias. Os conjuntos de dados corretamente formatados são cruciais para o treino de modelos de deteção de objectos bem sucedidos.
FAQ
Qual é o formato do conjunto de dados Ultralytics YOLO e como estruturá-lo?
O formato Ultralytics YOLO é uma configuração estruturada para definir conjuntos de dados nos seus projectos de formação. Envolve a definição de caminhos para as suas imagens de treino, validação e teste e as etiquetas correspondentes. Por exemplo:
path: ../datasets/coco8 # dataset root directory
train: images/train # training images (relative to 'path')
val: images/val # validation images (relative to 'path')
test: # optional test images
names:
0: person
1: bicycle
2: car
# ...
As etiquetas são guardadas em *.txt
ficheiros com um ficheiro por imagem, formatados como class x_center y_center width height
com coordenadas normalizadas. Para obter um guia detalhado, consulte o Exemplo de conjunto de dados COCO8.
Como é que converto um conjunto de dados COCO para o formato YOLO ?
Pode converter um conjunto de dados COCO para o formato YOLO utilizando as ferramentas de conversão Ultralytics . Eis um método rápido:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")
Este código converterá as suas anotações COCO para o formato YOLO , permitindo uma integração perfeita com os modelos Ultralytics YOLO . Para mais informações, visite a secção Porta ou Converter formatos de etiqueta.
Que conjuntos de dados são suportados por Ultralytics YOLO para deteção de objectos?
Ultralytics YOLO suporta uma vasta gama de conjuntos de dados, incluindo:
Cada página de conjunto de dados fornece informações detalhadas sobre a estrutura e a utilização adaptadas para uma formação eficiente em YOLO11 . Explore a lista completa na secção Conjuntos de dados suportados.
Como é que começo a treinar um modelo YOLO11 utilizando o meu conjunto de dados?
Para começar a treinar um modelo YOLO11 , certifique-se de que o conjunto de dados está formatado corretamente e que os caminhos estão definidos num ficheiro YAML. Use o script a seguir para iniciar o treinamento:
Exemplo
Consulte a secção Utilização para obter mais informações sobre a utilização de diferentes modos, incluindo os comandos CLI .
Onde posso encontrar exemplos práticos de utilização do Ultralytics YOLO para a deteção de objectos?
Ultralytics fornece inúmeros exemplos e guias práticos para utilizar YOLO11 em diversas aplicações. Para obter uma visão geral abrangente, visite o blogueUltralytics , onde pode encontrar estudos de caso, tutoriais detalhados e histórias da comunidade que demonstram a deteção de objectos, a segmentação e muito mais com YOLO11. Para exemplos específicos, consulte a secção Utilização na documentação.