YOLO Vision 2026:

Melhore seu conjunto de dados para treinar o YOLO26 usando o Albumentations#

Quando estás a construir modelos de visão computacional, a qualidade e a variedade dos teus dados de treino podem desempenhar um papel importante no desempenho do teu modelo. O Albumentations oferece uma forma rápida, flexível e eficiente de aplicar uma ampla gama de transformações de imagem que podem melhorar a capacidade do teu modelo para se adaptar a cenários do mundo real. Integra-se facilmente com o Ultralytics YOLO26 e pode ajudar-te a criar conjuntos de dados robustos para tarefas de deteção de objetos, segmentação e classificação.

Ao utilizar o Albumentations, podes potenciar os teus dados de treino do YOLO26 com técnicas como transformações geométricas e ajustes de cor. Neste artigo, vamos ver como o Albumentations pode melhorar o teu processo de aumento de dados e tornar os teus projetos YOLO26 ainda mais impactantes. Vamos começar!

Albumentations para aumento de imagens#

O Albumentations é uma biblioteca de aumento de imagens de código aberto criada em junho de 2018. Foi concebida para simplificar e acelerar o processo de aumento de imagens em visão computacional. Criada a pensar no desempenho e na flexibilidade, suporta muitas técnicas de aumento diversas, desde transformações simples como rotações e inversões até ajustes mais complexos como alterações de brilho e contraste. O Albumentations ajuda os programadores a gerar conjuntos de dados ricos e variados para tarefas como classificação de imagens, deteção de objetos e segmentação.

Podes utilizar o Albumentations para aplicar facilmente aumentos a imagens, máscaras de segmentação, caixas delimitadoras e pontos-chave, garantindo que todos os elementos do teu conjunto de dados são transformados em conjunto. Funciona perfeitamente com estruturas populares de aprendizagem profunda como PyTorch e TensorFlow, tornando-o acessível para uma vasta gama de projetos.

Além disso, o Albumentations é uma excelente opção para o aumento de dados, quer estejas a lidar com pequenos conjuntos de dados ou com tarefas de visão computacional de grande escala. Garante um processamento rápido e eficiente, reduzindo o tempo despendido na preparação de dados. Ao mesmo tempo, ajuda a melhorar o desempenho do modelo, tornando os teus modelos mais eficazes em aplicações do mundo real.

Principais recursos do Albumentations#

O Albumentations oferece muitas funcionalidades úteis que simplificam aumentos de imagem complexos para uma vasta gama de aplicações de visão computacional. Eis algumas das principais funcionalidades:

  • Vasta Gama de Transformações: O Albumentations oferece mais de 70 transformações diferentes, incluindo alterações geométricas (por exemplo, rotação, inversão), ajustes de cor (por exemplo, brilho, contraste) e adição de ruído (por exemplo, ruído gaussiano). Ter várias opções permite a criação de conjuntos de dados de treino altamente diversos e robustos.

Albumentations augmentation examples

  • Otimização de alto desempenho: Construído sobre OpenCV e NumPy, o Albumentations usa técnicas de otimização avançadas como SIMD (Single Instruction, Multiple Data), que processa múltiplos pontos de dados simultaneamente para acelerar o processamento. Ele lida com grandes conjuntos de dados rapidamente, tornando-se uma das opções mais rápidas disponíveis para aumento de imagens.

  • Três níveis de aumento: O Albumentations suporta três níveis de aumento: transformações de nível de pixel, transformações de nível espacial e transformações de nível de mistura. As transformações de nível de pixel afetam apenas as imagens de entrada sem alterar máscaras, caixas delimitadoras ou pontos-chave. Enquanto isso, tanto a imagem quanto seus elementos, como máscaras e caixas delimitadoras, são transformados usando transformações de nível espacial. Além disso, as transformações de nível de mistura são uma maneira única de aumentar dados, pois combinam várias imagens em uma só.

Visão geral dos diferentes níveis de aumentos

  • Resultados de Testes de Desempenho: Quando se trata de testes de referência, o Albumentations supera consistentemente outras bibliotecas, especialmente com conjuntos de dados grandes.

Por que você deve usar o Albumentations para seus projetos de IA de visão?#

Em relação ao aumento de imagens, o Albumentations se destaca como uma ferramenta confiável para tarefas de visão computacional. Aqui estão alguns motivos principais pelos quais você deve considerar usá-lo para seus projetos de IA de visão:

  • API Fácil de Utilizar: O Albumentations fornece uma API única e direta para aplicar uma vasta gama de aumentos a imagens, máscaras, caixas delimitadoras e pontos-chave. Foi concebida para se adaptar facilmente a diferentes conjuntos de dados, tornando a preparação de dados mais simples e eficiente.

  • Testes rigorosos contra bugs: Bugs no pipeline de aumento podem corromper silenciosamente os dados de entrada, muitas vezes passando despercebidos, mas degradando o desempenho do modelo. O Albumentations resolve isso com um conjunto de testes completo que ajuda a detectar bugs precocemente no desenvolvimento.

  • Extensibilidade: O Albumentations pode ser usado para adicionar facilmente novos aumentos e usá-los em pipelines de visão computacional através de uma interface única, juntamente com transformações integradas.

Como usar o Albumentations para aumentar dados para o treinamento do YOLO26#

Agora que já cobrimos o que é o Albumentations e o que ele pode fazer, vamos ver como utilizá-lo para aumentar os teus dados para o treino do modelo YOLO26. É fácil de configurar porque se integra diretamente no modo de treino do Ultralytics e aplica-se automaticamente se tiveres o pacote Albumentations instalado.

Instalação#

Para usar o Albumentations com o YOLO26, comece garantindo que você tenha os pacotes necessários instalados. Se o Albumentations não estiver instalado, os aumentos não serão aplicados durante o treinamento. Uma vez configurado, você estará pronto para criar um conjunto de dados aumentado para treinamento, com o Albumentations integrado para aprimorar seu modelo automaticamente.

Instalação
# Install the required packages
pip install albumentations ultralytics

Para instruções detalhadas e melhores práticas relacionadas com o processo de instalação, consulta o nosso guia de instalação do Ultralytics. Ao instalar os pacotes necessários para o YOLO26, se encontrares alguma dificuldade, consulta o nosso guia de problemas comuns para obter soluções e dicas.

Os exemplos de transformações personalizadas nesta página precisam do Albumentations 1.4.22 ou mais recente e, portanto, do Python 3.9 ou mais recente.

Uso#

Após instalar os pacotes necessários, você está pronto para começar a usar o Albumentations com o YOLO26. Ao treinar o YOLO26, um conjunto de aumentos é aplicado automaticamente através de sua integração com o Albumentations, tornando fácil melhorar o desempenho do seu modelo.

Uso
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train the model with default augmentations
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Em seguida, vamos analisar mais de perto os aumentos específicos que são aplicados durante o treinamento.

Desfoque#

A transformação Blur no Albumentations aplica um efeito de desfoque simples à imagem, calculando a média dos valores dos pixéis numa pequena área quadrada, ou kernel. Isto é feito através da função OpenCV cv2.blur, que ajuda a reduzir o ruído na imagem, embora também reduza ligeiramente os detalhes da imagem.

Aqui estão os parâmetros e valores usados nesta integração:

  • blur_limit: Isso controla a faixa de tamanho do efeito de desfoque. A faixa padrão é (3, 7), o que significa que o tamanho do kernel para o desfoque pode variar entre 3 e 7 pixels, com apenas números ímpares permitidos para manter o desfoque centralizado.

  • p: A probabilidade de aplicar o desfoque. Na integração, p=0.01, então há 1% de chance de que esse desfoque seja aplicado a cada imagem. A baixa probabilidade permite efeitos de desfoque ocasionais, introduzindo um pouco de variação para ajudar o modelo a generalizar sem desfocar excessivamente as imagens.

Albumentations Blur augmentation result

Desfoque Mediano#

A transformação MedianBlur no Albumentations aplica um efeito de desfoque mediano à imagem, o que é particularmente útil para reduzir ruído enquanto preserva as bordas. Diferente dos métodos típicos de desfoque, o MedianBlur usa um filtro mediano, que é especialmente eficaz na remoção de ruído sal-e-pimenta enquanto mantém a nitidez ao redor das bordas.

Aqui estão os parâmetros e valores usados nesta integração:

  • blur_limit: Este parâmetro controla o tamanho máximo do kernel de desfoque. Nesta integração, o padrão é uma faixa de (3, 7), o que significa que o tamanho do kernel para o desfoque é escolhido aleatoriamente entre 3 e 7 pixels, com apenas valores ímpares permitidos para garantir o alinhamento adequado.

  • p: Define a probabilidade de aplicar o desfoque mediano. Aqui, p=0.01, portanto, a transformação tem 1% de chance de ser aplicada a cada imagem. Essa baixa probabilidade garante que o desfoque mediano seja usado com moderação, ajudando o modelo a generalizar ao ver ocasionalmente imagens com ruído reduzido e bordas preservadas.

A imagem abaixo mostra um exemplo deste aumento aplicado a uma imagem.

Albumentations MedianBlur augmentation

Escala de cinza#

A transformação ToGray no Albumentations converte uma imagem para escala de cinza, reduzindo-a para um formato de canal único e, opcionalmente, replicando esse canal para corresponder a um número especificado de canais de saída. Diferentes métodos podem ser usados para ajustar como o brilho em escala de cinza é calculado, variando de uma simples média a técnicas mais avançadas para uma percepção realista de contraste e brilho.

Aqui estão os parâmetros e valores usados nesta integração:

  • num_output_channels: Define o número de canais na imagem de saída. Se este valor for maior que 1, o canal único de escala de cinza será replicado para criar uma imagem em escala de cinza multicanal. Por padrão, é definido como 3, resultando em uma imagem em escala de cinza com três canais idênticos.

  • method: Define o método de conversão de escala de cinza. O método padrão, "weighted_average", aplica uma fórmula (0.299R + 0.587G + 0.114B) que se alinha de perto com a percepção humana, proporcionando um efeito de escala de cinza de aparência natural. Outras opções, como "from_lab", "desaturation", "average", "max" e "pca", oferecem maneiras alternativas de criar imagens em escala de cinza com base em várias necessidades de velocidade, ênfase no brilho ou preservação de detalhes.

  • p: Controla a frequência com que a transformação de escala de cinza é aplicada. Com p=0.01, há 1% de chance de converter cada imagem para escala de cinza, tornando possível uma mistura de imagens coloridas e em escala de cinza para ajudar o modelo a generalizar melhor.

A imagem abaixo mostra um exemplo desta transformação de escala de cinza aplicada.

Albumentations grayscale conversion

Equalização de Histograma Adaptativo Limitada por Contraste (CLAHE)#

A transformação CLAHE no Albumentations aplica a Equalização de Histograma Adaptativo Limitada por Contraste (CLAHE), uma técnica que melhora o contraste da imagem equalizando o histograma em regiões localizadas (ladrilhos) em vez de em toda a imagem. O CLAHE produz um efeito de realce equilibrado, evitando o contraste excessivamente amplificado que pode resultar da equalização de histograma padrão, especialmente em áreas com baixo contraste inicial.

Aqui estão os parâmetros e valores usados nesta integração:

  • clip_limit: Controla a faixa de aprimoramento de contraste. Definido como uma faixa padrão de (1, 4), ele determina o contraste máximo permitido em cada ladrilho. Valores mais altos são usados para mais contraste, mas também podem introduzir ruído.

  • tile_grid_size: Define o tamanho da grade de ladrilhos, normalmente como (linhas, colunas). O valor padrão é (8, 8), o que significa que a imagem é dividida em uma grade de 8x8. Tamanhos de ladrilho menores fornecem ajustes mais localizados, enquanto os maiores criam efeitos mais próximos da equalização global.

  • p: A probabilidade de aplicar o CLAHE. Aqui, p=0.01 introduz o efeito de aprimoramento apenas 1% das vezes, garantindo que os ajustes de contraste sejam aplicados com moderação para variação ocasional nas imagens de treinamento.

A imagem abaixo mostra um exemplo da transformação CLAHE aplicada.

Albumentations CLAHE contrast enhancement

Usando transformações personalizadas do Albumentations#

Embora a integração padrão do Albumentations ofereça um conjunto sólido de augmentations, podes querer personalizar as transformações para o teu caso de uso específico. Com o Ultralytics YOLO26, podes passar facilmente transformações personalizadas do Albumentations através da API do Python usando o parâmetro augmentations. Os exemplos nesta seção precisam do Albumentations 1.4.22 ou mais recente.

Como definir transformações personalizadas#

Podes definir a tua própria lista de transformações do Albumentations e passá-las para a função de treino. Isto substitui as transformações predefinidas do Albumentations, mantendo ativos todos os outros aumentos do YOLO (como hsv_h, degrees, mosaic, etc.).

Aqui está um exemplo com transformações mais avançadas:

import albumentations as A

from ultralytics import YOLO

# Load model
model = YOLO("yolo26n.pt")

# Define custom transforms with various augmentation techniques
custom_transforms = [
    # Blur variations
    A.OneOf(
        [
            A.MotionBlur(blur_limit=7, p=1.0),
            A.MedianBlur(blur_limit=7, p=1.0),
            A.GaussianBlur(blur_limit=7, p=1.0),
        ],
        p=0.3,
    ),
    # Noise variations
    A.OneOf(
        [
            A.GaussNoise(std_range=(0.0124, 0.0277), p=1.0),
            A.ISONoise(color_shift=(0.01, 0.05), intensity=(0.1, 0.5), p=1.0),
        ],
        p=0.2,
    ),
    # Color and contrast adjustments
    A.CLAHE(clip_limit=4.0, tile_grid_size=(8, 8), p=0.5),
    A.RandomBrightnessContrast(brightness_limit=0.3, contrast_limit=0.3, p=0.5),
    A.HueSaturationValue(hue_shift_limit=20, sat_shift_limit=30, val_shift_limit=20, p=0.5),
    # Simulate occlusions
    A.CoarseDropout(num_holes_range=(1, 8), hole_height_range=(8, 32), hole_width_range=(8, 32), fill=0, p=0.2),
]

# Train with custom transforms
results = model.train(
    data="coco8.yaml",
    epochs=100,
    imgsz=640,
    augmentations=custom_transforms,
)

Considerações importantes#

Ao usar transformações personalizadas do Albumentations, tenha estes pontos em mente:

  • Apenas API Python: Transformações personalizadas só podem ser passadas através da API Python, não via CLI ou arquivos de configuração YAML.
  • Substitui padrões: Suas transformações personalizadas substituirão completamente as transformações padrão do Albumentations. Outros aumentos do YOLO permanecem ativos.
  • Manuseio de caixas delimitadoras: A Ultralytics lida automaticamente com ajustes de caixas delimitadoras para a maioria das transformações, mas transformações espaciais complexas podem exigir testes adicionais.
  • Desempenho: Algumas transformações são computacionalmente caras. Monitore a velocidade de treinamento e ajuste conforme necessário.
  • Compatibilidade de tarefas: Transformações personalizadas do Albumentations funcionam com tarefas de detecção e segmentação, mas não com classificação (que usa um pipeline de aumento diferente).

Casos de uso para transformações personalizadas#

Diferentes aplicações se beneficiam de diferentes estratégias de aumento:

  • Imagens médicas: Use deformações elásticas, distorções de grade e padrões de ruído especializados
  • Imagens aéreas/de satélite: Aplique transformações que simulam diferentes altitudes, condições climáticas e ângulos de iluminação
  • Cenários de baixa luminosidade: Enfatize a adição de ruído e ajustes de brilho para treinar modelos robustos para iluminação desafiadora
  • Inspeção industrial: Adicione variações de textura e defeitos simulados para aplicações de controle de qualidade

Para uma lista completa das transformações disponíveis e dos respetivos parâmetros, visita a documentação do Albumentations.

Para exemplos mais detalhados e melhores práticas sobre a utilização de transformações personalizadas do Albumentations com o YOLO26, consulta o guia de aumento de dados do YOLO.

Continue aprendendo sobre o Albumentations#

Se você estiver interessado em aprender mais sobre o Albumentations, confira os seguintes recursos para obter instruções e exemplos mais detalhados:

Principais conclusões#

Neste guia, exploramos os principais aspectos do Albumentations, uma ótima biblioteca Python para aumento de imagens. Discutimos sua ampla gama de transformações, desempenho otimizado e como você pode usá-lo em seu próximo projeto YOLO26.

Além disso, se quiseres saber mais sobre outras integrações do Ultralytics YOLO26, visita a nossa página do guia de integração. Vais encontrar recursos valiosos e conhecimentos lá.

FAQ#

  • O Albumentations integra-se perfeitamente ao YOLO26 e é aplicado automaticamente durante o treinamento se você tiver o pacote instalado. Veja como começar:

    # Install required packages
    # !pip install albumentations ultralytics
    from ultralytics import YOLO
    
    # Load and train model with automatic augmentations
    model = YOLO("yolo26n.pt")
    model.train(data="coco8.yaml", epochs=100)

    A integração inclui aumentos otimizados como desfoque, desfoque mediano, conversão para escala de cinza e CLAHE com probabilidades cuidadosamente ajustadas para melhorar o desempenho do modelo.

  • O Albumentations se destaca por vários motivos:

    1. Desempenho: Construído sobre OpenCV e NumPy com otimização SIMD para velocidade superior
    2. Flexibilidade: Suporta mais de 70 transformações em aumentos de nível de pixel, nível espacial e nível de mistura
    3. Compatibilidade: Funciona perfeitamente com estruturas populares como PyTorch e TensorFlow
    4. Confiabilidade: Conjunto de testes abrangente evita corrupção silenciosa de dados
    5. Facilidade de uso: API unificada única para todos os tipos de aumento
  • O Albumentations melhora várias tarefas de visão computacional, incluindo:

    • Deteção de Objetos: Melhora a robustez do modelo a variações de iluminação, escala e orientação
    • Segmentação de Instâncias: Aumenta a precisão da previsão de máscaras através de diversas transformações
    • Classificação: Aumenta a generalização do modelo com aumentos de cor e geométricos
    • Estimação de Pose: Ajuda os modelos a adaptarem-se a diferentes pontos de vista e condições de iluminação

    As diversas opções de aumento da biblioteca a tornam valiosa para qualquer tarefa de visão que exija um desempenho robusto do modelo.

Comentários