Validação do modelo com Ultralytics YOLO
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
oumodel('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
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 True guarda os resultados num ficheiro JSON para análise posterior ou integração com outras ferramentas. |
save_hybrid |
bool |
False |
Se True O 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 True utiliza 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 True gera e guarda gráficos de previsões versus verdade terrestre para avaliação visual do desempenho do modelo. |
rect |
bool |
True |
Se True utiliza 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
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):
Para uma maior personalização, pode ajustar vários argumentos como imgsz
, batch
e 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:
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:
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 .