Salta para o conteúdo

Validação do modelo com Ultralytics YOLO

Ultralytics YOLO ecossistema e integrações

Introdução

Validation is a critical step in the machine learning pipeline, allowing you to assess the quality of your trained models. Val mode in Ultralytics YOLO11 provides a robust suite of tools and metrics for evaluating the performance of your object detection models. This guide serves as a complete resource for understanding how to effectively use the Val mode to ensure that your models are both accurate and reliable.



Observa: Ultralytics Tutorial de modos: Validação

Porquê validar com Ultralytics YOLO ?

Here's why using YOLO11's Val mode is advantageous:

  • Precisão: Obtém métricas precisas como mAP50, mAP75 e mAP50-95 para avaliar de forma abrangente o teu modelo.
  • Conveniência: Utiliza funcionalidades incorporadas que se lembram das definições de treino, simplificando o processo de validação.
  • Flexibilidade: Valida o teu modelo com os mesmos ou diferentes conjuntos de dados e tamanhos de imagem.
  • Hyperparameter Tuning: Use validation metrics to fine-tune your model for better performance.

Principais características do modo Val

These are the notable functionalities offered by YOLO11's Val mode:

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

Dica

  • YOLO11 models automatically remember their training settings, so you can validate a model at the same image size and on the original dataset easily with just yolo val model=yolo11n.pt ou model('yolo11n.pt').val()

Exemplos de utilização

Validate trained YOLO11n model accuracy on the COCO8 dataset. No arguments are needed as the model mantém a sua formação data e argumentos como atributos do modelo. Vê a secção Argumentos abaixo para obteres 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. Segue-se uma análise detalhada de cada argumento para te ajudar a personalizar as definições de validação de forma eficaz.

Argumenta 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). This file includes paths to validation data, class names, and number of 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. Usa -1 para o AutoBatch, que se ajusta automaticamente com base na disponibilidade de memória do 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 Trueguarda uma versão híbrida das etiquetas que 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 Sets the Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Helps in reducing duplicate detections.
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 Enables half-precision (FP16) computation, reducing memory usage and potentially increasing speed with minimal impact on accuracy.
device str None Especifica o dispositivo para validação (cpu, cuda:0etc.). Permite flexibilidade na utilização dos recursos CPU ou GPU .
dnn bool False Se True, uses the OpenCV DNN module for ONNX model inference, offering an alternative to PyTorch inference methods.
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 False 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.

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 . Ajustar estes parâmetros de acordo com as tuas necessidades e recursos específicos pode ajudar a alcançar 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

How do I validate my YOLO11 model with Ultralytics?

To validate your YOLO11 model, you can use the Val mode provided by Ultralytics. For example, using the Python API, you can load a model and run validation with:

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, podes utilizar a interface de linha de comandos (CLI):

yolo val model=yolo11n.pt

Para uma maior personalização, podes ajustar vários argumentos como imgsz, batche conf nos modos Python e CLI . Verifica o Argumentos para YOLO Validação de modelos para veres a lista completa de parâmetros.

What metrics can I get from YOLO11 model validation?

YOLO11 model validation provides several key metrics to assess model performance. These include:

  • 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 , podes 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 obter mais detalhes, consulta as Principais características do modo Val.

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

A utilização de Ultralytics YOLO para validação oferece várias vantagens:

  • Precision: YOLO11 offers accurate performance metrics including mAP50, mAP75, and mAP50-95.
  • Conveniência: Os modelos memorizam as suas definições de treino, tornando a validação simples.
  • Flexibilidade: Podes 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.

Estes benefícios asseguram que os teus modelos são avaliados minuciosamente e podem ser optimizados para resultados superiores. Sabe mais sobre estas vantagens na secção Porquê Validar com Ultralytics YOLO .

Can I validate my YOLO11 model using a custom dataset?

Yes, you can validate your YOLO11 model using a custom dataset. Specify the data argument with the path to your dataset configuration file. This file should include paths to the validation data, class names, and other relevant details.

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, vê a secção Exemplo de validação com argumentos.

How do I save validation results to a JSON file in YOLO11?

Para gravar os resultados da validação num ficheiro JSON, podes definir o parâmetro save_json argumento para True quando executas 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. Verifica os Argumentos para a validação do modelo YOLO para mais detalhes.


📅 Created 11 months ago ✏️ Updated 10 days ago

Comentários