Skip to content

Configuration

YOLO settings and hyperparameters play a critical role in the model's performance, speed, and accuracy. These settings and hyperparameters can affect the model's behavior at various stages of the model development process, including training, validation, and prediction.



Regarde : Mastering Ultralytics YOLO: Configuration

Ultralytics Les commandes utilisent la syntaxe suivante :

Exemple

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLO11 model from a pre-trained weights file
model = YOLO("yolo11n.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.
ArgumentDéfautDescription
task'detect'Spécifie la tâche YOLO à exécuter. Les options comprennent detect for object detection, 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: For training a YOLO11 model on a custom dataset.
  • Val: For validating a YOLO11 model after it has been trained.
  • Predict: For making predictions using a trained YOLO11 model on new images or videos.
  • Export: For exporting a YOLO11 model to a format that can be used for deployment.
  • Track: For tracking objects in real-time using a YOLO11 model.
  • Benchmark: For benchmarking YOLO11 exports (ONNX, TensorRT, etc.) speed and accuracy.
ArgumentDéfautDescription
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

The training settings for YOLO models encompass various hyperparameters and configurations used during the training process. These settings influence the model's performance, speed, and accuracy. Key training settings include batch size, learning rate, momentum, and weight decay. Additionally, the choice of optimizer, loss function, and training dataset composition can impact the training process. Careful tuning and experimentation with these settings are crucial for optimizing performance.

ArgumentDéfautDescription
modelNoneSpé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.
dataNoneChemin d'accès au fichier de configuration du jeu de données (par ex, coco8.yaml). This file contains dataset-specific parameters, including paths to training and validation data, class names, and number of classes.
epochs100Total number of training epochs. Each epoch represents a full pass over the entire dataset. Adjusting this value can affect training duration and model performance.
timeNoneDuré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.
patience100Number of epochs to wait without improvement in validation metrics before early stopping the training. Helps prevent overfitting by stopping training when performance plateaus.
batch16Batch size, with three modes: set as an integer (e.g., batch=16), le mode automatique pour une utilisation de la mémoire de 60 % GPU (batch=-1) ou en mode automatique avec une fraction d’utilisation spécifiée (batch=0.70).
imgsz640Target image size for training. All images are resized to this dimension before being fed into the model. Affects model accuracy and computational complexity.
saveTrueEnables saving of training checkpoints and final model weights. Useful for resuming training or model deployment.
save_period-1Fré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.
cacheFalsePermet 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.
deviceNoneSpécifie le(s) dispositif(s) informatique(s) 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).
workers8Nombre de threads de travail pour le chargement des données (par RANK si Multi-GPU formation). Influe sur la vitesse de prétraitement des données et d'alimentation du modèle, particulièrement utile dans les configurations multiGPU .
projectNoneNom 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.
nameNoneNom 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_okFalseSi 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.
pretrainedTrueDé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é.
verboseFalseActive 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.
seed0Dé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.
deterministicTrueForce 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_clsFalseTraite 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.
rectFalsePermet 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_lrFalseUtilizes a cosine learning rate scheduler, adjusting the learning rate following a cosine curve over epochs. Helps in managing learning rate for better convergence.
close_mosaic10Disables mosaic data augmentation in the last N epochs to stabilize training before completion. Setting to 0 disables this feature.
resumeFalseReprend 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.
ampTrueEnables Automatic Mixed Precision (AMP) training, reducing memory usage and possibly speeding up training with minimal impact on accuracy.
fraction1.0Spé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.
profileFalsePermet d'établir le profil des vitesses ONNX et TensorRT pendant la formation, ce qui est utile pour optimiser le déploiement du modèle.
freezeNoneFreezes the first N layers of the model or specified layers by index, reducing the number of trainable parameters. Useful for fine-tuning or transfer learning.
lr00.01Taux 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.
lrf0.01Taux 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.
momentum0.937Momentum factor for SGD or beta1 for Adam optimizers, influencing the incorporation of past gradients in the current update.
weight_decay0.0005L2 regularization term, penalizing large weights to prevent overfitting.
warmup_epochs3.0Nombre 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_momentum0.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_lr0.1Taux 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.
box7.5Weight of the box loss component in the loss function, influencing how much emphasis is placed on accurately predicting bounding box coordinates.
cls0.5Poids 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.
dfl1.5Poids de la perte focale de distribution, utilisé dans certaines versions de YOLO pour une classification plus fine.
pose12.0Le 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.
kobj2.0Poids 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_smoothing0.0Applique 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.
nbs64Taille nominale du lot pour la normalisation de la perte.
overlap_maskTrueDetermines whether segmentation masks should overlap during training, applicable in instance segmentation tasks.
mask_ratio4Taux de sous-échantillonnage pour les masques de segmentation, affectant la résolution des masques utilisés pendant l'entraînement.
dropout0.0Taux 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.
valTrueActive la validation pendant la formation, ce qui permet d'évaluer périodiquement les performances du modèle sur un ensemble de données distinct.
plotsFalseGé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.

Remarque sur les paramètres de taille de lot

Le batch peut être configuré de trois manières :

  • Fixed Batch Size: Définis une valeur entière (par ex, batch=16), en spécifiant directement le nombre d’images par lot.
  • Mode Auto (60% GPU Memory): Utiliser batch=-1 pour ajuster automatiquement la taille des lots pour une utilisation de la mémoire d'environ 60 % CUDA .
  • Mode automatique avec fraction d'utilisation: Règle une valeur de fraction (par ex, batch=0.70) pour ajuster la taille du lot en fonction de la fraction spécifiée de l'utilisation de la mémoire de GPU .

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 :

ArgumentTypeDéfautDescription
sourcestr'ultralytics/assets'Specifies the data source for inference. Can be an image path, video file, directory, URL, or device ID for live feeds. Supports a wide range of formats and sources, enabling flexible application across different types of input.
conffloat0.25Dé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.
ioufloat0.7Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Lower values result in fewer detections by eliminating overlapping boxes, useful for reducing duplicates.
imgszint or tuple640Définit la taille de l'image pour l'inférence. Peut être un seul entier 640 for square resizing or a (height, width) tuple. Proper sizing can improve detection accuracy and processing speed.
halfboolFalseEnables half-precision (FP16) inference, which can speed up model inference on supported GPUs with minimal impact on accuracy.
devicestrNoneSpécifie le dispositif d'inférence (par ex, cpu, cuda:0 ou 0). Permet aux utilisateurs de choisir entre CPU, un GPU spécifique ou d'autres dispositifs de calcul pour l'exécution du modèle.
max_detint300Nombre 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_strideint1Saut 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_bufferboolFalseDetermines whether to queue incoming frames for video streams. If False, old frames get dropped to accomodate new frames (optimized for real-time applications). If `True', queues new frames in a buffer, ensuring no frames get skipped, but will cause latency if inference FPS is lower than stream FPS.
visualizeboolFalseActive 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.
augmentboolFalsePermet 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_nmsboolFalsePermet 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.
classeslist[int]NoneFiltre 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_masksboolFalseUtilise 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.
embedlist[int]NoneSpecifies the layers from which to extract feature vectors or embeddings. Useful for downstream tasks like clustering or similarity search.

Arguments de visualisation :

ArgumentTypeDéfautDescription
showboolFalseSi 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.
saveboolFalse ou TrueEnables saving of the annotated images or videos to file. Useful for documentation, further analysis, or sharing results. Defaults to True when using CLI & False when used in Python.
save_framesboolFalseLors 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_txtboolFalseEnregistre 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_confboolFalseInclut les scores de confiance dans les fichiers texte sauvegardés. Améliore les détails disponibles pour le post-traitement et l'analyse.
save_cropboolFalseSauvegarde 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_labelsboolTrueAffiche des étiquettes pour chaque détection dans la sortie visuelle. Permet de comprendre immédiatement les objets détectés.
show_confboolTrueAffiche 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_boxesboolTrueDessine 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_widthNone ou intNoneSpé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é.

ArgumentTypeDéfautDescription
datastrNoneSpécifie le chemin d'accès au fichier de configuration du jeu de données (par ex, coco8.yaml). This file includes paths to validation data, class names, and number of classes.
imgszint640Définit la taille des images d'entrée. Toutes les images sont redimensionnées à cette dimension avant d'être traitées.
batchint16Règle le nombre d'images par lot. Utilise -1 pour AutoBatch, qui s'ajuste automatiquement en fonction de la disponibilité de la mémoire sur GPU .
save_jsonboolFalseSi Trueenregistre les résultats dans un fichier JSON en vue d'une analyse plus approfondie ou d'une intégration à d'autres outils.
save_hybridboolFalseSi Trueenregistre une version hybride des étiquettes qui combine les annotations originales avec des prédictions de modèle supplémentaires.
conffloat0.001Dé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.
ioufloat0.6Sets the Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Helps in reducing duplicate detections.
max_detint300Limite le nombre maximum de détections par image. Utile dans les scènes denses pour éviter les détections excessives.
halfboolTrueEnables half-precision (FP16) computation, reducing memory usage and potentially increasing speed with minimal impact on accuracy.
devicestrNoneSpécifie le dispositif de validation (cpu, cuda:0etc.) Permet une certaine flexibilité dans l'utilisation des ressources CPU ou GPU .
dnnboolFalseSi True, uses the OpenCV DNN module for ONNX model inference, offering an alternative to PyTorch inference methods.
plotsboolFalseLorsqu'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.
rectboolFalseSi 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é.
splitstrvalDé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.

Careful tuning and experimentation with these settings are crucial to ensure optimal performance on the validation dataset and detect and prevent overfitting.

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.

ArgumentTypeDéfautDescription
formatstr'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.
imgszint ou tuple640Taille 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.
kerasboolFalseEnables export to Keras format for TensorFlow SavedModel, providing compatibility with TensorFlow serving and APIs.
optimizeboolFalseApplique 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.
halfboolFalsePermet 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.
int8boolFalseActivates INT8 quantization, further compressing the model and speeding up inference with minimal accuracy loss, primarily for edge devices.
dynamicboolFalsePermet des tailles d'entrée dynamiques pour les exportations ONNX, TensorRT et OpenVINO , ce qui améliore la flexibilité dans la gestion des dimensions d'image variables.
simplifyboolTrueSimplifie le graphe du modèle pour ONNX exporte avec onnxslim, améliorant potentiellement les performances et la compatibilité.
opsetintNoneSpé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.
workspacefloat4.0Définit la taille maximale de l'espace de travail en GiB pour les optimisations de TensorRT , en équilibrant l'utilisation de la mémoire et les performances.
nmsboolFalseAjoute la suppression non maximale (NMS) à l'exportation CoreML , ce qui est essentiel pour un post-traitement précis et efficace de la détection.
batchint1Spécifie la taille d’inférence par lots du modèle d’exportation ou le nombre maximal d’images que le modèle exporté traitera simultanément predict mode.

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

Augmentation techniques are essential for improving the robustness and performance of YOLO models by introducing variability into the training data, helping the model generalize better to unseen data. The following table outlines the purpose and effect of each augmentation argument:

ArgumentTypeDéfautGammeDescription
hsv_hfloat0.0150.0 - 1.0Ajuste 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_sfloat0.70.0 - 1.0Modifie la saturation de l'image d'une fraction, ce qui affecte l'intensité des couleurs. Utile pour simuler différentes conditions environnementales.
hsv_vfloat0.40.0 - 1.0Modifie la valeur (luminosité) de l'image d'une fraction, ce qui aide le modèle à bien fonctionner dans diverses conditions d'éclairage.
degreesfloat0.0-180 - +180Fait 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.
translatefloat0.10.0 - 1.0Traduit 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.
scalefloat0.5>=0.0Met l'image à l'échelle en fonction d'un facteur de gain, simulant ainsi des objets situés à différentes distances de la caméra.
shearfloat0.0-180 - +180Cisaille l'image d'un degré spécifié, imitant l'effet des objets vus sous différents angles.
perspectivefloat0.00.0 - 0.001Applique 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.
flipudfloat0.00.0 - 1.0Renverse l'image avec la probabilité spécifiée, ce qui augmente la variabilité des données sans affecter les caractéristiques de l'objet.
fliplrfloat0.50.0 - 1.0Retourne 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.
bgrfloat0.00.0 - 1.0Renverse 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.
mosaicfloat1.00.0 - 1.0Combine 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.
mixupfloat0.00.0 - 1.0Mé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_pastefloat0.00.0 - 1.0Copie 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.
copy_paste_modestrflip-Copy-Paste augmentation method selection among the options of ("flip", "mixup").
auto_augmentstrrandaugment-Applique automatiquement une politique d'augmentation prédéfinie (randaugment, autoaugment, augmix), optimisant les tâches de classification en diversifiant les caractéristiques visuelles.
erasingfloat0.40.0 - 0.9Efface 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_fractionfloat1.00.1 - 1.0Recadre 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.

ArgumentDéfautDescription
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_okFalseDé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.
plotsFalseContrôle la génération et l'enregistrement des parcelles d'entraînement et de validation. Réglé sur True to create plots such as loss curves, precision-recall curves, and sample predictions. Useful for visually tracking model performance over time.
saveFalsePermet 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.

FAQ

Comment améliorer les performances de mon modèle YOLO pendant l'entraînement ?

Improving YOLO model performance involves tuning hyperparameters like batch size, learning rate, momentum, and weight decay. Adjusting augmentation settings, selecting the right optimizer, and employing techniques like early stopping or mixed precision can also help. For detailed guidance on training settings, refer to the Train Guide.

Quels sont les principaux hyperparamètres à prendre en compte pour YOLO la précision du modèle ?

Les principaux hyperparamètres qui influencent la précision du modèle YOLO sont les suivants :

  • Taille du lot (batch): Des lots plus importants peuvent stabiliser l'entraînement mais peuvent nécessiter plus de mémoire.
  • Taux d'apprentissage (lr0): Contrôle la taille du pas pour les mises à jour des poids ; des taux plus petits offrent des ajustements fins mais ralentissent la convergence.
  • L'élan (momentum): Aide à accélérer les vecteurs de gradient dans les bonnes directions, en amortissant les oscillations.
  • Taille de l'image (imgsz): Des images de plus grande taille peuvent améliorer la précision mais augmentent la charge de calcul.

Ajuste ces valeurs en fonction de ton jeu de données et des capacités de ton matériel. Pour en savoir plus, consulte la section Paramètres du train.

Comment définir le taux d'apprentissage pour la formation d'un modèle YOLO ?

Le taux d'apprentissage (lr0) est cruciale pour l'optimisation. Un point de départ courant est 0.01 pour SGD ou 0.001 pour Adam. Il est essentiel de surveiller les paramètres de formation et de les ajuster si nécessaire. Utilise les programmateurs de taux d'apprentissage en cosinus (cos_lr) ou des techniques d'échauffement (warmup_epochs, warmup_momentum) pour modifier dynamiquement le taux pendant l'entraînement. Tu trouveras plus de détails dans le Guide des trains.

Quels sont les paramètres d'inférence par défaut pour les modèles YOLO ?

Les paramètres d'inférence par défaut sont les suivants :

  • Seuil de confiance (conf=0.25): Confiance minimale pour les détections.
  • Seuil de l'IoU (iou=0.7): Pour la suppression non maximale (NMS).
  • Taille de l'image (imgsz=640): Redimensionne les images d'entrée avant l'inférence.
  • Appareil (device=None): Selects CPU or GPU for inference. For a comprehensive overview, visit the Prédire les paramètres et la section Guide de prédiction.

Pourquoi devrais-je utiliser un entraînement de précision mixte avec les modèles YOLO ?

Entraînement de précision mixte, rendu possible grâce à amp=TrueCette méthode permet de réduire l'utilisation de la mémoire et d'accélérer la formation en utilisant les avantages de FP16 et FP32. Ceci est bénéfique pour les GPU modernes, qui prennent en charge la précision mixte de façon native, ce qui permet de faire tenir plus de modèles dans la mémoire et d'effectuer des calculs plus rapides sans perte significative de précision. Tu trouveras plus d'informations à ce sujet dans le Guide des trains.

📅 Created 11 months ago ✏️ Updated 17 days ago

Commentaires