Salta para o conte√ļdo

Métricas de desempenho - mergulho profundo

Introdução

As métricas de desempenho são ferramentas fundamentais para avaliar a precisão e a eficiência dos modelos de deteção de objectos. Esclarecem a eficácia com que um modelo consegue identificar e localizar objectos nas imagens. Além disso, ajudam a compreender a forma como o modelo lida com falsos positivos e falsos negativos. Estes conhecimentos são cruciais para avaliar e melhorar o desempenho do modelo. Neste guia, vamos explorar várias métricas de desempenho associadas a YOLOv8, o seu significado e como as interpretar.



Observa: Ultralytics YOLOv8 Métricas de desempenho | MAP, F1 Score, Precisão, IOU e Exatidão

Métricas de deteção de objectos

Vamos começar por discutir algumas métricas que não são apenas importantes para YOLOv8 mas que são amplamente aplicáveis em diferentes modelos de deteção de objectos.

  • Intersec√ß√£o sobre Uni√£o (IoU): A IoU √© uma medida que quantifica a sobreposi√ß√£o entre uma caixa delimitadora prevista e uma caixa delimitadora real. Desempenha um papel fundamental na avalia√ß√£o da precis√£o da localiza√ß√£o de objectos.

  • Precis√£o m√©dia (AP): A AP calcula a √°rea sob a curva de precis√£o-recupera√ß√£o, fornecendo um valor √ļnico que engloba o desempenho de precis√£o e recupera√ß√£o do modelo.

  • Precis√£o m√©dia m√©dia (mAP): a mAP alarga o conceito de AP calculando os valores m√©dios de AP em v√°rias classes de objectos. Isto √© √ļtil em cen√°rios de dete√ß√£o de objectos multi-classe para fornecer uma avalia√ß√£o abrangente do desempenho do modelo.

  • Precis√£o e recupera√ß√£o: A precis√£o quantifica a propor√ß√£o de verdadeiros positivos entre todas as previs√Ķes positivas, avaliando a capacidade do modelo de evitar falsos positivos. Por outro lado, o Recall calcula a propor√ß√£o de verdadeiros positivos entre todos os positivos reais, medindo a capacidade do modelo de detetar todas as inst√Ęncias de uma classe.

  • Pontua√ß√£o F1: A pontua√ß√£o F1 √© a m√©dia harm√≥nica da precis√£o e da recupera√ß√£o, fornecendo uma avalia√ß√£o equilibrada do desempenho de um modelo, considerando tanto os falsos positivos como os falsos negativos.

Como calcular métricas para o modelo YOLOv8

Agora, podemos explorar o modo de validação doYOLOv8 que pode ser utilizado para calcular as métricas de avaliação acima referidas.

A utilização do modo de validação é simples. Assim que tiveres um modelo treinado, podes invocar a função model.val(). Esta função processa o conjunto de dados de validação e devolve uma variedade de métricas de desempenho. Mas o que é que estas métricas significam? E como deves interpretá-las?

Interpretar a saída

Vamos decompor o resultado da função model.val() e compreender cada segmento do resultado.

Métricas por classe

Uma das sec√ß√Ķes do resultado √© a discrimina√ß√£o por classe das m√©tricas de desempenho. Esta informa√ß√£o granular √© √ļtil quando est√°s a tentar compreender o desempenho do modelo para cada classe espec√≠fica, especialmente em conjuntos de dados com uma gama diversificada de categorias de objectos. Para cada classe no conjunto de dados, fornece o seguinte:

  • Classe: Indica o nome da classe do objeto, como "pessoa", "carro" ou "c√£o".

  • Imagens: Esta m√©trica indica-te o n√ļmero de imagens no conjunto de valida√ß√£o que cont√™m a classe de objeto.

  • Inst√Ęncias: Fornece a contagem de quantas vezes a classe aparece em todas as imagens do conjunto de valida√ß√£o.

  • Box(P, R, mAP50, mAP50-95): Esta m√©trica fornece informa√ß√Ķes sobre o desempenho do modelo na dete√ß√£o de objectos:

    • P (Precis√£o): A precis√£o dos objectos detectados, indicando quantas detec√ß√Ķes estavam correctas.

    • R (Recall): A capacidade do modelo para identificar todas as inst√Ęncias de objectos nas imagens.

    • mAP50: Precis√£o m√©dia calculada com um limiar de intersec√ß√£o sobre uni√£o (IoU) de 0,50. √Č uma medida da precis√£o do modelo considerando apenas as detec√ß√Ķes "f√°ceis".

    • mAP50-95: A m√©dia da precis√£o m√©dia calculada em diferentes limiares de IoU, variando de 0,50 a 0,95. D√° uma vis√£o abrangente do desempenho do modelo em diferentes n√≠veis de dificuldade de dete√ß√£o.

Métricas de velocidade

A velocidade da inferência pode ser tão crítica como a precisão, especialmente em cenários de deteção de objectos em tempo real. Esta secção analisa o tempo necessário para as várias fases do processo de validação, desde o pré-processamento até ao pós-processamento.

Avaliação das métricas COCO

Para os utilizadores que validam o conjunto de dados COCO, s√£o calculadas m√©tricas adicionais utilizando o script de avalia√ß√£o COCO. Estas m√©tricas fornecem informa√ß√Ķes sobre a precis√£o e a recupera√ß√£o em diferentes limiares de IoU e para objectos de diferentes tamanhos.

Saídas visuais

A função model.val(), além de produzir métricas numéricas, também produz resultados visuais que podem fornecer uma compreensão mais intuitiva do desempenho do modelo. Aqui está um resumo dos resultados visuais que podes esperar:

  • Curva de pontua√ß√£o F1 (F1_curve.png): Esta curva representa a pontua√ß√£o F1 em v√°rios limiares. A interpreta√ß√£o desta curva pode oferecer informa√ß√Ķes sobre o equil√≠brio do modelo entre falsos positivos e falsos negativos em diferentes limiares.

  • Curva de precis√£o-recupera√ß√£o (PR_curve.png): Uma visualiza√ß√£o integral para qualquer problema de classifica√ß√£o, esta curva mostra os compromissos entre a precis√£o e a recupera√ß√£o em limites variados. Torna-se especialmente significativa quando lida com classes desequilibradas.

  • Curva de precis√£o (P_curve.png): Representa graficamente os valores de precis√£o em diferentes limiares. Esta curva ajuda a compreender como a precis√£o varia √† medida que o limiar muda.

  • Curva de recupera√ß√£o (R_curve.png): De forma correspondente, este gr√°fico ilustra a forma como os valores de recorda√ß√£o mudam em diferentes limiares.

  • Matriz de confus√£o (confusion_matrix.png): A matriz de confus√£o fornece uma vis√£o detalhada dos resultados, mostrando as contagens de verdadeiros positivos, verdadeiros negativos, falsos positivos e falsos negativos para cada classe.

  • Matriz de confus√£o normalizada (confusion_matrix_normalized.png): Esta visualiza√ß√£o √© uma vers√£o normalizada da matriz de confus√£o. Representa os dados em propor√ß√Ķes em vez de contagens brutas. Esse formato simplifica a compara√ß√£o do desempenho entre as classes.

  • Etiquetas de lotes de valida√ß√£o (val_batchX_labels.jpg): Estas imagens mostram os r√≥tulos verdadeiros para lotes distintos do conjunto de dados de valida√ß√£o. Fornecem uma imagem clara do que s√£o os objectos e as suas respectivas localiza√ß√Ķes de acordo com o conjunto de dados.

  • Previs√Ķes do lote de valida√ß√£o (val_batchX_pred.jpg): Em contraste com as imagens de etiquetas, estas imagens apresentam as previs√Ķes efectuadas pelo modelo YOLOv8 para os respectivos lotes. Ao compar√°-las com as imagens das etiquetas, podes avaliar facilmente a efic√°cia do modelo na dete√ß√£o e classifica√ß√£o visual dos objectos.

Resultados Armazenamento

Para referência futura, os resultados são guardados num diretório, normalmente chamado runs/detect/val.

Escolher as métricas correctas

A escolha das métricas correctas a avaliar depende frequentemente da aplicação específica.

  • mAP: Adequado para uma avalia√ß√£o alargada do desempenho do modelo.

  • IoU: Essencial quando a localiza√ß√£o precisa de um objeto √© crucial.

  • Precis√£o: Importante quando a minimiza√ß√£o de falsas detec√ß√Ķes √© uma prioridade.

  • Recorda: Vital quando √© importante detetar todas as inst√Ęncias de um objeto.

  • Pontua√ß√£o F1: √ötil quando √© necess√°rio um equil√≠brio entre a precis√£o e a recupera√ß√£o.

Para aplica√ß√Ķes em tempo real, as m√©tricas de velocidade como FPS (Frames Per Second) e lat√™ncia s√£o cruciais para garantir resultados atempados.

Interpretação dos resultados

√Č importante compreenderes as m√©tricas. Eis o que algumas das pontua√ß√Ķes mais baixas normalmente observadas podem sugerir:

  • Baixo mAP: Indica que o modelo pode necessitar de aperfei√ßoamentos gerais.

  • IoU baixo: O modelo pode estar a ter dificuldades em localizar os objectos com precis√£o. A utiliza√ß√£o de diferentes m√©todos de caixas delimitadoras pode ajudar.

  • Baixa precis√£o: O modelo pode estar a detetar demasiados objectos inexistentes. Ajustar os limites de confian√ßa pode reduzir isso.

  • Recorda pouco: O modelo pode estar a perder objectos reais. Melhorar a extra√ß√£o de caracter√≠sticas ou utilizar mais dados pode ajudar.

  • Pontua√ß√£o F1 desequilibrada: Existe uma disparidade entre a precis√£o e a recupera√ß√£o.

  • AP espec√≠fico da turma: As pontua√ß√Ķes baixas aqui podem destacar as disciplinas em que o modelo tem dificuldades.

Estudos de caso

Os exemplos do mundo real podem ajudar a clarificar a forma como estas métricas funcionam na prática.

Caso 1

  • Situa√ß√£o: o mAP e a pontua√ß√£o F1 n√£o s√£o √≥ptimos, mas enquanto a Recupera√ß√£o √© boa, a Precis√£o n√£o √©.

  • Interpreta√ß√£o e a√ß√£o: Poder√° haver demasiadas detec√ß√Ķes incorrectas. O aumento dos limiares de confian√ßa pode reduzi-las, embora tamb√©m possa diminuir ligeiramente a recupera√ß√£o.

Caso 2

  • Situa√ß√£o: o mAP e o Recall s√£o aceit√°veis, mas falta o IoU.

  • Interpreta√ß√£o e a√ß√£o: O modelo detecta bem os objectos mas pode n√£o os localizar com precis√£o. Aperfei√ßoar as previs√Ķes da caixa delimitadora pode ajudar.

Caso 3

  • Situa√ß√£o: Algumas turmas t√™m um PA muito mais baixo do que outras, mesmo com um PAm geral decente.

  • Interpreta√ß√£o e a√ß√£o: Estas classes podem ser mais dif√≠ceis para o modelo. Utilizar mais dados para estas classes ou ajustar os pesos das classes durante o treino pode ser ben√©fico.

Liga-te e colabora

Entrar numa comunidade de entusiastas e especialistas pode ampliar a tua viagem com YOLOv8. Eis algumas vias que podem facilitar a aprendizagem, a resolução de problemas e a criação de redes.

Interage com a comunidade mais alargada

  • Problemas do GitHub: O reposit√≥rio YOLOv8 no GitHub tem um separador Issues onde podes fazer perguntas, reportar erros e sugerir novas funcionalidades. A comunidade e os mantenedores s√£o ativos aqui, e √© um √≥timo lugar para obter ajuda com problemas espec√≠ficos.

  • Ultralytics Servidor Discord: Ultralytics tem um servidor Discord onde podes interagir com outros utilizadores e com os criadores.

Documentação e recursos oficiais:

  • Ultralytics YOLOv8 Documentos: A documenta√ß√£o oficial fornece uma vis√£o geral abrangente de YOLOv8, juntamente com guias sobre instala√ß√£o, utiliza√ß√£o e resolu√ß√£o de problemas.

A utiliza√ß√£o destes recursos n√£o s√≥ te guiar√° atrav√©s de quaisquer desafios, como tamb√©m te manter√° atualizado com as √ļltimas tend√™ncias e melhores pr√°ticas na comunidade YOLOv8 .

Conclus√£o

Neste guia, analis√°mos detalhadamente as m√©tricas de desempenho essenciais para YOLOv8. Estas m√©tricas s√£o fundamentais para compreender o desempenho de um modelo e s√£o vitais para qualquer pessoa que pretenda afinar os seus modelos. Oferece as informa√ß√Ķes necess√°rias para melhorias e para garantir que o modelo funciona eficazmente em situa√ß√Ķes reais.

Lembra-te de que a comunidade YOLOv8 e Ultralytics √© um recurso inestim√°vel. O envolvimento com colegas desenvolvedores e especialistas pode abrir portas para percep√ß√Ķes e solu√ß√Ķes n√£o encontradas na documenta√ß√£o padr√£o. √Ä medida que percorre a dete√ß√£o de objectos, mant√©m vivo o esp√≠rito de aprendizagem, experimenta novas estrat√©gias e partilha as suas descobertas. Ao faz√™-lo, contribui para a sabedoria colectiva da comunidade e assegura o seu crescimento.

Boa deteção de objectos!



Criado em 2023-11-12, Atualizado em 2024-02-10
Autores: chr043416@gmail.com (1), glenn-jocher (3), abirami-vina (1)

Coment√°rios