YOLO Vision 2026:

Técnicas de pré-processamento de dados para dados anotados de visão computacional#

A pré-processamento de dados transforma imagens brutas e anotadas em entradas limpas e consistentes que um modelo de computer vision precisa para treinar bem. Com o Ultralytics YOLO26, as operações principais de pixels — conversão RGB, escala para [0, 1] e redimensionamento — são executadas automaticamente dentro do pipeline de treinamento, portanto o trabalho que resta é dividir seu conjunto de dados corretamente, balancear as classes e escolher as multiplicações. Este guia cobre essas técnicas essenciais: redimensionamento, normalização, divisão de conjuntos de dados, aumento de dados e análise exploratória de dados (EDA).



Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀

Esta etapa vem após você ter defined your project's goals e collected and annotated your data, e fica no início do computer vision project workflow.

Por que o pré-processamento importa#

O pré-processamento coloca seus dados em um formato que reduz a carga computacional e melhora o desempenho do modelo. Ele aborda três problemas comuns em dados brutos:

  • Ruído: Variações irrelevantes ou aleatórias nos dados.
  • Inconsistência: Variações em tamanhos, formatos e qualidade das imagens.
  • Desequilíbrio: Distribuição desigual de classes ou categorias através do conjunto de dados.

Técnicas de pré-processamento#

As técnicas principais são redimensionamento, normalização, divisão de conjunto de dados e aumentação. Com o YOLO26, as duas primeiras são automáticas, enquanto a divisão e a aumentação são onde suas escolhas importam mais.

Redimensionamento de imagens#

Muitos modelos exigem um tamanho de entrada consistente, portanto, o redimensionamento torna as imagens uniformes e reduz a complexidade computacional. Dois métodos comuns de interpolação são:

  • Interpolação Bilinear: Suaviza os valores dos pixels tirando uma média ponderada dos quatro pixels mais próximos.
  • Vizinho Mais Próximo: Copia o valor do pixel mais próximo sem fazer média — é mais rápido, mas produz uma imagem mais pixelada.

Bibliotecas como OpenCV e PIL (Pillow) fornecem essas funções, mas com o YOLO26 você geralmente não redimensiona manualmente. O argumento imgsz durante o model training lida com isso: quando definido com um valor como 640, o YOLO dimensiona cada imagem para que sua maior dimensão tenha 640 pixels, preservando a proporção de aspecto, e em seguida preenche o lado mais curto (cinza padrão, valor 114) para alcançar uma entrada quadrada 640 × 640.

Normalização de valores de pixels#

A normalização escala os valores dos pixels para um intervalo padrão, o que ajuda o modelo a convergir mais rápido durante o treinamento. Duas técnicas comuns são:

  • Escalonamento Mín-Máx: Escala os valores dos pixels para um intervalo de 0 a 1.
  • Normalização Z-Score: Escala os valores dos pixels com base em sua média e desvio padrão.

O YOLO26 lida com a normalização automaticamente como parte do seu pipeline de pré-processamento: ele converte imagens para RGB e dimensiona os valores dos pixels para o intervalo [0, 1] dividindo por 255 (escala min-max). O YOLO não aplica normalização de média/desvio padrão (escore z) estilo ImageNet por padrão, portanto nenhuma etapa de normalização manual é necessária.

Divisão do conjunto de dados#

Dividir os dados em conjuntos de treinamento, validação e teste permite que você avalie o modelo em dados não vistos e meça sua generalização. Uma divisão comum é de 70% para treinamento, 20% para validação e 10% para testes. Ferramentas como scikit-learn ou TensorFlow tornam isso simples.

Mantenha estes pontos em mente ao dividir:

  • Mantenha a distribuição de classes: Garanta que cada classe seja representada proporcionalmente nos conjuntos de treinamento, validação e teste.
  • Equilibre as classes: Para conjuntos de dados desequilibrados, considere fazer oversampling da classe minoritária ou under-sampling da classe majoritária — apenas dentro do conjunto de treinamento.
Evite o vazamento de dados

Divida o conjunto de dados antes de aplicar qualquer aumentação ou outro pré-processamento, e aplique essas transformações apenas ao conjunto de treinamento. Aumentar antes da divisão permite que informações das imagens de validação ou teste influenciem o treinamento, produzindo pontuações enganosamente altas que colapsam em dados do mundo real.

Aumentando o conjunto de dados#

Data augmentation aumenta artificialmente o tamanho de um conjunto de dados criando versões modificadas de imagens existentes. Isso ajuda a reduzir o overfitting e melhora a generalização, com vários benefícios:

  • Modelos mais robustos: Variações em iluminação, orientação e escala tornam o modelo resiliente a distorções do mundo real.
  • Custo-efetivo: Você expande o conjunto de treinamento sem coletar e rotular novos dados.
  • Melhor uso dos dados: Cada imagem anotada gera múltiplas variações de treinamento.

Examples of data augmentation techniques including flips, rotations, scaling, and color adjustments applied to a sample image

Com o YOLO26, o aumento é controlado por meio de training arguments passados para model.train() ou pelas flags CLI equivalentes — não editando o YAML do conjunto de dados, que define metadados do conjunto de dados como caminhos, nomes de classes e divisões. As aumentações integradas incluem:

  • Mosaic, MixUp e CutMix (mosaic, mixup, cutmix): Combinam várias imagens em uma única amostra de treinamento.
  • Flips (fliplr, flipud): Espelham imagens horizontalmente ou verticalmente.
  • Geometric transforms (degrees, translate, scale, shear, perspective): Rotacionam, deslocam, ampliam e distorcem imagens.
  • HSV color jitter (hsv_h, hsv_s, hsv_v): Variam matiz, saturação e brilho.
  • Copy-paste (copy_paste): Cola objetos entre imagens para segmentação.
Defina a intensidade da aumentação ao treinar
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# Augmentation is configured with training arguments, not the dataset YAML
model.train(data="coco8.yaml", epochs=10, hsv_h=0.015, fliplr=0.5, mosaic=1.0, degrees=10.0)

Para obter a lista completa de argumentos de aumento e seus valores padrão, consulte a referência de augmentation settings e o YOLO data augmentation guide dedicado. Se o pacote albumentations estiver instalado, o YOLO também habilita suas aumentações integradas baseadas no Albumentations automaticamente.

Um estudo de caso: Pré-processamento para detecção de veículos#

Considere um projeto para detectar e classificar veículos em imagens de tráfego com o YOLO26, começando com imagens anotadas com bounding boxes e rótulos. Veja como se parece cada decisão de pré-processamento:

  • Resizing: Nenhum trabalho manual — o YOLO26 redimensiona para imgsz durante o treinamento.
  • Normalization: Nenhum trabalho manual — o YOLO26 dimensiona os valores dos pixels para [0, 1] automaticamente.
  • Divisão: Divida o conjunto de dados em 70% de treinamento, 20% de validação e 10% de teste, mantendo a distribuição de classes consistente entre as divisões.
  • Augmentation: Defina argumentos de treinamento adequados para cenas de tráfego — por exemplo, fliplr para invariância de direção, hsv_v para iluminação diurna/noturna e mosaic para densidade variada de objetos.

Com essas decisões tomadas, o conjunto de dados está pronto para Análise Exploratória de Dados (EDA).

Análise Exploratória de Dados (EDA)#

A EDA usa estatísticas e visualizações para revelar padrões e distribuições em seus dados, ajudando você a capturar problemas como desequilíbrio de classes ou outliers antes do treinamento.

Técnicas estatísticas de EDA#

A EDA estatística começa com métricas básicas — média, mediana, desvio padrão e intervalo — calculadas sobre propriedades como distribuições de intensidade de pixels. Elas fornecem uma visão geral rápida da qualidade do seu conjunto de dados e revelam irregularidades cedo.

Técnicas visuais de EDA#

Visualizações revelam padrões que as estatísticas resumidas perdem, como desequilíbrio de classes e outliers. Ferramentas comuns incluem:

  • Histogramas e box plots: Mostram a distribuição dos valores de pixels e sinalizam outliers na intensidade ou nas distribuições de características.
  • Gráficos de barras: Revelam desequilíbrio de classes comparando quantos exemplos cada classe possui.
  • Gráficos de dispersão: Exploram relacionamentos entre características da imagem ou anotações.
  • Mapas de calor: Visualizam distribuições de intensidade de pixels ou a distribuição espacial de anotações através das imagens.

Plataforma Ultralytics para EDA#

Para uma abordagem sem código para EDA, envie seu conjunto de dados para a Ultralytics Platform. A guia Charts do conjunto de dados gera automaticamente visualizações principais de EDA: distribuição de divisões, contagens das principais classes, histogramas de largura/altura de imagem e mapas de calor 2D de posições de anotação e dimensões de imagem. A guia Images permite que você navegue pelos seus dados em visualizações de grade, compactas ou em tabela com sobreposições de anotação, facilitando a identificação de exemplos rotulados incorretamente ou classes desbalanceadas sem escrever nenhum código.

Conclusão#

Dados devidamente divididos, normalizados e aumentados reduzem o ruído e melhoram a generalização, transformando uma coleção bruta de imagens em um conjunto de treinamento confiável. Com seu conjunto de dados pré-processado, a próxima etapa é train your model. Se surgirem dúvidas ao longo do caminho, pergunte à comunidade no Ultralytics GitHub repository ou no Ultralytics Discord server.

FAQ#

  • O pré-processamento garante que seus dados estejam limpos, consistentes e em um formato otimizado para treinamento. Ao lidar com ruídos, inconsistências e desbalanceamento de classes em dados brutos, etapas como redimensionamento, normalização, aumento e divisão de conjuntos de dados reduzem a carga computacional e melhoram o desempenho do modelo. Veja as steps of a computer vision project para saber como isso se encaixa no fluxo de trabalho mais amplo.

  • Configure o aumento por meio de argumentos de treinamento, e não pelo YAML do conjunto de dados. Passe argumentos como fliplr, mosaic, hsv_h e degrees para model.train() (ou as flags CLI equivalentes) para definir a probabilidade e a força de cada transformação. Eles são definidos nas augmentation settings e explicados no YOLO data augmentation guide.

  • As duas técnicas mais comuns são o escalonamento min-max (reescalar pixels para um intervalo de 0 a 1) e a normalização z-score (reescalar com base na média e desvio padrão). O YOLO26 aplica o escalonamento min-max automaticamente — convertendo imagens para RGB e dividindo os valores dos pixels por 255 — então você não precisa de uma etapa manual de normalização. Ele não aplica a normalização z-score por padrão.

  • Uma prática comum é 70% para treinamento, 20% para validação e 10% para testes. Mantenha a distribuição de classes em todas as três divisões e evite data leakage aplicando o aumento apenas ao conjunto de treinamento após a divisão. Ferramentas como scikit-learn ou TensorFlow lidam com a divisão de forma eficiente. Consulte o data collection and annotation guide para a preparação do conjunto de dados a montante.

  • Sim. O argumento imgsz redimensiona as imagens durante o treinamento e a inferência para que sua maior dimensão corresponda ao tamanho especificado (por exemplo, 640 pixels), preservando a proporção de aspecto, e em seguida preenche o lado mais curto. Você não precisa redimensionar as imagens por conta própria — consulte a documentação de model training para obter detalhes.

Comentários