Améliorez votre ensemble de données pour former YOLO11 à l'aide d'Albumentations
Lorsque vous construisez 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 la performance de votre modèle. Albumentations offre un moyen rapide, flexible et efficace d'appliquer une large gamme 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 la détection d'objets, la segmentation et les tâches de classification.
En utilisant Albumentations, vous pouvez augmenter vos données de formation 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 projetsYOLO11 encore plus percutants. C'est parti !
Albumentations pour l'amélioration des 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'image en vision par ordinateur. Créée dans un souci de performance et de 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 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 de délimitation et aux points clés, et vous assurer que tous les éléments de votre jeu de données sont transformés ensemble. Albumentations fonctionne de manière transparente avec les frameworks d'apprentissage profond les plus répandus, tels que PyTorch et TensorFlowce qui le rend accessible à un large éventail de projets.
Albumentations est également une excellente option pour l'augmentation, que vous traitiez de petits ensembles de données ou des tâches de vision par ordinateur à grande échelle. Il garantit un traitement rapide et efficace, réduisant le temps consacré à la préparation des données. En même temps, il contribue à améliorer les performances des modèles, ce qui les rend plus efficaces dans les applications du monde réel.
Caractéristiques principales des Albumentations
Albumentations offre de nombreuses fonctionnalités utiles qui simplifient les augmentations d'images complexes pour une large gamme d'applications de vision par ordinateur. Voici quelques-unes de ces fonctionnalités :
- Large gamme de transformations: Albumentations propose plus de 70 transformations différentes, y compris des changements géométriques (par exemple, rotation, retournement), des ajustements de couleur (par exemple, luminosité, contraste) et l'ajout de bruit (par exemple, bruit gaussien). La multiplicité des options permet de créer des ensembles de données d'entraînement très diversifiés et robustes.
-
Optimisation de haute performance: Construit sur OpenCV et NumPy, Albumentations utilise des techniques d'optimisation avancées telles que SIMD (Single Instruction, Multiple Data), qui traite plusieurs points de données simultanément afin d'accélérer le traitement. Il traite 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 de l'espace et les transformations au niveau du mélange. Les transformations au niveau du pixel n'affectent que les images d'entrée sans modifier les masques, les boîtes de délimitation ou les points clés. En revanche, l'image et ses éléments, tels que les masques et les boîtes de délimitation, sont transformés à l'aide de transformations au niveau de l'espace. En outre, les transformations au niveau du mélange constituent un moyen unique d'augmenter les données en combinant plusieurs images en une seule.
- Résultats de l'évaluation comparative: Lorsqu'il s'agit d'effectuer des analyses comparatives, Albumentations surpasse systématiquement les autres bibliothèques, en particulier avec les grands ensembles de données.
Pourquoi faire appel Ă Albumentations pour vos projets d'IA de la 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 pour lesquelles vous devriez envisager de l'utiliser pour vos projets de vision artificielle :
-
API facile à utiliser: Albumentations propose une API unique et simple pour appliquer une large gamme d'augmentations aux images, aux masques, aux boîtes de délimitation et aux 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.
-
Test rigoureux des bogues: Les bogues 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 s'attaque à ce problème grâce à une suite de tests complète qui permet de détecter les bogues dès le début du développement.
-
Extensibilité: Les albumentations peuvent être utilisées pour ajouter facilement de nouvelles augmentations et les utiliser dans des pipelines de vision par ordinateur au moyen d'une interface unique et de transformations intégrées.
Comment utiliser les albumentations pour enrichir les données de la formation YOLO11
Maintenant que nous avons vu ce qu'est Albumentations et ce qu'il peut faire, voyons comment l'utiliser pour augmenter vos données pour l'entraînement au modèle YOLO11 . Il est facile à mettre en place car il s'intègre directement dans le mode d'entraînement deUltralytics et s'applique automatiquement si vous avez installé le paquet Albumentations.
Installation
Pour utiliser Albumentations avec YOLO11, commencez par vous assurer que les paquets nécessaires sont installés. Si Albumentations n'est pas installé, les augmentations ne seront pas appliquées pendant l'entraînement. Une fois installé, vous serez prêt à créer un jeu de données augmenté pour l'entraînement, avec Albumentations intégré pour améliorer votre modèle automatiquement.
Pour des instructions détaillées et les meilleures pratiques liées au processus d'installation, consultez notre guide d'installationUltralytics . Lors de l'installation des paquets requis pour YOLO11, si vous rencontrez des difficultés, consultez notre guide des problèmes courants pour obtenir des solutions et des conseils.
Utilisation
Après avoir installé les paquets nécessaires, vous êtes prêt à 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 permet d'améliorer facilement les performances de votre modèle.
Utilisation
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 à l'intérieur d'une petite zone carrée, ou noyau. Cette opération est réalisée à l'aide de la fonction cv2.blur
qui permet de réduire le bruit dans l'image, tout en réduisant légèrement les détails de l'image.
Voici les paramètres et les valeurs utilisés dans cette intégration :
-
blur_limit: Ce paramètre contrôle la taille de l'effet de flou. La valeur par défaut est (3, 7), ce qui signifie que la taille du noyau de l'effet de flou peut varier entre 3 et 7 pixels, seuls les nombres impairs étant autorisés pour que l'effet de flou reste centré.
-
p: La probabilité d'appliquer le flou. Dans l'intégration, p=0,01, il y a donc 1 % de chances que ce flou soit appliqué à chaque image. La faible probabilité permet d'obtenir des effets de flou occasionnels, en introduisant un peu de variation pour aider le modèle à se généraliser sans trop brouiller 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 contours. Contrairement aux méthodes de flou habituelles, MedianBlur utilise un filtre médian, qui est particulièrement efficace pour supprimer le bruit de type "poivre et sel" 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, il prend par défaut une valeur comprise entre 3 et 7, ce qui signifie que la taille du noyau de flou est choisie au hasard 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, de sorte que 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 à 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.
Niveaux de gris
La transformation ToGray dans Albumentations convertit une image en niveaux de gris, en la réduisant à un format à un seul canal et en répliquant éventuellement ce canal pour qu'il corresponde à 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 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 de niveaux de gris unique sera répliqué pour créer une image de niveaux de gris multicanaux. Par défaut, cette valeur est fixée à 3, ce qui donne une image en niveaux de gris avec trois canaux identiques.
-
méthode: Définit la méthode de conversion des niveaux de gris. La méthode par défaut, "weighted_average", applique une formule (0,299R + 0,587G + 0,114B) qui correspond à la perception humaine et donne un effet naturel aux niveaux de gris. 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 de divers besoins de rapidité, 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 rend possible un mélange d'images en 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.
Égalisation adaptative d'histogramme à contraste limité (CLAHE)
La transformation CLAHE dans Albumentations applique l'égalisation d'histogramme adaptative limitée au 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'égaliser sur l'ensemble de l'image. CLAHE produit un effet d'amélioration équilibré, évitant l'amplification excessive du contraste qui peut résulter de l'égalisation standard de l'histogramme, en particulier dans les zones où le contraste est initialement faible.
Voici les paramètres et les valeurs utilisés dans cette intégration :
-
clip_limit: contrôle la plage d'amélioration du contraste. Réglé sur une valeur 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 augmenter le 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 de (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 petites tailles de tuiles permettent 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 n'introduit l'effet d'amélioration que dans 1 % des cas, ce qui garantit que les ajustements de contraste sont appliqués avec parcimonie pour les variations occasionnelles dans les images d'apprentissage.
L'image ci-dessous montre un exemple de la transformation CLAHE appliquée.
Continuer Ă apprendre sur les albuminations
Si vous souhaitez en savoir plus sur les albuminations, consultez les ressources suivantes pour obtenir des instructions et des exemples plus détaillés :
-
Albumentations Documentation: La documentation officielle fournit une gamme complète des transformations supportées et des techniques d'utilisation avancées.
-
Ultralytics Guide des Albumentations: Examinez de plus près les détails de la fonction qui facilitent cette intégration.
-
Dépôt GitHub Albumentations: Le dépôt comprend des exemples, des benchmarks et des discussions pour vous aider à commencer à personnaliser les augmentations.
Principaux enseignements
Dans ce guide, nous avons exploré les aspects clés 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 manière dont vous pouvez l'utiliser dans votre prochain projet YOLO11 .
Par ailleurs, si vous souhaitez en savoir plus sur d'autres intégrations de Ultralytics YOLO11 , visitez notre page de guide d'intégration. Vous y trouverez des ressources et des informations précieuses.
FAQ
Comment puis-je intégrer Albumentations à YOLO11 pour améliorer l'enrichissement des données ?
Albumentations s'intègre parfaitement à YOLO11 et s'applique automatiquement pendant la formation si le logiciel est installé sur votre ordinateur. Voici comment commencer :
# 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 réglé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 :
- Performance : Construit sur OpenCV et NumPy avec une optimisation SIMD pour une vitesse supérieure
- Flexibilité : Prise en charge de plus de 70 transformations au niveau des pixels, de l'espace et du mélange.
- Compatibilité : Fonctionne de manière transparente avec des frameworks populaires tels que PyTorch et TensorFlow
- Fiabilité : Une suite de tests étendue permet d'éviter toute corruption silencieuse des données.
- Facilité d'utilisation : API unique et unifiée pour tous les types d'augmentation
Quels types de tâches de vision par ordinateur peuvent bénéficier de l'augmentation d'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 des instances: 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 grâce aux couleurs et aux augmentations géométriques
- Estimation de la pose: Aide les modèles à s'adapter aux 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 un modèle robuste.