Informações sobre avaliação e ajuste fino de modelos#
Após o treinamento de um modelo YOLO, o próximo passo é medir o seu desempenho e ajustá-lo para fechar as lacunas. A avaliação utiliza métricas como mAP e IoU para quantificar a precisão, enquanto o ajuste fino ajusta os parâmetros de treinamento para fortalecer os pontos fracos para que o modelo atinja o objetivo do seu projeto. Este guia explica as principais métricas de avaliação, como interpretá-las e como agir com base no que elas mostram.
Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision
A avaliação e o ajuste fino situam-se próximo do fim do fluxo de trabalho de projetos de visão computacional, assim que o treinamento está em andamento e precisas de verificar se o modelo é preciso, eficiente e está pronto para implantação.
Principais Métricas de Avaliação#
Várias métricas medem quão eficazmente um modelo desempenha. Estas métricas de desempenho fornecem percepções numéricas claras que orientam melhorias para garantir que o modelo atinge os seus objetivos pretendidos.
Pontuaçã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.
Intersection over Union#
Intersection over Union (IoU) é uma métrica em detecção de objetos que mede quão bem a caixa delimitadora prevista se sobrepõe à caixa delimitadora real. Os valores de IoU variam de 0 a 1, onde um representa uma correspondência perfeita. O IoU é essencial porque mede quão proximamente os limites previstos correspondem aos limites reais do objeto.
Precisão Média (Mean Average Precision)#
Mean Average Precision (mAP) mede o desempenho geral de um modelo de detecção de objetos. Analisa a precisão de detecção de cada classe de objeto, faz a média destas pontuações e fornece um único número que demonstra quão precisamente 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.
A avaliar um modelo YOLO26#
Podes avaliar um modelo YOLO26 treinado com o modo de validação. Para uma análise mais profunda de como cada métrica é calculada e interpretada, consulta o guia de métricas de desempenho do YOLO26.
Lidar com tamanhos de imagem variáveis#
Avaliar o teu modelo em imagens de diferentes tamanhos ajuda-te a compreender o seu desempenho em conjuntos de dados diversos. O parâmetro de validação rect=true agrupa imagens por proporção de aspecto e aplica preenchimento a cada lote para a menor forma que caiba, para que as imagens retangulares sejam avaliadas sem serem forçadas a um 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 com que um ponto de verificação personalizado tenha sido treinado). Com rect=true, o YOLO26 restringe o lado mais longo a imgsz e preenche o lado mais curto para um múltiplo de passo, preservando a proporção de aspecto. Ajusta imgsz com base nas dimensões do teu conjunto de dados e na memória GPU disponível.
Aceder à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 indexado pelo nome do ficheiro da imagem, contendo precision, recall, f1, tp, fp e fn a IoU 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, estes permitem-te identificar com precisão com quais imagens o modelo tem dificuldades e ajustar finamente em conformidade.
Fine-Tuning do teu Modelo#
O ajuste fino pega um modelo pré-treinado e ajusta os seus parâmetros para melhorar o desempenho em uma tarefa ou conjunto de dados específico. Também conhecido como re-treinamento de 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 resultados da sua avaliação, re-treinas o modelo nos teus próprios dados, ajustando os argumentos de treinamento cobertos no guia de ajuste fino.
Mosaico de imagens para objetos pequenos#
A divisão de imagens em mosaico (tiling) pode melhorar a precisão da detecção para objetos pequenos. Ao dividir imagens maiores em segmentos menores, como dividir imagens de 1280x1280 em múltiplos segmentos de 640x640, preservas a resolução original e permites que o modelo aprenda a partir de fragmentos de alta resolução. O Ultralytics suporta isto no momento da inferência através da inferência em mosaico SAHI. Ao treinar em imagens divididas, certifica-te de ajustar corretamente os teus rótulos para cada novo segmento.
Conclusão#
Avaliar e ajustar finamente são o que transforma um modelo treinado num modelo fiável e implementável: métricas como mAP e IoU expõem fragilidades, e alterações de parâmetros direcionadas resolvem-nas. Começa com o modo de validação para avaliar o teu modelo, depois re-treina com os argumentos cobertos no guia de ajuste fino e continua a iterar com novos parâmetros, técnicas e conjuntos de dados. Se surgirem dúvidas ao longo do caminho, pergunta à comunidade no repositório GitHub da Ultralytics ou no servidor do Discord da Ultralytics.
FAQ#
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. O IoU avalia quão bem a caixa delimitadora prevista se sobrepõe ao solo de referência (ground truth). A Mean Average Precision (mAP) agrega pontuações de precisão entre classes, sendo mAP@.5 e mAP@.5:.95 dois tipos comuns para limiares de IoU variáveis. Sabe mais sobre estas métricas no nosso guia de métricas de desempenho do YOLO26.
O ajuste fino de um modelo YOLO26 pré-treinado envolve o ajuste dos seus parâmetros para melhorar o desempenho numa tarefa ou conjunto de dados específico. Começa por avaliar o teu modelo com métricas, depois re-treina a partir dos pesos pré-treinados no teu próprio conjunto de dados. Durante a avaliação, parâmetros como
rect=trueajudam a lidar eficazmente com tamanhos de imagem variados. Para os argumentos de treinamento a ajustar, consulta o guia de ajuste fino.Para lidar com tamanhos de imagem variáveis durante a avaliação, utiliza o parâmetro
rect=trueno YOLO26, que agrupa imagens por proporção de aspecto e preenche cada lote em vez de forçar cada imagem a um quadrado. O parâmetroimgszdefine o tamanho da imagem para validação; se não o substituíres, o YOLO26 reutiliza o valor guardado do modelo (640 para os modelos pré-treinados oficiais). Ajustaimgszpara se adaptar ao teu conjunto de dados e memória GPU. Para mais detalhes, visita a nossa secção sobre como lidar com tamanhos de imagem variáveis.Melhorar a mean average precision (mAP) para um modelo YOLO26 envolve vários passos:
- Ajustando Hiperparâmetros: Experimenta diferentes taxas de aprendizado, tamanhos de lote e aumentos de imagem.
- Aumento de Dados: Utiliza técnicas como Mosaic e MixUp para criar amostras de treinamento diversas.
- Mosaico de Imagens: Divide imagens maiores em mosaicos mais pequenos para melhorar a precisão da deteção de objetos pequenos.
Para os argumentos de treinamento por trás dos passos 1 e 2, consulta o guia de ajuste fino; o passo 3 é abordado em mosaico de imagens.
Podes aceder às métricas de avaliação do modelo YOLO26 utilizando Python após executar a validação:
Usofrom 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 ajustar finamente e otimizar o teu modelo YOLO26. Para uma análise mais profunda, consulta o nosso guia sobre métricas de desempenho do YOLO.