Melhore o seu conjunto de dados para treinar YOLO11 utilizando albumentações
Quando está a construir modelos de visão por computador, a qualidade e a variedade dos seus dados de treino podem desempenhar um papel importante no desempenho do seu modelo. O Albumentations oferece uma forma rápida, flexível e eficiente de aplicar uma vasta gama de transformações de imagem que podem melhorar a capacidade do seu modelo para se adaptar a cenários do mundo real. Integra-se facilmente com o Ultralytics YOLO11 e pode ajudá-lo a criar conjuntos de dados robustos para tarefas de deteção, segmentação e classificação de objectos.
Ao utilizar Albumentations, pode aumentar os seus dados de formação YOLO11 com técnicas como transformações geométricas e ajustes de cor. Neste artigo, veremos como a Albumentations pode melhorar o seu processo de aumento de dados e tornar os seus projectosYOLO11 ainda mais impactantes. Vamos começar!
Albumentações 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 na visão computacional. Criado com desempenho e flexibilidade em mente, ele suporta muitas técnicas de aumento diversas, variando de transformações simples, como rotações e flips, a 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 a classificação de imagens, a deteção de objectos e a segmentação.
Pode utilizar o Albumentations para aplicar facilmente aumentos a imagens, máscaras de segmentação, caixas delimitadoras e pontos-chave, e certificar-se de que todos os elementos do seu conjunto de dados são transformados em conjunto. Ele funciona perfeitamente com estruturas populares de aprendizado profundo, como PyTorch e TensorFlowtornando-o acessível para uma vasta gama de projectos.
Além disso, o Albumentations é uma óptima opção para aumentar a capacidade de processamento, quer se trate de pequenos conjuntos de dados ou de tarefas de visão computacional em grande escala. 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 os seus modelos mais eficazes em aplicações do mundo real.
Principais caraterísticas das Albumentações
O Albumentations oferece muitas funcionalidades úteis que simplificam os aumentos de imagem complexos para uma vasta gama de aplicações de visão por computador. Aqui estão algumas das principais caraterísticas:
- Ampla 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). A existência de múltiplas opções permite a criação de conjuntos de dados de treino altamente diversificados e robustos.
-
Otimização de alto desempenho: Construído sobre OpenCV e NumPy, o Albumentations utiliza 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-o uma das opções mais rápidas disponíveis para o aumento de imagens.
-
Três níveis de aumento: O Albumentations suporta três níveis de ampliação: transformações ao nível do pixel, transformações ao nível do espaço e transformações ao nível da mistura. As transformações ao nível do pixel apenas afectam as imagens de entrada sem alterar máscaras, caixas delimitadoras ou pontos-chave. Entretanto, tanto a imagem como os seus elementos, como máscaras e caixas delimitadoras, são transformados utilizando transformações a nível espacial. Além disso, as transformações ao nível da mistura são uma forma única de aumentar os dados, uma vez que combinam várias imagens numa só.
- Resultados da avaliação comparativa: Quando se trata de benchmarking, o Albumentations supera consistentemente outras bibliotecas, especialmente com grandes conjuntos de dados.
Porque deve utilizar a Albumentations para os seus projectos de IA de visão?
No que diz respeito ao aumento de imagem, o Albumentations destaca-se como uma ferramenta fiável para tarefas de visão computacional. Eis algumas das principais razões pelas quais deve considerar a sua utilização nos seus projectos de IA de visão:
-
API fácil de usar: 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 mais eficiente.
-
Teste rigoroso de erros: Os bugs no pipeline de aumento podem corromper silenciosamente os dados de entrada, muitas vezes passando despercebidos, mas, em última análise, degradando o desempenho do modelo. O Albumentations aborda este problema com um conjunto de testes completo que ajuda a detetar erros no início do desenvolvimento.
-
Extensibilidade: As albumentações podem ser utilizadas para adicionar facilmente novos aumentos e utilizá-los em pipelines de visão por computador através de uma única interface, juntamente com transformações incorporadas.
Como utilizar albumentações para aumentar os dados da formação YOLO11
Agora que já falámos sobre o que é o Albumentations e o que pode fazer, vamos ver como utilizá-lo para aumentar os seus dados para o treino do modelo YOLO11 . É fácil de configurar porque se integra diretamente no modo de formaçãoUltralytics ' e aplica-se automaticamente se tiver o pacote Albumentations instalado.
Instalação
Para utilizar o Albumentations com YOLO11, comece por se certificar de que tem os pacotes necessários instalados. Se o Albumentations não estiver instalado, as ampliações não serão aplicadas durante o treinamento. Uma vez configurado, estará pronto para criar um conjunto de dados aumentado para treino, com o Albumentations integrado para melhorar o seu modelo automaticamente.
Para obter instruções detalhadas e melhores práticas relacionadas com o processo de instalação, consulte o nosso guia de instalaçãoUltralytics . Ao instalar os pacotes necessários para YOLO11, se encontrar alguma dificuldade, consulte o nosso guia de Problemas comuns para obter soluções e dicas.
Utilização
Depois de instalar os pacotes necessários, está pronto para começar a utilizar o Albumentations com YOLO11. Quando treina YOLO11, um conjunto de aumentos é automaticamente aplicado através da sua integração com Albumentations, facilitando a melhoria do desempenho do seu modelo.
Utilização
De seguida, vamos olhar mais de perto para os aumentos específicos que são aplicados durante o treino.
Borrão
A transformação Desfocagem em Albumentações aplica um efeito de desfocagem simples à imagem, calculando a média dos valores de pixel numa pequena área quadrada, ou kernel. Isso é feito usando a função cv2.blur
que ajuda a reduzir o ruído na imagem, embora também reduza ligeiramente os detalhes da imagem.
Seguem-se os parâmetros e valores utilizados nesta integração:
-
blur_limit: Isto controla o intervalo de tamanho do efeito de desfocagem. O intervalo predefinido é (3, 7), o que significa que o tamanho do núcleo para o efeito de desfocagem pode variar entre 3 e 7 pixéis, sendo apenas permitidos números ímpares para manter a desfocagem centrada.
-
p: A probabilidade de aplicar a desfocagem. Na integração, p=0,01, pelo que existe uma probabilidade de 1% de que esta desfocagem seja aplicada a cada imagem. A baixa probabilidade permite efeitos de desfocagem ocasionais, introduzindo um pouco de variação para ajudar o modelo a generalizar sem desfocar demasiado as imagens.
Desfoque mediano
A transformação MedianBlur em Albumentations aplica um efeito de desfocagem mediana à imagem, o que é particularmente útil para reduzir o ruído e preservar as margens. Ao contrário dos métodos de desfocagem típicos, o MedianBlur utiliza um filtro mediano, que é especialmente eficaz na remoção de ruído salgado e pimentão, mantendo a nitidez nas extremidades.
Seguem-se os parâmetros e valores utilizados nesta integração:
-
blur_limit: Este parâmetro controla o tamanho máximo do núcleo de desfocagem. Nesta integração, a predefinição é um intervalo de (3, 7), o que significa que o tamanho do núcleo para a desfocagem é escolhido aleatoriamente entre 3 e 7 pixéis, sendo apenas permitidos valores ímpares para garantir um alinhamento correto.
-
p: Define a probabilidade de aplicar a desfocagem mediana. Aqui, p=0,01, pelo que a transformação tem 1% de hipóteses de ser aplicada a cada imagem. Esta baixa probabilidade assegura que a desfocagem mediana é usada com moderação, ajudando o modelo a generalizar ao ver ocasionalmente imagens com ruído reduzido e margens preservadas.
A imagem abaixo mostra um exemplo deste aumento aplicado a uma imagem.
Escala de cinzentos
A transformação ToGray em Albumentations converte uma imagem em tons de cinzento, 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 utilizados diferentes métodos para ajustar a forma como o brilho da escala de cinzentos é calculado, desde o simples cálculo da média até técnicas mais avançadas para uma perceção realista do contraste e do brilho.
Seguem-se os parâmetros e valores utilizados 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 de escala de cinzentos único será replicado para criar uma imagem de escala de cinzentos com vários canais. Por predefinição, está definido para 3, dando uma imagem em tons de cinzento com três canais idênticos.
-
method: Define o método de conversão da 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 de aspeto natural. Outras opções, como "from_lab", "desaturation", "average", "max" e "pca", oferecem formas 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 da escala de cinzentos é aplicada. Com p=0,01, existe uma probabilidade de 1% de converter cada imagem para escala de cinzentos, tornando possível uma mistura de imagens a cores e em escala de cinzentos para ajudar o modelo a generalizar melhor.
A imagem abaixo mostra um exemplo da aplicação desta transformação da escala de cinzentos.
Equalização de histograma adaptativa limitada ao contraste (CLAHE)
A transformação CLAHE no Albumentations aplica a Equalização de histograma adaptativa limitada ao contraste (CLAHE), uma técnica que melhora o contraste da imagem ao equalizar o histograma em regiões localizadas (mosaicos) em vez de em toda a imagem. A 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 contraste inicialmente baixo.
Seguem-se os parâmetros e valores utilizados nesta integração:
-
clip_limit: Controla o intervalo de melhoria do contraste. Definido para um intervalo predefinido de (1, 4), determina o contraste máximo permitido em cada mosaico. Os valores mais elevados são utilizados para obter mais contraste, mas podem também introduzir ruído.
-
tile_grid_size: Define o tamanho da grelha de azulejos, tipicamente como (linhas, colunas). O valor predefinido é (8, 8), o que significa que a imagem é dividida numa grelha 8x8. Tamanhos menores de ladrilhos fornecem ajustes mais localizados, enquanto os maiores criam efeitos mais próximos da equalização global.
-
p: A probabilidade de aplicar CLAHE. Aqui, p=0,01 introduz o efeito de melhoramento apenas 1% do tempo, assegurando que os ajustes de contraste são aplicados com moderação para variações ocasionais nas imagens de treino.
A imagem abaixo mostra um exemplo da transformação CLAHE aplicada.
Continuar a aprender sobre albumentações
Se estiver interessado em saber mais sobre Albumentações, consulte os seguintes recursos para obter instruções e exemplos mais pormenorizados:
-
Documentação sobre albumentações: A documentação oficial fornece uma gama completa de transformações suportadas e técnicas de utilização avançadas.
-
Ultralytics Guia de albumentações: Veja mais de perto os pormenores da função que facilitam esta integração.
-
Albumentações Repositório GitHub: O repositório inclui exemplos, referências e discussões para o ajudar a começar a personalizar as ampliações.
Principais conclusões
Neste guia, exploramos os principais aspectos do Albumentations, uma excelente biblioteca Python para aumento de imagens. Discutimos a sua vasta gama de transformações, desempenho optimizado e como pode utilizá-la no seu próximo projeto YOLO11 .
Além disso, se pretender saber mais sobre outras integrações de Ultralytics YOLO11 , visite a nossa página de guia de integração. Encontrará aí recursos e informações valiosas.
FAQ
Como é que posso integrar o Albumentations com YOLO11 para melhorar o aumento de dados?
O Albumentations integra-se perfeitamente em YOLO11 e aplica-se automaticamente durante a formação se tiver o pacote 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("yolo11n.pt")
model.train(data="coco8.yaml", epochs=100)
A integração inclui aumentos optimizados como a desfocagem, a desfocagem mediana, a conversão em escala de cinzentos e o CLAHE com probabilidades cuidadosamente ajustadas para melhorar o desempenho do modelo.
Quais são as principais vantagens da utilização do Albumentations em relação a outras bibliotecas de aumentos?
Albumentations distingue-se por várias razões:
- Desempenho: Construído em OpenCV e NumPy com otimização SIMD para uma velocidade superior
- Flexibilidade: Suporta mais de 70 transformações em aumentos ao nível do pixel, ao nível espacial e ao nível da mistura
- Compatibilidade: Funciona sem problemas com frameworks populares como PyTorch e TensorFlow
- Fiabilidade: Um vasto conjunto de testes evita a corrupção silenciosa de dados
- Facilidade de utilização: API única e unificada para todos os tipos de aumento
Que tipos de tarefas de visão computacional podem beneficiar do aumento de Albumentations?
O Albumentations melhora várias tarefas de visão por computador, incluindo:
- Deteção de objectos: Melhora a robustez do modelo às variações de iluminação, escala e orientação
- Segmentação de instâncias: Melhora a precisão da previsão da máscara através 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 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.