Saltar para o conteúdo

Validação do modelo com Ultralytics YOLO

Ultralytics YOLO ecossistema e integrações

Introdução

A validação é um passo crítico no pipeline de aprendizagem automática, permitindo-lhe avaliar a qualidade dos seus modelos treinados. O modo Val em Ultralytics YOLO11 fornece um conjunto robusto de ferramentas e métricas para avaliar o desempenho dos seus modelos de deteção de objectos. Este guia serve como um recurso completo para compreender como utilizar eficazmente o modo Val para garantir que os seus modelos são precisos e fiáveis.



Ver: Ultralytics Tutorial de modos: Validação

Porquê validar com Ultralytics YOLO ?

Eis por que razão é vantajoso utilizar o modo Val do YOLO11:

  • Precisão: Obtenha métricas exactas como mAP50, mAP75 e mAP50-95 para avaliar exaustivamente o seu modelo.
  • Conveniência: Utilize funcionalidades incorporadas que memorizam as definições de formação, simplificando o processo de validação.
  • Flexibilidade: Valide o seu modelo com os mesmos ou diferentes conjuntos de dados e tamanhos de imagem.
  • Ajuste de hiperparâmetros: Utilize métricas de validação para afinar o seu modelo e obter um melhor desempenho.

Principais caraterísticas do modo Val

Estas são as funcionalidades notáveis oferecidas pelo modo Val do YOLO11:

  • Configurações automatizadas: Os modelos recordam as suas configurações de treino para uma validação direta.
  • Suporte Multi-Métrico: Avalie o seu modelo com base numa série de métricas de precisão.
  • CLI e Python API: Escolha entre a interface de linha de comandos ou a API Python com base na sua preferência de validação.
  • Compatibilidade de dados: Funciona sem problemas com conjuntos de dados utilizados durante a fase de formação, bem como com conjuntos de dados personalizados.

Dica

  • YOLO11 os modelos recordam automaticamente as suas definições de treino, pelo que pode validar um modelo com o mesmo tamanho de imagem e no conjunto de dados original facilmente com apenas yolo val model=yolo11n.pt ou model('yolo11n.pt').val()

Exemplos de utilização

Validar o modelo YOLO11n treinado exatidão no conjunto de dados COCO8. Não são necessários argumentos, uma vez que o model mantém a sua formação data e argumentos como atributos do modelo. Consulte a secção Argumentos abaixo para obter uma lista completa de argumentos de validação.

Exemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list contains map50-95 of each category
yolo detect val model=yolo11n.pt      # val official model
yolo detect val model=path/to/best.pt # val custom model

Argumentos para YOLO Validação de modelos

Ao validar os modelos YOLO , vários argumentos podem ser ajustados para otimizar o processo de avaliação. Esses argumentos controlam aspectos como o tamanho da imagem de entrada, o processamento em lote e os limites de desempenho. Abaixo está uma análise detalhada de cada argumento para ajudá-lo a personalizar as configurações de validação de forma eficaz.

Argumento Tipo Predefinição Descrição
data str None Especifica o caminho para o ficheiro de configuração do conjunto de dados (por exemplo, coco8.yaml). Este ficheiro inclui caminhos para dados de validação, nomes de classes e número de classes.
imgsz int 640 Define o tamanho das imagens de entrada. Todas as imagens são redimensionadas para esta dimensão antes do processamento. Tamanhos maiores podem melhorar a precisão para objectos pequenos, mas aumentam o tempo de computação.
batch int 16 Define o número de imagens por lote. Valores mais altos utilizam a memória GPU de forma mais eficiente, mas exigem mais VRAM. Ajuste com base nos recursos de hardware disponíveis.
save_json bool False Se Trueguarda os resultados num ficheiro JSON para análise posterior, integração com outras ferramentas ou envio para servidores de avaliação como o COCO.
save_hybrid bool False Se TrueO modelo de etiquetas, guarda uma versão híbrida de etiquetas que combina anotações originais com previsões adicionais do modelo. Útil para aprendizagem semi-supervisionada e melhoramento de conjuntos de dados.
conf float 0.001 Define o limite mínimo de confiança para as detecções. Valores mais baixos aumentam a recuperação, mas podem introduzir mais falsos positivos. Utilizado durante a validação para calcular as curvas de precisão-recuperação.
iou float 0.6 Define o limiar de Intersecção sobre União para Supressão Não Máxima. Controla a eliminação da deteção de duplicados.
max_det int 300 Limita o número máximo de detecções por imagem. Útil em cenas densas para evitar detecções excessivas e gerir os recursos computacionais.
half bool True Permite o cálculo de meia-precisão (FP16), reduzindo a utilização de memória e aumentando potencialmente a velocidade com um impacto mínimo na precisão.
device str None Especifica o dispositivo para validação (cpu, cuda:0, etc.). Quando Noneseleciona automaticamente o melhor dispositivo disponível. Podem ser especificados vários dispositivos CUDA com separação por vírgula.
dnn bool False Se Trueutiliza o OpenCV Módulo DNN para ONNX inferência de modelos, oferecendo uma alternativa ao PyTorch métodos de inferência.
plots bool False Quando definido para Truegera e guarda gráficos de previsões versus verdade terrestre, matrizes de confusão e curvas PR para avaliação visual do desempenho do modelo.
rect bool True Se Trueutiliza a inferência retangular para a formação de lotes, reduzindo o preenchimento e aumentando potencialmente a velocidade e a eficiência através do processamento de imagens no seu rácio de aspeto original.
split str 'val' Determina a divisão do conjunto de dados a utilizar para a validação (val, test, ou train). Permite flexibilidade na escolha do segmento de dados para avaliação do desempenho.
project str None Nome do diretório do projeto onde são guardados os resultados da validação. Ajuda a organizar os resultados de diferentes experiências ou modelos.
name str None Nome da execução de validação. Usado para criar um subdiretório dentro da pasta do projeto, onde os logs de validação e as saídas são armazenados.
verbose bool False Se Trueexibe informações detalhadas durante o processo de validação, incluindo métricas por classe, progresso do lote e informações adicionais de depuração.
save_txt bool False Se TrueO sistema de deteção de imagens, guarda os resultados da deteção em ficheiros de texto, com um ficheiro por imagem, útil para análise posterior, pós-processamento personalizado ou integração com outros sistemas.
save_conf bool False Se Trueinclui valores de confiança nos ficheiros de texto guardados quando save_txt está ativado, fornecendo resultados mais detalhados para análise e filtragem.
save_crop bool False Se TrueO software de deteção de objectos, guarda imagens recortadas de objectos detectados, que podem ser úteis para a criação de conjuntos de dados específicos, verificação visual ou análise adicional de detecções individuais.
workers int 8 Número de threads de trabalho para carregamento de dados. Valores mais altos podem acelerar o pré-processamento de dados, mas podem aumentar o uso CPU . Definir como 0 usa o thread principal, que pode ser mais estável em alguns ambientes.
augment bool False Permite o aumento do tempo de teste (TTA) durante a validação, melhorando potencialmente a precisão da deteção à custa da velocidade de inferência, executando a inferência em versões transformadas da entrada.
agnostic_nms bool False Permite a supressão não máxima independente de classe, que mescla caixas sobrepostas independentemente de sua classe prevista. Útil para aplicações focadas em instâncias.
single_cls bool False Trata todas as classes como uma única classe durante a validação. Útil para avaliar o desempenho do modelo em tarefas de deteção binária ou quando as distinções de classe não são importantes.

Cada uma destas definições desempenha um papel vital no processo de validação, permitindo uma avaliação personalizável e eficiente dos modelos YOLO . O ajuste destes parâmetros de acordo com as suas necessidades e recursos específicos pode ajudar a obter o melhor equilíbrio entre precisão e desempenho.

Exemplo de validação com argumentos

Os exemplos abaixo mostram a validação do modelo YOLO com argumentos personalizados em Python e CLI.

Exemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Customize validation settings
validation_results = model.val(data="coco8.yaml", imgsz=640, batch=16, conf=0.25, iou=0.6, device="0")
yolo val model=yolo11n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0

FAQ

Como posso validar o meu modelo YOLO11 com Ultralytics?

Para validar o modelo YOLO11 , é possível usar o modo Val fornecido por Ultralytics. Por exemplo, usando a API Python , é possível carregar um modelo e executar a validação com:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Validate the model
metrics = model.val()
print(metrics.box.map)  # map50-95

Em alternativa, pode utilizar a interface de linha de comandos (CLI):

yolo val model=yolo11n.pt

Para uma maior personalização, pode ajustar vários argumentos como imgsz, batche conf em ambos os modos Python e CLI . Verifique o Argumentos para YOLO Validação de modelos para obter a lista completa de parâmetros.

Que métricas posso obter da validação do modelo YOLO11 ?

YOLO11 A validação do modelo fornece vários indicadores-chave para avaliar o desempenho do modelo. Estes incluem:

  • mAP50 (precisão média no limiar 0,5 da IoU)
  • mAP75 (precisão média média no limiar 0,75 da IoU)
  • mAP50-95 (precisão média média em vários limiares de IoU de 0,5 a 0,95)

Utilizando a API Python , é possível aceder a estas métricas da seguinte forma:

metrics = model.val()  # assumes `model` has been loaded
print(metrics.box.map)  # mAP50-95
print(metrics.box.map50)  # mAP50
print(metrics.box.map75)  # mAP75
print(metrics.box.maps)  # list of mAP50-95 for each category

Para uma avaliação completa do desempenho, é crucial rever todas estas métricas. Para mais pormenores, consulte as Principais caraterísticas do modo Val.

Quais são as vantagens de utilizar Ultralytics YOLO para validação?

A utilização do sítio Ultralytics YOLO para validação apresenta várias vantagens:

  • Precisão: YOLO11 oferece métricas de desempenho exactas, incluindo mAP50, mAP75 e mAP50-95.
  • Conveniência: Os modelos memorizam as suas definições de treino, tornando a validação simples.
  • Flexibilidade: Pode validar com os mesmos ou diferentes conjuntos de dados e tamanhos de imagem.
  • Afinação de hiperparâmetros: As métricas de validação ajudam a afinar os modelos para um melhor desempenho.

Estas vantagens garantem que os seus modelos são avaliados minuciosamente e podem ser optimizados para obter resultados superiores. Saiba mais sobre estas vantagens na secção Porquê Validar com Ultralytics YOLO .

Posso validar o meu modelo YOLO11 utilizando um conjunto de dados personalizado?

Sim, pode validar o seu modelo YOLO11 utilizando um conjunto de dados personalizado. Especificar o data com o caminho para o ficheiro de configuração do conjunto de dados. Este ficheiro deve incluir caminhos para os dados de validação, nomes de classes e outros pormenores relevantes.

Exemplo em Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Validate with a custom dataset
metrics = model.val(data="path/to/your/custom_dataset.yaml")
print(metrics.box.map)  # map50-95

Exemplo de utilização de CLI:

yolo val model=yolo11n.pt data=path/to/your/custom_dataset.yaml

Para mais opções personalizáveis durante a validação, consulte a secção Exemplo de validação com argumentos.

Como guardar os resultados da validação num ficheiro JSON em YOLO11?

Para guardar os resultados da validação num ficheiro JSON, pode definir o parâmetro save_json argumento para True ao executar a validação. Isto pode ser feito tanto na API Python como em CLI.

Exemplo em Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Save validation results to JSON
metrics = model.val(save_json=True)

Exemplo de utilização de CLI:

yolo val model=yolo11n.pt save_json=True

Esta funcionalidade é particularmente útil para análise posterior ou integração com outras ferramentas. Para mais informações, consulte os Argumentos para a validação do modelo YOLO .

📅C riado há 1 ano ✏️ Atualizado há 5 dias

Comentários