Ultralytics YOLO27:
Get Started

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

Ao criar modelos de visão computacional, a qualidade e a variedade dos dados de treinamento podem ter um grande impacto no desempenho do modelo. O Albumentations oferece uma maneira rápida, flexível e eficiente de aplicar uma ampla variedade de transformações de imagem que podem melhorar a capacidade do modelo de se adaptar a cenários do mundo real. Ele se integra facilmente ao Ultralytics YOLO26 e pode ajudar você a criar conjuntos de dados robustos para tarefas de detecção de objetos, segmentação e classificação.

Com o Albumentations, você pode enriquecer os dados de treinamento do YOLO26 usando técnicas como transformações geométricas e ajustes de cor. Neste artigo, vamos ver como o Albumentations pode aprimorar seu processo de aumento de dados e tornar seus projetos com YOLO26 ainda mais eficazes. 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, ela é compatível com diversas técnicas de aumento, desde transformações simples, como rotações e inversões, até ajustes mais complexos, como alterações de brilho e contraste. O Albumentations ajuda desenvolvedores a gerar conjuntos de dados ricos e variados para tarefas como classificação de imagens, detecção de objetos e segmentação.

Você pode usar o Albumentations para aplicar aumentos com facilidade a imagens, máscaras de segmentação, caixas delimitadoras e pontos-chave, garantindo que todos os elementos do conjunto de dados sejam transformados em conjunto. Ele funciona perfeitamente com frameworks populares de aprendizado profundo, como PyTorch e TensorFlow, tornando-se acessível para uma ampla variedade de projetos.

Além disso, o Albumentations é uma ótima opção para aumento de dados, quer você esteja lidando com conjuntos de dados pequenos ou com tarefas de visão computacional em grande escala. Ele 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 seus modelos mais eficazes em aplicações do mundo real.

Principais recursos do Albumentations#

O Albumentations oferece muitos recursos úteis que simplificam aumentos complexos de imagens para uma ampla variedade de aplicações de visão computacional. Veja alguns dos principais recursos:

  • Ampla variedade de transformações: o 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 variedade de opções permite criar conjuntos de dados de treinamento altamente diversificados e robustos.

Albumentations augmentation examples

  • Otimização de alto desempenho: desenvolvido com OpenCV e NumPy, o 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. Ele processa conjuntos de dados grandes rapidamente, o que faz dele uma das opções mais rápidas disponíveis para aumento de imagens.

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

Visão geral dos diferentes níveis de aumentos

Por que usar o Albumentations em seus projetos de IA visual?#

Para aumento de imagens, o Albumentations se destaca como uma ferramenta confiável para tarefas de visão computacional. Veja alguns dos principais motivos para considerar seu uso em projetos de IA visual:

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

  • Testes rigorosos de bugs: bugs no pipeline de aumento podem corromper silenciosamente os dados de entrada, muitas vezes sem serem percebidos, mas acabando por prejudicar o desempenho do modelo. O Albumentations aborda esse problema com uma suíte de testes abrangente que ajuda a detectar bugs no início do desenvolvimento.

  • Extensibilidade: o Albumentations permite adicionar novos aumentos com facilidade e usá-los em pipelines de visão computacional por meio de uma interface única, junto com as transformações integradas.

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

Agora que vimos o que é o Albumentations e o que ele pode fazer, vamos ver como usá-lo para aumentar seus dados no treinamento de modelos YOLO26. A configuração é simples, pois ele se integra diretamente ao modo de treinamento da Ultralytics e é aplicado automaticamente quando o pacote Albumentations está instalado.

Instalação#

Para usar o Albumentations com YOLO26, comece verificando se os pacotes necessários estão instalados. Se o Albumentations não estiver instalado, os aumentos não serão aplicados durante o treinamento. Depois de configurar tudo, você poderá criar um conjunto de dados aumentado para treinamento, com a integração do Albumentations aprimorando seu modelo automaticamente.

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

Para obter instruções detalhadas e boas práticas relacionadas ao processo de instalação, consulte nosso guia de instalação da Ultralytics. Se tiver dificuldades ao instalar os pacotes necessários para YOLO26, consulte nosso guia de problemas comuns para ver soluções e dicas.

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

Uso#

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

Uso
from ultralytics import YOLO

# Carregar um modelo pré-treinado
model = YOLO("yolo26n.pt")

# Treine o modelo com os aumentos padrão
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Agora, vamos examinar mais de perto os aumentos específicos aplicados durante o treinamento.

Desfoque#

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

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

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

  • p: a probabilidade de aplicar o desfoque. Na integração, p=0.01, ou seja, há 1% de chance de aplicar esse desfoque a cada imagem. A probabilidade baixa permite que o efeito apareça ocasionalmente, introduzindo um pouco de variação para ajudar o modelo a generalizar sem desfocar demais 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 sem perder as bordas. Diferentemente dos métodos de desfoque típicos, MedianBlur usa um filtro mediano, especialmente eficaz para remover o ruído sal e pimenta e manter as bordas nítidas.

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

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

  • p: define a probabilidade de aplicar o desfoque mediano. Aqui, p=0.01, então há 1% de chance de aplicar a transformação a cada imagem. Essa probabilidade baixa 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 dessa ampliação aplicada a uma imagem.

Albumentations MedianBlur augmentation

Escala de cinza#

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

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

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

  • method: define o método de conversão para escala de cinza. O método padrão, "weighted_average", aplica uma fórmula (0.299R + 0.587G + 0.114B) que se aproxima da percepção humana e produz um efeito natural de escala de cinza. Outras opções, como "from_lab", "desaturation", "average", "max" e "pca", oferecem maneiras alternativas de criar imagens em escala de cinza conforme diferentes necessidades de velocidade, destaque do brilho ou preservação de detalhes.

  • p: controla a frequência de aplicação da transformação para escala de cinza. Com p=0.01, há 1% de chance de converter cada imagem para escala de cinza, permitindo misturar imagens coloridas e em escala de cinza para ajudar o modelo a generalizar melhor.

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

Albumentations grayscale conversion

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

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

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

  • clip_limit: controla o intervalo de aprimoramento do contraste. Com o intervalo padrão de (1, 4), determina o contraste máximo permitido em cada bloco. Valores mais altos aumentam o contraste, mas também podem introduzir ruído.

  • tile_grid_size: define o tamanho da grade de blocos, normalmente como (linhas, colunas). O valor padrão é (8, 8), o que significa que a imagem é dividida em uma grade 8x8. Blocos menores permitem ajustes mais localizados, enquanto blocos maiores produzem efeitos mais próximos da equalização global.

  • p: a probabilidade de aplicar CLAHE. Aqui, p=0.01 aplica o efeito de aprimoramento apenas 1% das vezes, garantindo que os ajustes de contraste sejam usados com moderação para introduzir 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 com Albumentations ofereça um conjunto sólido de aumentos, talvez queiras personalizar as transformações para o teu caso de uso específico. Com o Ultralytics YOLO26, podes passar facilmente transformações personalizadas do Albumentations pela API Python usando o parâmetro augmentations. Os exemplos desta secção requerem o 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á-la para a função de treino. Isso substitui as transformações padrão do Albumentations, mantendo ativas todas as outras ampliações do YOLO (como hsv_h, degrees, mosaic etc.).

Segue um exemplo com transformações mais avançadas:

import albumentations as A

from ultralytics import YOLO

# Carregar o modelo
model = YOLO("yolo26n.pt")

# Definir transformações personalizadas com várias técnicas de aumento
custom_transforms = [
    # Variações de desfoque
    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,
    ),
    # Variações de ruído
    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,
    ),
    # Ajustes de cor e contraste
    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),
    # Simular oclusões
    A.CoarseDropout(num_holes_range=(1, 8), hole_height_range=(8, 32), hole_width_range=(8, 32), fill=0, p=0.2),
]

# Treinar com transformações personalizadas
results = model.train(
    data="coco8.yaml",
    epochs=100,
    imgsz=640,
    augmentations=custom_transforms,
)

Considerações importantes#

Ao usar transformações personalizadas do Albumentations, tem estes pontos em conta:

  • Configuração: Cria objetos de transformação personalizados através da API Python. Também podes passar transformações serializadas através do CLI ou de ficheiros de configuração YAML, inclusive ao retomar o treino.
  • Substituem as predefinições: As tuas transformações personalizadas substituirão completamente as transformações padrão do Albumentations. As outras ampliações do YOLO continuam ativas.
  • Gestão de rótulos: As transformações espaciais, incluindo as aninhadas em A.OneOf ou A.Compose, movem caixas delimitadoras, polígonos, pontos-chave e máscaras de profundidade ou semânticas juntamente com a imagem. A.RandomGridShuffle não consegue preservar a topologia de polígonos ou pontos-chave e gera um erro com amostras de segmentação, pose e OBB.
  • Desempenho: Algumas transformações têm um custo computacional elevado. Monitoriza a velocidade do treino e ajusta conforme necessário.
  • Compatibilidade com tarefas: As transformações personalizadas do Albumentations funcionam com deteção, segmentação, segmentação semântica, profundidade, pose e treino de OBB, mas não com classificação (que usa um pipeline de aumento diferente).

Casos de uso de transformações personalizadas#

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

  • Imagiologia médica: Usa deformações elásticas, distorções de grelha e padrões de ruído especializados
  • Imagens aéreas/de satélite: Aplica transformações que simulam 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 em condições de iluminação difíceis
  • Inspeção industrial: Adiciona variações de textura e defeitos simulados para aplicações de controlo de qualidade

Para veres a lista completa de transformações disponíveis e os respetivos parâmetros, consulta a documentação do Albumentations.

Para exemplos mais detalhados e práticas recomendadas sobre como usar transformações personalizadas do Albumentations com o YOLO26, consulta o guia de aumento de dados do YOLO.

Continua a aprender sobre o Albumentations#

Se quiseres saber mais sobre o Albumentations, consulta os seguintes recursos para obteres instruções e exemplos mais aprofundados:

Principais conclusões#

Neste guia, explorámos os principais aspetos do Albumentations, uma excelente biblioteca Python para aumento de imagens. Abordámos a sua vasta gama de transformações, o desempenho otimizado e como a podes usar no teu próximo projeto com 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. Aí encontrarás recursos e informações valiosos.

Perguntas frequentes#

  • O Albumentations integra-se perfeitamente com o YOLO26 e é aplicado automaticamente durante o treino se tiveres o pacote instalado. Eis como começar:

    # Instalar os pacotes necessários
    # !pip install albumentations ultralytics
    from ultralytics import YOLO
    
    # Carregar e treinar o modelo com aumentos automáticos
    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.

  • O Albumentations destaca-se por vários motivos:

    1. Desempenho: Baseia-se no OpenCV e no NumPy e usa otimização SIMD para oferecer uma velocidade superior
    2. Flexibilidade: Suporta mais de 70 transformações de aumento ao nível dos píxeis, espacial e de mistura
    3. Compatibilidade: Funciona perfeitamente com frameworks populares, como o PyTorch e o TensorFlow
    4. Fiabilidade: Um conjunto abrangente de testes evita a corrupção silenciosa de dados
    5. Facilidade de utilização: Uma única API unificada para todos os tipos de aumento
  • O Albumentations melhora várias tarefas de visão computacional, incluindo:

    As diversas opções de aumento da biblioteca tornam-na valiosa para tarefas de visão que exigem um desempenho robusto do modelo. No Ultralytics YOLO26, o treino de classificação usa o seu próprio pipeline de aumento baseado no torchvision e não aplica transformações do Albumentations.

Comentários