Salta 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-te avaliar a qualidade dos teus modelos treinados. O modo Val em Ultralytics YOLOv8 fornece um conjunto robusto de ferramentas e métricas para avaliar o desempenho dos teus 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 teus modelos são precisos e fiáveis.



Observa: Ultralytics Tutorial de modos: Validação

Porquê validar com Ultralytics YOLO ?

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

  • 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.
  • Ajuste de hiperpar√Ęmetros: Utiliza m√©tricas de valida√ß√£o para afinar o teu modelo e obter um melhor desempenho.

Principais características do modo Val

Estas s√£o as funcionalidades not√°veis oferecidas pelo modo Val do YOLOv8:

  • 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

  • YOLOv8 os modelos recordam automaticamente as defini√ß√Ķes de treino, pelo que podes validar um modelo com o mesmo tamanho de imagem e no conjunto de dados original facilmente com apenas yolo val model=yolov8n.pt ou model('yolov8n.pt').val()

Exemplos de utilização

Valida a precisão do modelo YOLOv8n treinado no conjunto de dados COCO128. Não precisas de passar nenhum argumento, pois o 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('yolov8n.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=yolov8n.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, coco128.yaml). Este ficheiro inclui caminhos para os 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. Usa -1 para o AutoBatch, que se ajusta automaticamente com base na disponibilidade de mem√≥ria da 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 Define o limite 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:0etc.). Permite flexibilidade na utilização de recursos de CPU ou GPU.
dnn bool False Se Trueutiliza o módulo OpenCV DNN para a inferência do modelo ONNX , oferecendo uma alternativa aos métodos de inferência PyTorch .
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('yolov8n.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=yolov8n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0


Criado em 2023-11-12, Atualizado em 2024-03-03
Autores: glenn-jocher (8), Burhan-Q (1), chr043416@gmail.com (1)

Coment√°rios