Documents | Discorde | Twitter | LinkedIn
Albumentations est une bibliothèque Python pour l'augmentation d'images. L'augmentation d'image est utilisée dans les tâches d'apprentissage en profondeur et de vision par ordinateur pour augmenter la qualité des modèles formés. Le but de l’augmentation d’image est de créer de nouveaux échantillons d’entraînement à partir des données existantes.
Voici un exemple de la façon dont vous pouvez appliquer des augmentations au niveau des pixels à partir d'Albumentations pour créer de nouvelles images à partir de l'original :
Prise en charge complète de la vision par ordinateur : fonctionne avec toutes les principales tâches de CV, notamment la classification, la segmentation (sémantique et instance), la détection d'objets et l'estimation de pose.
API simple et unifiée : une interface cohérente pour tous les types de données : images RVB/niveaux de gris/multispectrales, masques, cadres de délimitation et points clés.
Bibliothèque d'augmentations riche : plus de 70 augmentations de haute qualité pour améliorer vos données d'entraînement.
Rapide : constamment considérée comme la bibliothèque d'augmentation la plus rapide, avec des optimisations pour une utilisation en production.
Intégration du Deep Learning : fonctionne avec PyTorch, TensorFlow et d'autres frameworks. Une partie de l'écosystème PyTorch.
Créé par des experts : construit par des développeurs possédant une expérience approfondie des compétitions de vision par ordinateur et d'apprentissage automatique.
Albumentations prospère grâce aux contributions des développeurs. Nous apprécions nos sponsors qui aident à maintenir l'infrastructure du projet.
? Commanditaires Or |
---|
Votre entreprise pourrait être ici |
? Commanditaires Argent |
---|
? Commanditaires Bronze |
---|
Votre parrainage est une façon de dire « merci » aux responsables et contributeurs qui passent leur temps libre à construire et à maintenir Albumentations. Les sponsors sont présentés sur notre site Web et dans README. Afficher les niveaux de parrainage sur les sponsors GitHub
Albumentations
Informations système
Paramètres de référence
Versions de la bibliothèque
Segmentation sémantique sur le jeu de données Inria
Imagerie médicale
Détection d'objets et segmentation sémantique sur le jeu de données Mapillary Vistas
Augmentation des points clés
Transformations au niveau du pixel
Transformations au niveau spatial
Voir aussi
Je suis nouveau dans l'augmentation d'image
Je souhaite utiliser Albumentations pour une tâche spécifique telle que la classification ou la segmentation
Je veux savoir comment utiliser Albumentations avec des frameworks de deep learning
Je veux explorer les augmentations et voir les Albumentations en action
Responsable actuel
Membres émérites de l’équipe principale
? Devenez parrain
Pourquoi les albumentations
Projet communautaire, soutenu par
Table des matières
Auteurs
Installation
Documentation
Un exemple simple
Commencer
Qui utilise Albumentations
Liste des augmentations
Quelques autres exemples d' augmentations
Résultats de l'analyse comparative
Comparaison des performances
Contribuer
Communauté
Citer
Vladimir I. Iglovikov | Grand Maître Kaggle
Mikhaïl Droujinine | Expert Kaggle
Alex Parinov | Maître Kaggle
Alexandre Bouslaev | Maître Kaggle
Eugène Khvedchenya | Grand Maître Kaggle
Albumentations nécessite Python 3.9 ou supérieur. Pour installer la dernière version de PyPI :
pip install -U albumentations
D'autres options d'installation sont décrites dans la documentation.
La documentation complète est disponible sur https://albumentations.ai/docs/ .
importer des albumentations comme Aimport cv2# Déclarer une augmentation pipelinetransform = A.Compose([A.RandomCrop(width=256, height=256),A.HorizontalFlip(p=0.5),A.RandomBrightnessContrast(p=0.2), ])# Lire une image avec OpenCV et la convertir en espace colorimétrique RVBimage = cv2.imread("image.jpg")image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)# Augmenter une imagetransformed = transform(image=image)transformed_image = transformé["image"]
Veuillez commencer par les articles d'introduction expliquant pourquoi l'augmentation d'image est importante et comment elle aide à créer de meilleurs modèles.
Si vous souhaitez utiliser Albumentations pour une tâche spécifique telle que la classification, la segmentation ou la détection d'objets, reportez-vous à l'ensemble d'articles qui contiennent une description détaillée de cette tâche. Nous avons également une liste d'exemples d'application d'Albumentations pour différents cas d'utilisation.
Nous avons des exemples d'utilisation d'Albumentations avec PyTorch et TensorFlow.
Consultez la démo en ligne de la bibliothèque. Avec lui, vous pouvez appliquer des augmentations à différentes images et voir le résultat. Nous avons également une liste de toutes les augmentations disponibles et de leurs cibles.
Une liste d'articles qui citent Albumentations.
Projets open source qui utilisent Albumentations.
Les transformations au niveau des pixels modifieront uniquement une image d'entrée et laisseront inchangées toutes les cibles supplémentaires telles que les masques, les cadres de délimitation et les points clés. La liste des transformations au niveau du pixel :
AdditifBruit
AvancéFlou
Contraste automatique
Se brouiller
CLAHÉ
CanalAbandon
Mélange de chaînes
Aberration Chromatique
CouleurJitter
Défocalisation
Réduire l'échelle
Gaufrer
Égaliser
FDA
FantaisiePCA
DeFlotteur
GaussBruit
Flou gaussien
VerreFlou
Correspondance d'histogramme
Valeur de saturation de la teinte
ISONbruit
Éclairage
Compression d'image
InverserImg
Flou médian
Flou de mouvement
Bruit multiplicatif
Normaliser
PixelDistributionAdaptation
Gigue planckienne
PlasmaLuminositéContraste
PlasmaOmbre
Postériser
Changement RVB
AléatoireLuminositéContraste
Brouillard aléatoire
Gamma aléatoire
AléatoireGravier
Pluie aléatoire
Ombre aléatoire
AléatoireNeige
AléatoireSunFlare
Courbe de tonalité aléatoire
SonnerieDépassement
SelEtPoivre
Aiguiser
Bruit de tir
Solariser
Éclabousser
Superpixels
Transformation de modèle
ImageTexte
ÀFlotter
VersGris
VersRVB
VersSepia
Masque flou
ZoomFlou
Les transformations au niveau spatial modifieront simultanément à la fois une image d’entrée ainsi que des cibles supplémentaires telles que des masques, des cadres de délimitation et des points clés. Le tableau suivant montre quelles cibles supplémentaires sont prises en charge par chaque transformation.
Transformer | Image | Masque | BBoxes | Points clés |
---|---|---|---|---|
Affine | ✓ | ✓ | ✓ | ✓ |
BBoxSafeRandomCrop | ✓ | ✓ | ✓ | ✓ |
CentreCrop | ✓ | ✓ | ✓ | ✓ |
GrossierAbandon | ✓ | ✓ | ✓ | ✓ |
Recadrer | ✓ | ✓ | ✓ | ✓ |
RecadrerEtPad | ✓ | ✓ | ✓ | ✓ |
CropNonEmptyMaskIfExists | ✓ | ✓ | ✓ | ✓ |
D4 | ✓ | ✓ | ✓ | ✓ |
Transformation élastique | ✓ | ✓ | ✓ | ✓ |
Effacement | ✓ | ✓ | ✓ | ✓ |
Masquage de fréquence | ✓ | ✓ | ✓ | ✓ |
Distorsion de grille | ✓ | ✓ | ✓ | ✓ |
GrilleDécrochage | ✓ | ✓ | ✓ | ✓ |
GrilleElasticDeform | ✓ | ✓ | ✓ | ✓ |
Retournement horizontal | ✓ | ✓ | ✓ | ✓ |
Lambda | ✓ | ✓ | ✓ | ✓ |
Taille maximale la plus longue | ✓ | ✓ | ✓ | ✓ |
MasqueAbandon | ✓ | ✓ | ✓ | ✓ |
Morphologique | ✓ | ✓ | ✓ | ✓ |
NonOp | ✓ | ✓ | ✓ | ✓ |
Distorsion Optique | ✓ | ✓ | ✓ | ✓ |
Éléments de superposition | ✓ | ✓ | ||
Tampon | ✓ | ✓ | ✓ | ✓ |
PadSi Nécessaire | ✓ | ✓ | ✓ | ✓ |
Perspective | ✓ | ✓ | ✓ | ✓ |
Par morceauxAffine | ✓ | ✓ | ✓ | ✓ |
PixelDécrochage | ✓ | ✓ | ✓ | ✓ |
Recadrage aléatoire | ✓ | ✓ | ✓ | ✓ |
RandomCropFromBorders | ✓ | ✓ | ✓ | ✓ |
RandomCropNearBBox | ✓ | ✓ | ✓ | ✓ |
RandomGridShuffle | ✓ | ✓ | ✓ | ✓ |
RecadrageRedimensionnéAléatoire | ✓ | ✓ | ✓ | ✓ |
Rotation aléatoire90 | ✓ | ✓ | ✓ | ✓ |
Échelle aléatoire | ✓ | ✓ | ✓ | ✓ |
RandomSizedBBoxSafeCrop | ✓ | ✓ | ✓ | ✓ |
Recadrage de taille aléatoire | ✓ | ✓ | ✓ | ✓ |
Redimensionner | ✓ | ✓ | ✓ | ✓ |
Tourner | ✓ | ✓ | ✓ | ✓ |
Rotation sûre | ✓ | ✓ | ✓ | ✓ |
MajÉchelleRotation | ✓ | ✓ | ✓ | ✓ |
Plus petite taille maximale | ✓ | ✓ | ✓ | ✓ |
ThinPlateSpline | ✓ | ✓ | ✓ | ✓ |
Masquage temporel | ✓ | ✓ | ✓ | ✓ |
TempsInverse | ✓ | ✓ | ✓ | ✓ |
Transposer | ✓ | ✓ | ✓ | ✓ |
Retournement vertical | ✓ | ✓ | ✓ | ✓ |
Masquage XY | ✓ | ✓ | ✓ | ✓ |
Plateforme : macOS-15.0.1-arm64-arm-64bit
Processeur : bras
Nombre de processeurs : 10
Version Python : 3.12.7
Nombre d'images : 1000
Exécutions par transformation : 10
Itérations d'échauffement maximales : 1 000
albumentations : 1.4.20
août : 1.0.0
image: 0.4.0
couronne : 0,7,3
vision de la torche : 0.20.0
Nombre : correspond au nombre d'images RVB uint8 traitées par seconde sur un seul cœur de processeur. Plus haut, c'est mieux.
Transformer | albumentations 1.4.20 | août 1.0.0 | imgaug 0.4.0 | couronne 0.7.3 | vision de la torche 0.20.0 |
---|---|---|---|---|---|
Retournement horizontal | 8618 ± 1233 | 4807 ± 818 | 6042 ± 788 | 390 ± 106 | 914 ± 67 |
Retournement vertical | 22847 ± 2031 | 9153 ± 1291 | 10931 ± 1844 | 1212 ± 402 | 3198 ± 200 |
Tourner | 1146 ± 79 | 1119 ± 41 | 1136 ± 218 | 143 ± 11 | 181 ± 11 |
Affine | 682 ± 192 | - | 774 ± 97 | 147 ± 9 | 130 ± 12 |
Égaliser | 892 ± 61 | - | 581 ± 54 | 152 ± 19 | 479 ± 12 |
Culture aléatoire80 | 47341 ± 20523 | 25272 ± 1822 | 11503 ± 441 | 1510 ± 230 | 32109 ± 1241 |
MajRVB | 2349 ± 76 | - | 1582 ± 65 | - | - |
Redimensionner | 2316 ± 166 | 611 ± 78 | 1806 ± 63 | 232 ± 24 | 195 ± 4 |
Gamma aléatoire | 8675 ± 274 | - | 2318 ± 269 | 108 ± 13 | - |
Niveaux de gris | 3056 ± 47 | 2720 ± 932 | 1681 ± 156 | 289 ± 75 | 1838 ± 130 |
Perspective aléatoire | 412 ± 38 | - | 554 ± 22 | 86 ± 11 | 96 ± 5 |
Flou gaussien | 1728 ± 89 | 242 ± 4 | 1090 ± 65 | 176 ± 18 | 79 ± 3 |
Flou médian | 868 ± 60 | - | 813 ± 30 | 5 ± 0 | - |
Flou de mouvement | 4047 ± 67 | - | 612 ± 18 | 73 ± 2 | - |
Postériser | 9094 ± 301 | - | 2097 ± 68 | 430 ± 49 | 3196 ± 185 |
CompressionJpeg | 918 ± 23 | 778 ± 5 | 459 ± 35 | 71 ± 3 | 625 ± 17 |
Bruit gaussien | 166 ± 12 | 67 ± 2 | 206 ± 11 | 75 ± 1 | - |
Élastique | 201 ± 5 | - | 235 ± 20 | 1 ± 0 | 2 ± 0 |
Clahé | 454 ± 22 | - | 335 ± 43 | 94 ± 9 | - |
GrossierAbandon | 13368 ± 744 | - | 671 ± 38 | 536 ± 87 | - |
Se brouiller | 5267 ± 543 | 246 ± 3 | 3807 ± 325 | - | - |
CouleurJitter | 628 ± 55 | 255 ± 13 | - | 55 ± 18 | 46 ± 2 |
Luminosité | 8956 ± 300 | 1163 ± 86 | - | 472 ± 101 | 429 ± 20 |
Contraste | 8879 ± 1426 | 736 ± 79 | - | 425 ± 52 | 335 ± 35 |
RecadrageRedimensionnéAléatoire | 2828 ± 186 | - | - | 287 ± 58 | 511 ± 10 |
Normaliser | 1196 ± 56 | - | - | 626 ± 40 | 519 ± 12 |
PlankianJitter | 2204 ± 385 | - | - | 813 ± 211 | - |
Pour créer une pull request vers le référentiel, suivez la documentation sur CONTRIBUTING.md
Gazouillement
Discorde
Si vous trouvez cette bibliothèque utile pour votre recherche, pensez à citer Albumentations : augmentations d'images rapides et flexibles :
@Article{info11020125,AUTHOR = {Buslaev, Alexander et Iglovikov, Vladimir I. et Khvedchenya, Eugene et Parinov, Alex et Druzhinin, Mikhail et Kalinin, Alexandr A.},TITLE = {Albumentations : augmentations d'images rapides et flexibles},JOURNAL = {Informations},VOLUME = {11},ANNÉE = {2020},NOMBRE = {2}, NUMÉRO D'ARTICLE = {125}, URL = {https://www.mdpi.com/2078-2489/11/2/125}, ISSN = {2078-2489}, DOI = {10.3390/info11020125 }}