Améliore ton jeu de données pour entraîner YOLO26 avec Albumentations#
Lorsque tu développes des modèles de vision par ordinateur, la qualité et la diversité de tes données d'entraînement peuvent jouer un rôle important dans les performances de ton modèle. Albumentations offre un moyen rapide, flexible et efficace d'appliquer un large éventail de transformations d'images susceptibles d'améliorer la capacité de ton modèle à s'adapter aux situations du monde réel. La bibliothèque s'intègre facilement à Ultralytics YOLO26 et peut t'aider à créer des jeux de données robustes pour les tâches de détection d'objets, de segmentation et de classification.
Avec Albumentations, tu peux enrichir tes données d'entraînement YOLO26 grâce à des techniques comme les transformations géométriques et les ajustements de couleur. Dans cet article, nous verrons comment Albumentations peut améliorer ton processus d'augmentation des données et rendre tes projets YOLO26 encore plus efficaces. Commençons !
Albumentations pour l'augmentation d'images#
Albumentations est une bibliothèque open source d'augmentation d'images créée en juin 2018. Elle est conçue pour simplifier et accélérer le processus d'augmentation d'images en vision par ordinateur. Conçue dans un souci de performance et de flexibilité, elle prend en charge de nombreuses techniques d'augmentation, allant de transformations simples comme les rotations et les retournements à des ajustements plus complexes comme les variations de luminosité et de contraste. Albumentations aide les développeurs à générer des jeux de données riches et variés pour des tâches telles que la classification d'images, la détection d'objets et la segmentation.
Tu peux utiliser Albumentations pour appliquer facilement des augmentations à des images, des masques de segmentation, des boîtes englobantes et des points clés, et veiller à ce que tous les éléments de ton jeu de données soient transformés ensemble. Albumentations fonctionne de manière transparente avec des frameworks de deep learning populaires comme PyTorch et TensorFlow, ce qui rend Albumentations accessible pour un large éventail de projets.
De plus, Albumentations est une excellente option d'augmentation, que tu traites de petits jeux de données ou des tâches de vision par ordinateur à grande échelle. Elle garantit un traitement rapide et efficace, réduisant le temps consacré à la préparation des données. Parallèlement, elle contribue à améliorer les performances du modèle, rendant tes modèles plus efficaces dans les applications du monde réel.
Fonctionnalités clés d'Albumentations#
Albumentations propose de nombreuses fonctionnalités utiles qui simplifient les augmentations d'images complexes pour un large éventail d'applications de vision par ordinateur. Voici quelques-unes de ses fonctionnalités clés :
- Large éventail de transformations : Albumentations propose plus de 70 transformations différentes, notamment des modifications géométriques (par exemple, rotation et retournement), des ajustements de couleur (par exemple, luminosité et contraste) et l'ajout de bruit (par exemple, bruit gaussien). Ces nombreuses options permettent de créer des jeux de données d'entraînement très diversifiés et robustes.
-
Optimisation haute performance : Construite sur OpenCV et NumPy, Albumentations utilise des techniques d'optimisation avancées comme SIMD (Single Instruction, Multiple Data), qui traite plusieurs points de données simultanément afin d'accélérer le traitement. Elle traite rapidement les grands jeux de données, ce qui en fait l'une des options les plus rapides disponibles pour l'augmentation d'images.
-
Trois niveaux d'augmentation : Albumentations prend en charge trois niveaux d'augmentation : les transformations au niveau des pixels, les transformations au niveau spatial et les transformations au niveau du mélange. Les transformations au niveau des pixels affectent uniquement les images d'entrée, sans modifier les masques, les boîtes englobantes ou les points clés. En revanche, l'image et ses éléments, comme les masques et les boîtes englobantes, sont transformés par les transformations au niveau spatial. De plus, les transformations au niveau du mélange constituent une manière unique d'augmenter les données, car elles combinent plusieurs images en une seule.

- Résultats des benchmarks : En matière de benchmarks, Albumentations surpasse systématiquement les autres bibliothèques, en particulier avec les grands jeux de données.
Pourquoi utiliser Albumentations pour tes projets d'IA visuelle ?#
En matière d'augmentation d'images, Albumentations se distingue comme un outil fiable pour les tâches de vision par ordinateur. Voici quelques raisons essentielles pour lesquelles tu devrais envisager de l'utiliser dans tes projets d'IA visuelle :
-
API facile à utiliser : Albumentations fournit une API unique et intuitive pour appliquer un large éventail d'augmentations aux images, aux masques, aux boîtes englobantes et aux points clés. Elle est conçue pour s'adapter facilement à différents jeux de données, ce qui simplifie et accélère la préparation des données.
-
Tests rigoureux des bugs : Les bugs dans le pipeline d'augmentation peuvent corrompre silencieusement les données d'entrée. Ils passent souvent inaperçus, mais finissent par dégrader les performances du modèle. Albumentations répond à ce problème grâce à une suite de tests complète qui aide à détecter rapidement les bugs pendant le développement.
-
Extensibilité : Albumentations permet d'ajouter facilement de nouvelles augmentations et de les utiliser dans des pipelines de vision par ordinateur via une interface unique, en complément des transformations intégrées.
Comment utiliser Albumentations pour augmenter les données d'entraînement de YOLO26#
Maintenant que nous avons présenté Albumentations et ses possibilités, voyons comment l'utiliser pour augmenter tes données lors de l'entraînement d'un modèle YOLO26. Sa configuration est simple, car la bibliothèque s'intègre directement au mode d'entraînement d'Ultralytics et s'applique automatiquement si le package Albumentations est installé.
Installation#
Pour utiliser Albumentations avec YOLO26, commence par vérifier que les packages nécessaires sont installés. Si Albumentations n'est pas installé, les augmentations ne seront pas appliquées pendant l'entraînement. Une fois la configuration terminée, tu seras prêt à créer un jeu de données augmenté pour l'entraînement, avec Albumentations intégré afin d'améliorer automatiquement ton modèle.
# Install the required packages
pip install albumentations ultralyticsPour obtenir des instructions détaillées et les bonnes pratiques relatives au processus d'installation, consulte notre guide d'installation Ultralytics. Si tu rencontres des difficultés lors de l'installation des packages requis pour YOLO26, consulte notre guide des problèmes courants pour trouver des solutions et des conseils.
Les exemples de transformations personnalisées de cette page nécessitent Albumentations 1.4.22 ou une version ultérieure, et donc Python 3.9 ou une version ultérieure.
Utilisation#
Après avoir installé les packages nécessaires, tu peux commencer à utiliser Albumentations avec YOLO26. Lorsque tu entraînes YOLO26, un ensemble d'augmentations est automatiquement appliqué grâce à son intégration avec Albumentations, ce qui facilite l'amélioration des performances de ton modèle.
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)Examinons maintenant de plus près les augmentations spécifiques appliquées pendant l'entraînement.
Flou#
La transformation Blur d'Albumentations applique un simple effet de flou à l'image en faisant la moyenne des valeurs des pixels dans une petite zone carrée, appelée noyau. Cette opération utilise la fonction cv2.blur d'OpenCV, ce qui aide à réduire le bruit dans l'image, mais diminue également légèrement ses détails.
Voici les paramètres et les valeurs utilisés dans cette intégration :
-
blur_limit : Ce paramètre contrôle la plage de taille de l'effet de flou. La plage par défaut est (3, 7), ce qui signifie que la taille du noyau de flou peut varier entre 3 et 7 pixels, avec uniquement des nombres impairs autorisés pour maintenir le flou centré.
-
p : Probabilité d'appliquer le flou. Dans l'intégration, p=0.01, ce qui signifie qu'il y a 1 % de chances que ce flou soit appliqué à chaque image. Cette faible probabilité permet d'introduire occasionnellement un effet de flou et un peu de variation, afin d'aider le modèle à généraliser sans trop flouter les images.
Flou médian#
La transformation MedianBlur d'Albumentations applique un effet de flou médian à l'image, particulièrement utile pour réduire le bruit tout en préservant les contours. Contrairement aux méthodes de flou classiques, MedianBlur utilise un filtre médian, particulièrement efficace pour supprimer le bruit impulsionnel tout en conservant la netteté des contours.
Voici les paramètres et les valeurs utilisés dans cette intégration :
-
blur_limit : Ce paramètre contrôle la taille maximale du noyau de flou. Dans cette intégration, sa valeur par défaut correspond à une plage de (3, 7), ce qui signifie que la taille du noyau de flou est choisie aléatoirement entre 3 et 7 pixels, avec uniquement des valeurs impaires autorisées pour garantir un alignement correct.
-
p : Définit la probabilité d'appliquer le flou médian. Ici, p=0.01, la transformation a donc 1 % de chances d'être appliquée à chaque image. Cette faible probabilité garantit une utilisation modérée du flou médian et aide le modèle à généraliser en lui faisant occasionnellement voir des images avec moins de bruit et des contours préservés.
L'image ci-dessous montre un exemple de cette augmentation appliquée à une image.
Niveaux de gris#
La transformation ToGray d'Albumentations convertit une image en niveaux de gris, la réduisant à un format à canal unique et pouvant répliquer ce canal pour correspondre à un nombre spécifié de canaux de sortie. Différentes méthodes permettent d'ajuster le calcul de la luminosité en niveaux de gris, d'une simple moyenne à des techniques plus avancées pour une perception réaliste du contraste et de la luminosité.
Voici les paramètres et les valeurs utilisés dans cette intégration :
-
num_output_channels : Définit le nombre de canaux de l'image de sortie. Si cette valeur est supérieure à 1, le canal unique en niveaux de gris est répliqué pour créer une image en niveaux de gris multicanal. Par défaut, la valeur est 3, ce qui produit une image en niveaux de gris composée de trois canaux identiques.
-
method : Définit la méthode de conversion en niveaux de gris. La méthode par défaut, "weighted_average", applique une formule (0.299R + 0.587G + 0.114B) qui correspond étroitement à la perception humaine et produit un effet en niveaux de gris naturel. D'autres options, comme "from_lab", "desaturation", "average", "max" et "pca", offrent d'autres façons de créer des images en niveaux de gris selon les besoins en matière de vitesse, d'accentuation de la luminosité ou de préservation des détails.
-
p : Contrôle la fréquence d'application de la transformation en niveaux de gris. Avec p=0.01, chaque image a 1 % de chances d'être convertie en niveaux de gris, ce qui permet de mélanger des images en couleur et en niveaux de gris afin d'aider le modèle à mieux généraliser.
L'image ci-dessous montre un exemple de cette transformation en niveaux de gris appliquée.
Égalisation adaptative d'histogramme limitée par contraste (CLAHE)#
La transformation CLAHE d'Albumentations applique l'égalisation adaptative d'histogramme limitée par contraste (CLAHE), une technique qui améliore le contraste de l'image en égalisant l'histogramme dans des régions localisées (tuiles), plutôt que sur l'ensemble de l'image. CLAHE produit un effet d'amélioration équilibré et évite le contraste excessivement amplifié qui peut résulter d'une égalisation d'histogramme standard, en particulier dans les zones initialement peu contrastées.
Voici les paramètres et les valeurs utilisés dans cette intégration :
-
clip_limit : Contrôle la plage d'amélioration du contraste. Défini par défaut sur une plage de (1, 4), il détermine le contraste maximal autorisé dans chaque tuile. Des valeurs plus élevées produisent davantage de contraste, mais peuvent également introduire du bruit.
-
tile_grid_size : Définit la taille de la grille de tuiles, généralement sous la forme (lignes, colonnes). La valeur par défaut est (8, 8), ce qui signifie que l'image est divisée en une grille de 8x8. Des tuiles plus petites permettent des ajustements plus localisés, tandis que des tuiles plus grandes produisent des effets plus proches d'une égalisation globale.
-
p : Probabilité d'appliquer CLAHE. Ici, p=0.01, l'effet d'amélioration n'est donc appliqué que 1 % du temps, ce qui garantit que les ajustements de contraste sont utilisés avec modération pour introduire occasionnellement de la variation dans les images d'entraînement.
L'image ci-dessous montre un exemple de la transformation CLAHE appliquée.
Utiliser des transformations Albumentations personnalisées#
Bien que l'intégration Albumentations par défaut fournisse un ensemble solide d'augmentations, tu peux vouloir personnaliser les transformations pour ton cas d'utilisation spécifique. Avec Ultralytics YOLO26, tu peux facilement transmettre des transformations Albumentations personnalisées via l'API Python à l'aide du paramètre augmentations. Les exemples de cette section nécessitent Albumentations 1.4.22 ou une version ultérieure.
Comment définir des transformations personnalisées#
Tu peux définir ta propre liste de transformations Albumentations et la transmettre à la fonction d'entraînement. Cela remplace les transformations Albumentations par défaut tout en conservant actives toutes les autres augmentations YOLO (comme hsv_h, degrees, mosaic, etc.).
Voici un exemple avec des transformations plus avancées :
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,
)Points importants à prendre en compte#
Lorsque tu utilises des transformations Albumentations personnalisées, garde les points suivants à l'esprit :
- Configuration : Construis des objets de transformation personnalisés via l'API Python. Des transformations sérialisées peuvent également être passées via des fichiers de configuration CLI ou YAML, y compris lors de la reprise de l'entraînement.
- Remplace les valeurs par défaut : Tes transformations personnalisées remplacent complètement les transformations Albumentations par défaut. Les autres augmentations YOLO restent actives.
- Label Handling : Les transformations spatiales, y compris celles imbriquées dans
A.OneOfouA.Compose, déplacent les boîtes englobantes, les polygones, les points clés et les masques de profondeur ou sémantiques en même temps que l'image.A.RandomGridShufflene peut pas préserver la topologie des polygones ou des points clés et génère une erreur sur les échantillons de segmentation, de pose et d'OBB. - Performances : Certaines transformations sont coûteuses en calcul. Surveille la vitesse d'entraînement et ajuste-la en conséquence.
- Task Compatibility : Les transformations Albumentations personnalisées fonctionnent avec l'entraînement pour la détection, la segmentation, la segmentation sémantique, la profondeur, la pose et l'OBB, mais pas avec la classification (qui utilise un pipeline d'augmentation différent).
Cas d'utilisation des transformations personnalisées#
Différentes applications bénéficient de stratégies d'augmentation différentes :
- Imagerie médicale : Utilise des déformations élastiques, des distorsions de grille et des motifs de bruit spécialisés
- Imagerie aérienne ou satellite : Applique des transformations qui simulent différentes altitudes, conditions météorologiques et angles d'éclairage
- Scénarios de faible luminosité : Mets l'accent sur l'ajout de bruit et les ajustements de luminosité afin d'entraîner des modèles robustes dans des conditions d'éclairage difficiles
- Inspection industrielle : Ajoute des variations de texture et des défauts simulés pour les applications de contrôle qualité
Pour obtenir la liste complète des transformations disponibles et de leurs paramètres, consulte la documentation Albumentations.
Pour découvrir des exemples plus détaillés et les bonnes pratiques d'utilisation des transformations Albumentations personnalisées avec YOLO26, consulte le guide d'augmentation des données YOLO.
Continue à te former sur Albumentations#
Si tu souhaites en savoir plus sur Albumentations, consulte les ressources suivantes pour obtenir des instructions et des exemples plus approfondis :
-
Documentation Albumentations : La documentation officielle fournit une présentation complète des transformations prises en charge et des techniques d'utilisation avancées.
-
Guide Ultralytics sur Albumentations : Découvre plus en détail la fonction qui facilite cette intégration.
-
Dépôt GitHub d'Albumentations : Le dépôt comprend des exemples, des benchmarks et des discussions pour t'aider à commencer à personnaliser les augmentations.
Points clés à retenir#
Dans ce guide, nous avons exploré les principaux aspects d'Albumentations, une excellente bibliothèque Python pour l'augmentation d'images. Nous avons abordé son large éventail de transformations, ses performances optimisées et la façon dont tu peux l'utiliser dans ton prochain projet YOLO26.
De plus, si tu souhaites en savoir plus sur les autres intégrations Ultralytics YOLO26, consulte notre page du guide des intégrations. Tu y trouveras des ressources et des informations utiles.
FAQ#
Albumentations se distingue pour plusieurs raisons :
- Performances : Construite sur OpenCV et NumPy, avec une optimisation SIMD pour une vitesse supérieure
- Flexibilité : Prend en charge plus de 70 transformations réparties entre les augmentations au niveau des pixels, au niveau spatial et au niveau du mélange
- Compatibilité : Fonctionne parfaitement avec des frameworks populaires comme PyTorch et TensorFlow
- Fiabilité : Une suite de tests complète empêche la corruption silencieuse des données
- Facilité d'utilisation : Une API unifiée unique pour tous les types d'augmentation
Albumentations améliore diverses tâches de vision par ordinateur, notamment :
- Détection d'objets : Améliore la robustesse du modèle face aux variations de luminosité, d'échelle et d'orientation
- Segmentation d'instances : Améliore la précision de prédiction des masques grâce à des transformations variées
- Classification : Renforce la généralisation du modèle grâce aux augmentations de couleur et géométriques
- Estimation de pose : Aide les modèles à s'adapter à différents points de vue et conditions d'éclairage
La diversité des options d'augmentation de la bibliothèque la rend utile pour toute tâche de vision nécessitant des performances robustes du modèle.
Albumentations s'intègre parfaitement à YOLO26 et s'applique automatiquement pendant l'entraînement si le package est installé. Voici comment commencer :
L'intégration comprend des augmentations optimisées comme le flou, le flou médian, la conversion en niveaux de gris et CLAHE, avec des probabilités soigneusement réglées pour améliorer les performances du modèle.