Saltar para o conteúdo

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.

Intersecção sobre a Union Vista geral

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.

Média Média Precisão Visão geral

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:

  1. Ajustar os hiperparâmetros: Experimente diferentes taxas de aprendizagem, tamanhos de lote e aumentos de imagem.
  2. Aumento de dados: Utilizar técnicas como Mosaic e MixUp para criar amostras de formação diversificadas.
  3. 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 .

📅C riado há 5 meses ✏️ Atualizado há 7 dias

Comentários