Link to this sectionTécnicas de pré-processamento de dados para dados anotados de visão computacional#
O pré-processamento de dados transforma imagens brutas e anotadas nas entradas limpas e consistentes que um modelo de visão computacional precisa para treinar bem. Com o Ultralytics YOLO26, as operações principais de pixel — conversão RGB, escala para [0, 1] e redimensionamento — rodam automaticamente dentro do pipeline de treinamento, então o trabalho que resta é dividir seu conjunto de dados corretamente, equilibrar classes e escolher aumentações. Este guia cobre essas técnicas essenciais: redimensionamento, normalização, divisão de conjunto de dados, aumentação 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 🚀
Este passo vem depois que você definiu os objetivos do seu projeto e coletou e anotou seus dados, e ele fica no início do fluxo de trabalho de projetos de visão computacional.
Link to this sectionPor 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.
Link to this sectionTé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.
Link to this sectionRedimensionamento 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 treinamento do modelo cuida disso: quando definido como um valor como 640, o YOLO escala cada imagem para que sua maior dimensão tenha 640 pixels enquanto preserva a proporção, e então preenche o lado mais curto (cinza padrão, valor 114) para atingir uma entrada quadrada de 640 × 640.
Link to this sectionNormalizaçã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 escala os valores dos pixels para o intervalo [0, 1] dividindo por 255 (escala min-max). O YOLO não aplica a normalização de média/desvio-padrão (z-score) ao estilo ImageNet por padrão, então nenhuma etapa de normalização manual é necessária.
Link to this sectionDivisã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 é 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.
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.
Link to this sectionAumentando o conjunto de dados#
A aumentação de dados aumenta artificialmente o tamanho de um conjunto de dados criando versões modificadas de imagens existentes. Ela 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.
Com o YOLO26, a aumentação é controlada através de argumentos de treinamento passados para model.train() ou as flags de CLI equivalentes — não editando o YAML do conjunto de dados, que define metadados do conjunto como caminhos, nomes de classes e divisões. As aumentações integradas incluem:
- Mosaic, MixUp e CutMix (
mosaic,mixup,cutmix): Combinam múltiplas imagens em uma amostra de treinamento. - Espelhamentos (
fliplr,flipud): Espelha imagens horizontal ou verticalmente. - Transformações geométricas (
degrees,translate,scale,shear,perspective): Rotaciona, desloca, amplia e distorce imagens. - Ajuste de cor HSV (
hsv_h,hsv_s,hsv_v): Varia matiz, saturação e brilho. - Copiar e colar (
copy_paste): Cola objetos entre imagens para segmentação.
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 a lista completa de argumentos de aumentação e seus valores padrão, veja a referência de configurações de aumentação e o guia de aumentação de dados YOLO dedicado. Se o pacote albumentations estiver instalado, o YOLO também habilita suas aumentações integradas baseadas em Albumentations automaticamente.
Link to this sectionUm 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 de imagens anotadas com caixas delimitadoras e rótulos. Aqui está como cada decisão de pré-processamento se parece:
- Redimensionamento: Nenhum trabalho manual — o YOLO26 redimensiona para
imgszdurante o treinamento. - Normalização: Nenhum trabalho manual — o YOLO26 escala 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.
- Aumentação: Defina argumentos de treinamento adequados para cenas de tráfego — por exemplo,
fliplrpara invariância de direção,hsv_vpara iluminação diurna/noturna emosaicpara densidade variada de objetos.
Com essas decisões tomadas, o conjunto de dados está pronto para Análise Exploratória de Dados (EDA).
Link to this sectionAná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.
Link to this sectionTé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.
Link to this sectionTé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.
Link to this sectionPlataforma Ultralytics para EDA#
Para uma abordagem sem código para EDA, envie seu conjunto de dados para a Plataforma Ultralytics. A aba Charts do conjunto de dados gera automaticamente as principais visualizações de EDA: distribuição da divisão, contagens das classes principais, histogramas de largura/altura da imagem e mapas de calor 2D das posições das anotações e dimensões da imagem. A aba Images permite que você navegue pelos seus dados em visualizações de grade, compacta ou de tabela com sobreposições de anotações, facilitando a identificação de exemplos rotulados incorretamente ou classes desequilibradas sem escrever código.
Link to this sectionConclusã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, o próximo passo é treinar seu modelo. Se surgirem dúvidas ao longo do caminho, pergunte à comunidade no repositório GitHub da Ultralytics ou no servidor Discord da Ultralytics.
Link to this sectionFAQ#
Link to this sectionPor que o pré-processamento de dados é importante em projetos de visão computacional?#
O pré-processamento garante que seus dados estejam limpos, consistentes e em um formato otimizado para treinamento. Ao abordar ruído, inconsistência e desequilíbrio de classes em dados brutos, passos como redimensionamento, normalização, aumentação e divisão de conjunto de dados reduzem a carga computacional e melhoram o desempenho do modelo. Veja as etapas de um projeto de visão computacional para entender como isso se encaixa no fluxo de trabalho mais amplo.
Link to this sectionComo uso o Ultralytics YOLO para aumentação de dados?#
Configure a aumentação através de argumentos de treinamento, não pelo YAML do conjunto de dados. Passe argumentos como fliplr, mosaic, hsv_h e degrees para model.train() (ou as flags de CLI equivalentes) para definir a probabilidade e a intensidade de cada transformação. Estes são definidos nas configurações de aumentação e explicados no guia de aumentação de dados YOLO.
Link to this sectionQuais são as melhores técnicas de normalização para dados de visão computacional?#
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.
Link to this sectionComo devo dividir meu conjunto de dados anotado para treinamento?#
Uma prática comum é 70% para treinamento, 20% para validação e 10% para teste. Mantenha a distribuição de classes através de todas as três divisões e evite o vazamento de dados aplicando a aumentação apenas ao conjunto de treinamento após a divisão. Ferramentas como scikit-learn ou TensorFlow lidam com a divisão de forma eficiente. Veja o guia de coleta e anotação de dados para a preparação upstream do conjunto de dados.
Link to this sectionO YOLO26 pode lidar com tamanhos de imagem variados sem redimensionamento manual?#
Sim. O argumento imgsz redimensiona imagens durante o treinamento e a inferência para que sua maior dimensão corresponda ao tamanho especificado (por exemplo, 640 pixels) enquanto preserva a proporção, então preenche o lado mais curto. Você não precisa redimensionar imagens sozinho — consulte a documentação de treinamento de modelo para detalhes.