Skip to content

Configuration

YOLO Les paramètres et hyperparamètres jouent un rôle essentiel dans les performances, la vitesse et la précision du modèle. Ces paramètres et hyperparamètres peuvent affecter le comportement du modèle à différentes étapes du processus de développement du modèle, y compris la formation, la validation et la prédiction.



Regarde : Mastering Ultralytics YOLOv8 : Configuration

Ultralytics Les commandes utilisent la syntaxe suivante :

Exemple

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLOv8 model from a pre-trained weights file
model = YOLO('yolov8n.pt')

# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)

OĂą :

Défaut ARG sont définies sur cette page à partir de la cfg/defaults.yaml fichier.

Tâches

YOLO peuvent être utilisés pour diverses tâches, notamment la détection, la segmentation, la classification et la pose. Ces tâches diffèrent par le type de résultat qu'elles produisent et le problème spécifique qu'elles sont conçues pour résoudre.

  • DĂ©tecter: Pour identifier et localiser des objets ou des rĂ©gions d'intĂ©rĂŞt dans une image ou une vidĂ©o.
  • Segment: Pour diviser une image ou une vidĂ©o en rĂ©gions ou pixels qui correspondent Ă  diffĂ©rents objets ou classes.
  • Classifier: Pour prĂ©dire l'Ă©tiquette de classe d'une image d'entrĂ©e.
  • Pose: Pour identifier les objets et estimer leurs points clĂ©s dans une image ou une vidĂ©o.
  • OBB: boĂ®tes de dĂ©limitation orientĂ©es (c'est-Ă -dire tournĂ©es) adaptĂ©es Ă  l'imagerie satellitaire ou mĂ©dicale.
Argument DĂ©faut Description
task 'detect' Spécifie la tâche YOLO à exécuter. Les options comprennent detect pour la détection des objets, segment pour la segmentation, classify pour la classification, pose pour l'estimation de la pose et OBB pour les boîtes de délimitation orientées. Chaque tâche est adaptée à des types spécifiques de résultats et de problèmes d'analyse d'images et de vidéos.

Guide des tâches

Modes

YOLO Les modèles peuvent être utilisés selon différents modes, en fonction du problème spécifique que tu cherches à résoudre. Ces modes sont les suivants :

  • Train: Pour former un modèle YOLOv8 sur un ensemble de donnĂ©es personnalisĂ©.
  • Val: Pour valider un modèle YOLOv8 après qu'il ait Ă©tĂ© formĂ©.
  • PrĂ©dire: Pour faire des prĂ©dictions Ă  l'aide d'un modèle YOLOv8 entraĂ®nĂ© sur de nouvelles images ou vidĂ©os.
  • Exporter: Pour exporter un modèle YOLOv8 dans un format qui peut ĂŞtre utilisĂ© pour le dĂ©ploiement.
  • Track: Pour suivre les objets en temps rĂ©el Ă  l'aide d'un modèle YOLOv8 .
  • Benchmark: Pour comparer la vitesse et la prĂ©cision des exportations de YOLOv8 (ONNX, TensorRT, etc.).
Argument DĂ©faut Description
mode 'train' Spécifie le mode de fonctionnement du modèle YOLO . Les options sont train pour l'apprentissage du modèle, val pour la validation, predict pour l'inférence sur de nouvelles données, export pour la conversion des modèles en formats de déploiement, track pour le suivi des objets, et benchmark pour l'évaluation des performances. Chaque mode est conçu pour différentes étapes du cycle de vie du modèle, du développement au déploiement.

Guide des modes

RĂ©glages du train

Les paramètres de formation des modèles YOLO englobent divers hyperparamètres et configurations utilisés pendant le processus de formation. Ces paramètres influencent les performances, la vitesse et la précision du modèle. Les principaux paramètres de formation comprennent la taille du lot, le taux d'apprentissage, l'élan et la décroissance des poids. En outre, le choix de l'optimiseur, de la fonction de perte et de la composition de l'ensemble des données d'apprentissage peut avoir un impact sur le processus d'apprentissage. Un réglage minutieux et l'expérimentation de ces paramètres sont essentiels pour optimiser les performances.

Argument DĂ©faut Description
model None Spécifie le fichier modèle pour la formation. Accepte un chemin vers un fichier .pt modèle pré-entraîné ou un .yaml fichier de configuration. Indispensable pour définir la structure du modèle ou initialiser les poids.
data None Chemin d'accès au fichier de configuration du jeu de données (par ex, coco8.yaml). Ce fichier contient des paramètres spécifiques au jeu de données, notamment les chemins d'accès aux données d'entraînement et de validation, les noms des classes et le nombre de classes.
epochs 100 Nombre total d'époques de formation. Chaque époque représente un passage complet sur l'ensemble des données. Le réglage de cette valeur peut affecter la durée de la formation et les performances du modèle.
time None Durée maximale de la formation en heures. S'il est défini, ce paramètre remplace le paramètre epochs permettant à la formation de s'arrêter automatiquement après la durée spécifiée. Utile pour les scénarios de formation limités dans le temps.
patience 100 Nombre d'époques à attendre sans amélioration des mesures de validation avant d'arrêter la formation. Permet d'éviter le surajustement en arrêtant la formation lorsque les performances atteignent un plateau.
batch 16 Taille du lot pour l'entraînement, indiquant combien d'images sont traitées avant que les paramètres internes du modèle ne soient mis à jour. AutoBatch (batch=-1) ajuste dynamiquement la taille du lot en fonction de la disponibilité de la mémoire du GPU.
imgsz 640 Taille cible de l'image pour la formation. Toutes les images sont redimensionnées à cette dimension avant d'être introduites dans le modèle. Affecte la précision du modèle et la complexité de calcul.
save True Permet d'enregistrer les points de contrôle de l'entraînement et les poids finaux du modèle. Utile pour reprendre la formation ou le déploiement du modèle.
save_period -1 Fréquence de sauvegarde des points de contrôle du modèle, spécifiée en époques. La valeur -1 désactive cette fonction. Utile pour sauvegarder des modèles provisoires pendant de longues sessions de formation.
cache False Permet la mise en cache des images du jeu de données dans la mémoire (True/ram), sur disque (disk), ou la désactive (False). Améliore la vitesse de l'entraînement en réduisant les entrées/sorties sur disque au prix d'une utilisation accrue de la mémoire.
device None Spécifie le(s) dispositif(s) de calcul pour la formation : un seul GPU (device=0), plusieurs GPU (device=0,1), CPU (device=cpu), ou MPS pour le silicium d'Apple (device=mps).
workers 8 Nombre de threads de travail pour le chargement des données (par RANK si formation multi-GPU). Influence la vitesse de prétraitement des données et d'alimentation du modèle, particulièrement utile dans les configurations multi-GPU.
project None Nom du répertoire du projet dans lequel les résultats de la formation sont enregistrés. Permet un stockage organisé des différentes expériences.
name None Nom de la formation. Utilisé pour créer un sous-répertoire dans le dossier du projet, où sont stockés les journaux de formation et les résultats.
exist_ok False Si True, permet d'écraser un répertoire projet/nom existant. Utile pour l'expérimentation itérative sans avoir besoin d'effacer manuellement les sorties précédentes.
pretrained True Détermine s'il faut commencer la formation à partir d'un modèle pré-entraîné. Il peut s'agir d'une valeur booléenne ou d'un chemin d'accès à un modèle spécifique à partir duquel les poids sont chargés. Améliore l'efficacité de la formation et les performances du modèle.
optimizer 'auto' Choix de l'optimiseur pour la formation. Les options comprennent SGD, Adam, AdamW, NAdam, RAdam, RMSProp etc. auto pour une sélection automatique basée sur la configuration du modèle. Affecte la vitesse de convergence et la stabilité.
verbose False Active la sortie verbale pendant l'entraînement, fournissant des journaux détaillés et des mises à jour de la progression. Utile pour déboguer et surveiller de près le processus de formation.
seed 0 Définit la graine aléatoire pour l'entraînement, ce qui garantit la reproductibilité des résultats d'un cycle à l'autre avec les mêmes configurations.
deterministic True Force l'utilisation d'algorithmes déterministes, ce qui garantit la reproductibilité, mais peut affecter les performances et la vitesse en raison de la restriction sur les algorithmes non déterministes.
single_cls False Traite toutes les classes des ensembles de données multi-classes comme une seule classe pendant la formation. Utile pour les tâches de classification binaire ou lorsque l'on se concentre sur la présence d'objets plutôt que sur la classification.
rect False Permet un entraînement rectangulaire, en optimisant la composition des lots pour un remplissage minimal. Cela peut améliorer l'efficacité et la vitesse, mais peut affecter la précision du modèle.
cos_lr False Utilise un planificateur de taux d'apprentissage en cosinus, qui ajuste le taux d'apprentissage en suivant une courbe en cosinus au fil des époques. Aide à gérer le taux d'apprentissage pour une meilleure convergence.
close_mosaic 10 Désactive l'augmentation des données de la mosaïque dans les N dernières époques pour stabiliser l'entraînement avant qu'il ne soit terminé. La valeur 0 désactive cette fonction.
resume False Reprend la formation à partir du dernier point de contrôle enregistré. Charge automatiquement les poids du modèle, l'état de l'optimiseur et le nombre d'époques, afin de poursuivre la formation de façon transparente.
amp True Permet l'apprentissage automatique de la précision mixte (AMP), ce qui réduit l'utilisation de la mémoire et accélère éventuellement l'apprentissage avec un impact minimal sur la précision.
fraction 1.0 Spécifie la fraction de l'ensemble de données à utiliser pour la formation. Permet la formation sur un sous-ensemble de l'ensemble des données, utile pour les expériences ou lorsque les ressources sont limitées.
profile False Permet d'établir le profil des vitesses ONNX et TensorRT pendant la formation, ce qui est utile pour optimiser le déploiement du modèle.
freeze None Gèle les N premières couches du modèle ou des couches spécifiées par index, réduisant ainsi le nombre de paramètres entraînables. Utile pour le réglage fin ou l'apprentissage par transfert.
lr0 0.01 Taux d'apprentissage initial (c'est-à-dire SGD=1E-2, Adam=1E-3) . L'ajustement de cette valeur est crucial pour le processus d'optimisation, car il influence la rapidité avec laquelle les poids du modèle sont mis à jour.
lrf 0.01 Taux d'apprentissage final en tant que fraction du taux initial = (lr0 * lrf), utilisés conjointement avec les programmateurs pour ajuster le taux d'apprentissage au fil du temps.
momentum 0.937 Facteur d'impulsion pour SGD ou beta1 pour les optimiseurs Adam, influençant l'incorporation des gradients passés dans la mise à jour actuelle.
weight_decay 0.0005 Terme de régularisation L2, pénalisant les poids importants pour éviter l'ajustement excessif.
warmup_epochs 3.0 Nombre d'époques pour l'échauffement du taux d'apprentissage, en augmentant progressivement le taux d'apprentissage à partir d'une faible valeur jusqu'au taux d'apprentissage initial pour stabiliser l'entraînement dès le début.
warmup_momentum 0.8 Élan initial pour la phase d'échauffement, s'ajustant progressivement à l'élan défini au cours de la période d'échauffement.
warmup_bias_lr 0.1 Taux d'apprentissage pour les paramètres de biais pendant la phase d'échauffement, ce qui permet de stabiliser l'apprentissage du modèle dans les époques initiales.
box 7.5 Poids de la composante de perte de boîte dans la fonction de perte, influençant l'importance accordée à la prédiction précise des coordonnées de la boîte englobante.
cls 0.5 Poids de la perte de classification dans la fonction de perte totale, affectant l'importance d'une prédiction de classe correcte par rapport aux autres composants.
dfl 1.5 Poids de la perte focale de distribution, utilisé dans certaines versions de YOLO pour une classification plus fine.
pose 12.0 Le poids de la perte de pose dans les modèles formés pour l'estimation de la pose, influençant l'accent mis sur la prédiction précise des points clés de la pose.
kobj 2.0 Poids de la perte d'objectivité du point clé dans les modèles d'estimation de la pose, équilibrant la confiance de la détection avec la précision de la pose.
label_smoothing 0.0 Applique le lissage des étiquettes, en adoucissant les étiquettes dures pour obtenir un mélange de l'étiquette cible et une distribution uniforme des étiquettes, ce qui peut améliorer la généralisation.
nbs 64 Taille nominale du lot pour la normalisation de la perte.
overlap_mask True Détermine si les masques de segmentation doivent se chevaucher pendant la formation, applicable dans les tâches de segmentation d'instances.
mask_ratio 4 Taux de sous-échantillonnage pour les masques de segmentation, affectant la résolution des masques utilisés pendant l'entraînement.
dropout 0.0 Taux d'abandon pour la régularisation dans les tâches de classification, empêchant le surajustement en omettant aléatoirement des unités pendant la formation.
val True Active la validation pendant la formation, ce qui permet d'évaluer périodiquement les performances du modèle sur un ensemble de données distinct.
plots False Génère et enregistre des graphiques des mesures d'entraînement et de validation, ainsi que des exemples de prédiction, ce qui donne un aperçu visuel des performances du modèle et de la progression de l'apprentissage.

Guide des trains

Prédire les paramètres

Les paramètres de prédiction des modèles YOLO englobent une gamme d'hyperparamètres et de configurations qui influencent les performances, la vitesse et la précision du modèle pendant l'inférence sur de nouvelles données. Un réglage minutieux et l'expérimentation de ces paramètres sont essentiels pour obtenir des performances optimales pour une tâche spécifique. Les paramètres clés comprennent le seuil de confiance, le seuil de suppression non maximale (NMS) et le nombre de classes prises en compte. D'autres facteurs affectant le processus de prédiction sont la taille et le format des données d'entrée, la présence de caractéristiques supplémentaires telles que les masques ou les étiquettes multiples par boîte, et la tâche particulière pour laquelle le modèle est employé.

Arguments d'inférence :

Argument Type DĂ©faut Description
source str 'ultralytics/assets' Spécifie la source de données pour l'inférence. Il peut s'agir d'un chemin d'accès à une image, d'un fichier vidéo, d'un répertoire, d'une URL ou de l'identifiant d'un appareil pour les flux en direct. Prend en charge un large éventail de formats et de sources, ce qui permet une application flexible sur différents types d'entrées.
conf float 0.25 Définit le seuil de confiance minimum pour les détections. Les objets détectés avec un niveau de confiance inférieur à ce seuil ne seront pas pris en compte. Le réglage de cette valeur peut aider à réduire les faux positifs.
iou float 0.7 Seuil d'intersection au-dessus de l'union (IoU) pour la suppression non maximale (NMS). Des valeurs plus faibles entraînent moins de détections en éliminant les boîtes qui se chevauchent, ce qui est utile pour réduire les doublons.
imgsz int or tuple 640 Définit la taille de l'image pour l'inférence. Peut être un seul entier 640 pour un redimensionnement carré ou un tuple (hauteur, largeur). Un bon redimensionnement peut améliorer la précision de la détection et la vitesse de traitement.
half bool False Permet l'inférence en demi-précision (FP16), ce qui peut accélérer l'inférence du modèle sur les GPU pris en charge avec un impact minimal sur la précision.
device str None Spécifie le dispositif d'inférence (par ex, cpu, cuda:0 ou 0). Permet aux utilisateurs de choisir entre le CPU, un GPU spécifique ou d'autres dispositifs de calcul pour l'exécution du modèle.
max_det int 300 Nombre maximum de détections autorisées par image. Limite le nombre total d'objets que le modèle peut détecter en une seule inférence, ce qui permet d'éviter les sorties excessives dans les scènes denses.
vid_stride int 1 Saut de trame pour les entrées vidéo. Permet de sauter des images dans les vidéos pour accélérer le traitement au détriment de la résolution temporelle. Une valeur de 1 traite chaque image, les valeurs supérieures sautent des images.
stream_buffer bool False Détermine si toutes les images doivent être mises en mémoire tampon lors du traitement des flux vidéo (True), ou si le modèle doit retourner le cadre le plus récent (False). Utile pour les applications en temps réel.
visualize bool False Active la visualisation des caractéristiques du modèle pendant l'inférence, ce qui permet de comprendre ce que le modèle "voit". Utile pour le débogage et l'interprétation du modèle.
augment bool False Permet l'augmentation du temps de test (TTA) pour les prédictions, améliorant potentiellement la robustesse de la détection au prix de la vitesse d'inférence.
agnostic_nms bool False Permet la Suppression non maximale (SNM) agnostique des classes, qui fusionne les boîtes de différentes classes qui se chevauchent. Utile dans les scénarios de détection multi-classes où le chevauchement des classes est courant.
classes list[int] None Filtre les prédictions sur un ensemble d'identifiants de classes. Seules les détections appartenant aux classes spécifiées seront renvoyées. Utile pour se concentrer sur les objets pertinents dans les tâches de détection multi-classes.
retina_masks bool False Utilise des masques de segmentation à haute résolution s'ils sont disponibles dans le modèle. Cela permet d'améliorer la qualité des masques pour les tâches de segmentation, en fournissant des détails plus fins.
embed list[int] None Spécifie les couches à partir desquelles il faut extraire les vecteurs de caractéristiques ou les encastrements. Utile pour les tâches en aval telles que le regroupement ou la recherche de similarités.

Arguments de visualisation :

Argument Type DĂ©faut Description
show bool False Si Trueaffiche les images ou les vidéos annotées dans une fenêtre. Utile pour un retour visuel immédiat pendant le développement ou les tests.
save bool False Permet d'enregistrer les images ou les vidéos annotées dans un fichier. Utile pour la documentation, une analyse plus poussée ou le partage des résultats.
save_frames bool False Lors du traitement des vidéos, enregistre les images individuelles en tant qu'images. Utile pour extraire des images spécifiques ou pour une analyse détaillée image par image.
save_txt bool False Enregistre les résultats de la détection dans un fichier texte, en respectant le format. [class] [x_center] [y_center] [width] [height] [confidence]. Utile pour l'intégration avec d'autres outils d'analyse.
save_conf bool False Inclut les scores de confiance dans les fichiers texte sauvegardés. Améliore les détails disponibles pour le post-traitement et l'analyse.
save_crop bool False Sauvegarde les images recadrées des détections. Utile pour l'augmentation des ensembles de données, l'analyse ou la création d'ensembles de données ciblés pour des objets spécifiques.
show_labels bool True Affiche des étiquettes pour chaque détection dans la sortie visuelle. Permet de comprendre immédiatement les objets détectés.
show_conf bool True Affiche le score de confiance pour chaque détection à côté de l'étiquette. Donne un aperçu de la certitude du modèle pour chaque détection.
show_boxes bool True Dessine des boîtes de délimitation autour des objets détectés. Essentiel pour l'identification visuelle et la localisation des objets dans les images ou les trames vidéo.
line_width None or int None Spécifie la largeur de ligne des boîtes de délimitation. Dans ce cas NoneLa largeur de la ligne est automatiquement ajustée en fonction de la taille de l'image. Permet une personnalisation visuelle pour plus de clarté.

Guide de prédiction

Paramètres de validation

Les paramètres de validation des modèles YOLO impliquent divers hyperparamètres et configurations utilisés pour évaluer les performances du modèle sur un ensemble de données de validation. Ces paramètres influencent les performances, la vitesse et la précision du modèle. Les paramètres de validation courants de YOLO comprennent la taille du lot, la fréquence de validation pendant la formation et les mesures d'évaluation des performances. D'autres facteurs affectent le processus de validation, notamment la taille et la composition de l'ensemble de données de validation, ainsi que la tâche spécifique pour laquelle le modèle est employé.

Argument Type DĂ©faut Description
data str None Spécifie le chemin d'accès au fichier de configuration du jeu de données (par ex, coco8.yaml). Ce fichier comprend les chemins d'accès aux données de validation, les noms des classes et le nombre de classes.
imgsz int 640 Définit la taille des images d'entrée. Toutes les images sont redimensionnées à cette dimension avant d'être traitées.
batch int 16 Règle le nombre d'images par lot. Utilise -1 pour AutoBatch, qui s'ajuste automatiquement en fonction de la disponibilité de la mémoire du GPU.
save_json bool False Si Trueenregistre les résultats dans un fichier JSON en vue d'une analyse plus approfondie ou d'une intégration à d'autres outils.
save_hybrid bool False Si Trueenregistre une version hybride des étiquettes qui combine les annotations originales avec des prédictions de modèle supplémentaires.
conf float 0.001 Définit le seuil de confiance minimum pour les détections. Les détections dont le niveau de confiance est inférieur à ce seuil sont rejetées.
iou float 0.6 Définit le seuil d'intersection au-dessus de l'union (IoU) pour la suppression non maximale (NMS). Aide à réduire les détections de doublons.
max_det int 300 Limite le nombre maximum de détections par image. Utile dans les scènes denses pour éviter les détections excessives.
half bool True Permet le calcul en demi-précision (FP16), ce qui réduit l'utilisation de la mémoire et augmente potentiellement la vitesse avec un impact minimal sur la précision.
device str None Spécifie le dispositif de validation (cpu, cuda:0etc.) Permet une certaine flexibilité dans l'utilisation des ressources du processeur ou du processeur graphique.
dnn bool False Si Trueutilise le module DNN d'OpenCV pour l'inférence du modèle ONNX , offrant ainsi une alternative aux méthodes d'inférence de PyTorch .
plots bool False Lorsqu'il est réglé sur TrueIl génère et enregistre les tracés des prédictions par rapport à la vérité de terrain pour une évaluation visuelle de la performance du modèle.
rect bool False Si TrueIl utilise l'inférence rectangulaire pour la mise en lots, ce qui permet de réduire le rembourrage et d'augmenter potentiellement la vitesse et l'efficacité.
split str val Détermine la division du jeu de données à utiliser pour la validation (val, testou train). Permet une certaine souplesse dans le choix du segment de données pour l'évaluation des performances.

Un réglage minutieux et l'expérimentation de ces paramètres sont cruciaux pour garantir des performances optimales sur l'ensemble de données de validation et pour détecter et prévenir le surajustement.

Val Guide

Paramètres d'exportation

Les paramètres d'exportation des modèles YOLO englobent les configurations et les options liées à l'enregistrement ou à l'exportation du modèle pour une utilisation dans différents environnements ou plateformes. Ces paramètres peuvent avoir un impact sur les performances, la taille et la compatibilité du modèle avec différents systèmes. Les principaux paramètres d'exportation comprennent le format de fichier du modèle exporté (par exemple, ONNX, TensorFlow SavedModel ), l'appareil cible (par exemple, CPU, GPU) et des fonctions supplémentaires telles que les masques ou les étiquettes multiples par boîte. Le processus d'exportation peut également être affecté par la tâche spécifique du modèle et les exigences ou contraintes de l'environnement ou de la plateforme de destination.

Argument Type DĂ©faut Description
format str 'torchscript' Format cible pour le modèle exporté, par exemple 'onnx', 'torchscript', 'tensorflow'ou d'autres, définissant la compatibilité avec divers environnements de déploiement.
imgsz int ou tuple 640 Taille de l'image souhaitée pour l'entrée du modèle. Il peut s'agir d'un nombre entier pour les images carrées ou d'un tuple (height, width) pour les dimensions spécifiques.
keras bool False Permet l'exportation au format Keras pour TensorFlow SavedModel , assurant la compatibilité avec TensorFlow serving et les API.
optimize bool False Applique l'optimisation pour les appareils mobiles lors de l'exportation vers TorchScript, ce qui permet de réduire la taille du modèle et d'améliorer les performances.
half bool False Permet la quantification FP16 (demi-précision), ce qui réduit la taille du modèle et accélère potentiellement l'inférence sur le matériel pris en charge.
int8 bool False Active la quantification INT8, ce qui compresse davantage le modèle et accélère l'inférence avec une perte de précision minimale, principalement pour les appareils périphériques.
dynamic bool False Permet des tailles d'entrée dynamiques pour les exportations ONNX et TensorRT , ce qui améliore la flexibilité dans la gestion des dimensions d'image variables.
simplify bool False Simplifie le graphique du modèle pour les exportations ONNX , ce qui peut améliorer les performances et la compatibilité.
opset int None Spécifie la version de l'opset ONNX pour la compatibilité avec les différents analyseurs et moteurs d'exécution ONNX . Si elle n'est pas définie, elle utilise la dernière version prise en charge.
workspace float 4.0 Définit la taille maximale de l'espace de travail en Go pour les optimisations de TensorRT , en équilibrant l'utilisation de la mémoire et les performances.
nms bool False Ajoute la suppression non maximale (NMS) à l'exportation CoreML , ce qui est essentiel pour un post-traitement précis et efficace de la détection.

Il est crucial de configurer ces paramètres de façon réfléchie pour que le modèle exporté soit optimisé pour le cas d'utilisation prévu et fonctionne efficacement dans l'environnement cible.

Guide d'exportation

Paramètres d'augmentation

Les techniques d'augmentation sont essentielles pour améliorer la robustesse et les performances des modèles YOLO en introduisant de la variabilité dans les données d'apprentissage, ce qui aide le modèle à mieux se généraliser à des données inédites. Le tableau suivant présente l'objectif et l'effet de chaque argument d'augmentation :

Argument Type DĂ©faut Gamme Description
hsv_h float 0.015 0.0 - 1.0 Ajuste la teinte de l'image par une fraction de la roue chromatique, introduisant ainsi la variabilité des couleurs. Aide le modèle à se généraliser dans différentes conditions d'éclairage.
hsv_s float 0.7 0.0 - 1.0 Modifie la saturation de l'image d'une fraction, ce qui affecte l'intensité des couleurs. Utile pour simuler différentes conditions environnementales.
hsv_v float 0.4 0.0 - 1.0 Modifie la valeur (luminosité) de l'image d'une fraction, ce qui aide le modèle à bien fonctionner dans diverses conditions d'éclairage.
degrees float 0.0 -180 - +180 Fait pivoter l'image de façon aléatoire dans la plage de degrés spécifiée, ce qui améliore la capacité du modèle à reconnaître des objets dans diverses orientations.
translate float 0.1 0.0 - 1.0 Traduit l'image horizontalement et verticalement d'une fraction de la taille de l'image, ce qui facilite l'apprentissage de la détection d'objets partiellement visibles.
scale float 0.5 >=0.0 Met l'image à l'échelle en fonction d'un facteur de gain, simulant ainsi des objets situés à différentes distances de la caméra.
shear float 0.0 -180 - +180 Cisaille l'image d'un degré spécifié, imitant l'effet des objets vus sous différents angles.
perspective float 0.0 0.0 - 0.001 Applique une transformation aléatoire de la perspective à l'image, ce qui améliore la capacité du modèle à comprendre les objets dans l'espace 3D.
flipud float 0.0 0.0 - 1.0 Renverse l'image avec la probabilité spécifiée, ce qui augmente la variabilité des données sans affecter les caractéristiques de l'objet.
fliplr float 0.5 0.0 - 1.0 Retourne l'image de gauche à droite avec la probabilité spécifiée, utile pour apprendre les objets symétriques et augmenter la diversité des ensembles de données.
bgr float 0.0 0.0 - 1.0 Renverse les canaux de l'image de RVB à BGR avec la probabilité spécifiée, ce qui est utile pour accroître la robustesse à un mauvais classement des canaux.
mosaic float 1.0 0.0 - 1.0 Combine quatre images d'entraînement en une seule, simulant ainsi différentes compositions de scènes et interactions d'objets. Très efficace pour la compréhension de scènes complexes.
mixup float 0.0 0.0 - 1.0 Mélange deux images et leurs étiquettes, créant ainsi une image composite. Améliore la capacité du modèle à se généraliser en introduisant le bruit de l'étiquette et la variabilité visuelle.
copy_paste float 0.0 0.0 - 1.0 Copie les objets d'une image et les colle sur une autre, ce qui est utile pour augmenter les instances d'objets et apprendre l'occlusion des objets.
auto_augment str randaugment - Applique automatiquement une politique d'augmentation prédéfinie (randaugment, autoaugment, augmix), optimisant les tâches de classification en diversifiant les caractéristiques visuelles.
erasing float 0.4 0.0 - 0.9 Efface de façon aléatoire une partie de l'image pendant l'entraînement à la classification, ce qui encourage le modèle à se concentrer sur les caractéristiques moins évidentes pour la reconnaissance.
crop_fraction float 1.0 0.1 - 1.0 Recadre l'image de classification à une fraction de sa taille pour mettre l'accent sur les caractéristiques centrales et s'adapter à l'échelle des objets, en réduisant les distractions de l'arrière-plan.

Ces paramètres peuvent être ajustés pour répondre aux exigences spécifiques de l'ensemble de données et de la tâche à accomplir. L'expérimentation de différentes valeurs peut aider à trouver la stratégie d'augmentation optimale qui conduit aux meilleures performances du modèle.

Paramètres d'enregistrement, de points de contrôle et de traçage

L'enregistrement, les points de contrôle, le traçage et la gestion des fichiers sont des éléments importants à prendre en compte lors de la formation d'un modèle YOLO .

  • Enregistrement : Il est souvent utile de consigner diverses mesures et statistiques pendant la formation pour suivre les progrès du modèle et diagnostiquer les problèmes qui peuvent survenir. Cela peut se faire Ă  l'aide d'une bibliothèque de journalisation telle que TensorBoard ou en Ă©crivant les messages de journalisation dans un fichier.
  • Points de contrĂ´le : C'est une bonne pratique que d'enregistrer des points de contrĂ´le du modèle Ă  intervalles rĂ©guliers pendant la formation. Cela te permet de reprendre la formation Ă  partir d'un point prĂ©cĂ©dent si le processus de formation est interrompu ou si tu veux expĂ©rimenter diffĂ©rentes configurations de formation.
  • TracĂ© : La visualisation des performances du modèle et de la progression de la formation peut ĂŞtre utile pour comprendre le comportement du modèle et identifier les problèmes potentiels. Cela peut se faire Ă  l'aide d'une bibliothèque de traçage telle que matplotlib ou en gĂ©nĂ©rant des tracĂ©s Ă  l'aide d'une bibliothèque de journalisation telle que TensorBoard.
  • Gestion des fichiers : La gestion des diffĂ©rents fichiers gĂ©nĂ©rĂ©s au cours du processus de formation, tels que les points de contrĂ´le du modèle, les fichiers journaux et les tracĂ©s, peut s'avĂ©rer difficile. Il est important d'avoir une structure de fichiers claire et organisĂ©e pour garder une trace de ces fichiers et faciliter leur accès et leur analyse si nĂ©cessaire.

Une journalisation efficace, des points de contrôle, des tracés et une gestion des fichiers peuvent t'aider à suivre la progression du modèle et à faciliter le débogage et l'optimisation du processus de formation.

Argument DĂ©faut Description
project 'runs' Spécifie le répertoire racine pour l'enregistrement des parcours de formation. Chaque série sera enregistrée dans un sous-répertoire distinct de ce répertoire.
name 'exp' Définit le nom de l'expérience. S'il n'est pas spécifié, YOLO incrémente automatiquement ce nom à chaque exécution, par ex, exp, exp2, etc., pour éviter d'écraser les expériences précédentes.
exist_ok False Détermine s'il faut écraser un répertoire d'expériences existant s'il existe déjà un répertoire portant le même nom. Si la valeur de ce paramètre est True permet l'écrasement, tandis que False l'empêche.
plots False Contrôle la génération et l'enregistrement des parcelles d'entraînement et de validation. Réglé sur True pour créer des tracés tels que des courbes de perte, des courbes de précision-rappel et des prédictions d'échantillons. Utile pour suivre visuellement les performances du modèle au fil du temps.
save False Permet d'enregistrer les points de contrôle de l'entraînement et les poids finaux du modèle. Réglé sur True pour enregistrer périodiquement les états des modèles, ce qui permet de reprendre la formation à partir de ces points de contrôle ou de déployer les modèles.


Créé le 2023-11-12, Mis à jour le 2024-04-18
Auteurs : glenn-jocher (13), fcakyon (2), Laughing-q (2), plashchynski (1), Burhan-Q (1), AyushExel (1), RizwanMunawar (1), tensorturtle (1)

Commentaires