Melhore seu conjunto de dados para treinar o YOLO26 usando o Albumentations
Ao criar modelos de visão computacional, a qualidade e a variedade dos seus dados de treinamento podem desempenhar um grande papel no desempenho do seu modelo. O Albumentations oferece uma maneira rápida, flexível e eficiente de aplicar uma ampla gama de transformações de imagem que podem melhorar a capacidade do seu modelo de se adaptar a cenários do mundo real. Ele se integra facilmente ao Ultralytics YOLO26 e pode te ajudar a criar conjuntos de dados robustos para tarefas de detecção de objetos, segmentação e classificação.
Ao usar o Albumentations, você pode impulsionar seus dados de treinamento do YOLO26 com técnicas como transformações geométricas e ajustes de cor. Neste artigo, veremos como o Albumentations pode melhorar seu processo de aumento de dados e tornar seus projetos YOLO26 ainda mais impactantes. Vamos começar!
Albumentations para aumento de imagem
Albumentations é uma biblioteca de aumento de imagem de código aberto criada em junho de 2018. Ela foi projetada para simplificar e acelerar o processo de aumento de imagem em visão computacional. Criada com desempenho e flexibilidade em mente, ela suporta muitas técnicas de aumento diversas, variando de transformações simples como rotações e espelhamentos a ajustes mais complexos como mudanças de brilho e contraste. O Albumentations ajuda desenvolvedores a gerar conjuntos de dados ricos e variados para tarefas como classificação de imagem, detecção de objetos e segmentação.
Você pode usar o Albumentations para aplicar facilmente aumentos a imagens, máscaras de segmentação, caixas delimitadoras e pontos-chave, e garantir que todos os elementos do seu conjunto de dados sejam transformados juntos. Ele funciona perfeitamente com estruturas populares de aprendizado profundo como PyTorch e TensorFlow, tornando-o acessível para uma ampla gama de projetos.
Além disso, o Albumentations é uma ótima opção para aumento, esteja você lidando com pequenos conjuntos de dados ou tarefas de visão computacional em larga escala. Ele garante um processamento rápido e eficiente, reduzindo o tempo gasto na preparação de 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 imagem para uma ampla gama de aplicações de visão computacional. Aqui estão alguns dos principais recursos:
- Ampla gama de transformações: O Albumentations oferece mais de 70 transformações diferentes, incluindo mudanças geométricas (ex: rotação, espelhamento), ajustes de cor (ex: brilho, contraste) e adição de ruído (ex: ruído Gaussiano). Ter várias opções permite a criação de conjuntos de dados de treinamento altamente diversos e robustos.
-
Otimização de alto desempenho: Construído sobre OpenCV e NumPy, o Albumentations usa técnicas avançadas de otimização como SIMD (Single Instruction, Multiple Data), que processa vários pontos de dados simultaneamente para acelerar o processamento. Ele lida com grandes conjuntos de dados rapidamente, tornando-o uma das opções mais rápidas disponíveis para aumento de imagem.
-
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 mixagem. 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 mixagem são uma maneira única de aumentar dados, pois combinam várias imagens em uma só.

- Resultados de benchmarking: Quando se trata de benchmarking, 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?
Com relação ao aumento de imagem, 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 usar: O Albumentations fornece uma API única e direta para aplicar uma ampla gama de aumentos a imagens, máscaras, caixas delimitadoras e pontos-chave. Ele foi projetado para se adaptar facilmente a diferentes conjuntos de dados, tornando a preparação de dados mais simples e eficiente.
-
Testes rigorosos de 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 abordamos o que é o Albumentations e o que ele pode fazer, vamos ver como usá-lo para aumentar seus dados para o treinamento do modelo YOLO26. É fácil de configurar porque ele se integra diretamente ao modo de treinamento da Ultralytics e é aplicado automaticamente se você tiver 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.
# Install the required packages
pip install albumentations ultralyticsPara instruções detalhadas e práticas recomendadas relacionadas ao processo de instalação, consulte nosso guia de instalação da Ultralytics. Ao instalar os pacotes necessários para o YOLO26, se você encontrar alguma dificuldade, consulte nosso guia de problemas comuns para obter soluções e dicas.
Utilização
Após instalar os pacotes necessários, você está pronto para começar a usar o Albumentations com o YOLO26. Quando você treina o YOLO26, um conjunto de aumentos é aplicado automaticamente através de sua integração com o Albumentations, tornando fácil aprimorar o desempenho do seu modelo.
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 examinar mais de perto os aumentos específicos que são aplicados durante o treinamento.
Desfoque (Blur)
A transformação Blur no Albumentations aplica um efeito de desfoque simples à imagem, calculando a média dos valores de pixel dentro de 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 levemente os detalhes da imagem.
Aqui estão os parâmetros e valores usados nesta integração:
-
blur_limit: Isso controla o intervalo de tamanho do efeito de desfoque. O intervalo padrão é (3, 7), o que significa que o tamanho do kernel para o desfoque pode variar entre 3 e 7 pixels, sendo permitidos apenas números ímpares 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.
Median Blur
A transformação MedianBlur no Albumentations aplica um efeito de desfoque mediano à imagem, o que é particularmente útil para reduzir o ruído enquanto preserva as bordas. Ao contrário 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, mantendo a nitidez nas 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 é um intervalo 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, então 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 desse aumento aplicado a uma imagem.
Grayscale
A transformação ToGray no Albumentations converte uma imagem para tons 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 tons de cinza é calculado, variando de simples cálculo de 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 esse valor for maior que 1, o canal único em tons de cinza será replicado para criar uma imagem multicanal em tons de cinza. Por padrão, é definido como 3, resultando em uma imagem em tons de cinza com três canais idênticos.
-
method: Define o método de conversão para tons de cinza. O método padrão, "weighted_average", aplica uma fórmula (0.299R + 0.587G + 0.114B) que se alinha estreitamente com a percepção humana, proporcionando um efeito de tons de cinza de aparência natural. Outras opções, como "from_lab", "desaturation", "average", "max" e "pca", oferecem maneiras alternativas de criar imagens em tons 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 para tons de cinza é aplicada. Com p=0.01, há 1% de chance de converter cada imagem para tons de cinza, possibilitando uma mistura de imagens coloridas e em tons de cinza para ajudar o modelo a generalizar melhor.
A imagem abaixo mostra um exemplo dessa transformação para tons de cinza aplicada.
Contrast Limited Adaptive Histogram Equalization (CLAHE)
A transformação CLAHE no Albumentations aplica a Equalização de Histograma Adaptativa Limitada por Contraste (CLAHE), uma técnica que melhora o contraste da imagem equalizando o histograma em regiões localizadas (ladrilhos) em vez de toda a imagem. O CLAHE produz um efeito de aprimoramento 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 o intervalo de aprimoramento de contraste. Definido para um intervalo 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 8x8. Tamanhos de ladrilhos 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.
Usando transformações personalizadas do Albumentations
Embora a integração padrão do Albumentations forneça um conjunto sólido de aumentos, você pode querer personalizar as transformações para seu caso de uso específico. Com o Ultralytics YOLO26, você pode passar facilmente transformações personalizadas do Albumentations via API Python usando o parâmetro augmentations.
Como definir transformações personalizadas
Você pode definir sua própria lista de transformações do Albumentations e passá-las para a função de treinamento. Isso substitui as transformações padrão do Albumentations, mantendo todos os outros aumentos do YOLO (como hsv_h, degrees, mosaic, etc.) ativos.
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(var_limit=(10.0, 50.0), 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(
max_holes=8, max_height=32, max_width=32, min_holes=1, min_height=8, min_width=8, fill_value=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 mente estes pontos:
- 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.
- Manipulação de caixa delimitadora: A Ultralytics lida automaticamente com ajustes de caixa delimitadora 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 adequadamente.
- 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 simulem 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 de transformações disponíveis e seus parâmetros, visite a documentação do Albumentations.
Para exemplos mais detalhados e práticas recomendadas sobre o uso de transformações personalizadas do Albumentations com o YOLO26, veja 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 instruções e exemplos mais aprofundados:
-
Documentação do Albumentations: A documentação oficial fornece uma gama completa de transformações suportadas e técnicas de uso avançadas.
-
Guia do Albumentations da Ultralytics: Obtenha um olhar mais atento aos detalhes da função que facilita essa integração.
-
Repositório GitHub do Albumentations: O repositório inclui exemplos, benchmarks e discussões para te ajudar a começar a personalizar aumentos.
Principais Conclusões
Neste guia, exploramos os aspectos principais do Albumentations, uma ótima biblioteca Python para aumento de imagem. 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 você quiser saber mais sobre outras integrações do Ultralytics YOLO26, visite nossa página de guia de integração. Você encontrará recursos e insights valiosos lá.
FAQ
Como posso integrar o Albumentations com o YOLO26 para um melhor aumento de dados?
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 em tons de cinza e CLAHE com probabilidades cuidadosamente ajustadas para melhorar o desempenho do modelo.
Quais são os principais benefícios de usar o Albumentations em vez de outras bibliotecas de aumento?
O Albumentations se destaca por vários motivos:
- Desempenho: Construído sobre OpenCV e NumPy com otimização SIMD para velocidade superior
- Flexibilidade: Suporta mais de 70 transformações em aumentos de nível de pixel, nível espacial e nível de mixagem
- Compatibilidade: Funciona perfeitamente com estruturas populares como PyTorch e TensorFlow
- Confiabilidade: Conjunto de testes extenso evita corrupção silenciosa de dados
- Facilidade de uso: API unificada única para todos os tipos de aumento
Que tipos de tarefas de visão computacional podem se beneficiar do aumento do Albumentations?
O Albumentations aprimora várias tarefas de visão computacional, incluindo:
- Detecção de objetos: Melhora a robustez do modelo a variações de iluminação, escala e orientação
- Segmentação de instâncias: Aprimora a precisão da predição de máscara por meio de diversas transformações
- Classificação: Aumenta a generalização do modelo com aumentos de cor e geométricos
- Estimativa de pose: Ajuda os modelos a se adaptarem 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.