Perspectivas sobre a avaliação e o aperfeiçoamento de modelos
Introdução
Depois de ter treinado o seu modelo de visão por computador, é essencial avaliá-lo e refiná-lo para que tenha um desempenho ótimo. Apenas treinar o modelo não é suficiente. É necessário garantir que o modelo seja preciso, eficiente e cumpra o objetivo do seu projeto de visão por computador. Ao avaliar e afinar o seu modelo, pode identificar pontos fracos, melhorar a sua precisão e aumentar o desempenho geral.
Ver: Informações sobre a avaliação e o aperfeiçoamento de modelos | Sugestões para melhorar a precisão média
Neste guia, partilharemos 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-lhe o conhecimento para elevar as capacidades do seu modelo.
Avaliação do desempenho do modelo utilizando 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 analisar mais detalhadamente algumas métricas principais.
Índice de confiança
A pontuação de confiança representa a certeza do modelo de que um objeto detectado pertence a uma determinada classe. Varia de 0 a 1, sendo que as 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 estiver a ver quaisquer previsões e tiver verificado tudo o resto, tente 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 seu projeto, mas é uma boa forma de ver o que o modelo consegue fazer e decidir como o afinar.
Intersecção sobre Union
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 entre 0 e 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 concentrar-nos em duas métricas mAP específicas:
- 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 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 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 limiar 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 a YOLO11, pode utilizar o modo de validação para avaliar o modelo. Além disso, não se esqueça de consultar o nosso guia que analisa em pormenor as métricas de desempenho doYOLO11 e a forma como podem ser interpretadas.
Perguntas comuns da comunidade
Ao avaliar o seu modelo YOLO11 , poderá deparar-se com alguns problemas. Com base em perguntas comuns da comunidade, aqui estão algumas dicas para o ajudar a tirar o máximo partido do seu modelo YOLO11 :
Manipulação de tamanhos de imagem variáveis
Avaliar o seu modelo YOLO11 com imagens de diferentes tamanhos pode ajudá-lo a compreender o seu desempenho em diversos conjuntos de dados. Utilizando o rect=true
parâmetro de validaçã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. É possível ajustar isso com base nas dimensões máximas do conjunto de dados e na memória disponível em GPU . Mesmo com imgsz
definir, rect=true
permite ao modelo gerir eficazmente tamanhos de imagem variáveis, ajustando dinamicamente o passo.
Aceder a YOLO11 Metrics
Se pretender obter uma compreensão mais profunda do desempenho do seu modelo YOLO11 , pode aceder facilmente a métricas de avaliação específicas com algumas linhas de código Python . O trecho de código abaixo permite carregar o modelo, executar uma avaliação e imprimir várias métricas que mostram o desempenho do 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, pode afinar e otimizar o seu modelo YOLO11 para um melhor desempenho, tornando-o mais eficaz para o seu caso de utilização específico.
Como funciona o ajuste fino?
O ajuste fino envolve pegar num modelo pré-treinado e ajustar os seus parâmetros para melhorar o desempenho numa tarefa ou conjunto de dados específicos. O processo, também conhecido como retreinamento do modelo, permite que o modelo compreenda e preveja melhor os resultados para os dados específicos que irá encontrar em aplicações do mundo real. Pode treinar novamente o seu modelo com base na sua avaliação de modelo para obter resultados óptimos.
Sugestões para afinar o seu modelo
Afinar um modelo significa prestar muita atenção a vários parâmetros e técnicas vitais para obter um desempenho ótimo. Seguem-se algumas dicas essenciais para o guiar ao longo do processo.
Começar com uma taxa de aprendizagem mais elevada
Normalmente, durante as épocas de formação iniciais, a taxa de aprendizagem começa baixa e aumenta gradualmente para estabilizar o processo de formação. No entanto, uma vez que o seu 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 avaliar o modelo YOLO11 , é possível definir o warmup_epochs
parâmetro de validação para warmup_epochs=0
para evitar que a taxa de aprendizagem comece demasiado alta. Ao seguir este processo, a formação continuará a partir dos pesos fornecidos, ajustando-se às nuances dos seus novos dados.
Image Tiling para objectos pequenos
O mosaico de imagens pode melhorar a precisão da deteção de pequenos objectos. Ao dividir imagens maiores em segmentos mais pequenos, como por exemplo, dividir imagens de 1280x1280 em múltiplos segmentos de 640x640, mantém a resolução original e o modelo pode aprender com fragmentos de alta resolução. Ao utilizar YOLO11, certifique-se de que ajusta corretamente as suas etiquetas para estes novos segmentos.
Envolver-se com a comunidade
Partilhar as suas ideias e questões com outros entusiastas da visão por computador pode inspirar soluções criativas para os bloqueios nos seus projectos. Aqui estão algumas maneiras excelentes de aprender, solucionar problemas e conectar-se.
Encontrar ajuda e apoio
- Problemas do GitHub: Explore o repositório YOLO11 do GitHub e use a guia Problemas para fazer perguntas, relatar bugs e sugerir recursos. A comunidade e os mantenedores estão disponíveis para ajudar com quaisquer problemas que encontrar.
- Ultralytics Servidor Discord: Junte-se ao servidor Discord deUltralytics para se ligar a outros utilizadores e programadores, obter apoio, partilhar conhecimentos e debater ideias.
Documentação oficial
- Ultralytics YOLO11 Documentação: Consulte a documentação oficial do YOLO11 para obter guias abrangentes e informações valiosas sobre várias tarefas e projectos de visão computacional.
Considerações 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 hesite em ajustar os parâmetros, experimentar novas técnicas e explorar diferentes conjuntos de dados. Continue 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). A pontuação de confiança mede a certeza do modelo para cada classe de objeto detectada. O IoU avalia o grau de sobreposição entre a caixa delimitadora prevista e a verdade terrestre. 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 variar os limites de IoU. Saiba mais sobre estas métricas no nosso guia de métricas de desempenhoYOLO11 .
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. Comece por avaliar o seu modelo utilizando métricas e, em seguida, defina uma taxa de aprendizagem inicial mais elevada, ajustando os parâmetros warmup_epochs
para 0 para estabilidade imediata. Utilizar parâmetros como rect=true
para lidar eficazmente com tamanhos de imagem variados. Para obter orientações mais detalhadas, consulte a nossa secção sobre afinação de YOLO11 modelos.
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, utilize a função rect=true
em 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. Ajustar imgsz
para se adaptar ao seu conjunto de dados e à memória GPU . Para mais pormenores, visite o nosso secção sobre o tratamento de tamanhos de imagem variáveis.
Que medidas práticas posso adotar 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: Experimente diferentes taxas de aprendizagem, tamanhos de lote e aumentos de imagem.
- Aumento de dados: Utilizar técnicas como Mosaic e MixUp para criar amostras de formação diversificadas.
- Mosaico de imagens: Dividir imagens maiores em mosaicos mais pequenos para melhorar a precisão da deteção de objectos pequenos. Consulte o nosso guia detalhado sobre o ajuste fino do modelo para obter estratégias específicas.
Como aceder às métricas de avaliação do modelo YOLO11 em Python?
É possível 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 seu modelo YOLO11 . Para um mergulho mais profundo, confira nosso guia sobre métricasYOLO11 .