Um guia sobre testes de modelos

Introdução

Após o treinamento e a avaliação do teu modelo, é hora de testá-lo. O teste de modelo envolve avaliar o desempenho do mesmo em cenários do mundo real. Os testes consideram fatores como precisão, confiabilidade, imparcialidade e a facilidade de entender as decisões do modelo. O objetivo é garantir que o modelo funcione conforme pretendido, entregue os resultados esperados e se encaixe no objetivo geral da tua aplicação ou projeto.



Watch: How to Test Machine Learning Models | Avoid Data Leakage in Computer Vision 🚀

O teste de modelo é bastante semelhante à avaliação de modelo, mas são duas etapas distintas em um projeto de visão computacional. A avaliação de modelo envolve métricas e gráficos para avaliar a precisão do modelo. Por outro lado, o teste de modelo verifica se o comportamento aprendido pelo modelo corresponde às expectativas. Neste guia, vamos explorar estratégias para testar os teus modelos de visão computacional.

Teste de Modelo vs. Avaliação de Modelo

Primeiro, vamos entender a diferença entre avaliação e teste de modelo com um exemplo.

Suppose you have trained a computer vision model to recognize cats and dogs, and you want to deploy this model at a pet store to monitor the animals. During the model evaluation phase, you use a labeled dataset to calculate metrics like accuracy, precision, recall, and F1 score. For instance, the model might have an accuracy of 98% in distinguishing between cats and dogs in a given dataset.

Após a avaliação, testas o modelo usando imagens de uma loja de animais para ver quão bem ele identifica gatos e cães em condições mais variadas e realistas. Verificas se ele consegue rotular corretamente gatos e cães quando eles estão a mover-se, em diferentes condições de iluminação ou parcialmente obscurecidos por objetos como brinquedos ou móveis. O teste de modelo verifica se o modelo se comporta como esperado fora do ambiente controlado de avaliação.

Preparação para o Teste de Modelo

Os modelos de visão computacional aprendem a partir de conjuntos de dados detetando padrões, fazendo previsões e avaliando o seu desempenho. Estes conjuntos de dados são geralmente divididos em conjuntos de treinamento e teste para simular condições do mundo real. Os dados de treinamento ensinam o modelo, enquanto os dados de teste verificam a sua precisão.

Aqui estão dois pontos a ter em mente antes de testar o teu modelo:

  • Representação Realista: Os dados de teste previamente não vistos devem ser semelhantes aos dados que o modelo terá de lidar quando implantado. Isso ajuda a obter uma compreensão realista das capacidades do modelo.
  • Tamanho Suficiente: O tamanho do conjunto de dados de teste precisa ser grande o suficiente para fornecer insights confiáveis sobre o desempenho do modelo.

Testando o Teu Modelo de Visão Computacional

Aqui estão as etapas principais para testar o teu modelo de visão computacional e entender o seu desempenho.

  • Executar Previsões: Usa o modelo para fazer previsões no conjunto de dados de teste.
  • Comparar Previsões: Verifica quão bem as previsões do modelo correspondem aos rótulos reais (ground truth).
  • Calcular Métricas de Desempenho: Calcula métricas como precisão, recall e pontuação F1 para entender os pontos fortes e fracos do modelo. O teste concentra-se em como estas métricas refletem o desempenho no mundo real.
  • Visualizar Resultados: Cria recursos visuais como matrizes de confusão e curvas ROC. Estes ajudam a detetar áreas específicas onde o modelo pode não estar a ter um bom desempenho em aplicações práticas.

Em seguida, os resultados dos testes podem ser analisados:

  • Imagens Classificadas Incorretamente: Identifica e analisa imagens que o modelo classificou incorretamente para entender onde ele está a errar.
  • Análise de Erros: Realiza uma análise de erros completa para entender os tipos de erros (por exemplo, falsos positivos vs. falsos negativos) e as suas causas potenciais.
  • Viés e Imparcialidade: Verifica se há algum viés nas previsões do modelo. Garante que o modelo tenha um desempenho igualmente bom em diferentes subconjuntos de dados, especialmente se incluir atributos sensíveis como raça, género ou idade.

Testando o Teu Modelo YOLO26

Para testar o teu modelo YOLO26, podes usar o modo de validação. É uma forma simples de entender os pontos fortes do modelo e as áreas que precisam de melhoria. Além disso, precisarás de formatar corretamente o teu conjunto de dados de teste para o YOLO26. Para mais detalhes sobre como usar o modo de validação, consulta a página de documentação de Validação de Modelo.

Usando o YOLO26 para Prever em Múltiplas Imagens de Teste

Se quiseres testar o teu modelo YOLO26 treinado em várias imagens armazenadas numa pasta, podes fazê-lo facilmente de uma só vez. Em vez de usar o modo de validação, que é normalmente usado para avaliar o desempenho do modelo num conjunto de validação e fornecer métricas detalhadas, podes apenas querer ver as previsões em todas as imagens do teu conjunto de teste. Para isso, podes usar o modo de previsão.

Diferença Entre os Modos de Validação e Previsão

  • Modo de Validação: Usado para avaliar o desempenho do modelo comparando previsões com rótulos conhecidos (ground truth). Fornece métricas detalhadas como precisão, recall e pontuação F1.
  • Modo de Previsão: Usado para executar o modelo em dados novos e não vistos para gerar previsões. Não fornece métricas de desempenho detalhadas, mas permite ver como o modelo se comporta em imagens do mundo real.

Executando Previsões YOLO26 Sem Treinamento Personalizado

Se tens interesse em testar o modelo YOLO26 básico para entender se ele pode ser usado para a tua aplicação sem treinamento personalizado, podes usar o modo de previsão. Embora o modelo seja pré-treinado em conjuntos de dados como COCO, executar previsões no teu próprio conjunto de dados pode dar-te uma noção rápida de quão bem ele pode ter um desempenho no teu contexto específico.

Sobreajuste (Overfitting) e Subajuste (Underfitting) em Aprendizado de Máquina

Ao testar um modelo de aprendizado de máquina, especialmente em visão computacional, é importante estar atento ao sobreajuste e subajuste. Estes problemas podem afetar significativamente a eficácia do teu modelo com novos dados.

Sobreajuste (Overfitting)

O sobreajuste ocorre quando o teu modelo aprende demasiado bem os dados de treinamento, incluindo o ruído e os detalhes que não se generalizam para novos dados. Em visão computacional, isso significa que o teu modelo pode ter um ótimo desempenho com imagens de treinamento, mas ter dificuldades com imagens novas.

Sinais de Sobreajuste

  • Alta Precisão de Treinamento, Baixa Precisão de Validação: Se o teu modelo tem um desempenho muito bom em dados de treinamento, mas fraco em dados de validação ou dados de teste, é provável que esteja a ocorrer sobreajuste.
  • Inspeção Visual: Às vezes, podes notar sobreajuste se o teu modelo for sensível demais a pequenas alterações ou detalhes irrelevantes nas imagens.

Subajuste (Underfitting)

O subajuste ocorre quando o teu modelo não consegue capturar os padrões subjacentes nos dados. Em visão computacional, um modelo com subajuste pode nem conseguir reconhecer objetos corretamente nas imagens de treinamento.

Sinais de Subajuste

  • Baixa Precisão de Treinamento: Se o teu modelo não consegue atingir uma alta precisão no conjunto de treinamento, ele pode estar com subajuste.
  • Classificação Visual Incorreta: A falha consistente em reconhecer características ou objetos óbvios sugere subajuste.

Equilibrando Sobreajuste e Subajuste

O segredo é encontrar um equilíbrio entre sobreajuste e subajuste. Idealmente, um modelo deve ter um bom desempenho tanto nos conjuntos de dados de treinamento quanto nos de validação. Monitorizar regularmente o desempenho do teu modelo através de métricas e inspeções visuais, juntamente com a aplicação das estratégias certas, pode ajudar-te a alcançar os melhores resultados.

Overfitting vs underfitting visualization

Vazamento de Dados em Visão Computacional e Como Evitá-lo

Ao testar o teu modelo, algo importante a ter em mente é o vazamento de dados. O vazamento de dados acontece quando informações externas ao conjunto de dados de treinamento são usadas acidentalmente para treinar o modelo. O modelo pode parecer muito preciso durante o treinamento, mas não terá um bom desempenho com dados novos e não vistos quando ocorre o vazamento de dados.

Por que o Vazamento de Dados Acontece

O vazamento de dados pode ser difícil de detetar e muitas vezes provém de vieses ocultos nos dados de treinamento. Aqui estão algumas formas comuns de como isso pode acontecer em visão computacional:

  • Viés de Câmera: Ângulos, iluminação, sombras e movimentos de câmera diferentes podem introduzir padrões indesejados.
  • Viés de Sobreposição: Logotipos, marcas de data/hora ou outras sobreposições nas imagens podem induzir o modelo ao erro.
  • Viés de Fonte e Objeto: Fontes ou objetos específicos que aparecem frequentemente em certas classes podem distorcer o aprendizado do modelo.
  • Viés Espacial: Desequilíbrios entre primeiro plano e fundo, distribuições de caixas delimitadoras e locais dos objetos podem afetar o treinamento.
  • Viés de Rótulo e Domínio: Rótulos incorretos ou mudanças nos tipos de dados podem levar ao vazamento.

Detetando Vazamento de Dados

Para encontrar vazamento de dados, podes:

  • Verificar o Desempenho: Se os resultados do modelo forem surpreendentemente bons, pode haver vazamento.
  • Observar a Importância dos Recursos: Se um recurso for muito mais importante que outros, isso pode indicar vazamento.
  • Inspeção Visual: Verifica novamente se as decisões do modelo fazem sentido intuitivamente.
  • Verificar a Separação de Dados: Garante que os dados foram divididos corretamente antes de qualquer processamento.

Evitando o Vazamento de Dados

Para evitar o vazamento de dados, usa um conjunto de dados diversificado com imagens ou vídeos de diferentes câmeras e ambientes. Analisa cuidadosamente os teus dados e verifica se não existem vieses ocultos, como todas as amostras positivas serem retiradas numa hora específica do dia. Evitar o vazamento de dados ajudará a tornar os teus modelos de visão computacional mais confiáveis e eficazes em situações do mundo real.

O Que Vem Após o Teste de Modelo

Após testar o teu modelo, os próximos passos dependem dos resultados. Se o teu modelo tiver um bom desempenho, podes implantá-lo num ambiente do mundo real. Se os resultados não forem satisfatórios, precisarás de fazer melhorias. Isso pode envolver analisar erros, reunir mais dados, melhorar a qualidade dos dados, ajustar hiperparâmetros e treinar o modelo novamente.

Participa na Conversa sobre IA

Tornar-te parte de uma comunidade de entusiastas de visão computacional pode ajudar a resolver problemas e aprender com mais eficiência. Aqui estão algumas formas de te conectares, pedires ajuda e partilhares as tuas ideias.

Recursos da Comunidade

  • GitHub Issues: Explora o repositório GitHub do YOLO26 e usa a aba Issues para fazer perguntas, relatar bugs e sugerir novos recursos. A comunidade e os mantenedores são muito ativos e estão prontos para ajudar.
  • Servidor Discord da Ultralytics: Junta-te ao servidor Discord da Ultralytics para conversar com outros utilizadores e desenvolvedores, obter suporte e partilhar as tuas experiências.

Documentação Oficial

  • Documentação do YOLO26 da Ultralytics: Consulta a documentação oficial do YOLO26 para guias detalhados e dicas úteis sobre vários projetos de visão computacional.

Estes recursos ajudar-te-ão a navegar por desafios e a manter-te atualizado sobre as últimas tendências e práticas dentro da comunidade de visão computacional.

Em Resumo

Construir modelos de visão computacional confiáveis depende de testes de modelo rigorosos. Ao testar o modelo com dados anteriormente não vistos, podemos analisá-lo e detetar fraquezas como sobreajuste e vazamento de dados. Resolver estes problemas antes da implantação ajuda o modelo a ter um bom desempenho em aplicações do mundo real. É importante lembrar que o teste de modelo é tão crucial quanto a avaliação de modelo para garantir o sucesso e a eficácia a longo prazo do modelo.

FAQ

Quais são as principais diferenças entre avaliação de modelo e teste de modelo em visão computacional?

A avaliação de modelo e o teste de modelo são etapas distintas num projeto de visão computacional. A avaliação de modelo envolve o uso de um conjunto de dados rotulado para calcular métricas como precisão, precisão, recall e pontuação F1, fornecendo insights sobre o desempenho do modelo com um conjunto de dados controlado. O teste de modelo, por outro lado, avalia o desempenho do modelo em cenários do mundo real aplicando-o a dados novos e não vistos, garantindo que o comportamento aprendido pelo modelo se alinhe às expectativas fora do ambiente de avaliação. Para um guia detalhado, consulta as etapas num projeto de visão computacional.

Como posso testar o meu modelo YOLO26 da Ultralytics em múltiplas imagens?

Para testar o teu modelo YOLO26 da Ultralytics em múltiplas imagens, podes usar o modo de previsão. Este modo permite-te executar o modelo em dados novos e não vistos para gerar previsões sem fornecer métricas detalhadas. Isso é ideal para testes de desempenho no mundo real em conjuntos de imagens maiores armazenados numa pasta. Para avaliar métricas de desempenho, usa o modo de validação em vez disso.

O que devo fazer se o meu modelo de visão computacional mostrar sinais de sobreajuste ou subajuste?

Para lidar com o sobreajuste:

  • Técnicas de Regularização como dropout.
  • Aumenta o tamanho do conjunto de dados de treinamento.
  • Simplifica a arquitetura do modelo.

Para lidar com o subajuste:

  • Usa um modelo mais complexo.
  • Fornece mais recursos relevantes.
  • Aumenta as iterações de treinamento ou épocas.

Analisa imagens classificadas incorretamente, realiza uma análise de erro completa e rastreia regularmente as métricas de desempenho para manter um equilíbrio. Para mais informações sobre estes conceitos, explora a nossa secção sobre Sobreajuste e Subajuste.

Como posso detetar e evitar o vazamento de dados em visão computacional?

Para detetar vazamento de dados:

  • Verifica se o desempenho do teste não é invulgarmente alto.
  • Verifica a importância dos recursos para obter insights inesperados.
  • Analisa intuitivamente as decisões do modelo.
  • Garante a divisão correta dos dados antes do processamento.

Para evitar o vazamento de dados:

  • Usa conjuntos de dados diversificados com vários ambientes.
  • Analisa cuidadosamente os dados em busca de vieses ocultos.
  • Garante que não haja informações sobrepostas entre os conjuntos de treinamento e teste.

Para estratégias detalhadas sobre como prevenir o vazamento de dados, consulta a nossa secção sobre Vazamento de Dados em Visão Computacional.

Quais passos devo seguir após testar o meu modelo de visão computacional?

Após o teste, se o desempenho do modelo atender aos objetivos do projeto, prossegue com a implantação. Se os resultados forem insatisfatórios, considera:

Obtém insights da seção Model Testing Vs. Model Evaluation para refinar e melhorar a eficácia do modelo em aplicações do mundo real.

Como executo predições com o YOLO26 sem treinamento personalizado?

Podes executar predições usando o modelo YOLO26 pré-treinado no teu conjunto de dados para ver se ele atende às necessidades da tua aplicação. Utiliza o prediction mode para ter uma noção rápida dos resultados de desempenho sem mergulhar em treinamentos personalizados.

Comentários