Insights sobre avaliação e ajuste fino de modelos
Introdução
Depois de treinar seu modelo de visão computacional, é essencial avaliá-lo e refiná-lo para um desempenho ideal. Apenas treinar seu modelo não é o suficiente. Você precisa garantir que seu modelo seja preciso, eficiente e atenda ao objetivo do seu projeto de visão computacional. Ao avaliar e ajustar o seu modelo, você pode identificar fraquezas, melhorar sua precisão e impulsionar o desempenho geral.
Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision
Neste guia, compartilhamos insights sobre avaliação e ajuste fino de modelos para tornar esta etapa de um projeto de visão computacional mais acessível. Discutimos como entender as métricas de avaliação e implementar técnicas de ajuste fino, fornecendo o conhecimento necessário para elevar as capacidades do seu modelo.
Avaliando o desempenho do modelo usando métricas
Avaliar o desempenho de um modelo nos ajuda a entender sua eficácia. Várias métricas são usadas para medir o desempenho. Estas métricas de desempenho fornecem insights numéricos claros que podem orientar melhorias para garantir que o modelo atinja seus objetivos pretendidos. Vamos analisar mais de perto algumas métricas importantes.
Pontuação de confiança
A pontuação de confiança representa a certeza do modelo de que um objeto detectado pertence a uma classe específica. Ela varia de 0 a 1, com pontuações mais altas indicando maior confiança. A pontuação de confiança ajuda a filtrar predições; apenas detecções com pontuações acima de um limite especificado são consideradas válidas.
Dica Rápida: Ao executar inferências, se você não vir nenhuma predição e já tiver verificado todo o resto, tente diminuir a pontuação de confiança. Às vezes, o limite é muito alto, fazendo com que o modelo ignore predições válidas. Diminuir a pontuação permite que o modelo considere mais possibilidades. Isso pode não atender aos seus objetivos de projeto, mas é uma boa maneira de ver o que o modelo é capaz de fazer e decidir como ajustá-lo.
Intersection over Union
Intersection over Union (IoU) é uma métrica em object detection que mede o quanto a bounding box prevista se sobrepõe à bounding box real. Os valores de IoU variam de 0 a 1, onde um representa uma correspondência perfeita. O IoU é essencial porque mede o quanto os limites previstos correspondem aos limites reais do objeto.
Mean Average Precision
Mean Average Precision (mAP) é uma forma de medir o desempenho de um modelo de detecção de objetos. Ela analisa a precisão da detecção de cada classe de objeto, calcula a média dessas pontuações e fornece um número geral que mostra a precisão com que o modelo pode identificar e classificar objetos.
Vamos focar em duas métricas específicas de mAP:
- mAP@.5: Mede a precisão média em um único limite de IoU (Intersection over Union) de 0,5. Esta métrica verifica se o modelo consegue encontrar objetos corretamente com um requisito de accuracy mais flexível. Ela se concentra em saber se o objeto está aproximadamente no lugar certo, sem necessidade de posicionamento perfeito. Ajuda a ver se o modelo é geralmente bom em localizar objetos.
- mAP@.5:.95: Calcula a média dos valores de mAP calculados em vários limites 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 de quão precisamente o modelo pode encontrar objetos em diferentes níveis de rigor e é especialmente útil para aplicações que precisam de detecção de objetos precisa.
Outras métricas de mAP incluem mAP@0.75, que usa um limite de IoU mais rigoroso de 0,75, e mAP@small, medium e large, que avaliam a precisão em objetos de diferentes tamanhos.
Avaliando o desempenho do modelo YOLO26
Com relação ao YOLO26, você pode usar o validation mode para avaliar o modelo. Além disso, não deixe de conferir nosso guia que se aprofunda nas métricas de desempenho do YOLO26 e como elas podem ser interpretadas.
Perguntas comuns da comunidade
Ao avaliar seu modelo YOLO26, você pode encontrar algumas dificuldades. Com base em perguntas comuns da comunidade, aqui estão algumas dicas para ajudá-lo a tirar o máximo proveito do seu modelo YOLO26:
Lidando com tamanhos de imagem variáveis
Avaliar seu modelo YOLO26 com imagens de tamanhos diferentes pode ajudá-lo a entender seu desempenho em conjuntos de dados diversos. Usando o parâmetro de validação rect=true, o YOLO26 ajusta o passo da rede para cada lote com base nos tamanhos das imagens, permitindo que o modelo lide com imagens retangulares sem forçá-las a um único tamanho.
O parâmetro de validação imgsz define a dimensão máxima para redimensionamento de imagem, que é 640 por padrão. Você pode ajustar isso com base nas dimensões máximas do seu conjunto de dados e na memória da GPU disponível. Mesmo com imgsz definido, rect=true permite que o modelo gerencie tamanhos de imagem variados efetivamente ao ajustar o passo dinamicamente.
Acessando as métricas do YOLO26
Se você quiser obter uma compreensão mais profunda do desempenho do seu modelo YOLO26, pode acessar facilmente métricas de avaliação específicas com algumas linhas de código Python. O trecho de código abaixo permitirá que você carregue seu modelo, execute uma avaliação e imprima várias métricas que mostram como seu modelo está se saindo.
from ultralytics import YOLO
# Load the model
model = YOLO("yolo26n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Average precision:", results.box.ap)
print("Average precision at IoU=0.50:", results.box.ap50)
print("Class indices for average precision:", results.box.ap_class_index)
print("Class-specific results:", results.box.class_result)
print("F1 score:", results.box.f1)
print("F1 score curve:", results.box.f1_curve)
print("Overall fitness score:", results.box.fitness)
print("Mean average precision:", results.box.map)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean average precision at IoU=0.75:", results.box.map75)
print("Mean average precision for different IoU thresholds:", results.box.maps)
print("Mean results for different metrics:", results.box.mean_results)
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Per-image metrics:", results.box.image_metrics)
print("Precision:", results.box.p)
print("Precision curve:", results.box.p_curve)
print("Precision values:", results.box.prec_values)
print("Specific precision metrics:", results.box.px)
print("Recall:", results.box.r)
print("Recall curve:", results.box.r_curve)O objeto de resultados também inclui image_metrics, um dicionário por imagem, organizado pelo nome do arquivo da imagem, com precision, recall, f1, tp, fp e fn, bem como métricas de velocidade como tempo de pré-processamento, tempo de inferência, perda e tempo de pós-processamento. Ao analisar essas métricas, você pode ajustar e otimizar seu modelo YOLO26 para um desempenho melhor, tornando-o mais eficaz para o seu caso de uso específico.
Como funciona o ajuste fino?
O ajuste fino envolve pegar um modelo pré-treinado e ajustar seus parâmetros para melhorar o desempenho em uma tarefa ou conjunto de dados específico. O processo, também conhecido como retreinamento de modelo, permite que o modelo compreenda e preveja melhor os resultados para os dados específicos que encontrará em aplicações do mundo real. Você pode retreinar seu modelo com base na avaliação dele para obter resultados ideais.
Dicas para ajustar seu modelo
Ajustar um modelo significa prestar muita atenção a vários parâmetros e técnicas vitais para alcançar o desempenho ideal. Aqui estão algumas dicas essenciais para guiá-lo pelo processo.
Começando com uma taxa de aprendizado mais alta
Normalmente, durante as epochs iniciais de treinamento, a taxa de aprendizado começa baixa e aumenta gradualmente para estabilizar o processo de treinamento. No entanto, como seu modelo já aprendeu algumas características do conjunto de dados anterior, começar com uma learning rate mais alta logo de cara pode ser mais benéfico.
Ao avaliar seu modelo YOLO26, você pode definir o parâmetro de validação warmup_epochs como warmup_epochs=0 para evitar que a taxa de aprendizado comece muito baixa. Seguindo este processo, o treinamento continuará a partir dos pesos fornecidos, ajustando-se às nuances dos seus novos dados.
Tiling de imagem para objetos pequenos
O tiling de imagem pode melhorar a precisão da detecção de objetos pequenos. Ao dividir imagens maiores em segmentos menores, como dividir imagens de 1280x1280 em vários segmentos de 640x640, você mantém a resolução original e o modelo pode aprender com fragmentos de alta resolução. Ao usar o YOLO26, certifique-se de ajustar seus rótulos para esses novos segmentos corretamente.
Envolva-se com a comunidade
Compartilhar suas ideias e perguntas com outros entusiastas de computer vision pode inspirar soluções criativas para obstáculos em seus projetos. Aqui estão algumas ótimas maneiras de aprender, solucionar problemas e se conectar.
Encontrando ajuda e suporte
- GitHub Issues: Explore o repositório GitHub do YOLO26 e use a Issues tab para fazer perguntas, relatar bugs e sugerir recursos. A comunidade e os mantenedores estão disponíveis para ajudar com quaisquer problemas que você encontrar.
- Servidor Discord da Ultralytics: Entre no servidor Discord da Ultralytics para se conectar com outros usuários e desenvolvedores, obter suporte, compartilhar conhecimento e trocar ideias.
Documentação Oficial
- Documentação Ultralytics YOLO26: Confira a documentação oficial do YOLO26 para guias abrangentes e insights valiosos sobre várias tarefas e projetos de visão computacional.
Considerações Finais
Avaliar e ajustar seu modelo de visão computacional são etapas importantes para uma model deployment bem-sucedida. Essas etapas ajudam a garantir que seu modelo seja preciso, eficiente e adequado à sua aplicação geral. A chave para treinar o melhor modelo possível é o aprendizado e a experimentação contínuos. Não hesite em ajustar parâmetros, tentar novas técnicas e explorar diferentes conjuntos de dados. Continue experimentando e expandindo os limites do que é possível!
FAQ
Quais são as principais métricas para avaliar o desempenho do modelo YOLO26?
Para avaliar o desempenho do modelo YOLO26, métricas importantes incluem 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 detectado. O IoU avalia o quanto a bounding box prevista se sobrepõe à real. A Mean Average Precision (mAP) agrega pontuações de precisão entre classes, com mAP@.5 e mAP@.5:.95 sendo dois tipos comuns para limites de IoU variáveis. Saiba mais sobre essas métricas em nosso guia de métricas de desempenho do YOLO26.
Como posso ajustar um modelo YOLO26 pré-treinado para o meu conjunto de dados específico?
Ajustar um modelo YOLO26 pré-treinado envolve ajustar seus parâmetros para melhorar o desempenho em uma tarefa ou conjunto de dados específico. Comece avaliando seu modelo usando métricas, depois defina uma taxa de aprendizado inicial mais alta ajustando o parâmetro warmup_epochs para 0 para estabilidade imediata. Use parâmetros como rect=true para lidar com tamanhos de imagem variados efetivamente. Para orientações mais detalhadas, consulte nossa seção sobre ajuste fino de modelos YOLO26.
Como posso lidar com tamanhos de imagem variáveis ao avaliar meu modelo YOLO26?
Para lidar com tamanhos de imagem variáveis durante a avaliação, use o parâmetro rect=true no YOLO26, que ajusta o passo da rede para cada lote com base nos tamanhos das imagens. O parâmetro imgsz define a dimensão máxima para redimensionamento da imagem, com padrão em 640. Ajuste o imgsz para se adequar ao seu conjunto de dados e à memória da GPU. Para mais detalhes, visite nossa seção sobre como lidar com tamanhos de imagem variáveis.
Que passos práticos posso tomar para melhorar a mean average precision para meu modelo YOLO26?
Melhorar a mean average precision (mAP) para um modelo YOLO26 envolve vários passos:
- Ajuste de Hiperparâmetros: Experimente diferentes taxas de aprendizado, batch sizes e aumentos de imagem.
- Data Augmentation: Use técnicas como Mosaic e MixUp para criar amostras de treinamento diversas.
- Tiling de Imagem: Divida imagens maiores em tiles menores para melhorar a precisão da detecção de objetos pequenos. Consulte nosso guia detalhado sobre ajuste fino de modelo para estratégias específicas.
Como acesso as métricas de avaliação do modelo YOLO26 em Python?
Você pode acessar as métricas de avaliação do modelo YOLO26 usando Python com os seguintes passos:
from ultralytics import YOLO
# Load the model
model = YOLO("yolo26n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean recall:", results.box.mr)Analisar essas métricas ajuda a ajustar e otimizar seu modelo YOLO26. Para um mergulho mais profundo, confira nosso guia sobre métricas YOLO26.