YOLO Vision 2026 :

Améliore ton jeu de données pour entraîner YOLO26 avec Albumentations#

Quand tu construis des computer vision models, la qualité et la variété de tes training data 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 qui peuvent améliorer la capacité de ton modèle à s'adapter à des scénarios du monde réel. Il s'intègre facilement avec Ultralytics YOLO26 et peut t'aider à créer des jeux de données robustes pour des tâches de object detection, segmentation et classification.

En utilisant Albumentations, tu peux booster 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 allons voir comment Albumentations peut améliorer ton processus de data augmentation et rendre tes YOLO26 projects 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 June 2018. Elle est conçue pour simplifier et accélérer le processus d'augmentation d'images en computer vision. Conçue avec le souci de la performance et de la flexibilité, elle prend en charge de nombreuses techniques d'augmentation diverses, allant de transformations simples comme les rotations et les retournements à des ajustements plus complexes comme les modifications 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 image classification, object detection et segmentation.

Tu peux utiliser Albumentations pour appliquer facilement des augmentations aux images, segmentation masks, bounding boxes et key points, et t'assurer que tous les éléments de ton jeu de données sont transformés ensemble. Il fonctionne de manière transparente avec des frameworks de deep learning populaires comme PyTorch et TensorFlow, ce qui le rend accessible pour un large éventail de projets.

De plus, Albumentations est une excellente option pour l'augmentation, que tu gères de petits jeux de données ou des computer vision tasks à grande échelle. Il garantit un traitement rapide et efficace, réduisant le temps passé sur la préparation des données. En même temps, il aide à améliorer les model performance, rendant tes modèles plus efficaces dans des applications du monde réel.

Caractéristiques clés d'Albumentations#

Albumentations offre de nombreuses fonctionnalités utiles qui simplifient les augmentations d'images complexes pour un large éventail de computer vision applications. Voici quelques-unes des fonctionnalités clés :

  • Large éventail de transformations : Albumentations propose plus de 70 different transformations, y compris des modifications géométriques (par ex., rotation, retournement), des ajustements de couleur (par ex., luminosité, contraste) et l'ajout de bruit (par ex., bruit gaussien). Disposer de multiples options permet de créer des jeux de données d'entraînement hautement diversifiés et robustes.

Albumentations augmentation examples

  • Optimisation des hautes performances : 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, 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 n'affectent que les images d'entrée sans altérer 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 à l'aide des transformations au niveau spatial. De plus, les transformations au niveau du mélange sont un moyen unique d'augmenter les données car elles combinent plusieurs images en une seule.

Overview of the Different Levels of Augmentations

  • Benchmarking Results : En matière de benchmarks, Albumentations surpasse constamment les autres bibliothèques, en particulier avec de grands jeux de données.

Pourquoi devrais-tu utiliser Albumentations pour tes projets de Vision AI ?#

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 de Vision AI :

  • API facile à utiliser : Albumentations fournit une API unique et simple pour appliquer un large éventail 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 data preparation plus simple et plus efficace.

  • Tests rigoureux contre les bugs : 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 résout ce problème avec une suite de tests complète 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 vu 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. Sa configuration est simple car il s'intègre directement dans le Ultralytics' training mode et s'applique automatiquement si tu as installé le paquet Albumentations.

Installation#

Pour utiliser Albumentations avec YOLO26, commence par t'assurer que tu as les packages nécessaires installés. 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.

Installation
# Install the required packages
pip install albumentations ultralytics

Pour des instructions détaillées et les meilleures pratiques relatives au processus d'installation, consultez notre guide d'installation Ultralytics. Si vous rencontrez des difficultés lors de l'installation des paquets requis pour YOLO26, consultez 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 plus récente, et par conséquent Python 3.9 ou une version plus récente.

Utilisation#

Après avoir installé les packages nécessaires, tu es prêt à commencer à utiliser Albumentations avec YOLO26. Lorsque tu entraînes YOLO26, une série d'augmentations est automatiquement appliquée grâce à son intégration avec Albumentations, ce qui facilite l'amélioration des performances de ton modèle.

Utilisation
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 moyennant les valeurs des pixels dans une petite zone carrée, ou noyau. Cela se fait en utilisant la fonction OpenCV cv2.blur, ce qui aide à réduire le bruit dans l'image, bien que cela réduise également 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 à se généraliser sans trop flouter les images.

Albumentations Blur augmentation result

Median Blur#

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 flou. Dans cette intégration, il est défini 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é garantit que le flou médian est utilisé avec parcimonie, aidant le modèle à se 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.

Albumentations MedianBlur augmentation

Grayscale#

La transformation ToGray dans Albumentations convertit une image en niveaux de gris, la réduisant à un format monocanal 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 selon 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, ce qui permet un mélange d'images couleur et en niveaux de gris pour aider le modèle à mieux se généraliser.

L'image ci-dessous montre un exemple de cette transformation en niveaux de gris appliquée.

Albumentations grayscale conversion

Contrast Limited Adaptive Histogram Equalization (CLAHE)#

La transformation CLAHE dans Albumentations applique une é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) plutôt que sur 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 à faible contraste initial.

Voici les paramètres et 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 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, garantissant 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.

Albumentations CLAHE contrast enhancement

Utilisation de transformations Albumentations personnalisées#

Bien que l'intégration par défaut d'Albumentations offre un ensemble solide d'augmentations, tu peux vouloir personnaliser les transformations pour ton cas d'usage spécifique. Avec Ultralytics YOLO26, tu peux facilement passer des transformations Albumentations personnalisées via l'API Python en utilisant le paramètre augmentations. Les exemples de cette section nécessitent Albumentations 1.4.22 ou une version plus récente.

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 maintenant 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(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,
)

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 défauts : 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 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 à faible luminosité : Accentue l'ajout de bruit et les ajustements de luminosité pour entraîner des modèles robustes à des conditions d'éclairage 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 Albumentations documentation.

Pour des exemples plus détaillés et des bonnes pratiques sur l'utilisation de transformations Albumentations personnalisées avec YOLO26, consulte le YOLO Data Augmentation guide.

Continue d'apprendre sur Albumentations#

Si tu souhaites en savoir plus sur Albumentations, consulte les ressources suivantes pour des instructions et des exemples plus approfondis :

  • Albumentations Documentation : La documentation officielle propose une gamme complète de transformations prises en charge et des techniques d'utilisation avancées.

  • Ultralytics Albumentations Guide : Découvre de plus près les détails de la fonction qui facilitent cette intégration.

  • Albumentations GitHub Repository : Le dépôt comprend des exemples, des benchmarks et des discussions pour t'aider à démarrer avec la personnalisation des 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 façon dont tu peux l'utiliser dans ton prochain projet YOLO26.

De plus, si tu souhaites en savoir plus sur d'autres intégrations Ultralytics YOLO26, visite notre integration guide page. 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 tu as le package installé. 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.

  • Albumentations se distingue pour plusieurs raisons :

    1. Performance : Construit sur OpenCV et NumPy avec une optimisation SIMD pour une vitesse supérieure
    2. Flexibilité : Prend en charge plus de 70 transformations à travers des augmentations au niveau des pixels, spatiales et de mélange
    3. Compatibilité : Fonctionne de manière transparente avec des frameworks populaires comme PyTorch et TensorFlow
    4. Fiabilité : Une suite de tests complète empêche la corruption silencieuse des données
    5. Facilité d'utilisation : API unifiée unique pour tous les types d'augmentations
  • Albumentations améliore diverses computer vision tasks incluant :

    • Object Detection : Améliore la robustesse du modèle face aux variations d'éclairage, d'échelle et d'orientation
    • Instance Segmentation : Améliore la précision de la prédiction des masques grâce à diverses transformations
    • Classification : Accroît la généralisation du modèle avec des augmentations de couleur et géométriques
    • Pose Estimation : 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.

Commentaires