Meet YOLO26: next-gen vision AI.

Link to this sectionInformações sobre avaliação e ajuste fino de modelos#

Após treinar um modelo YOLO, o próximo passo é medir o seu desempenho e ajustá-lo para eliminar lacunas. A avaliação utiliza métricas como mAP e IoU para quantificar a precisão, enquanto o fine-tuning ajusta os parâmetros de treino para reforçar pontos fracos, garantindo que o modelo cumpra o objetivo do projeto. Este guia explica as principais métricas de avaliação, como interpretá-las e as técnicas de fine-tuning que elevam as capacidades do teu modelo.



Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision

A avaliação e o fine-tuning ocorrem perto do final do fluxo de trabalho do projeto de visão computacional, quando o treino já está em curso e precisas de verificar se o modelo é preciso, eficiente e está pronto para implementação.

Link to this sectionPrincipais Métricas de Avaliação#

Várias métricas medem a eficácia de desempenho de um modelo. Estas métricas de desempenho fornecem insights numéricos claros que orientam melhorias, garantindo que o modelo atinge os objetivos pretendidos.

Link to this sectionPontuação de Confiança#

A pontuação de confiança representa a certeza do modelo de que um objeto detetado pertence a uma determinada classe. Varia de 0 a 1, com pontuações mais altas indicando maior confiança. A pontuação de confiança ajuda a filtrar previsões; apenas as deteções com pontuações acima de um limiar especificado são consideradas válidas.

Não vês previsões?

Ao executar a inferência, se não vires nenhuma previsão e já tiveres verificado tudo o resto, tenta reduzir o limite de confiança. Por vezes, o limite é demasiado elevado, fazendo com que o modelo ignore previsões válidas. Reduzi-lo permite que o modelo considere mais possibilidades. Isto pode não atingir os objetivos finais do teu projeto, mas é uma boa forma de ver o que o modelo consegue fazer e decidir como realizar o fine-tuning.

Link to this sectionIntersection over Union#

Intersection over Union (IoU) é uma métrica em object detection que mede a sobreposição da bounding box prevista com a bounding box real. Os valores de IoU variam de 0 a 1, onde um representa uma correspondência perfeita. A IoU é essencial porque mede o quão próximos os limites previstos estão dos limites reais do objeto.

Intersection over Union Overview

Link to this sectionPrecisão Média (Mean Average Precision)#

Mean Average Precision (mAP) mede o desempenho geral de um modelo de deteção de objetos. Analisa a precisão da deteção de cada classe de objetos, calcula a média destas pontuações e fornece um número único que mostra a precisão com que o modelo consegue identificar e classificar objetos.

Duas métricas mAP são relatadas mais frequentemente:

  • mAP@.5: Mede a precisão média a um limite de IoU único de 0.5. Esta métrica verifica se o modelo consegue encontrar objetos corretamente com um requisito de precisão mais flexível. Foca-se em saber se o objeto está aproximadamente no lugar certo, sem necessidade de posicionamento perfeito, e ajuda a perceber se o modelo é geralmente bom a detetar objetos.
  • mAP@.5:.95: Calcula a média dos valores de mAP em múltiplos limiares de IoU, de 0.5 a 0.95 em incrementos de 0.05. Esta métrica é mais detalhada e rigorosa. Dá uma imagem mais completa da precisão com que o modelo consegue encontrar objetos em diferentes níveis de rigor e é especialmente útil para aplicações que necessitam de uma deteção de objetos precisa.

Outras métricas de mAP incluem mAP@0.75, que utiliza um limiar de IoU mais rigoroso de 0.75, e mAP@small, medium e large, que avaliam a precisão em objetos de diferentes tamanhos.

Mean average precision mAP metric

Link to this sectionA avaliar um modelo YOLO26#

Podes avaliar um modelo YOLO26 treinado com o modo de validação. Para uma análise mais profunda sobre como cada métrica é calculada e interpretada, consulta o guia de métricas de desempenho do YOLO26.

Link to this sectionLidar com tamanhos de imagem variáveis#

Avaliar o teu modelo em imagens de diferentes tamanhos ajuda-te a compreender o seu desempenho em diversos datasets. O parâmetro de validação rect=true agrupa imagens por rácio de aspeto e preenche cada lote até à forma mais pequena possível, para que as imagens retangulares sejam avaliadas sem serem forçadas a um formato quadrado.

O parâmetro imgsz define o tamanho da imagem utilizado durante a validação, aplicado como um quadrado. Se não o definires explicitamente, o YOLO26 reutiliza o valor guardado nas definições do modelo (640 para os modelos pré-treinados oficiais, ou qualquer tamanho utilizado no treino de um checkpoint personalizado). Com rect=true, o YOLO26 restringe o lado mais comprido ao imgsz e preenche o lado mais curto para um múltiplo de stride, preservando o rácio de aspeto. Ajusta o imgsz com base nas dimensões do teu dataset e na memória GPU disponível.

Link to this sectionAceder às métricas do YOLO26#

Para compreender o desempenho do teu modelo em detalhe, podes aceder a métricas de avaliação específicas com algumas linhas de Python. O snippet abaixo carrega um modelo, executa a validação e imprime as métricas mais úteis.

Uso
from ultralytics import YOLO

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

# Run validation on your dataset
results = model.val(data="coco8.yaml")

# Overall metrics
print("mAP50-95:", results.box.map)  # mAP at IoU 0.50:0.95
print("mAP50:", results.box.map50)  # mAP at IoU 0.50
print("mAP75:", results.box.map75)  # mAP at IoU 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness())  # weighted score used for model selection

# Per-class metrics
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)

# Per-image precision, recall, F1, TP, FP, and FN
print("Per-image metrics:", results.box.image_metrics)

# Per-stage timing breakdown in milliseconds per image
print("Timing breakdown (ms/image):", results.speed)

Nota que fitness() é um método e deve ser chamado com parênteses, enquanto métricas como map, map50 e mp são propriedades acedidas diretamente.

O atributo results.box.image_metrics é um dicionário por imagem, organizado pelo nome do ficheiro da imagem, contendo precision, recall, f1, tp, fp e fn a um IoU de 0.5 para cada imagem. Os tempos de pré-processamento, inferência, perda e pós-processamento são relatados separadamente no dicionário results.speed. Juntos, permitem identificar com que imagens o modelo tem dificuldades e realizar o fine-tuning em conformidade.

Link to this sectionFine-Tuning do teu Modelo#

O fine-tuning utiliza um modelo pré-treinado e ajusta os seus parâmetros para melhorar o desempenho numa tarefa ou dataset específico. Também conhecido como re-treino do modelo, permite que o modelo compreenda e preveja melhor os resultados para os dados que encontrará em aplicações do mundo real. Com base nos teus resultados de avaliação, re-treinas o modelo para alcançar resultados ideais, prestando especial atenção a alguns parâmetros e técnicas fundamentais.

Link to this sectionComeçar com uma taxa de aprendizagem mais alta#

Durante o treino normal, a learning rate começa baixa e aumenta gradualmente ao longo das primeiras épocas para estabilizar as atualizações iniciais. No fine-tuning, o modelo já contém características úteis do pré-treino, por isso podes ignorar este aquecimento e começar a adaptar-te aos teus novos dados imediatamente.

Define o argumento de treino warmup_epochs como 0 em model.train() para desativar a fase de aquecimento. O treino continua então a partir dos pesos pré-treinados à learning rate base configurada (lr0) em vez de aumentar progressivamente até lá, ajustando-se às nuances dos teus novos dados.

Fine-tuning sem aquecimento da learning rate
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Fine-tune with the warmup phase disabled
model.train(data="coco8.yaml", epochs=10, warmup_epochs=0)

Link to this sectionMosaico de imagens para objetos pequenos#

O mosaico de imagens (tiling) pode melhorar a precisão da deteção de objetos pequenos. Ao dividir imagens maiores em segmentos mais pequenos, como dividir imagens 1280x1280 em múltiplos segmentos 640x640, preservas a resolução original e permites que o modelo aprenda a partir de fragmentos de alta resolução. O Ultralytics suporta isto durante a inferência através de inferência em mosaico SAHI. Ao treinar com imagens em mosaico, certifica-te de que ajustas corretamente as tuas etiquetas para cada novo segmento.

Link to this sectionConclusão#

A avaliação e o fine-tuning são o que transformam um modelo treinado num modelo fiável e implementável: métricas como mAP e IoU expõem fraquezas, e alterações direcionadas nos parâmetros resolvem-nas. Começa com o modo de validação para avaliar o teu modelo, depois aplica as técnicas de fine-tuning acima e continua a iterar com novos parâmetros, técnicas e datasets. Se surgirem dúvidas pelo caminho, pergunta à comunidade no repositório GitHub do Ultralytics ou no servidor Discord do Ultralytics.

Link to this sectionFAQ#

Link to this sectionQuais são as principais métricas para avaliar o desempenho do modelo YOLO26?#

Para avaliar o desempenho do modelo YOLO26, as métricas importantes incluem a Pontuação de Confiança, Intersection over Union (IoU) e Mean Average Precision (mAP). A Pontuação de Confiança mede a certeza do modelo para cada classe de objeto detetada. A IoU avalia a sobreposição da bounding box prevista com a realidade. A Mean Average Precision (mAP) agrega pontuações de precisão entre classes, sendo mAP@.5 e mAP@.5:.95 dois tipos comuns para diferentes limiares de IoU. Sabe mais sobre estas métricas no nosso guia de métricas de desempenho YOLO26.

Link to this sectionComo posso fazer o ajuste fino de um modelo YOLO26 pré-treinado para o meu conjunto de dados específico?#

O fine-tuning de um modelo YOLO26 pré-treinado envolve o ajuste dos seus parâmetros para melhorar o desempenho numa tarefa ou dataset específico. Começa por avaliar o teu modelo com métricas, depois define o argumento de treino warmup_epochs como 0 em model.train() para que a learning rate comece imediatamente no valor base configurado, em vez de aumentar gradualmente. Durante a avaliação, parâmetros como rect=true ajudam a lidar eficazmente com tamanhos de imagem variados. Para orientações mais detalhadas, consulta a nossa secção sobre fine-tuning do teu modelo.

Link to this sectionComo posso lidar com tamanhos de imagem variáveis ao avaliar o meu modelo YOLO26?#

Para lidar com tamanhos de imagem variáveis durante a avaliação, utiliza o parâmetro rect=true no YOLO26, que agrupa imagens por rácio de aspeto e preenche cada lote em vez de forçar cada imagem a um formato quadrado. O parâmetro imgsz define o tamanho da imagem para validação; se não o alterares, o YOLO26 reutiliza o valor guardado do modelo (640 para os modelos pré-treinados oficiais). Ajusta o imgsz para se adequar ao teu dataset e memória GPU. Para mais detalhes, visita a nossa secção sobre como lidar com tamanhos de imagem variáveis.

Link to this sectionQue passos práticos posso dar para melhorar a mean average precision do meu modelo YOLO26?#

Melhorar a mean average precision (mAP) para um modelo YOLO26 envolve vários passos:

  1. Ajuste de Hiperparâmetros: Experimenta com diferentes taxas de aprendizagem, tamanhos de lote e aumentos de imagem.
  2. Data Augmentation: Usa técnicas como Mosaic e MixUp para criar amostras de treino diversas.
  3. Mosaico de Imagens: Divide imagens maiores em mosaicos mais pequenos para melhorar a precisão da deteção de objetos pequenos.

Consulta a nossa secção detalhada sobre fine-tuning do teu modelo para estratégias específicas.

Link to this sectionComo acedo às métricas de avaliação do modelo YOLO26 em Python?#

Podes aceder às métricas de avaliação do modelo YOLO26 utilizando Python após executar a validação:

Uso
from ultralytics import YOLO

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

# Run validation
results = model.val(data="coco8.yaml")

# Access key metrics
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean average precision at IoU=0.50:0.95:", results.box.map)
print("Mean recall:", results.box.mr)
print("Class indices evaluated:", results.box.ap_class_index)

Analisar estas métricas ajuda-te a fazer o fine-tuning e otimizar o teu modelo YOLO26. Para uma análise mais profunda, consulta o nosso guia sobre métricas de desempenho do YOLO.

Comentários