Insights sobre avaliação e ajuste fino de modelos
Introdução
Depois de teres treinado o teu modelo de visão por computador, é essencial avaliá-lo e refiná-lo para que tenha um desempenho ótimo. Apenas treinar o teu modelo não é suficiente. Tens de te certificar de que o teu modelo é preciso, eficiente e cumpre o objetivo do teu projeto de visão por computador. Ao avaliar e ajustar o teu modelo, podes identificar pontos fracos, melhorar a sua precisão e aumentar o desempenho geral.
Neste guia, vamos partilhar ideias sobre avaliação de modelos e afinação que tornarão este passo de um projeto de visão por computador mais acessível. Discutiremos como entender as métricas de avaliação e implementar técnicas de ajuste fino, dando-te o conhecimento para elevar as capacidades do teu modelo.
Avaliando o desempenho do modelo usando métricas
A avaliação do desempenho de um modelo ajuda-nos a compreender a eficácia do seu funcionamento. São utilizadas várias métricas para medir o desempenho. Estas métricas de desempenho fornecem informações claras e numéricas que podem orientar as melhorias para garantir que o modelo cumpre os objectivos pretendidos. Vamos examinar 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. Varia de 0 a 1, sendo que pontuações mais altas indicam maior confiança. A pontuação de confiança ajuda a filtrar as previsões; apenas as detecções com pontuações de confiança acima de um limite especificado são consideradas válidas.
Dica rápida: Ao executar inferências, se não estiveres a ver quaisquer previsões e tiveres verificado tudo o resto, tenta reduzir a pontuação de confiança. Às vezes, o limite é muito alto, fazendo com que o modelo ignore previsões válidas. Diminuir a pontuação permite que o modelo considere mais possibilidades. Isto pode não corresponder aos objectivos do teu projeto, mas é uma boa forma de ver o que o modelo consegue fazer e decidir como o afinar.
Intersecção sobre União
A intersecção sobre a união (IoU) é uma métrica na deteção de objectos que mede o grau de sobreposição entre a caixa delimitadora prevista e a caixa delimitadora real. Os valores de IoU variam de 0 a 1, em que 1 representa uma correspondência perfeita. O IoU é essencial porque mede a proximidade entre os limites previstos e os limites reais do objeto.
Média Média Precisão
A precisão média média (mAP) é uma forma de medir o desempenho de um modelo de deteção de objectos. Analisa a precisão da deteção de cada classe de objeto, calcula a média destas pontuações e apresenta um número global que mostra a precisão com que o modelo consegue identificar e classificar objectos.
Vamos nos concentrar em duas métricas específicas de mAP:
- mAP@.5: Mede a precisão média num único limiar IoU (Intersection over Union) de 0,5. Esta métrica verifica se o modelo consegue encontrar corretamente objectos com um requisito de precisão menos rigoroso. Concentra-se em saber se o objeto está aproximadamente no lugar certo, não necessitando de uma colocação perfeita. Ajuda a ver se o modelo é geralmente bom a detetar objectos.
- 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. Dá uma imagem mais completa da precisão com que o modelo consegue encontrar objectos em diferentes níveis de rigor e é especialmente útil para aplicações que necessitam de uma deteção precisa de objectos.
Outras métricas mAP incluem mAP@0.75, que utiliza um limite IoU mais rigoroso de 0,75, e mAP@small, medium e large, que avaliam a precisão em objectos de diferentes tamanhos.
Avaliação do desempenho do modelo YOLO11
No que diz respeito ao YOLO11, podes utilizar o modo de validação para avaliar o modelo. Além disso, não te esqueças de consultar o nosso guia que analisa em profundidade as métricas de desempenho do YOLO11 e a forma como podem ser interpretadas.
Perguntas comuns da comunidade
Ao avaliares o teu modelo YOLO11, podes deparar-te com alguns problemas. Com base em perguntas comuns da comunidade, aqui estão algumas dicas para te ajudar a tirar o máximo partido do teu modelo YOLO11:
Lidando com tamanhos de imagem variáveis
Avaliar o teu modelo YOLO11 com imagens de diferentes tamanhos pode ajudar-te a compreender o seu desempenho em diversos conjuntos de dados. Utilizando o rect=true
o YOLO11 ajusta o passo da rede para cada lote com base nos tamanhos das imagens, permitindo que o modelo lide com imagens rectangulares sem as forçar a um único tamanho.
O imgsz
O parâmetro de validação define a dimensão máxima para o redimensionamento da imagem, que é 640 por defeito. Podes ajustar isto com base nas dimensões máximas do teu conjunto de dados e na memória disponível em GPU . Mesmo com imgsz
definir, rect=true
permite que o modelo gerencie vários tamanhos de imagem de maneira eficaz, ajustando dinamicamente a passada.
Aceder às métricas do YOLO11
Se quiseres obter uma compreensão mais profunda do desempenho do teu modelo YOLO11, podes aceder facilmente a métricas de avaliação específicas com algumas linhas de código Python . O trecho de código abaixo permite-te carregar o teu modelo, executar uma avaliação e imprimir várias métricas que mostram o desempenho do teu modelo.
Utilização
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.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("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 métricas de velocidade como tempo de pré-processamento, tempo de inferência, perda e tempo de pós-processamento. Ao analisar estas métricas, podes afinar e otimizar o teu modelo YOLO11 para um melhor desempenho, tornando-o mais eficaz para o teu caso de utilização 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 do modelo, permite que o modelo compreenda e preveja melhor os resultados dos dados específicos que encontrará em aplicações do mundo real. Você pode treinar novamente seu modelo com base na avaliação do modelo 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 orientá-lo durante o processo.
Começa com uma taxa de aprendizagem mais elevada
Normalmente, durante as épocas de treino iniciais, a taxa de aprendizagem começa baixa e aumenta gradualmente para estabilizar o processo de treino. No entanto, uma vez que o teu modelo já aprendeu algumas caraterísticas do conjunto de dados anterior, começar imediatamente com uma taxa de aprendizagem mais elevada pode ser mais benéfico.
Ao avaliares o teu modelo YOLO11, podes definir o warmup_epochs
parâmetro de validação para warmup_epochs=0
para evitar que a taxa de aprendizagem comece muito alta. Seguindo esse processo, o treinamento continuará a partir dos pesos fornecidos, ajustando-se às nuances dos seus novos dados.
Ladrilho de imagem para objetos pequenos
O mosaico de imagens pode melhorar a precisão da deteção de objectos pequenos. Ao dividir imagens maiores em segmentos mais pequenos, como dividir imagens de 1280x1280 em vários segmentos de 640x640, manténs a resolução original e o modelo pode aprender com fragmentos de alta resolução. Quando utilizares o YOLO11, certifica-te de que ajustas corretamente as tuas etiquetas para estes novos segmentos.
Envolva-se com a comunidade
Partilhar as tuas ideias e questões com outros entusiastas da visão por computador pode inspirar soluções criativas para os bloqueios nos teus projectos. Aqui estão algumas maneiras excelentes de aprender, solucionar problemas e conectar-se.
Encontrando ajuda e suporte
- Problemas no GitHub: Explora o repositório GitHub do YOLO11 e usa o separador Problemas para fazer perguntas, reportar bugs e sugerir funcionalidades. A comunidade e os mantenedores estão disponíveis para ajudar com quaisquer problemas que encontres.
- Ultralytics Servidor Discord: Junta-te ao servidor Discord deUltralytics para te ligares a outros utilizadores e programadores, obteres apoio, partilhares conhecimentos e debateres ideias.
Documentação oficial
- Ultralytics Documentação do YOLO11: Consulta a documentação oficial do YOLO11 para obteres guias completos e informações valiosas sobre várias tarefas e projectos de visão por computador.
Pensamentos finais
A avaliação e o ajuste fino do modelo de visão computacional são etapas importantes para uma implantação bem-sucedida do modelo. 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 é a experimentação e o aprendizado contínuos. Não hesites em ajustar os parâmetros, experimentar novas técnicas e explorar diferentes conjuntos de dados. Continua a experimentar e a ultrapassar os limites do que é possível!
FAQ
Quais são as principais métricas para avaliar o desempenho do modelo YOLO11?
Para avaliar o desempenho do modelo YOLO11, as métricas importantes incluem a pontuação de confiança, a intersecção sobre a união (IoU) e a precisão média (mAP). O Confidence Score mede a certeza do modelo para cada classe de objeto detectada. O IoU avalia o quanto a caixa delimitadora prevista se sobrepõe à verdade terrestre. A precisão média (mAP) agrega as pontuações de precisão entre as classes, com mAP@.5 e mAP@.5:.95 sendo dois tipos comuns para variar os limites de IoU. Sabe mais sobre estas métricas no nosso guia de métricas de desempenho YOLO11.
Como é que posso afinar um modelo YOLO11 pré-treinado para o meu conjunto de dados específico?
O ajuste fino de um modelo YOLO11 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 modelo utilizando métricas e, em seguida, define uma taxa de aprendizagem inicial mais elevada, ajustando o parâmetro warmup_epochs
para 0 para obteres estabilidade imediata. Utiliza parâmetros como rect=true
para lidar com tamanhos de imagem variados de forma eficaz. Para obter orientações mais detalhadas, consulta a nossa secção sobre afinação dos modelos YOLO11.
Como posso lidar com tamanhos de imagem variáveis ao avaliar o meu modelo YOLO11?
Para lidar com tamanhos de imagem variáveis durante a avaliação, utiliza a função rect=true
no YOLO11, 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 o redimensionamento da imagem, sendo a predefinição 640. Ajusta imgsz
para se adequar ao teu conjunto de dados e à memória GPU . Para mais informações, visita a nossa secção sobre o tratamento de imagens de tamanhos variáveis.
Que medidas práticas posso tomar para melhorar a precisão média do meu modelo YOLO11?
A melhoria da precisão média (mAP) de um modelo YOLO11 envolve várias etapas:
- Ajustar os hiperparâmetros: Experimenta diferentes taxas de aprendizagem, tamanhos de lote e aumentos de imagem.
- Aumento de dados: Utiliza técnicas como Mosaic e MixUp para criar amostras de treino diversificadas.
- Agrupamento de imagens: Divide imagens maiores em mosaicos mais pequenos para melhorar a precisão da deteção de objectos pequenos. Consulta o nosso guia detalhado sobre o ajuste fino do modelo para obteres estratégias específicas.
Como posso aceder às métricas de avaliação do modelo YOLO11 em Python?
Podes aceder às métricas de avaliação do modelo YOLO11 utilizando Python com os seguintes passos:
Utilização
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.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)
A análise destas métricas ajuda a afinar e otimizar o teu modelo YOLO11. Para um mergulho mais profundo, consulta o nosso guia sobre as métricas do YOLO11.