Ultralytics YOLO27:

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

Ao criar modelos de visão computacional, a qualidade e a variedade dos seus dados de treino podem desempenhar um papel importante no desempenho do seu modelo. Albumentations oferece uma forma rápida, flexível e eficiente de aplicar uma ampla variedade de transformações de imagem que podem melhorar a capacidade do seu modelo de se adaptar a cenários do mundo real. A biblioteca integra-se facilmente com Ultralytics YOLO26 e pode ajudar você a criar conjuntos de dados robustos para tarefas de deteção de objetos, segmentação e classificação.

Ao usar Albumentations, você pode melhorar os dados de treino do YOLO26 com técnicas como transformações geométricas e ajustes de cor. Neste artigo, veremos como Albumentations pode melhorar o seu processo de aumento de dados e tornar os seus projetos YOLO26 ainda mais impactantes. Vamos começar!

Albumentations para aumento de imagens#

Albumentations é uma biblioteca de código aberto para aumento de imagens, criada em junho de 2018. Ela foi desenvolvida para simplificar e acelerar o processo de aumento de imagens em visão computacional. Criada com foco em desempenho e flexibilidade, oferece suporte a muitas técnicas de aumento diferentes, desde transformações simples, como rotações e inversões, até ajustes mais complexos, como alterações de brilho e contraste. Albumentations ajuda os desenvolvedores a gerar conjuntos de dados ricos e variados para tarefas como classificação de imagens, deteção de objetos e segmentação.

Podes usar o Albumentations para aplicar facilmente aumentações a imagens, segmentation masks, bounding boxes e keypoints, e certificar-te de que todos os elementos do teu conjunto de dados são transformados em conjunto. Funciona perfeitamente com estruturas de aprendizagem profunda populares como o PyTorch e o TensorFlow, tornando-o acessível para uma vasta gama de projetos.

Além disso, Albumentations é uma excelente opção para aumento, quer você esteja trabalhando com conjuntos de dados pequenos ou com tarefas de visão computacional em grande escala. A biblioteca garante um processamento rápido e eficiente, reduzindo o tempo gasto na preparação dos dados. Ao mesmo tempo, ajuda a melhorar o desempenho do modelo, tornando os seus modelos mais eficazes em aplicações do mundo real.

Principais funcionalidades do Albumentations#

Albumentations oferece muitas funcionalidades úteis que simplificam aumentos complexos de imagens para uma ampla variedade de aplicações de visão computacional. Estas são algumas das principais funcionalidades:

  • Ampla variedade de transformações: Albumentations oferece mais de 70 transformações diferentes, incluindo alterações geométricas (por exemplo, rotação e inversão), ajustes de cor (por exemplo, brilho e contraste) e adição de ruído (por exemplo, ruído gaussiano). A existência de várias opções permite criar conjuntos de dados de treino altamente diversificados e robustos.

Albumentations augmentation examples

  • Otimização de alto desempenho: Desenvolvido sobre OpenCV e NumPy, Albumentations usa técnicas avançadas de otimização, como SIMD (Instrução Única, Múltiplos Dados), que processa vários pontos de dados simultaneamente para acelerar o processamento. A biblioteca processa 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: Albumentations oferece suporte a três níveis de aumento: transformações ao nível dos píxeis, transformações ao nível espacial e transformações ao nível da mistura. As transformações ao nível dos píxeis afetam apenas as imagens de entrada, sem alterar máscaras, caixas delimitadoras ou pontos-chave. Já nas transformações ao nível espacial, tanto a imagem como os seus elementos, como máscaras e caixas delimitadoras, são transformados. Além disso, as transformações ao nível da mistura são uma forma única de aumentar os dados, pois combinam várias imagens numa só.

Visão geral dos diferentes níveis de aumento

  • Resultados de benchmark: Em benchmarks, Albumentations supera consistentemente outras bibliotecas, especialmente com grandes conjuntos de dados.

Por que você deve usar Albumentations nos seus projetos de Vision AI?#

No que diz respeito ao aumento de imagens, Albumentations destaca-se como uma ferramenta fiável para tarefas de visão computacional. Eis alguns dos principais motivos para considerar o seu uso nos seus projetos de Vision AI:

  • API fácil de usar: Albumentations fornece uma API única e simples para aplicar uma ampla variedade de aumentos a imagens, máscaras, caixas delimitadoras e pontos-chave. Ela foi concebida para se adaptar facilmente a diferentes conjuntos de dados, tornando a preparação dos dados mais simples e eficiente.

  • Testes rigorosos de bugs: Bugs no pipeline de aumento podem corromper silenciosamente os dados de entrada, muitas vezes sem serem detetados, mas acabando por degradar o desempenho do modelo. Albumentations resolve este problema com um conjunto abrangente de testes que ajuda a detetar bugs logo no início do desenvolvimento.

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

Como usar Albumentations para aumentar dados no treino do YOLO26#

Agora que vimos o que é Albumentations e o que pode fazer, vamos analisar como usá-lo para aumentar os seus dados no treino de modelos YOLO26. A configuração é simples, pois a biblioteca integra-se diretamente no modo de treino do Ultralytics e é aplicada automaticamente se você tiver o pacote Albumentations instalado.

Instalação#

Para usar Albumentations com YOLO26, comece por garantir que tem os pacotes necessários instalados. Se Albumentations não estiver instalado, os aumentos não serão aplicados durante o treino. Depois da configuração, você estará pronto para criar um conjunto de dados aumentado para treino, com Albumentations integrado para melhorar automaticamente o seu modelo.

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

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

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

Utilização#

Depois de instalar os pacotes necessários, você estará pronto para começar a usar Albumentations com YOLO26. Ao treinar YOLO26, um conjunto de aumentos é aplicado automaticamente através da integração com Albumentations, facilitando a melhoria do desempenho do seu modelo.

Utilização
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 detalhadamente os aumentos específicos aplicados durante o treino.

Desfoque#

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

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

  • blur_limit: Controla o intervalo de tamanhos do efeito de desfoque. O intervalo predefinido é (3, 7), o que significa que o tamanho do kernel do desfoque pode variar entre 3 e 7 píxeis, sendo permitidos apenas números ímpares para manter o desfoque centrado.

  • p: A probabilidade de aplicar o desfoque. Na integração, p=0.01, portanto existe uma probabilidade de 1% de este desfoque ser aplicado a cada imagem. A baixa probabilidade permite efeitos de desfoque ocasionais, introduzindo alguma variação para ajudar o modelo a generalizar sem desfocar demasiado as imagens.

Albumentations Blur augmentation result

Desfoque mediano#

A transformação MedianBlur do Albumentations aplica um efeito de desfoque mediano à imagem, particularmente útil para reduzir o ruído preservando as bordas. Ao contrário dos métodos de desfoque comuns, MedianBlur usa um filtro mediano, especialmente eficaz na remoção de ruído sal e pimenta, mantendo a nitidez junto às bordas.

Eis 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 valor predefinido corresponde ao intervalo (3, 7), o que significa que o tamanho do kernel do desfoque é escolhido aleatoriamente entre 3 e 7 píxeis, sendo permitidos apenas valores ímpares para garantir o alinhamento correto.

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

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

Albumentations MedianBlur augmentation

Escala de cinzentos#

A transformação ToGray do Albumentations converte uma imagem para escala de cinzentos, reduzindo-a a um formato de canal único e, opcionalmente, replicando este canal para corresponder a um número especificado de canais de saída. Podem ser usados diferentes métodos para ajustar o cálculo do brilho em escala de cinzentos, desde uma média simples até técnicas mais avançadas para uma perceção realista do contraste e do brilho.

Eis 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 superior a 1, o canal único em escala de cinzentos será replicado para criar uma imagem multicanal em escala de cinzentos. Por predefinição, está definido como 3, produzindo uma imagem em escala de cinzentos com três canais idênticos.

  • method: Define o método de conversão para escala de cinzentos. O método predefinido, "weighted_average", aplica uma fórmula (0.299R + 0.587G + 0.114B) que se aproxima da perceção humana, proporcionando um efeito de escala de cinzentos natural. Outras opções, como "from_lab", "desaturation", "average", "max" e "pca", oferecem formas alternativas de criar imagens em escala de cinzentos, consoante diferentes necessidades de velocidade, ênfase no brilho ou preservação de detalhes.

  • p: Controla a frequência de aplicação da transformação para escala de cinzentos. Com p=0.01, existe uma probabilidade de 1% de converter cada imagem para escala de cinzentos, permitindo combinar imagens a cores e em escala de cinzentos para ajudar o modelo a generalizar melhor.

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

Albumentations grayscale conversion

Equalização Adaptativa de Histograma com Contraste Limitado (CLAHE)#

A transformação CLAHE do Albumentations aplica a Equalização Adaptativa de Histograma com Contraste Limitado (CLAHE), uma técnica que melhora o contraste da imagem equalizando o histograma em regiões localizadas (blocos), em vez de fazê-lo em toda a imagem. CLAHE produz um efeito de melhoria equilibrado, evitando o contraste excessivamente amplificado que pode resultar da equalização de histograma padrão, especialmente em áreas com baixo contraste inicial.

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

  • clip_limit: Controla o intervalo de melhoria do contraste. Definido por predefinição como o intervalo (1, 4), determina o contraste máximo permitido em cada bloco. Valores mais altos são usados para obter mais contraste, mas também podem introduzir ruído.

  • tile_grid_size: Define o tamanho da grelha de blocos, normalmente como (linhas, colunas). O valor predefinido é (8, 8), o que significa que a imagem é dividida numa grelha de 8x8. Tamanhos de bloco menores proporcionam ajustes mais localizados, enquanto tamanhos maiores criam efeitos mais próximos da equalização global.

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

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

Albumentations CLAHE contrast enhancement

Usar transformações personalizadas do Albumentations#

Embora a integração predefinida do Albumentations forneça um conjunto sólido de aumentos, você pode querer personalizar as transformações para o seu caso de uso específico. Com Ultralytics YOLO26, você pode passar facilmente transformações personalizadas do Albumentations através da API Python usando o parâmetro augmentations. Os exemplos desta secção requerem Albumentations 1.4.22 ou mais recente.

Como definir transformações personalizadas#

Você pode definir a sua própria lista de transformações do Albumentations e passá-la à função de treino. Isto substitui as transformações predefinidas do Albumentations, mantendo ativas todas as outras transformações de aumento do YOLO (como hsv_h, degrees, mosaic, etc.).

Eis 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 em conta estes pontos:

  • Configuração: Cria objetos de transformação personalizados através da API do Python. Transformações serializadas também podem ser passadas através de arquivos de configuração da CLI ou YAML, inclusive ao retomar o treinamento.
  • Substitui as predefinições: As suas transformações personalizadas substituem completamente as transformações predefinidas do Albumentations. As outras transformações de aumento do YOLO continuam ativas.
  • Manipulação de Rótulos: Transformações espaciais, incluindo aquelas aninhadas em A.OneOf ou A.Compose, movem caixas delimitadoras, polígonos, pontos-chave e máscaras de profundidade ou semânticas junto com a imagem. A.RandomGridShuffle não consegue preservar a topologia de polígonos ou pontos-chave e gera um erro em amostras de segmentação, pose e OBB.
  • Desempenho: Algumas transformações exigem muitos recursos computacionais. Monitorize a velocidade do treino e ajuste-a conforme necessário.
  • Compatibilidade de Tarefas: Transformações personalizadas do Albumentations funcionam com treinamento de detecção, segmentação, segmentação semântica, profundidade, pose e OBB, mas não com classificação (que usa um pipeline de aumento diferente).

Casos de uso para transformações personalizadas#

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

  • Imagiologia médica: Use deformações elásticas, distorções de grelha e padrões de ruído especializados
  • Imagens aéreas/de satélite: Aplique transformações que simulem diferentes altitudes, condições meteorológicas e ângulos de iluminação
  • Cenários com pouca luz: Dê ênfase à adição de ruído e aos ajustes de brilho para treinar modelos robustos para condições de iluminação difíceis
  • Inspeção industrial: Adicione variações de textura e defeitos simulados para aplicações de controlo de qualidade

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

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

Continue a aprender sobre Albumentations#

Se você quiser saber mais sobre Albumentations, consulte os seguintes recursos para obter instruções e exemplos mais detalhados:

Principais Conclusões#

Neste guia, explorámos os principais aspetos do Albumentations, uma excelente biblioteca Python para aumento de imagens. Abordámos a sua ampla variedade de transformações, o desempenho otimizado e a forma como você pode utilizá-la no seu próximo projeto YOLO26.

Além disso, se você quiser saber mais sobre outras integrações do Ultralytics YOLO26, visite a nossa página do guia de integrações. Encontrará recursos e informações valiosos.

Perguntas frequentes#

  • Albumentations integra-se perfeitamente com YOLO26 e é aplicado automaticamente durante o treino se o pacote estiver instalado. Eis 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 cinzentos e CLAHE, com probabilidades cuidadosamente ajustadas para melhorar o desempenho do modelo.

  • Albumentations destaca-se por vários motivos:

    1. Desempenho: Desenvolvido sobre OpenCV e NumPy, com otimização SIMD para uma velocidade superior
    2. Flexibilidade: Oferece suporte a mais de 70 transformações em aumentos ao nível dos píxeis, espacial e da mistura
    3. Compatibilidade: Funciona perfeitamente com frameworks populares, como PyTorch e TensorFlow
    4. Fiabilidade: Um conjunto abrangente de testes impede a corrupção silenciosa dos dados
    5. Facilidade de uso: Uma API unificada única para todos os tipos de aumento
  • Albumentations melhora várias tarefas de visão computacional, incluindo:

    • Deteção de objetos: Melhora a robustez do modelo perante variações de iluminação, escala e orientação
    • Segmentação de instâncias: Melhora a precisão da previsão das máscaras através de transformações diversificadas
    • Classificação: Aumenta a capacidade de generalização do modelo com aumentos de cor e geométricos
    • Estimativa 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 tornam-na valiosa para qualquer tarefa de visão que exija um desempenho robusto do modelo.

Comentários