Insights sobre avaliação e ajuste fino de modelos#
Após treinar um modelo YOLO, o próximo passo é medir seu desempenho e ajustá-lo para corrigir as lacunas. A avaliação usa métricas como mAP e IoU para quantificar a precisão, enquanto o ajuste fino modifica os parâmetros de treinamento para fortalecer os pontos fracos e garantir que o modelo atenda ao 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.
Assista: Análise da avaliação e do ajuste fino de modelos | Dicas para melhorar a precisão média média
A avaliação e o ajuste fino acontecem perto do fim do fluxo de trabalho do projeto de visão computacional, quando o treinamento já está em andamento e você precisa verificar se o modelo é preciso, eficiente e está pronto para implantação.
Principais métricas de avaliação#
Várias métricas medem a eficácia do desempenho de um modelo. Essas métricas de desempenho fornecem informações numéricas claras que orientam melhorias para garantir que o modelo atinja os objetivos pretendidos.
Pontuação de confiança#
A pontuação de confiança representa o grau de certeza do modelo de que um objeto detectado pertence a uma determinada classe. Ela varia de 0 a 1, e pontuações mais altas indicam maior confiança. A pontuação de confiança ajuda a filtrar previsões: somente detecções com pontuações de confiança acima de um limiar especificado são consideradas válidas.
Ao executar a inferência, se você não estiver vendo previsões e já tiver verificado todo o resto, tente reduzir o limiar de confiança. Às vezes, o limiar está alto demais, fazendo com que o modelo ignore previsões válidas. Reduzi-lo permite que o modelo considere mais possibilidades. Talvez isso não atenda aos objetivos finais do seu projeto, mas é uma boa maneira de ver o que o modelo consegue fazer e decidir como ajustá-lo.
Intersection over Union#
Intersection over Union (IoU) é uma métrica de detecção de objetos que mede quanto a caixa delimitadora prevista se sobrepõe à caixa delimitadora de ground truth. Os valores de IoU variam de 0 a 1, sendo que 1 representa uma correspondência perfeita. O IoU é essencial porque mede o quanto os limites previstos correspondem aos limites reais do objeto.
Precisão média#
Precisão média (mAP) mede o desempenho geral de um modelo de detecção de objetos. Ela considera a precisão na detecção de cada classe de objeto, calcula a média dessas pontuações e fornece um único número que mostra a precisão com que o modelo consegue identificar e classificar objetos.
Duas métricas mAP são as mais comumente relatadas:
- mAP@.5: Mede a precisão média em um único limiar de IoU de 0.5. Esta métrica verifica se o modelo consegue encontrar objetos corretamente com um requisito de precisão menos rigoroso. Ela se concentra em saber se o objeto está aproximadamente no lugar certo, sem exigir um posicionamento perfeito, e ajuda a avaliar se o modelo é, em geral, bom em detectar objetos.
- mAP@.5:.95: Calcula a média dos valores de mAP obtidos em vários limiares de IoU, de 0.5 a 0.95, em incrementos de 0.05. Esta métrica é mais detalhada e rigorosa. Ela oferece uma visão mais completa da precisão com que o modelo encontra objetos em diferentes níveis de rigor e é especialmente útil para aplicações que exigem detecção precisa de objetos.
Outras métricas mAP incluem mAP@0.75, que usa um limiar de IoU mais rigoroso, de 0.75, e mAP@small, medium, and large, que avaliam a precisão de objetos de diferentes tamanhos.
Avaliação de um modelo YOLO26#
Você pode avaliar um modelo YOLO26 treinado com o modo de validação. Para uma análise mais aprofundada de como cada métrica é calculada e interpretada, consulte o guia de métricas de desempenho do YOLO26.
Como lidar com tamanhos variáveis de imagem#
Avaliar seu modelo com imagens de diferentes tamanhos ajuda a entender seu desempenho em conjuntos de dados diversificados. Por padrão, a validação usa lotes retangulares (rect=True em model.val()): ela agrupa as imagens por proporção e preenche cada lote até a menor dimensão que comporte as imagens, permitindo avaliar imagens retangulares sem forçá-las a um formato quadrado.
O parâmetro imgsz define o tamanho de imagem usado durante a validação, aplicado como um quadrado. Se você não o definir explicitamente, YOLO26 reutiliza o valor salvo nas configurações do modelo (640 para os modelos pré-treinados oficiais ou o tamanho usado no treinamento de um checkpoint personalizado). Com rect=true, YOLO26 limita o lado mais longo a imgsz e preenche o lado mais curto até um múltiplo do stride, preservando a proporção. Ajuste imgsz com base nas dimensões do seu conjunto de dados e na memória disponível da GPU.
Acessar as métricas de YOLO26#
Para entender detalhadamente o desempenho do seu modelo, você pode acessar métricas de avaliação específicas com algumas linhas de Python. O trecho de código abaixo carrega um modelo, executa a validação e exibe as métricas mais úteis.
from ultralytics import YOLO
# Carregar um modelo
model = YOLO("yolo26n.pt")
# Execute a validação no seu conjunto de dados
results = model.val(data="coco8.yaml")
# Métricas gerais
print("mAP50-95:", results.box.map) # mAP com IoU de 0.50:0.95
print("mAP50:", results.box.map50) # mAP com IoU de 0.50
print("mAP75:", results.box.map75) # mAP com IoU de 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness()) # pontuação ponderada usada para selecionar o modelo
# Métricas por classe
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)
# Precisão, recall, F1, TP, FP e FN por imagem
print("Per-image metrics:", results.box.image_metrics)
# Detalhamento do tempo por etapa, em milissegundos por imagem
print("Timing breakdown (ms/image):", results.speed)Observe que fitness() é um método e deve ser chamado com parênteses, enquanto métricas como map, map50 e mp são propriedades acessadas diretamente.
O atributo results.box.image_metrics é um dicionário por imagem, indexado pelo nome do arquivo de imagem, que contém precision, recall, f1, tp, fp e fn com IoU de 0.5 para cada imagem. Os tempos de pré-processamento, inferência, perda e pós-processamento são informados separadamente no dicionário results.speed. Em conjunto, esses dados permitem identificar com precisão quais imagens representam dificuldades para o modelo e ajustar o modelo conforme necessário.
Ajustar o seu modelo#
O ajuste fino parte de um modelo pré-treinado e adapta os seus parâmetros para melhorar o desempenho numa tarefa ou num conjunto de dados específico. Também conhecido como retreinamento do modelo, esse processo permite que o modelo compreenda e preveja melhor os resultados para os dados que encontrará em aplicações reais. Com base nos resultados da avaliação, você retreina o modelo com os seus próprios dados, ajustando os argumentos de treinamento abordados no guia de ajuste fino.
Divisão de imagens em blocos para objetos pequenos#
A divisão de imagens em blocos pode melhorar a precisão da deteção de objetos pequenos. Ao dividir imagens maiores em segmentos menores, por exemplo, ao dividir imagens de 1280x1280 em vários segmentos de 640x640, você preserva a resolução original e permite que o modelo aprenda com fragmentos de alta resolução. A Ultralytics oferece suporte a esse processo no momento da inferência por meio da inferência em blocos com SAHI. Ao treinar com imagens divididas em blocos, ajuste corretamente as etiquetas para cada novo segmento.
Conclusão#
A avaliação e o ajuste fino transformam um modelo treinado num modelo fiável e pronto para implantação: métricas como mAP e IoU revelam pontos fracos, e alterações direcionadas nos parâmetros ajudam a resolvê-los. Comece pelo modo de validação para avaliar o seu modelo e, em seguida, retreine-o com os argumentos descritos no guia de ajuste fino, continuando a iterar com novos parâmetros, técnicas e conjuntos de dados. Se surgirem dúvidas durante o processo, pergunte à comunidade no repositório GitHub da Ultralytics ou no servidor Discord da Ultralytics.
Perguntas frequentes#
Para avaliar o desempenho de um modelo YOLO26, as métricas importantes incluem a pontuação de confiança, a interseção sobre união (IoU) e a precisão média (mAP). A pontuação de confiança mede o grau de certeza do modelo para cada classe de objeto detetada. IoU avalia a sobreposição entre a caixa delimitadora prevista e a verdade fundamental. A precisão média (mAP) agrega as pontuações de precisão entre as classes, sendo mAP@.5 e mAP@.5:.95 dois tipos comuns para diferentes limiares de IoU. Saiba mais sobre essas métricas no nosso guia de métricas de desempenho do YOLO26.
O ajuste fino de um modelo YOLO26 pré-treinado envolve adaptar os seus parâmetros para melhorar o desempenho numa tarefa ou num conjunto de dados específico. Comece por avaliar o seu modelo com métricas e, em seguida, retreine-o a partir dos pesos pré-treinados com o seu próprio conjunto de dados. Durante a avaliação, parâmetros como
rect=trueajudam a lidar eficazmente com imagens de vários tamanhos. Para saber quais argumentos de treinamento ajustar, consulte o guia de ajuste fino.Para lidar com tamanhos de imagem variáveis durante a avaliação, use a validação retangular (
rect=True, o padrão demodel.val()), que agrupa imagens pela proporção e aplica preenchimento a cada lote, em vez de forçar todas as imagens a terem formato quadrado. O parâmetroimgszdefine o tamanho da imagem para a validação; se você não o substituir, YOLO26 reutiliza o valor salvo no modelo (640 nos modelos oficiais pré-treinados). Ajusteimgszde acordo com o seu conjunto de dados e a memória da GPU. Para mais detalhes, visite a nossa secção sobre como lidar com tamanhos de imagem variáveis.Melhorar a precisão média (mAP) de um modelo YOLO26 envolve várias etapas:
- Ajuste de hiperparâmetros: experimente diferentes taxas de aprendizagem, tamanhos de lote e aumentos de dados de imagem.
- Aumento de dados: use técnicas como Mosaic e MixUp para criar amostras de treinamento diversificadas.
- Divisão de imagens em blocos: divida imagens maiores em blocos menores para melhorar a precisão da deteção de objetos pequenos.
Para saber mais sobre os argumentos de treinamento relacionados com as etapas 1 e 2, consulte o guia de ajuste fino; a etapa 3 é abordada em divisão de imagens em blocos.
Você pode aceder às métricas de avaliação de um modelo YOLO26 com Python depois de executar a validação:
Usofrom ultralytics import YOLO # Carregar um modelo model = YOLO("yolo26n.pt") # Executar a validação results = model.val(data="coco8.yaml") # Aceder às métricas principais 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)A análise destas métricas ajuda você a ajustar e otimizar o seu modelo YOLO26. Para uma análise mais aprofundada, consulte o nosso guia sobre métricas de desempenho do YOLO.