Melhora o teu conjunto de dados para treinar o YOLO11 utilizando albumentações
When you are building computer vision models, the quality and variety of your training data can play a big role in how well your model performs. Albumentations offers a fast, flexible, and efficient way to apply a wide range of image transformations that can improve your model's ability to adapt to real-world scenarios. It easily integrates with Ultralytics YOLO11 and can help you create robust datasets for object detection, segmentation, and classification tasks.
By using Albumentations, you can boost your YOLO11 training data with techniques like geometric transformations and color adjustments. In this article, we'll see how Albumentations can improve your data augmentation process and make your YOLO11 projects even more impactful. Let's get started!
Albumentações para aumentar a imagem
Albumentations is an open-source image augmentation library created in June 2018. It is designed to simplify and accelerate the image augmentation process in computer vision. Created with performance and flexibility in mind, it supports many diverse augmentation techniques, ranging from simple transformations like rotations and flips to more complex adjustments like brightness and contrast changes. Albumentations helps developers generate rich, varied datasets for tasks like image classification, object detection, and segmentation.
You can use Albumentations to easily apply augmentations to images, segmentation masks, bounding boxes, and key points, and make sure that all elements of your dataset are transformed together. It works seamlessly with popular deep learning frameworks like PyTorch and TensorFlow, making it accessible for a wide range of projects.
Also, Albumentations is a great option for augmentation whether you're handling small datasets or large-scale computer vision tasks. It ensures fast and efficient processing, cutting down the time spent on data preparation. At the same time, it helps improve model performance, making your models more effective in real-world applications.
Principais caraterísticas das Albumentações
Albumentations offers many useful features that simplify complex image augmentations for a wide range of computer vision applications. Here are some of the key features:
- Wide Range of Transformations: Albumentations offers over 70 different transformations, including geometric changes (e.g., rotation, flipping), color adjustments (e.g., brightness, contrast), and noise addition (e.g., Gaussian noise). Having multiple options enables the creation of highly diverse and robust training datasets.
High Performance Optimization: Built on OpenCV and NumPy, Albumentations uses advanced optimization techniques like SIMD (Single Instruction, Multiple Data), which processes multiple data points simultaneously to speed up processing. It handles large datasets quickly, making it one of the fastest options available for image augmentation.
Three Levels of Augmentation: Albumentations supports three levels of augmentation: pixel-level transformations, spatial-level transformations, and mixing-level transformation. Pixel-level transformations only affect the input images without altering masks, bounding boxes, or key points. Meanwhile, both the image and its elements, like masks and bounding boxes, are transformed using spatial-level transformations. Furthermore, mixing-level transformations are a unique way to augment data as it combines multiple images into one.
- Benchmarking Results: When it comes to benchmarking, Albumentations consistently outperforms other libraries, especially with large datasets.
Porque deves utilizar a Albumentations para os teus 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 deves considerar a sua utilização nos teus projectos de IA de visão:
Easy-to-Use API: Albumentations provides a single, straightforward API for applying a wide range of augmentations to images, masks, bounding boxes, and keypoints. It's designed to adapt easily to different datasets, making data preparation simpler and more efficient.
Rigorous Bug Testing: Bugs in the augmentation pipeline can silently corrupt input data, often going unnoticed but ultimately degrading model performance. Albumentations addresses this with a thorough test suite that helps catch bugs early in development.
Extensibility: Albumentations can be used to easily add new augmentations and use them in computer vision pipelines through a single interface along with built-in transformations.
Como utilizar as albumentações para aumentar os dados da formação YOLO11
Now that we've covered what Albumentations is and what it can do, let's look at how to use it to augment your data for YOLO11 model training. It's easy to set up because it integrates directly into Ultralytics' training mode and applies automatically if you have the Albumentations package installed.
Instalação
Para utilizar o Albumentations com o YOLOv11, começa por te certificares de que tens os pacotes necessários instalados. Se o Albumentations não estiver instalado, as ampliações não serão aplicadas durante o treino. Uma vez configurado, estarás pronto para criar um conjunto de dados aumentado para treino, com o Albumentations integrado para melhorar o teu modelo automaticamente.
Para obter instruções detalhadas e melhores práticas relacionadas com o processo de instalação, consulta o nosso guia de instalaçãoUltralytics . Durante a instalação dos pacotes necessários para o YOLO11, se tiveres alguma dificuldade, consulta o nosso guia de Problemas comuns para obteres soluções e dicas.
Utilização
Depois de instalar os pacotes necessários, estás pronto para começar a usar o Albumentations com o YOLO11. Quando treinas o YOLOv11, um conjunto de aumentos é automaticamente aplicado através da sua integração com o Albumentations, tornando mais fácil melhorar o desempenho do teu modelo.
Utilização
De seguida, vamos analisar mais detalhadamente os aumentos específicos que são aplicados durante o treino.
Borrão
A transformação Desfoque em Albumentações aplica um efeito de desfoque simples à imagem, calculando a média dos valores de pixel dentro de uma pequena área quadrada, ou kernel. Isto é feito usando a função OpenCV cv2.blur
que ajuda a reduzir o ruído na imagem, embora também reduza ligeiramente os detalhes da imagem.
Apresentamos de seguida os parâmetros e valores utilizados nesta integração:
blur_limit: This controls the size range of the blur effect. The default range is (3, 7), meaning the kernel size for the blur can vary between 3 and 7 pixels, with only odd numbers allowed to keep the blur centered.
p: The probability of applying the blur. In the integration, p=0.01, so there's a 1% chance that this blur will be applied to each image. The low probability allows for occasional blur effects, introducing a bit of variation to help the model generalize without over-blurring the images.
Desfocagem mediana
A transformação MedianBlur em Albumentations aplica um efeito de desfocagem mediana à imagem, o que é particularmente útil para reduzir o ruído enquanto preserva 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 pimenta, mantendo a nitidez nas extremidades.
Apresentamos de seguida os parâmetros e valores utilizados nesta integração:
blur_limit: This parameter controls the maximum size of the blurring kernel. In this integration, it defaults to a range of (3, 7), meaning the kernel size for the blur is randomly chosen between 3 and 7 pixels, with only odd values allowed to ensure proper alignment.
p: Sets the probability of applying the median blur. Here, p=0.01, so the transformation has a 1% chance of being applied to each image. This low probability ensures that the median blur is used sparingly, helping the model generalize by occasionally seeing images with reduced noise and preserved edges.
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.
Apresentamos de seguida os parâmetros e valores utilizados nesta integração:
num_output_channels: Sets the number of channels in the output image. If this value is more than 1, the single grayscale channel will be replicated to create a multi-channel grayscale image. By default, it's set to 3, giving a grayscale image with three identical channels.
method: Defines the grayscale conversion method. The default method, "weighted_average", applies a formula (0.299R + 0.587G + 0.114B) that closely aligns with human perception, providing a natural-looking grayscale effect. Other options, like "from_lab", "desaturation", "average", "max", and "pca", offer alternative ways to create grayscale images based on various needs for speed, brightness emphasis, or detail preservation.
p: Controls how often the grayscale transformation is applied. With p=0.01, there is a 1% chance of converting each image to grayscale, making it possible for a mix of color and grayscale images to help the model generalize better.
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.
Apresentamos de seguida os parâmetros e valores utilizados nesta integração:
clip_limit: Controls the contrast enhancement range. Set to a default range of (1, 4), it determines the maximum contrast allowed in each tile. Higher values are used for more contrast but may also introduce noise.
tile_grid_size: Defines the size of the grid of tiles, typically as (rows, columns). The default value is (8, 8), meaning the image is divided into an 8x8 grid. Smaller tile sizes provide more localized adjustments, while larger ones create effects closer to global equalization.
p: The probability of applying CLAHE. Here, p=0.01 introduces the enhancement effect only 1% of the time, ensuring that contrast adjustments are applied sparingly for occasional variation in training images.
A imagem abaixo mostra um exemplo da transformação CLAHE aplicada.
Continua a aprender sobre Albumentações
Se estiveres interessado em saber mais sobre Albumentações, consulta os seguintes recursos para obteres instruções e exemplos mais aprofundados:
Albumentations Documentation: The official documentation provides a full range of supported transformations and advanced usage techniques.
Ultralytics Albumentations Guide: Get a closer look at the details of the function that facilitate this integration.
Albumentations GitHub Repository: The repository includes examples, benchmarks, and discussions to help you get started with customizing augmentations.
Principais conclusões
Neste guia, explorámos os principais aspectos da Albumentations, uma excelente biblioteca Python para aumento de imagens. Discutimos a sua vasta gama de transformações, desempenho optimizado e como a podes utilizar no teu próximo projeto YOLO11.
Also, if you'd like to know more about other Ultralytics YOLO11 integrations, visit our integration guide page. You'll find valuable resources and insights there.
FAQ
Como é que posso integrar o Albumentations com o YOLO11 para aumentar os dados?
O Albumentations integra-se perfeitamente no YOLO11 e aplica-se automaticamente durante o treino se tiveres o pacote instalado. Vê aqui 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 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
- Compatibility: Works seamlessly with popular frameworks like PyTorch and 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?
Albumentations enhances various computer vision tasks including:
- Object Detection: Improves model robustness to lighting, scale, and orientation variations
- Instance Segmentation: Enhances mask prediction accuracy through diverse transformations
- Classification: Increases model generalization with color and geometric augmentations
- Pose Estimation: Helps models adapt to different viewpoints and lighting conditions
As diversas opções de aumento da biblioteca tornam-na valiosa para qualquer tarefa de visão que exija um desempenho robusto do modelo.