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.

Quick Tip: When running inferences, if you aren't seeing any predictions, and you've checked everything else, try lowering the confidence score. Sometimes, the threshold is too high, causing the model to ignore valid predictions. Lowering the score allows the model to consider more possibilities. This might not meet your project goals, but it's a good way to see what the model can do and decide how to fine-tune it.

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á 6 meses ✏️ Atualizado há 15 dias

Comentários