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.
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:
- Análise de erros.
- Coleta de mais dados diversos e de alta qualidade.
- Ajuste de hiperparâmetros.
- Retreinamento do modelo.
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.