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.
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.
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.
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.
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.
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:
- Ajuste de Hiperparâmetros: Experimenta com diferentes taxas de aprendizagem, tamanhos de lote e aumentos de imagem.
- Data Augmentation: Usa técnicas como Mosaic e MixUp para criar amostras de treino diversas.
- 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:
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.