Como testar modelos de visão computacional#
Introdução#
Os testes do modelo verificam o desempenho de um modelo treinado em dados do mundo real que não foram vistos anteriormente — objetos em movimento, com pouca iluminação ou parcialmente ocultos, em vez de um benchmark selecionado. Enquanto a avaliação do modelo mede métricas num conjunto de dados anotado, os testes verificam se o comportamento aprendido pelo modelo corresponde aos objetivos da tua aplicação antes da implementação. Este guia aborda a preparação dos dados de teste, os testes de modelos Ultralytics YOLO26 e a deteção de sobreajuste, subajuste e fuga de dados.
Watch: How to Test Machine Learning Models | Avoid Data Leakage in Computer Vision 🚀
Testes do modelo vs. avaliação do modelo#
Os testes e a avaliação do modelo são dois passos distintos num projeto de visão computacional. A avaliação mede o desempenho através de métricas num conjunto de dados anotado; os testes verificam se o comportamento aprendido pelo modelo se mantém em condições semelhantes às da implementação.
Imagina que treinaste um modelo de visão computacional para reconhecer gatos e cães e queres implementá-lo numa loja de animais para monitorizar os animais. Durante a fase de avaliação do modelo, utilizas um conjunto de dados anotado para calcular métricas como exatidão, precisão e revocação. Por exemplo, o modelo pode ter uma exatidão de 98% ao distinguir gatos de cães num determinado conjunto de dados.
Depois da avaliação, testas o modelo utilizando imagens de uma loja de animais para verificar quão bem identifica gatos e cães em condições mais variadas e realistas. Verificas se consegue atribuir corretamente rótulos a gatos e cães quando estão em movimento, sob diferentes condições de iluminação ou parcialmente ocultos por objetos como brinquedos ou móveis. Os testes do modelo verificam se este se comporta como esperado fora do ambiente de avaliação controlado.
Preparação para os testes do modelo#
Os conjuntos de dados de visão computacional são normalmente divididos em conjuntos de treino e de teste para simular condições do mundo real: os dados de treino ensinam o modelo, enquanto os dados de teste verificam o seu comportamento em exemplos que nunca viu. A Ultralytics Platform mantém a organização e a anotação dos conjuntos de dados num só lugar, o que ajuda a criar um conjunto de teste anotado.
- Representação realista: Os dados de teste que não foram vistos anteriormente devem ser semelhantes aos dados que o modelo irá processar quando for implementado. Isto proporciona uma visão realista das capacidades do modelo.
- Tamanho suficiente: O conjunto de dados de teste deve ser suficientemente grande para fornecer informações fiáveis sobre o desempenho do modelo.
Como testar um modelo YOLO26#
Testar um modelo YOLO26 treinado envolve dois fluxos de trabalho complementares: validar numa divisão de teste anotada para obter métricas quantitativas e fazer previsões em imagens novas para inspecionar qualitativamente o comportamento.
Validar numa divisão de teste anotada#
O modo de validação compara as previsões do modelo com os rótulos de referência e apresenta precisão, revocação, mAP50 e mAP50-95 para modelos de deteção. Também guarda elementos visuais, como uma matriz de confusão e uma curva de precisão-revocação, que ajudam a identificar áreas específicas em que o modelo pode não estar a ter um bom desempenho.
from ultralytics import YOLO
# Load a pretrained model or your own trained checkpoint, e.g. "path/to/best.pt"
model = YOLO("yolo26n.pt")
# Validate; add split="test" if your dataset YAML defines a test split
metrics = model.val(data="coco8.yaml")
print(metrics.box.map) # mAP50-95Por predefinição, a validação é executada na divisão val do conjunto de dados. Para medir o desempenho num conjunto de teste separado, define uma divisão test: no YAML do conjunto de dados e passa split="test".
Fazer previsões em imagens novas#
O modo de previsão executa o modelo em dados novos e não vistos, sem exigir rótulos. Não produz métricas de desempenho, mas guardar as saídas anotadas permite analisar o comportamento do modelo em imagens do mundo real — por exemplo, numa pasta inteira de imagens de teste de uma só vez.
from ultralytics import YOLO
# Load a pretrained model or your own trained checkpoint, e.g. "path/to/best.pt"
model = YOLO("yolo26n.pt")
# Run predictions on a folder of test images and save annotated results
results = model.predict(source="path/to/test_images", save=True)Para verificar se o YOLO26 é adequado para a tua aplicação antes de investires num treino personalizado, executa o modo de previsão com um checkpoint pré-treinado nas tuas próprias imagens. Os modelos são pré-treinados em conjuntos de dados como o COCO, pelo que os resultados dão uma indicação rápida do desempenho que o modelo pode ter no teu contexto específico.
Modo de validação vs. modo de previsão#
| Modo | Finalidade | Requer rótulos | Saída |
|---|---|---|---|
| Validação | Quantifica o desempenho em relação à verdade de referência | Sim | Precisão, revocação, mAP50, mAP50-95, matriz de confusão, curvas PR |
| Previsão | Inspeciona o comportamento do modelo em dados novos e não anotados | Não | Imagens anotadas e resultados das previsões, sem métricas |
Como analisar os resultados dos testes#
Depois de obteres as previsões e as métricas, analisa detalhadamente onde e por que motivo o modelo falha:
- Imagens classificadas incorretamente: Identifica e analisa as imagens que o modelo classificou incorretamente para compreender onde está a falhar.
- Análise de erros: Faz uma análise aprofundada dos erros para compreender os tipos de erro (por exemplo, falsos positivos vs. falsos negativos) e as suas possíveis causas.
- Viés e equidade: Verifica se existem vieses nas previsões do modelo. Garante que o modelo tem um desempenho igualmente bom em diferentes subconjuntos dos dados, especialmente se estes incluírem atributos sensíveis como raça, género ou idade.
Sobreajuste e subajuste em aprendizagem automática#
Ao testar um modelo de aprendizagem automática, especialmente em visão computacional, é importante estar atento ao sobreajuste e ao subajuste. Estes problemas podem afetar significativamente o desempenho do modelo em dados novos.
| Problema | Sinais comuns | Como resolver |
|---|---|---|
| Sobreajuste | Exatidão elevada no treino, mas baixa na validação; sensibilidade excessiva a pequenas alterações ou detalhes irrelevantes nas imagens | Aplica regularização, como dropout, aumenta o tamanho do conjunto de dados de treino e simplifica a arquitetura do modelo |
| Subajuste | Exatidão baixa mesmo no conjunto de treino; falha consistente em reconhecer características ou objetos óbvios | Utiliza um modelo mais complexo, fornece características mais relevantes e aumenta as épocas de treino |
O essencial é encontrar um equilíbrio para que o modelo tenha um bom desempenho nos conjuntos de dados de treino e de validação. Monitorizar regularmente as métricas e inspecionar visualmente as previsões durante os testes ajuda-te a detetar uma tendência para qualquer um dos extremos.
Fuga de dados em visão computacional e como evitá-la#
A fuga de dados ocorre quando informações externas ao conjunto de dados de treino são utilizadas acidentalmente para treinar o modelo. O modelo pode parecer muito preciso durante o treino, mas não terá um bom desempenho em dados novos e não vistos quando ocorre uma fuga de dados.
A fuga pode ser difícil de detetar e muitas vezes resulta de vieses ocultos nos dados de treino:
| Tipo de viés | Aspeto |
|---|---|
| Viés da câmara | Diferentes ângulos, condições de iluminação, sombras e movimentos da câmara introduzem padrões indesejados |
| Viés de sobreposição | Logótipos, marcas temporais ou outras sobreposições nas imagens induzem o modelo em erro |
| Viés de tipo de letra e de objeto | Tipos de letra ou objetos específicos que aparecem frequentemente em determinadas classes distorcem a aprendizagem do modelo |
| Viés espacial | Desequilíbrios entre primeiro plano e fundo, nas distribuições de caixas delimitadoras e nas localizações dos objetos afetam o treino |
| Viés de rótulo e de domínio | Rótulos incorretos ou alterações nos tipos de dados conduzem a fugas de dados |
Como detetar e evitar fugas de dados#
Para encontrar fugas de dados, verifica se os resultados do modelo são surpreendentemente bons, analisa se uma característica é muito mais importante do que as outras, confirma novamente se as decisões do modelo fazem sentido intuitivamente e verifica se os dados foram divididos corretamente antes de qualquer processamento.
Para as evitar, utiliza um conjunto de dados diversificado com imagens ou vídeos de diferentes câmaras e ambientes e analisa cuidadosamente os teus dados à procura de vieses ocultos — como o facto de todas as amostras positivas terem sido recolhidas a uma determinada hora do dia. Evitar fugas de dados torna os teus modelos de visão computacional mais fiáveis em situações do mundo real.
O que fazer depois dos testes do modelo#
Depois de testares o modelo, os passos seguintes dependem dos resultados. Se o modelo tiver um bom desempenho, podes implementá-lo num ambiente do mundo real. Se os resultados não forem satisfatórios, terás de fazer melhorias. Isto pode envolver a análise de erros, a recolha de mais dados, a melhoria da qualidade dos dados, o ajuste dos hiperparâmetros e o novo treino do modelo.
Conclusão#
Testes rigorosos do modelo — validar numa divisão de teste separada, fazer previsões em imagens do mundo real e verificar a existência de sobreajuste e fugas de dados — são o que transforma um modelo bem avaliado num modelo fiável. Resolve os problemas revelados pelos testes antes da implementação, e será muito mais provável que o teu modelo tenha o desempenho pretendido em produção. Se surgirem dúvidas ao longo do processo, pergunta à comunidade no repositório Ultralytics no GitHub ou no servidor Ultralytics no Discord.
Perguntas frequentes#
A avaliação do modelo mede o desempenho através de métricas num conjunto de dados anotado, enquanto os testes verificam como o modelo se comporta em dados novos e não vistos, semelhantes às condições de implementação. A avaliação produz números como precisão e mAP a partir de um conjunto de dados controlado; os testes revelam se o comportamento aprendido se mantém sob diferentes condições de iluminação, movimento ou oclusão. Consulta Testes do modelo vs. avaliação do modelo para veres um exemplo prático.
Utiliza o modo de previsão e passa o caminho de uma pasta como
source— o YOLO26 é executado em todas as imagens da pasta e pode guardar os resultados anotados para análise. O modo de previsão não calcula métricas; para quantificar o desempenho num conjunto anotado, utiliza antes o modo de validação. Ambos os fluxos de trabalho são apresentados em Como testar um modelo YOLO26.Para modelos de deteção, a validação apresenta precisão, revocação, mAP50 e mAP50-95 e guarda gráficos, incluindo uma matriz de confusão e uma curva de precisão-revocação. Para validar numa divisão de teste dedicada em vez da divisão predefinida
val, definetest:no YAML do conjunto de dados e passasplit="test". Consulta o guia de métricas de desempenho para saberes como interpretar cada métrica.Para o sobreajuste, aplica técnicas de regularização, como dropout, aumenta o tamanho do conjunto de dados de treino ou simplifica a arquitetura do modelo. Para o subajuste, utiliza um modelo mais complexo, fornece características mais relevantes ou treina durante mais épocas. Os sinais de cada problema e as respetivas soluções estão resumidos em Sobreajuste e subajuste em aprendizagem automática.
Suspeita de fuga de dados quando o desempenho no teste é surpreendentemente bom, uma única característica domina as previsões ou as decisões do modelo não fazem sentido intuitivamente. Evita-a utilizando conjuntos de dados diversificados de diferentes câmaras e ambientes, analisando os dados à procura de vieses ocultos e verificando se a divisão entre treino e teste ocorreu antes de qualquer processamento. Consulta Fuga de dados em visão computacional para conheceres os tipos comuns de viés.
Se os resultados cumprirem os objetivos do teu projeto, implementa o modelo; caso contrário, melhora-o antes da implementação. Isto pode significar analisar erros, recolher dados mais diversificados, melhorar a qualidade dos dados, ajustar os hiperparâmetros e voltar a treinar. Repete os testes depois de cada ronda de alterações para confirmares que as correções funcionaram.