Passer au contenu

Améliorer votre ensemble de données pour entraîner YOLO11 en utilisant Albumentations

Lorsque vous créez des modèles de vision par ordinateur, la qualité et la variété de vos données d'entraînement peuvent jouer un rôle important dans les performances de votre 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 votre modèle à s'adapter aux scénarios du monde réel. Il s'intègre facilement à Ultralytics YOLO11 et peut vous aider à créer des ensembles de données robustes pour les tâches de détection d'objets, de segmentation et de classification.

En utilisant Albumentations, vous pouvez améliorer vos données d'entraînement YOLO11 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 votre processus d'augmentation des données et rendre vos projets YOLO11 encore plus percutants. Commençons !

Albumentations pour l'augmentation d'images

Albumentations est une bibliothèque d’augmentation d’images open source créée en juin 2018. Elle est conçue pour simplifier et accélérer le processus d’augmentation d’images dans le domaine de la vision par ordinateur. Créée dans un souci de performance et de flexibilité, elle prend en charge de nombreuses techniques d’augmentation diverses, allant 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 ensembles 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.

Vous pouvez utiliser Albumentations pour appliquer facilement des augmentations aux images, aux masques de segmentation, aux boîtes englobantes et aux points clés, et vous assurer que tous les éléments de votre jeu de données sont transformés ensemble. Il fonctionne de manière transparente avec les frameworks d'apprentissage profond populaires comme PyTorch et TensorFlow, le rendant accessible à un large éventail de projets.

De plus, Albumentations est une excellente option pour l'augmentation, que vous traitiez des petits ensembles de données ou des tâches de vision par ordinateur à grande échelle. Il assure un traitement rapide et efficace, réduisant ainsi le temps consacré à la préparation des données. Parallèlement, il contribue à améliorer les performances du modèle, ce qui rend vos modèles plus efficaces dans les applications du monde réel.

Principales caractéristiques d'Albumentations

Albumentations offre 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 des principales fonctionnalités :

  • Large éventail de transformations : Albumentations offre plus de 70 transformations différentes, y compris des changements géométriques (p. ex. rotation, retournement), des ajustements de couleur (p. ex. luminosité, contraste) et l’ajout de bruit (p. ex. bruit gaussien). Le fait d’avoir plusieurs options permet la création d’ensembles de données d’entraînement très diversifiés et robustes.

Exemple d'augmentations d'image

  • Optimisation de 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 de grands ensembles 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. Pendant ce temps, l’image et ses éléments, comme les masques et les boîtes englobantes, sont transformés à l’aide de transformations au niveau spatial. De plus, les transformations au niveau du mélange sont une façon unique d’augmenter les données, car elles combinent plusieurs images en une seule.

Aperçu des différents niveaux d'augmentations

  • Résultats de benchmarking : En matière de benchmarking, Albumentations surpasse systématiquement les autres bibliothèques, en particulier avec les grands ensembles de données.

Pourquoi devriez-vous utiliser Albumentations pour vos projets d'IA de vision ?

En ce qui concerne l'augmentation d'images, Albumentations se distingue comme un outil fiable pour les tâches de vision par ordinateur. Voici quelques raisons clés pour lesquelles vous devriez envisager de l'utiliser pour vos projets d'IA de vision :

  • 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 ensembles de données, ce qui rend la préparation des données plus simple et plus efficace.

  • Tests de bogues rigoureux : Les bogues dans le pipeline d'augmentation peuvent corrompre silencieusement les données d'entrée, passant souvent inaperçus, mais finissant par dégrader les performances du modèle. Albumentations résout ce problème grâce à une suite de tests approfondie qui permet de détecter les bogues dès le début du 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 avec des transformations intégrées.

Comment utiliser Albumentations pour augmenter les données pour l'entraînement de YOLO11

Maintenant que nous avons vu ce qu'est Albumentations et ce qu'il peut faire, regardons comment l'utiliser pour augmenter vos données pour l'entraînement du modèle YOLO11. Il est facile à configurer car il s'intègre directement dans le mode d'entraînement d'Ultralytics et s'applique automatiquement si vous avez le package Albumentations installé.

Installation

Pour utiliser Albumentations avec YOLO11, commencez par vous assurer 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 configuré, vous serez prêt à créer un ensemble de données augmenté pour l'entraînement, avec Albumentations intégré pour améliorer automatiquement votre modèle.

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 packages requis pour YOLO11, consultez notre guide des problèmes courants pour obtenir des solutions et des conseils.

Utilisation

Après avoir installé les packages nécessaires, vous êtes prêt à commencer à utiliser Albumentations avec YOLO11. Lorsque vous entraînez YOLO11, un ensemble d'augmentations est automatiquement appliqué grâce à son intégration avec Albumentations, ce qui facilite l'amélioration des performances de votre modèle.

Utilisation

from ultralytics import YOLO

# Load a pre-trained model
model = YOLO("yolo11n.pt")

# Train the model
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.

Flou

La transformation Blur dans Albumentations applique un effet de flou simple à l'image en faisant la moyenne des valeurs des pixels dans une petite zone carrée, ou noyau. Ceci est réalisé en utilisant OpenCV cv2.blur fonction, qui aide à réduire le bruit dans l'image, bien qu'elle réduise également légèrement les détails de l'image.

Voici les paramètres et les valeurs utilisés dans cette intégration :

  • blur_limit : Ceci 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 uniquement des nombres impairs autorisés pour maintenir le flou centré.

  • p : Probabilité d'application du flou. Dans l'intégration, p = 0,01, il y a donc 1 % de chance que ce flou soit appliqué à chaque image. Cette faible probabilité permet d'obtenir des effets de flou occasionnels, ce qui introduit une certaine variation pour aider le modèle à généraliser sans trop flouter les images.

Un exemple d'augmentation de flou

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 typiques, MedianBlur utilise un filtre médian, qui est particulièrement efficace pour supprimer le bruit poivre et sel tout en maintenant la netteté autour des bords.

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, il est par défaut défini 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 uniquement des valeurs impaires autorisées pour assurer un alignement correct.

  • p : Définit la probabilité d'application du flou médian. Ici, p=0,01, donc la transformation a 1 % de chances d'être appliquée à chaque image. Cette faible probabilité garantit que le flou médian est utilisé avec parcimonie, ce qui aide 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.

Un exemple d'augmentation de flou médian

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é en 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 les 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 reproduit pour créer une image en niveaux de gris multicanal. Par défaut, il est défini sur 3, ce qui donne 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 correspond étroitement à la perception humaine, offrant un effet de niveaux de gris d'aspect naturel. D'autres options, telles que "from_lab", "desaturation", "average", "max" et "pca", offrent d'autres moyens de créer des images en niveaux de gris en fonction des différents 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, il y a 1 % de chances de convertir chaque image en niveaux de gris, ce qui permet à un mélange d'images 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.

Un exemple d'augmentation ToGray

Égalisation d'histogramme adaptative limitée au contraste (CLAHE)

La transformation CLAHE dans Albumentations applique l'égalisation adaptative limitée du contraste par histogramme (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'ensemble de l'image. CLAHE produit un effet d'amélioration équilibré, évitant le contraste trop amplifié qui peut résulter d'une égalisation d'histogramme standard, en particulier dans les zones à faible contraste initial.

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éfinie sur une plage par défaut de (1, 4), elle détermine le contraste maximal autorisé dans chaque tuile. Des valeurs plus élevées sont utilisées pour plus 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. Les tailles de tuiles plus petites offrent des ajustements plus localisés, tandis que les 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.

Un exemple d'augmentation CLAHE

Continuez à apprendre sur Albumentations

Si vous souhaitez en savoir plus sur Albumentations, consultez les ressources suivantes pour obtenir des instructions et des exemples plus détaillés :

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

  • Guide d’Ultralytics Albumentations : Examinez de plus près les détails de la fonction qui facilite cette intégration.

  • Dépôt GitHub Albumentations : Le dépôt comprend des exemples, des benchmarks et des discussions pour vous 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 son large éventail de transformations, de ses performances optimisées et de la façon dont vous pouvez l'utiliser dans votre prochain projet YOLO11.

De plus, si vous souhaitez en savoir plus sur les autres intégrations Ultralytics YOLO11, consultez notre page de guide d'intégration. Vous y trouverez de précieuses ressources et informations.

FAQ

Comment puis-je intégrer Albumentations avec YOLO11 pour une augmentation de données améliorée ?

Albumentations s'intègre parfaitement à YOLO11 et s'applique automatiquement pendant l'entraînement si le paquet est installé. Voici comment démarrer :

# 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)

L'intégration comprend des augmentations optimisées telles que le flou, le flou médian, la conversion en niveaux de gris et le CLAHE avec des probabilités soigneusement ajustées pour améliorer les performances du modèle.

Quels sont les principaux avantages de l'utilisation d'Albumentations par rapport à d'autres bibliothèques d'augmentation ?

Albumentations se distingue pour plusieurs raisons :

  1. Performance : Construit sur OpenCV et NumPy avec optimisation SIMD pour une vitesse supérieure
  2. Flexibilité : Prend en charge plus de 70 transformations à travers les augmentations de niveau pixel, de niveau spatial et de niveau de mélange
  3. Compatibilité : fonctionne de manière transparente avec les frameworks populaires tels que PyTorch et TensorFlow
  4. Fiabilité : une suite de tests exhaustive empêche la corruption silencieuse des données.
  5. Facilité d'utilisation : API unifiée unique pour tous les types d'augmentation

Quels types de tâches de vision par ordinateur peuvent bénéficier de l’augmentation Albumentations ?

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'instance : améliore la précision de la prédiction de masque grâce à diverses transformations
  • Classification : Augmente la généralisation du modèle avec des augmentations de couleur et géométriques
  • Estimation de la 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 précieuse pour toute tâche de vision nécessitant des performances de modèle robustes.



📅 Créé il y a 9 mois ✏️ Mis à jour il y a 2 mois

Commentaires