Améliore ton jeu de données pour entraîner YOLO26 avec Albumentations
Lorsque tu conçois des modèles de vision par ordinateur, la qualité et la diversité de tes données d'entraînement jouent un rôle majeur dans les performances de ton modèle. Albumentations offre une méthode rapide, flexible et efficace pour appliquer un large éventail de transformations d'images qui peuvent améliorer la capacité de ton modèle à s'adapter aux scénarios du monde réel. Il s'intègre facilement à Ultralytics YOLO26 et peut t'aider à créer des jeux de données robustes pour des tâches de détection d'objets, de segmentation et de classification.
En utilisant Albumentations, tu peux enrichir tes données d'entraînement YOLO26 avec des techniques telles que les transformations géométriques et les ajustements de couleur. Dans cet article, nous verrons comment Albumentations peut améliorer ton processus d'augmentation de données et rendre tes projets YOLO26 encore plus percutants. 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. Créée avec la performance et la flexibilité à l'esprit, elle prend en charge de nombreuses techniques d'augmentation diverses, allant de simples transformations comme les rotations et les inversions à des 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.
Tu peux utiliser Albumentations pour appliquer facilement des augmentations aux images, masques de segmentation, boîtes englobantes et points clés, et t'assurer que tous les éléments de ton jeu de données sont transformés ensemble. Il fonctionne parfaitement avec des frameworks de deep learning populaires comme PyTorch et TensorFlow, le rendant accessible pour un large éventail de projets.
De plus, Albumentations est une excellente option pour l'augmentation, que tu travailles sur de petits jeux de données ou des tâches de vision par ordinateur à grande échelle. Il garantit un traitement rapide et efficace, réduisant le temps passé sur la préparation des données. Parallèlement, il aide à améliorer les performances du modèle, rendant tes modèles plus efficaces dans les applications réelles.
Fonctionnalités clés d'Albumentations
Albumentations offre de nombreuses fonctionnalités utiles qui simplifient les augmentations d'images complexes pour une vaste gamme d'applications de vision par ordinateur. Voici quelques-unes des fonctionnalités clés :
- Large gamme de transformations : Albumentations propose plus de 70 transformations différentes, incluant des changements géométriques (par ex. rotation, inversion), des ajustements de couleur (par ex. luminosité, contraste) et l'ajout de bruit (par ex. bruit gaussien). Disposer de multiples options permet la création de jeux de données d'entraînement très diversifiés et robustes.
-
Optimisation haute performance : Construit 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 pour accélérer le traitement. Il gère rapidement les grands jeux de données, en faisant 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, au niveau spatial et au niveau du mélange. Les transformations au niveau des pixels affectent uniquement les images d'entrée sans altérer les masques, les boîtes englobantes ou les points clés. Pendant ce temps, l'image et ses éléments, comme les masques et les boîtes englobantes, sont transformés en utilisant les transformations au niveau spatial. De plus, les transformations au niveau du mélange sont une manière unique d'augmenter les données car elles combinent plusieurs images en une seule.

- Résultats de benchmarking : Lorsqu'il s'agit d'évaluer les performances, Albumentations surpasse systématiquement les autres bibliothèques, surtout avec de grands jeux de données.
Pourquoi devrais-tu utiliser Albumentations pour tes projets d'IA visuelle ?
En ce qui concerne l'augmentation d'images, Albumentations s'impose comme un outil fiable pour les tâches de vision par ordinateur. Voici quelques raisons clés pour lesquelles tu devrais envisager de l'utiliser pour tes projets d'IA visuelle :
-
API facile à utiliser : Albumentations fournit une API unique et simple pour appliquer une large gamme d'augmentations aux images, masques, boîtes englobantes et points clés. Elle est conçue pour s'adapter facilement à différents jeux de données, rendant la préparation des données plus simple et plus efficace.
-
Tests de bugs rigoureux : Les bugs dans le pipeline d'augmentation peuvent corrompre silencieusement les données d'entrée, passant souvent inaperçus mais dégradant finalement les performances du modèle. Albumentations y remédie avec une suite de tests approfondie qui aide à détecter les bugs tôt dans le développement.
-
Extensibilité : Albumentations peut être utilisé pour ajouter facilement de nouvelles augmentations et les utiliser dans des pipelines de vision par ordinateur via une interface unique, en plus des transformations intégrées.
Comment utiliser Albumentations pour augmenter les données pour l'entraînement de YOLO26
Maintenant que nous avons couvert ce qu'est Albumentations et ce qu'il peut faire, regardons comment l'utiliser pour augmenter tes données pour l'entraînement du modèle YOLO26. C'est facile à configurer car il s'intègre directement dans le mode d'entraînement d'Ultralytics et s'applique automatiquement si tu as le paquet Albumentations installé.
Installation
Pour utiliser Albumentations avec YOLO26, commence par t'assurer que tu as installé les paquets nécessaires. Si Albumentations n'est pas installé, les augmentations ne seront pas appliquées pendant l'entraînement. Une fois configuré, tu seras prêt à créer un jeu de données augmenté pour l'entraînement, avec Albumentations intégré pour améliorer ton modèle automatiquement.
# Install the required packages
pip install albumentations ultralyticsPour des instructions détaillées et les meilleures pratiques liées au processus d'installation, consulte notre guide d'installation d'Ultralytics. Pendant l'installation des paquets requis pour YOLO26, si tu rencontres des difficultés, consulte notre guide des problèmes courants pour des solutions et astuces.
Utilisation
Après avoir installé les paquets nécessaires, tu es prêt à commencer à utiliser Albumentations avec YOLO26. Lorsque tu entraînes YOLO26, un ensemble d'augmentations est automatiquement appliqué grâce à son intégration avec Albumentations, rendant facile 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)Ensuite, examinons de plus près les augmentations spécifiques qui sont appliquées pendant l'entraînement.
Floutage
La transformation Blur dans Albumentations applique un effet de flou simple à l'image en calculant la moyenne des valeurs de pixels dans une petite zone carrée, ou noyau. Cela se fait en utilisant la fonction OpenCV cv2.blur, qui aide à réduire le bruit dans l'image, bien que cela réduise aussi légèrement les détails de l'image.
Voici les paramètres et valeurs utilisés dans cette intégration :
-
blur_limit : Cela 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 pour le flou peut varier entre 3 et 7 pixels, avec seulement des nombres impairs autorisés pour garder le flou centré.
-
p : La probabilité d'appliquer le flou. Dans l'intégration, p=0.01, donc il y a 1 % de chance que ce flou soit appliqué à chaque image. Cette faible probabilité permet des effets de flou occasionnels, introduisant un peu de variation pour aider le modèle à généraliser sans trop flouter les images.
Flou médian
La transformation MedianBlur dans Albumentations applique un effet de flou médian à l'image, ce qui est particulièrement utile pour réduire le bruit tout en préservant les bords. Contrairement aux méthodes de flou classiques, MedianBlur utilise un filtre médian, qui est particulièrement efficace pour éliminer le bruit poivre et sel tout en maintenant la netteté autour des bords.
Voici les paramètres et valeurs utilisés dans cette intégration :
-
blur_limit : Ce paramètre contrôle la taille maximale du noyau de floutage. Dans cette intégration, il est par défaut sur une plage de (3, 7), ce qui signifie que la taille du noyau pour le flou est choisie aléatoirement entre 3 et 7 pixels, avec seulement des valeurs impaires autorisées pour assurer un alignement correct.
-
p : Définit la probabilité d'appliquer le flou médian. Ici, p=0.01, donc la transformation a 1 % de chance d'être appliquée à chaque image. Cette faible probabilité assure que le flou médian est utilisé avec parcimonie, aidant le modèle à généraliser en voyant occasionnellement des images avec un bruit réduit et des bords préservés.
L'image ci-dessous montre un exemple de cette augmentation appliquée à une image.
Niveaux de gris
La transformation ToGray dans Albumentations convertit une image en niveaux de gris, la réduisant à un format à canal unique et répliquant éventuellement ce canal pour correspondre à un nombre spécifié de canaux de sortie. Différentes méthodes peuvent être utilisées pour ajuster la façon dont la luminosité des niveaux de gris est calculée, allant 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 valeurs utilisés dans cette intégration :
-
num_output_channels : Définit le nombre de canaux dans l'image de sortie. Si cette valeur est supérieure à 1, le canal unique en niveaux de gris sera répliqué pour créer une image en niveaux de gris multicanal. Par défaut, il est réglé sur 3, donnant une image en niveaux de gris avec 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 s'aligne étroitement avec la perception humaine, fournissant un effet de niveaux de gris naturel. D'autres options, comme "from_lab", "desaturation", "average", "max" et "pca", offrent des moyens alternatifs de créer des images en niveaux de gris basés sur divers besoins de vitesse, d'accentuation de la luminosité ou de préservation des détails.
-
p : Contrôle la fréquence à laquelle la transformation en niveaux de gris est appliquée. Avec p=0.01, il y a 1 % de chance de convertir chaque image en niveaux de gris, permettant à un mélange d'images en couleur et en niveaux de gris 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 d'histogramme adaptative limitée par le contraste (CLAHE)
La transformation CLAHE dans Albumentations applique l'égalisation d'histogramme adaptative limitée par le contraste (CLAHE), une technique qui améliore le contraste de l'image en égalisant l'histogramme dans des régions localisées (tuiles) au lieu de l'image entière. CLAHE produit un effet d'amélioration équilibré, évitant le contraste trop amplifié qui peut résulter d'une égalisation d'histogramme standard, surtout dans les zones ayant initialement un faible contraste.
Voici les paramètres et valeurs utilisés dans cette intégration :
-
clip_limit : Contrôle la plage d'amélioration du contraste. Réglé sur une plage par défaut de (1, 4), il détermine le contraste maximal autorisé dans chaque tuile. Des valeurs plus élevées sont utilisées pour plus de 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 8x8. Des tailles de tuiles plus petites fournissent des ajustements plus localisés, tandis que des plus grandes créent des effets plus proches de l'égalisation globale.
-
p : La probabilité d'appliquer CLAHE. Ici, p=0.01 introduit l'effet d'amélioration seulement 1 % du temps, assurant que les ajustements de contraste sont appliqués avec parcimonie pour une variation occasionnelle dans les images d'entraînement.
L'image ci-dessous montre un exemple de la transformation CLAHE appliquée.
Utilisation de transformations Albumentations personnalisées
Bien que l'intégration par défaut d'Albumentations 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 passer des transformations Albumentations personnalisées via l'API Python en utilisant le paramètre augmentations.
Comment définir des transformations personnalisées
Tu peux définir ta propre liste de transformations Albumentations et les passer à la fonction d'entraînement. Cela remplace les transformations Albumentations par défaut tout en gardant toutes les autres augmentations YOLO (comme hsv_h, degrees, mosaic, etc.) actives.
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(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,
)Considérations importantes
Lorsque tu utilises des transformations Albumentations personnalisées, garde ces points à l'esprit :
- API Python uniquement : Les transformations personnalisées ne peuvent être passées que via l'API Python, pas via CLI ou des fichiers de configuration YAML.
- Remplace les valeurs par défaut : Tes transformations personnalisées remplaceront complètement les transformations Albumentations par défaut. Les autres augmentations YOLO restent actives.
- Gestion des boîtes englobantes : Ultralytics gère automatiquement les ajustements des boîtes englobantes pour la plupart des transformations, mais les transformations spatiales complexes peuvent nécessiter des tests supplémentaires.
- Performance : Certaines transformations sont coûteuses en calcul. Surveille la vitesse d'entraînement et ajuste en conséquence.
- Compatibilité des tâches : Les transformations Albumentations personnalisées fonctionnent avec les tâches de détection et de segmentation, mais pas avec la classification (qui utilise un pipeline d'augmentation différent).
Cas d'utilisation pour les transformations personnalisées
Différentes applications bénéficient de différentes stratégies d'augmentation :
- Imagerie médicale : Utilise des déformations élastiques, des distorsions de grille et des modèles 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 à faible luminosité : Mets l'accent sur l'ajout de bruit et les ajustements de luminosité pour entraîner des modèles robustes face à des éclairages difficiles
- Inspection industrielle : Ajoute des variations de texture et des défauts simulés pour des applications de contrôle qualité
Pour une liste complète des transformations disponibles et de leurs paramètres, visite la documentation d'Albumentations.
Pour des exemples plus détaillés et les meilleures pratiques sur l'utilisation de transformations Albumentations personnalisées avec YOLO26, consulte le guide d'augmentation de données YOLO.
Continue d'en apprendre sur Albumentations
Si tu souhaites en savoir plus sur Albumentations, consulte les ressources suivantes pour des instructions et des exemples plus approfondis :
-
Documentation d'Albumentations : La documentation officielle fournit une gamme complète de transformations prises en charge et des techniques d'utilisation avancées.
-
Guide Ultralytics Albumentations : Obtenez un aperçu plus détaillé des fonctions qui facilitent cette intégration.
-
Dépôt GitHub d'Albumentations : Le dépôt inclut 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 aspects clés d'Albumentations, une excellente bibliothèque Python pour l'augmentation d'images. Nous avons discuté de sa large gamme de transformations, de ses performances optimisées et de la manière dont tu peux l'utiliser dans ton prochain projet YOLO26.
Aussi, si tu souhaites en savoir plus sur d'autres intégrations Ultralytics YOLO26, visite notre page de guide d'intégration. Tu y trouveras des ressources et des idées précieuses.
FAQ
Comment puis-je intégrer Albumentations avec YOLO26 pour une augmentation de données améliorée ?
Albumentations s'intègre parfaitement avec YOLO26 et s'applique automatiquement pendant l'entraînement si tu as installé le paquet. Voici comment commencer :
# 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)L'intégration inclut 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.
Quels sont les avantages clés de l'utilisation d'Albumentations par rapport aux autres bibliothèques d'augmentation ?
Albumentations se distingue pour plusieurs raisons :
- Performance : Construit sur OpenCV et NumPy avec optimisation SIMD pour une vitesse supérieure
- Flexibilité : Prend en charge plus de 70 transformations couvrant 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 étendue empêche la corruption silencieuse des données
- Facilité d'utilisation : Une API unique unifiée pour tous les types d'augmentation
Quels types de tâches de vision par ordinateur peuvent bénéficier de l'augmentation par Albumentations ?
Albumentations améliore diverses tâches de vision par ordinateur, notamment :
- Détection d'objets : Améliore la robustesse du modèle aux variations d'éclairage, d'échelle et d'orientation
- Segmentation d'instances : Améliore la précision de la prédiction des masques grâce à des transformations diverses
- Classification : Augmente la généralisation du modèle avec des 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
Les diverses options d'augmentation de la bibliothèque la rendent précieuse pour toute tâche de vision nécessitant des performances de modèle robustes.