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 dos argumentos de exportaçã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.
batch int 16 Define o número de imagens por lote. Utilizar -1 para AutoBatch, que se ajusta automaticamente com base na disponibilidade da memória GPU .
save_json bool False Se Trueguarda os resultados num ficheiro JSON para análise posterior ou integração com outras ferramentas.
save_hybrid bool False Se TrueO modelo de etiquetas, que é uma versão híbrida das etiquetas, combina anotações originais com previsões adicionais do modelo.
conf float 0.001 Define o limite mínimo de confiança para as detecções. As detecções com confiança inferior a este limiar são rejeitadas.
iou float 0.6 Define o limiar de Intersecção sobre União (IoU) para Supressão Não Máxima (NMS). Ajuda a reduzir as detecções duplicadas.
max_det int 300 Limita o número máximo de detecções por imagem. Útil em cenas densas para evitar detecções excessivas.
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.). Permite flexibilidade na utilização dos recursos CPU ou GPU .
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 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.
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.
name str None Nome da execução de validação. Utilizado para criar um subdiretório dentro da pasta do projeto, onde são armazenados os logs e outputs da validação.

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á 1 mês

Comentários