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 variété 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’image susceptibles d’améliorer la capacité de ton modèle à s’adapter à des situations réelles. 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 les données d’entraînement de YOLO26 grâce à des techniques comme les transformations géométriques et les ajustements de couleur. Dans cet article, nous allons voir comment Albumentations peut améliorer ton processus d’augmentation des données et rendre tes projets YOLO26 encore plus efficaces. C’est parti !
Albumentations pour l’augmentation d’images#
Albumentations est une bibliothèque open source d’augmentation d’images créée en juin 2018. Elle a été conçue pour simplifier et accélérer le processus d’augmentation d’images en vision par ordinateur. Créée dans un souci de performance et de flexibilité, elle prend en charge de nombreuses techniques d’augmentation, des transformations simples comme les rotations et les retournements aux ajustements plus complexes comme les changements 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 comme la classification d’images, la détection d’objets et la segmentation.
Albumentations te permet d’appliquer facilement des augmentations aux images, aux masques de segmentation, aux boîtes englobantes et aux points clés, tout en veillant à ce que tous les éléments de ton jeu de données soient transformés ensemble. La bibliothèque fonctionne parfaitement avec des frameworks populaires d’apprentissage profond comme PyTorch et TensorFlow, ce qui la rend accessible pour une grande variété de projets.
De plus, Albumentations est une excellente option pour l'augmentation, que tu travailles avec de petits jeux de données ou sur des tâches de vision par ordinateur à grande échelle. Cela garantit un traitement rapide et efficace, réduisant le temps consacré à la préparation des données. Parallèlement, cela contribue à améliorer les performances du modèle, ce qui rend tes modèles plus efficaces dans des applications concrètes.
Principales fonctionnalité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 principales fonctionnalités :
- Large éventail de transformations : Albumentations propose plus de 70 transformations différentes, notamment des modifications géométriques (p. ex., rotation, retournement), des ajustements de couleur (p. ex., luminosité, contraste) et l’ajout de bruit (p. ex., bruit gaussien). Ces nombreuses options permettent de créer des jeux de données d’entraînement très diversifiés et robustes.
-
Optimisation des performances : conçue avec 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 pour accélérer le traitement. Elle traite rapidement les grands jeux de données, ce qui en fait l’une des options d’augmentation d’images les plus rapides.
-
Trois niveaux d’augmentation : Albumentations prend en charge trois niveaux d’augmentation : les transformations au niveau des pixels, au niveau spatial et 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 ni les points clés. Les transformations au niveau spatial modifient à la fois l’image et ses éléments, comme les masques et les boîtes englobantes. Enfin, les transformations au niveau du mélange constituent une méthode unique d’augmentation des données, puisqu’elles combinent plusieurs images en une seule.

- Résultats des benchmarks : en matière de benchmarking, Albumentations surpasse régulièrement les autres bibliothèques, surtout avec de grands jeux de données.
Pourquoi utiliser Albumentations pour tes projets d’IA visuelle ?#
Pour l’augmentation d’images, Albumentations se distingue comme un outil fiable pour les tâches de vision par ordinateur. Voici quelques raisons essentielles d’envisager son utilisation dans tes projets d’IA visuelle :
-
API facile à utiliser : Albumentations fournit une API unique et simple 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 bogues : les bogues dans le pipeline d’augmentation peuvent corrompre les données d’entrée sans avertissement ; ils passent souvent inaperçus, mais finissent par dégrader les performances du modèle. Albumentations répond à ce problème avec une suite de tests approfondie qui aide à détecter les bogues tôt dans 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, aux côtés des transformations intégrées.
Comment utiliser Albumentations pour augmenter les données d’entraînement de YOLO26#
Maintenant que nous avons vu ce qu’est Albumentations et ce que la bibliothèque peut faire, découvrons comment l’utiliser pour augmenter tes données lors de l’entraînement d’un modèle YOLO26. La configuration est simple, car la bibliothèque s’intègre directement au mode d’entraînement d’Ultralytics et applique automatiquement les augmentations 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 pourras créer un jeu de données augmenté pour l’entraînement ; Albumentations sera 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 connaître les bonnes pratiques liées à l’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, qui propose des solutions et des conseils.
Les exemples de transformations personnalisées sur 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 appliqué automatiquement grâce à l’intégration avec Albumentations, ce qui facilite l’amélioration des performances de ton modèle.
from ultralytics import YOLO
# Charger un modèle préentraîné
model = YOLO("yolo26n.pt")
# Entraîner le modèle avec les augmentations par défaut
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 moyennant les valeurs des pixels dans une petite zone carrée, ou noyau. Elle utilise la fonction OpenCV cv2.blur, qui contribue à réduire le bruit de l’image, mais atténue aussi légèrement les détails.
Voici les paramètres et les valeurs utilisés dans cette intégration :
-
blur_limit : ce paramètre définit 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 ; seules les valeurs impaires sont autorisées afin de centrer le flou.
-
p : probabilité d’appliquer le flou. Dans l’intégration, p=0.01 ; le flou a donc 1 % de chances d’être appliqué à chaque image. Cette faible probabilité permet d’introduire occasionnellement une légère variation pour aider le modèle à mieux généraliser sans trop flouter les images.
Flou médian#
La transformation MedianBlur d’Albumentations applique un flou médian à l’image, ce qui est 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 éliminer 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 définit la taille maximale du noyau de flou. Dans cette intégration, sa valeur par défaut correspond à une plage de (3, 7) ; la taille du noyau est donc choisie aléatoirement entre 3 et 7 pixels, seules les valeurs impaires étant 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 parcimonieuse du flou médian et aide le modèle à généraliser en lui présentant occasionnellement des images moins bruitées dont les contours sont 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 à un seul canal, avec la possibilité de répliquer ce canal pour obtenir le nombre de canaux de sortie souhaité. Différentes méthodes permettent de calculer la luminosité en niveaux de gris, d’une simple moyenne à des techniques plus avancées offrant 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 multicanal en niveaux de gris. Par défaut, la valeur est 3 ; l’image en niveaux de gris comporte donc 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 naturel en niveaux de gris. 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, de luminosité ou de préservation des détails.
-
p : définit 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 ; le mélange d’images couleur et en niveaux de gris peut ainsi aider le modèle à mieux généraliser.
L’image ci-dessous montre un exemple de cette transformation en niveaux de gris.
Égalisation adaptative d’histogramme à contraste limité (CLAHE)#
La transformation CLAHE d’Albumentations applique l’égalisation adaptative d’histogramme à contraste limité (CLAHE), une technique qui améliore le contraste de l’image en égalisant l’histogramme dans des zones locales (tuiles) plutôt que sur toute l’image. CLAHE produit une amélioration équilibrée et évite l’amplification excessive du contraste qui peut résulter d’une égalisation d’histogramme classique, en particulier dans les zones dont le contraste initial est faible.
Voici les paramètres et les valeurs utilisés dans cette intégration :
-
clip_limit : définit l’ampleur de l’amélioration du contraste. La plage par défaut étant (1, 4), ce paramètre détermine le contraste maximal autorisé dans chaque tuile. Des valeurs plus élevées renforcent le contraste, mais peuvent aussi 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 est donc appliqué dans seulement 1 % des cas, ce qui garantit que les ajustements du contraste restent ponctuels et apportent une variation occasionnelle aux 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 précis. 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 gardant 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
# Charger le modèle
model = YOLO("yolo26n.pt")
# Définir des transformations personnalisées avec diverses techniques d’augmentation
custom_transforms = [
# Variantes de flou
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,
),
# Variantes de bruit
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,
),
# Ajustements de couleur et de 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),
# Simuler des occultations
A.CoarseDropout(num_holes_range=(1, 8), hole_height_range=(8, 32), hole_width_range=(8, 32), fill=0, p=0.2),
]
# Entraîner avec des transformations personnalisées
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 ces points à l’esprit :
- Configuration : Construis des objets de transformation personnalisés via l’API Python. Tu peux aussi transmettre des transformations sérialisées via la CLI ou des fichiers de configuration YAML, y compris lors de la reprise de l’entraînement.
- Remplacement des paramètres par défaut : Tes transformations personnalisées remplaceront entièrement les transformations Albumentations par défaut. Les autres augmentations YOLO restent actives.
- Gestion des annotations : 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 déclenche une erreur pour les échantillons de segmentation, de pose et OBB. - Performances : Certaines transformations sont coûteuses en calcul. Surveille la vitesse d’entraînement et ajuste-la en conséquence.
- Compatibilité avec les tâches : 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 OBB, mais pas avec la classification (qui utilise un pipeline d’augmentation différent).
Cas d’utilisation des transformations personnalisées#
Différentes applications tirent parti 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/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é pour 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 des exemples plus détaillés et des bonnes pratiques sur l’utilisation de transformations Albumentations personnalisées avec YOLO26, consulte le guide sur l’augmentation des données YOLO.
Poursuivre l’apprentissage d’Albumentations#
Si tu souhaites en savoir plus sur Albumentations, consulte les ressources suivantes pour trouver des instructions et des exemples plus détaillés :
-
Documentation Albumentations : La documentation officielle présente l’ensemble des transformations prises en charge et des techniques d’utilisation avancées.
-
Guide Ultralytics sur Albumentations : Découvre plus en détail le fonctionnement de 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 à personnaliser les augmentations.
Points essentiels à retenir#
Dans ce guide, nous avons abordé les principaux aspects d’Albumentations, une excellente bibliothèque Python d’augmentation d’images. Nous avons parlé de son vaste éventail de transformations, de ses performances optimisées et de 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 précieuses.
FAQ#
Albumentations s’intègre parfaitement à YOLO26 et s’applique automatiquement pendant l’entraînement si le package est installé. Voici comment commencer :
# Installer les packages requis # !pip install albumentations ultralytics from ultralytics import YOLO # Charger et entraîner le modèle avec des augmentations automatiques model = YOLO("yolo26n.pt") model.train(data="coco8.yaml", epochs=100)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 ajustées pour améliorer les performances du modèle.
Albumentations se distingue pour plusieurs raisons :
- Performances : S’appuie 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, de l’espace et du mélange
- Compatibilité : Fonctionne parfaitement avec des frameworks populaires comme PyTorch et TensorFlow
- Fiabilité : Une suite de tests complète prévient toute 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 d’éclairage, d’échelle et d’orientation
- Segmentation d’instances : Améliore la précision de prédiction des masques grâce à des transformations variées
- Estimation de pose : Aide les modèles à s’adapter à différents points de vue et conditions d’éclairage
- Détection de boîtes englobantes orientées : Ajoute des variations de couleur et de bruit aux images aériennes et aux images d’objets pivotés
Les diverses options d’augmentation de la bibliothèque en font un outil précieux pour les tâches de vision nécessitant des performances robustes du modèle. Dans Ultralytics YOLO26, l’entraînement en classification utilise son propre pipeline d’augmentation basé sur torchvision et n’applique pas les transformations Albumentations.