Skip to content

Augmentation des données à l'aide d'Ultralytics YOLO

Exemple d'augmentations d'images

Introduction

L'augmentation des données est une technique cruciale en vision par ordinateur qui élargit artificiellement votre ensemble de données d'entraînement en appliquant diverses transformations aux images existantes. Lors de la formation de modèles d'apprentissage profond comme Ultralytics YOLO, l'augmentation des données permet d'améliorer la robustesse du modèle, de réduire le surajustement et d'améliorer la généralisation aux scénarios du monde réel.

L'importance de l'augmentation des données

L'augmentation des données sert plusieurs objectifs essentiels dans la formation des modèles de vision par ordinateur :

  • Élargissement de l'ensemble de données: En créant des variantes d'images existantes, vous pouvez augmenter efficacement la taille de votre ensemble de données de formation sans collecter de nouvelles données.
  • Une meilleure généralisation: Les modèles apprennent à reconnaître des objets dans différentes conditions, ce qui les rend plus robustes dans les applications du monde réel.
  • Réduction du surajustement: En introduisant de la variabilité dans les données d'apprentissage, les modèles sont moins susceptibles de mémoriser des caractéristiques d'image spécifiques.
  • Amélioration des performances: Les modèles formés avec une augmentation appropriée atteignent généralement une meilleure précision sur les ensembles de validation et de test.

L'implémentation d'Ultralytics YOLO fournit une suite complète de techniques d'augmentation, chacune servant des objectifs spécifiques et contribuant à la performance du modèle de différentes manières. Ce guide explore chaque paramètre d'augmentation en détail, vous aidant à comprendre quand et comment les utiliser efficacement dans vos projets.

Exemples de configuration

Vous pouvez personnaliser chaque paramètre à l'aide de l'API Python , de l'interface de ligne de commandeCLI ou d'un fichier de configuration. Vous trouverez ci-dessous des exemples de configuration de l'augmentation des données pour chaque méthode.

Exemples de configuration

from ultralytics import YOLO

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

# Training with custom augmentation parameters
model.train(data="coco.yaml", epochs=100, hsv_h=0.03, hsv_s=0.6, hsv_v=0.5)

# Training without any augmentations (disabled values omitted for clarity)
model.train(
    data="coco.yaml",
    epochs=100,
    hsv_h=0.0,
    hsv_s=0.0,
    hsv_v=0.0,
    translate=0.0,
    scale=0.0,
    fliplr=0.0,
    mosaic=0.0,
    erasing=0.0,
    auto_augment=None,
)
# Training with custom augmentation parameters
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 hsv_h=0.03 hsv_s=0.6 hsv_v=0.5

Utilisation d'un fichier de configuration

Vous pouvez définir tous les paramètres de formation, y compris les augmentations, dans un fichier de configuration YAML (par ex, train_custom.yaml). Les mode n'est nécessaire que pour l'utilisation de l'CLI. Ce nouveau fichier YAML remplacera alors le fichier celui par défaut situé dans le ultralytics l'emballage.

# train_custom.yaml
# 'mode' is required only for CLI usage
mode: train
data: coco8.yaml
model: yolo11n.pt
epochs: 100
hsv_h: 0.03
hsv_s: 0.6
hsv_v: 0.5

Lancez ensuite la formation à l'aide de l'API Python :

Exemple de train

from ultralytics import YOLO

# Load a COCO-pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Train the model with custom configuration
model.train(cfg="train_custom.yaml")
# Train the model with custom configuration
yolo detect train model="yolo11n.pt" cfg=train_custom.yaml

Augmentations de l'espace couleur

Réglage de la teinte (hsv_h)

  • Gamme: 0.0 - 1.0
  • Défaut: 0.015
  • Utilisation: Modifie les couleurs de l'image tout en préservant leurs relations. Les couleurs de l'image hsv_h définit l'ampleur du décalage, l'ajustement final étant choisi de manière aléatoire entre -hsv_h et hsv_h. Par exemple, avec hsv_h=0.3, le quart est choisi au hasard à l'intérieur d'une fourchette de-0.3 à 0.3. Pour les valeurs supérieures à 0.5Le changement de teinte s'étend autour de la roue chromatique, c'est pourquoi les augmentations sont les mêmes d'une couleur à l'autre. 0.5 et -0.5.
  • Objectif: particulièrement utile pour les scénarios en extérieur où les conditions d'éclairage peuvent affecter considérablement l'apparence des objets. Par exemple, une banane peut paraître plus jaune en plein soleil, mais plus verte à l'intérieur.
  • Mise en œuvre d'Ultralytics: RandomHSV
-0.5 -0.25 0.0 0.25 0.5
hsv_h_-0.5_augmentation hsv_h_-0.25_augmentation identité_augmentation hsv_h_0.25_augmentation hsv_h_-0.5_augmentation

Réglage de la saturation (hsv_s)

  • Gamme: 0.0 - 1.0
  • Défaut: 0.7
  • Utilisation: Modifie l'intensité des couleurs de l'image. L'intensité des couleurs de l'image est modifiée en fonction de la couleur de l'image. hsv_h définit l'ampleur du décalage, l'ajustement final étant choisi de manière aléatoire entre -hsv_s et hsv_s. Par exemple, avec hsv_s=0.7l'intensité est choisie au hasard dans-0.7 à 0.7.
  • Objectif: aider les modèles à gérer les variations des conditions météorologiques et des réglages de la caméra. Par exemple, un panneau de signalisation rouge peut apparaître très vif par une journée ensoleillée, mais paraître terne et délavé par temps de brouillard.
  • Mise en œuvre d'Ultralytics: RandomHSV
-1.0 -0.5 0.0 0.5 1.0
hsv_s_-1_augmentation hsv_s_-0.5_augmentation identité_augmentation hsv_s_0.5_augmentation hsv_s_1_augmentation

Réglage de la luminosité (hsv_v)

  • Gamme: 0.0 - 1.0
  • Défaut: 0.4
  • Utilisation: Modifie la luminosité de l'image. L'image hsv_v définit l'ampleur du décalage, l'ajustement final étant choisi de manière aléatoire entre -hsv_v et hsv_v. Par exemple, avec hsv_v=0.4l'intensité est choisie au hasard dans-0.4 à 0.4.
  • Objectif: essentiel pour la formation des modèles qui doivent fonctionner dans des conditions d'éclairage différentes. Par exemple, une pomme rouge peut sembler brillante à la lumière du soleil, mais beaucoup plus sombre à l'ombre.
  • Mise en œuvre d'Ultralytics: RandomHSV
-1.0 -0.5 0.0 0.5 1.0
hsv_v_-1_augmentation hsv_v_-0.5_augmentation identité_augmentation hsv_v_0.5_augmentation hsv_v_1_augmentation

Transformations géométriques

Rotation (degrees)

  • Gamme: 0.0 à 180
  • Défaut: 0.0
  • Utilisation: Fait pivoter les images de manière aléatoire dans la plage spécifiée. Les images degrees définit l'angle de rotation, l'ajustement final étant choisi de manière aléatoire entre -degrees et degrees. Par exemple, avec degrees=10.0la rotation est choisie au hasard dans les limites de-10.0 à 10.0.
  • Objectif: essentiel pour les applications dans lesquelles les objets peuvent apparaître dans des orientations différentes. Par exemple, dans l'imagerie aérienne par drone, les véhicules peuvent être orientés dans n'importe quelle direction, ce qui exige que les modèles reconnaissent les objets indépendamment de leur rotation.
  • Mise en œuvre d'Ultralytics: RandomPerspective
-180 -90 0.0 90 180
degrés_-180_augmentation degrés_-90_augmentation identité_augmentation degrés_90_augmentation degrés_180_augmentation

Traduction (translate)

  • Gamme: 0.0 - 1.0
  • Défaut: 0.1
  • Utilisation: Décale les images horizontalement et verticalement d'une fraction aléatoire de la taille de l'image. La fonction translate définit l'ampleur du décalage, l'ajustement final étant choisi aléatoirement deux fois (une fois pour chaque axe) dans l'intervalle -translate et translate. Par exemple, avec translate=0.5la traduction est choisie de manière aléatoire à l'intérieur d'une fourchette de-0.5 à 0.5 sur l'axe des x, et une autre valeur aléatoire indépendante est sélectionnée dans le même intervalle sur l'axe des y.
  • Objectif: aider les modèles à apprendre à détecter des objets partiellement visibles et améliorer la résistance à la position de l'objet. Par exemple, dans les applications d'évaluation des dommages subis par les véhicules, les pièces de la voiture peuvent apparaître entièrement ou partiellement dans le cadre en fonction de la position et de la distance du photographe ; l'augmentation de la traduction apprendra au modèle à reconnaître ces caractéristiques indépendamment de leur intégralité ou de leur position.
  • Mise en œuvre d'Ultralytics: RandomPerspective
  • Note: Par souci de simplicité, les traductions appliquées ci-dessous sont les mêmes à chaque fois pour les deux x et y axes. Valeurs -1.0 et 1.0ne sont pas représentées car elles feraient sortir complètement l'image du cadre.
-0.5 -0.25 0.0 0.25 0.5
translate_-0.5_augmentation translate_-0.25_augmentation identité_augmentation translate_0.25_augmentation translate_0.5_augmentation

Échelle (scale)

  • Gamme: ≥0.0
  • Défaut: 0.5
  • Utilisation: Redimensionne les images par un facteur aléatoire dans la plage spécifiée. La fonction scale définit le facteur d'échelle, l'ajustement final étant choisi de manière aléatoire entre 1-scale et 1+scale. Par exemple, avec scale=0.5le cadrage est choisi au hasard à l'intérieur de0.5 à 1.5.
  • Objectif: permettre aux modèles de traiter des objets de distances et de tailles différentes. Par exemple, dans les applications de conduite autonome, les véhicules peuvent apparaître à différentes distances de la caméra, ce qui oblige le modèle à les reconnaître quelle que soit leur taille.
  • Mise en œuvre d'Ultralytics: RandomPerspective
  • Note:
    • La valeur -1.0 n'est pas affichée car elle ferait disparaître l'image, tandis que 1.0 se traduit simplement par un zoom 2x.
    • Les valeurs affichées dans le tableau ci-dessous sont celles appliquées par l'intermédiaire de l'hyperparamètre scaleet non le facteur d'échelle final.
    • Si scale est supérieur à 1.0l'image peut être soit très petite, soit inversée, car le facteur d'échelle est choisi au hasard entre 1-scale et 1+scale. Par exemple, avec scale=3.0le cadrage est choisi au hasard à l'intérieur de-2.0 à 4.0. Si une valeur négative est choisie, l'image est retournée.
-0.5 -0.25 0.0 0.25 0.5
échelle_-0.5_augmentation échelle_-0.25_augmentation identité_augmentation échelle_0.25_augmentation échelle_0.5_augmentation

Cisaillement (shear)

  • Gamme: -180 à +180
  • Défaut: 0.0
  • Utilisation: Introduit une transformation géométrique qui incline l'image le long des axes x et y, déplaçant ainsi des parties de l'image dans une direction tout en conservant des lignes parallèles. La transformation shear définit l'angle de cisaillement, l'ajustement final étant choisi de manière aléatoire entre -shear et shear. Par exemple, avec shear=10.0le cisaillement est choisi au hasard à l'intérieur de-10 à 10 sur l'axe des x, et une autre valeur aléatoire indépendante est sélectionnée dans le même intervalle sur l'axe des y.
  • Objectif: aider les modèles à s'adapter aux variations des angles de vue causées par de légères inclinaisons ou des points de vue obliques. Par exemple, dans le cadre de la surveillance du trafic, les objets tels que les voitures et les panneaux de signalisation peuvent apparaître inclinés en raison de l'emplacement non perpendiculaire des caméras. L'application de l'augmentation du cisaillement permet au modèle d'apprendre à reconnaître les objets malgré ces distorsions obliques.
  • Mise en œuvre d'Ultralytics: RandomPerspective
  • Note:
    • shear peuvent rapidement déformer l'image, il est donc recommandé de commencer par de petites valeurs et de les augmenter progressivement.
    • Contrairement aux transformations de la perspective, le cisaillement n'introduit pas de profondeur ou de points de fuite, mais déforme la forme des objets en modifiant leurs angles tout en conservant les côtés opposés parallèles.
-10 -5 0.0 5 10
cisaillement_-10_augmentation cisaillement_-5_augmentation identité_augmentation cisaillement_5_augmentation cisaillement_10_augmentation

Perspective (perspective)

  • Gamme: 0.0 - 0.001
  • Défaut: 0.0
  • Utilisation: Applique une transformation complète de la perspective le long des axes x et y, simulant la façon dont les objets apparaissent lorsqu'ils sont vus à différentes profondeurs ou sous différents angles. L'image perspective définit l'ampleur de la perspective, l'ajustement final étant choisi aléatoirement entre -perspective et perspective. Par exemple, avec perspective=0.001la perspective est choisie au hasard dans les limites de-0.001 à 0.001 sur l'axe des x, et une autre valeur aléatoire indépendante est sélectionnée dans le même intervalle sur l'axe des y.
  • Objectif: L'augmentation de la perspective est cruciale pour gérer les changements extrêmes de point de vue, en particulier dans les scénarios où les objets apparaissent raccourcis ou déformés en raison des changements de perspective. Par exemple, dans la détection d'objets par drone, les bâtiments, les routes et les véhicules peuvent apparaître étirés ou comprimés en fonction de l'inclinaison et de l'altitude du drone. En appliquant des transformations de perspective, les modèles apprennent à reconnaître les objets malgré ces distorsions induites par la perspective, ce qui améliore leur robustesse dans les déploiements réels.
  • Mise en œuvre d'Ultralytics: RandomPerspective
-0.001 -0.0005 0.0 0.0005 0.001
perspective_-0.001_augmentation perspective_-0.0005_augmentation identité_augmentation perspective_0.0005_augmentation perspective_0.001_augmentation

Basculer de haut en bas (flipud)

  • Gamme: 0.0 - 1.0
  • Défaut: 0.0
  • Utilisation: Effectue un retournement vertical en inversant l'image le long de l'axe des ordonnées. Cette transformation renvoie l'image entière à l'envers mais préserve toutes les relations spatiales entre les objets. L'hyperparamètre flipud définit la probabilité d'appliquer la transformation, avec une valeur de flipud=1.0 en veillant à ce que toutes les images soient inversées et à ce qu'une valeur de flipud=0.0 la désactivation totale de la transformation. Par exemple, avec flipud=0.5chaque image a une chance sur deux d'être retournée.
  • Objectif: utile pour les scénarios dans lesquels les objets peuvent apparaître à l'envers. Par exemple, dans les systèmes de vision robotique, les objets sur les tapis roulants ou les bras robotiques peuvent être saisis et placés dans différentes orientations. Le retournement vertical aide le modèle à reconnaître les objets indépendamment de leur positionnement de haut en bas.
  • Mise en œuvre d'Ultralytics: RandomFlip
flipud éteint flipud sur
identité_augmentation flipud_on_augmentation

Inversion gauche-droite (fliplr)

  • Gamme: 0.0 - 1.0
  • Défaut: 0.5
  • Utilisation: Effectue un retournement horizontal en reflétant l'image le long de l'axe x. Cette transformation intervertit les côtés gauche et droit tout en maintenant la cohérence spatiale, ce qui aide le modèle à se généraliser aux objets apparaissant dans des orientations inversées. Le modèle fliplr définit la probabilité d'appliquer la transformation, avec une valeur de fliplr=1.0 en veillant à ce que toutes les images soient inversées et à ce qu'une valeur de fliplr=0.0 la désactivation totale de la transformation. Par exemple, avec fliplr=0.5chaque image a une chance sur deux d'être retournée de gauche à droite.
  • Objectif: Le retournement horizontal est largement utilisé dans la détection d'objets, l'estimation de la pose et la reconnaissance faciale afin d'améliorer la robustesse contre les variations gauche-droite. Par exemple, dans la conduite autonome, les véhicules et les piétons peuvent apparaître d'un côté ou de l'autre de la route, et le retournement horizontal permet au modèle de les reconnaître aussi bien dans les deux orientations.
  • Mise en œuvre d'Ultralytics: RandomFlip
fliplr éteint fliplr sur
identité_augmentation fliplr_on_augmentation

Échange de canaux BGR (bgr)

  • Gamme: 0.0 - 1.0
  • Défaut: 0.0
  • Utilisation: Permet d'échanger les canaux de couleur d'une image de RVB à BGR, en modifiant l'ordre dans lequel les couleurs sont représentées. Les canaux bgr définit la probabilité d'appliquer la transformation, avec bgr=1.0 en veillant à ce que toutes les images fassent l'objet d'un échange de canaux et bgr=0.0 la désactiver. Par exemple, avec bgr=0.5chaque image a une chance sur deux d'être convertie de RVB en BGR.
  • Objectif: Augmenter la robustesse aux différents ordres de canaux de couleur. Par exemple, lors de la formation de modèles qui doivent fonctionner avec différents systèmes de caméras et bibliothèques d'images où les formats RGB et BGR peuvent être utilisés de manière incohérente, ou lors du déploiement de modèles dans des environnements où le format de couleur d'entrée peut différer des données de formation.
  • Mise en œuvre d'Ultralytics: Format
bgr éteint bgr sur
identité_augmentation bgr_on_augmentation

Mosaïque (mosaic)

  • Gamme: 0.0 - 1.0
  • Défaut: 1.0
  • Utilisation: Combine quatre images d'apprentissage en une seule. L'image mosaic définit la probabilité d'appliquer la transformation, avec mosaic=1.0 en veillant à ce que toutes les images soient combinées et mosaic=0.0 la désactivation de la transformation. Par exemple, avec mosaic=0.5Chaque image a une chance sur deux d'être combinée avec trois autres images.
  • Objectif: très efficace pour améliorer la détection des petits objets et la compréhension du contexte. Par exemple, dans les projets de conservation de la faune où les animaux peuvent apparaître à différentes distances et échelles, l'augmentation de la mosaïque aide le modèle à apprendre à reconnaître la même espèce à travers différentes tailles, occlusions partielles et contextes environnementaux en créant artificiellement divers échantillons d'entraînement à partir de données limitées.
  • La mise en œuvre d'Ultralytics: Mosaic
  • Note:
    • Même si le mosaic rend le modèle plus robuste, elle peut également rendre le processus de formation plus difficile.
    • Le mosaic peut être désactivée vers la fin de la formation en réglant le paramètre close_mosaic au nombre d'époques avant la fin de l'opération, au moment où elle doit être désactivée. Par exemple, si epochs est fixé à 200 et close_mosaic est fixé à 20, le mosaic sera désactivée après que l'augmentation de la 180 époques. Si les close_mosaic est fixé à 0, le mosaic sera activé tout au long du processus de formation.
    • Le centre de la mosaïque générée est déterminé à l'aide de valeurs aléatoires et peut se trouver à l'intérieur ou à l'extérieur de l'image.
    • La mise en œuvre actuelle de la mosaic combine 4 images choisies au hasard dans l'ensemble de données. Si l'ensemble de données est petit, la même image peut être utilisée plusieurs fois dans la même mosaïque.
mosaic éteint mosaic sur
identité_augmentation mosaïque_sur_augmentation

Mélange (mixup)

  • Gamme: 0.0 - 1.0
  • Défaut: 0.0
  • Utilisation: Mélange deux images et leurs étiquettes avec une probabilité donnée. Les mixup définit la probabilité d'appliquer la transformation, avec mixup=1.0 en veillant à ce que toutes les images soient mélangées et mixup=0.0 la désactivation de la transformation. Par exemple, avec mixup=0.5Chaque image a une chance sur deux d'être mélangée à une autre image.
  • Objectif: améliorer la robustesse du modèle et réduire l'ajustement excessif. Par exemple, dans les systèmes de reconnaissance des produits vendus au détail, le mélange permet au modèle d'apprendre des caractéristiques plus robustes en mélangeant des images de différents produits, ce qui lui permet d'identifier les articles même lorsqu'ils sont partiellement visibles ou masqués par d'autres produits dans les rayons encombrés des magasins.
  • Mise en œuvre d'Ultralytics: Mixup
  • Note:
    • Le mixup est une valeur aléatoire tirée d'un np.random.beta(32.0, 32.0) distribution bêta, ce qui signifie que chaque image contribue à hauteur d'environ 50 %, avec de légères variations.
Première image, mixup éteint Deuxième image, mixup éteint mixup sur
augmentation_mixup_identity_1 augmentation_mixup_identity_2 mixup_on_augmentation

CutMix (cutmix)

  • Gamme: 0.0 - 1.0
  • Défaut: 0.0
  • Utilisation: Découpe une région rectangulaire d'une image et la colle sur une autre image avec une probabilité donnée. La méthode cutmix définit la probabilité d'appliquer la transformation, avec cutmix=1.0 s'assurer que toutes les images subissent cette transformation et cutmix=0.0 le désactiver complètement. Par exemple, avec cutmix=0.5Chaque image a une chance sur deux de voir une région remplacée par une partie d'une autre image.
  • Objectif: améliorer les performances du modèle en créant des scénarios d'occlusion réalistes tout en préservant l'intégrité des caractéristiques locales. Par exemple, dans les systèmes de conduite autonome, le cutmix aide le modèle à apprendre à reconnaître les véhicules ou les piétons même lorsqu'ils sont partiellement occultés par d'autres objets, ce qui améliore la précision de la détection dans les environnements complexes du monde réel où les objets se chevauchent.
  • Mise en œuvre d'Ultralytics: CutMix
  • Note:
    • La taille et la position de la zone de coupe sont déterminées de manière aléatoire pour chaque application.
    • Contrairement au mixage qui mélange les valeurs des pixels de manière globale, cutmix conserve l'intensité originale des pixels dans les régions découpées, en préservant les caractéristiques locales.
    • Une région n'est collée dans l'image cible que si elle ne chevauche aucune boîte de délimitation existante. En outre, seules les boîtes englobantes qui conservent au moins une valeur de 0.1 (10 %) de leur surface d'origine dans la région collée sont préservés.
    • Ce seuil minimal de la zone de délimitation ne peut pas être modifié dans le cadre de la mise en œuvre actuelle et est fixé à 0.1 par défaut.
Première image, cutmix éteint Deuxième image, cutmix éteint cutmix sur
augmentation_cutmix_identity_1 augmentation_cutmix_identity_2 cutmix_on_augmentation

Augmentations spécifiques à la segmentation

Copier-coller (copy_paste)

  • Gamme: 0.0 - 1.0
  • Défaut: 0.0
  • Utilisation: Fonctionnant uniquement pour les tâches de segmentation, cette augmentation copie les objets à l'intérieur d'une image ou entre les images en fonction d'une probabilité spécifiée, contrôlée par l'option de segmentation. copy_paste_mode. Les copy_paste définit la probabilité d'appliquer la transformation, avec copy_paste=1.0 veiller à ce que toutes les images soient copiées et copy_paste=0.0 la désactivation de la transformation. Par exemple, avec copy_paste=0.5Chaque image a une chance sur deux de contenir des objets copiés à partir d'une autre image.
  • Objectif: particulièrement utile pour les tâches de segmentation d'instances et les classes d'objets rares. Par exemple, dans la détection des défauts industriels où certains types de défauts apparaissent rarement, l'augmentation par copier-coller peut augmenter artificiellement l'occurrence de ces défauts rares en les copiant d'une image à l'autre, ce qui aide le modèle à mieux apprendre ces cas sous-représentés sans nécessiter d'échantillons défectueux supplémentaires.
  • Mise en œuvre d'Ultralytics: CopierColler
  • Note:
    • Comme illustré dans le gif ci-dessous, la copy_paste L'augmentation peut être utilisée pour copier des objets d'une image à l'autre.
    • Une fois qu'un objet est copié, quelle que soit l'option copy_paste_modeSon intersection sur l'aire (IoA) est calculée avec tous les objets de l'image source. Si toutes les IoA sont inférieures à 0.3 (30 %), l'objet est collé dans l'image cible. Si un seul des IoA est supérieur à 0.3l'objet n'est pas collé dans l'image cible.
    • Le seuil de l'accord de reconnaissance mutuelle ne peut pas être modifié dans le cadre de la mise en œuvre actuelle et est fixé à 0.3 par défaut.
copy_paste éteint copy_paste sur avec copy_paste_mode=flip Visualiser le copy_paste processus
identité_augmentation copier_coller_sur_augmentation copier_coller_augmentation_gif_demo

Mode copier-coller (copy_paste_mode)

  • Options: 'flip', 'mixup'
  • Défaut: 'flip'
  • Utilisation: Détermine la méthode utilisée pour copier-coller augmentation. Si la valeur est fixée à 'flip'les objets proviennent de la même image, tandis que 'mixup' permet de copier des objets à partir de différentes images.
  • Objet: permet une certaine souplesse dans la manière dont les objets copiés sont intégrés dans les images cibles.
  • Mise en œuvre d'Ultralytics: CopierColler
  • Note:
    • Le principe de l'accord de reconnaissance est le même dans les deux cas copy_paste_modemais la façon dont les objets sont copiés est différente.
    • En fonction de la taille de l'image, les objets peuvent parfois être copiés partiellement ou entièrement en dehors du cadre.
    • Selon la qualité des annotations polygonales, les objets copiés peuvent présenter de légères variations de forme par rapport aux originaux.
Image de référence Image choisie pour copy_paste copy_paste sur avec copy_paste_mode=mixup
augmentation_mixup_identity_2 identité_augmentation copier_coller_mode_mixup_augmentation

Augmentations spécifiques à la classification

Auto Augment (auto_augment)

  • Options: 'randaugment', 'autoaugment', 'augmix', None
  • Défaut: 'randaugment'
  • Utilisation: Applique des politiques d'augmentation automatisées pour la classification. Les 'randaugment' utilise RandAugment, 'autoaugment' utilise AutoAugment, et 'augmix' utilise AugMix. Le réglage de None désactive l'augmentation automatique.
  • Objectif: Optimise automatiquement les stratégies d'augmentation pour les tâches de classification. Les différences sont les suivantes :
    • AutoAugment: Ce mode applique des politiques d'augmentation prédéfinies apprises à partir d'ensembles de données comme ImageNet, CIFAR10 et SVHN. Les utilisateurs peuvent sélectionner ces politiques existantes mais ne peuvent pas en former de nouvelles au sein de Torchvision. Pour découvrir les stratégies d'augmentation optimales pour des ensembles de données spécifiques, des bibliothèques externes ou des implémentations personnalisées seraient nécessaires. Référence au document AutoAugment.
    • RandAugment: Applique une sélection aléatoire de transformations d'ampleur uniforme. Cette approche réduit la nécessité d'une phase de recherche approfondie, ce qui la rend plus efficace sur le plan du calcul tout en améliorant la robustesse du modèle. Référence au document RandAugment.
    • AugMix: AugMix est une méthode d'augmentation des données qui améliore la robustesse du modèle en créant diverses variations d'images par des combinaisons aléatoires de transformations simples. Référence à l'article sur AugMix.
  • Implémentation d'Ultralytics: classify_augmentations()
  • Note:
    • La principale différence entre les trois méthodes réside essentiellement dans la manière dont les politiques d'augmentation sont définies et appliquées.
    • Vous pouvez consulter cet article qui compare les trois méthodes en détail.

Effacement aléatoire (erasing)

  • Gamme: 0.0 - 0.9
  • Défaut: 0.4
  • Utilisation: Efface de manière aléatoire des parties de l'image pendant l'apprentissage de la classification. Les erasing définit la probabilité d'appliquer la transformation, avec erasing=0.9 en veillant à ce que presque toutes les images soient effacées et erasing=0.0 la désactivation de la transformation. Par exemple, avec erasing=0.5Chaque image a une chance sur deux d'avoir une partie effacée.
  • Objectif: aider les modèles à apprendre des caractéristiques robustes et éviter une dépendance excessive à l'égard de régions spécifiques de l'image. Par exemple, dans les systèmes de reconnaissance faciale, l'effacement aléatoire aide les modèles à devenir plus robustes aux occlusions partielles telles que les lunettes de soleil, les masques faciaux ou d'autres objets qui peuvent couvrir partiellement les caractéristiques du visage. Cela permet d'améliorer les performances dans le monde réel en forçant le modèle à identifier les individus à l'aide de plusieurs caractéristiques faciales plutôt que de dépendre uniquement de caractéristiques distinctives qui pourraient être masquées.
  • Implémentation d'Ultralytics: classify_augmentations()
  • Note:
    • Le erasing L'augmentation s'accompagne d'une scale, ratioet value hyperparamètres qui ne peuvent pas être modifiés avec l'option la mise en œuvre actuelle. Leurs valeurs par défaut sont (0.02, 0.33), (0.3, 3.3)et 0respectivement, comme indiqué dans le document PyTorch la documentation.
    • La limite supérieure de la erasing est fixé à 0.9 pour éviter d'appliquer la transformation à toutes les images.
erasing éteint erasing on (exemple 1) erasing on (exemple 2) erasing on (exemple 3)
identité_augmentation effacement_ex1_augmentation effacement_ex2_augmentation effacement_ex3_augmentation

FAQ

Il y a trop d'augmentations à choisir. Comment savoir lesquelles utiliser ?

Le choix des bonnes augmentations dépend de votre cas d'utilisation spécifique et de votre ensemble de données. Voici quelques lignes directrices générales pour vous aider à prendre une décision :

  • Dans la plupart des cas, de légères variations de couleur et de luminosité sont bénéfiques. Les valeurs par défaut de hsv_h, hsv_set hsv_v constituent un bon point de départ.
  • Si le point de vue de la caméra est cohérent et ne changera pas une fois le modèle déployé, vous pouvez probablement ignorer les transformations géométriques telles que rotation, translation, scale, shearou perspective. Cependant, si l'angle de la caméra peut varier et que le modèle doit être plus robuste, il est préférable de conserver ces augmentations.
  • Utiliser le mosaic uniquement si la présence d'objets partiellement occultés ou de plusieurs objets par image est acceptable et ne modifie pas la valeur de l'étiquette. Il est également possible de conserver mosaic actifs mais augmentent la close_mosaic pour le désactiver plus tôt dans le processus de formation.

En bref : restez simple. Commencez par un petit ensemble d'augmentations et ajoutez-en progressivement si nécessaire. L'objectif est d'améliorer la généralisation et la robustesse du modèle, et non de compliquer à l'excès le processus de formation. Assurez-vous également que les augmentations que vous appliquez reflètent la même distribution de données que celle à laquelle votre modèle sera confronté en production.

Lors du démarrage d'une formation, un albumentations: Blur[...] référence. Cela signifie-t-il qu'Ultralytics YOLO exécute des augmentations supplémentaires telles que le flou ?

Si le albumentations est installé, Ultralytics applique automatiquement un ensemble d'augmentations d'images supplémentaires en l'utilisant. Ces augmentations sont gérées en interne et ne nécessitent aucune configuration supplémentaire.

Vous trouverez la liste complète des transformations appliquées dans notre la documentation techniqueainsi que dans notre Guide d'intégration des Albumentations. Notez que seules les augmentations avec une probabilité p supérieur à 0 sont actifs. Ils sont volontairement appliqués à des fréquences basses pour imiter les artefacts visuels du monde réel, tels que les effets de flou ou de niveaux de gris.

Lorsque je commence une formation, je ne vois aucune référence aux albuminations. Pourquoi ?

Vérifier si le albumentations est installé. Si ce n'est pas le cas, vous pouvez l'installer en exécutant pip install albumentations. Une fois installé, le paquet devrait être automatiquement détecté et utilisé par Ultralytics.



📅C réé il y a 1 mois ✏️ Mis à jour il y a 23 jours

Commentaires