Configuration

Les paramètres et hyperparamètres de YOLO jouent un rôle essentiel dans les performances, la vitesse et la précision du modèle. Ces réglages peuvent influencer le comportement du modèle à différentes étapes, notamment lors de l'entraînement, de la validation et de la prédiction.



Watch: Mastering Ultralytics YOLO: Configuration

Les commandes Ultralytics utilisent la syntaxe suivante :

Exemple
yolo TASK MODE ARGS

Où :

Default ARG values are defined on this page and come from the cfg/default.yaml file.

Tâches

Les modèles Ultralytics YOLO peuvent effectuer diverses tâches de vision par ordinateur, notamment :

ArgumentDéfautDescription
task'detect'Spécifie la tâche YOLO : detect pour la détection d'objets, segment pour la segmentation, classify pour la classification, pose pour l'estimation de pose, et obb pour les boîtes englobantes orientées. Chaque tâche est conçue pour des sorties et des problèmes spécifiques en analyse d'image et de vidéo.

Guide des tâches

Modes

Les modèles Ultralytics YOLO fonctionnent dans différents modes, chacun étant conçu pour une étape spécifique du cycle de vie du modèle :

  • Train : Entraîne un modèle YOLO sur un jeu de données personnalisé.
  • Val : Valide un modèle YOLO entraîné.
  • Predict : Utilise un modèle YOLO entraîné pour effectuer des prédictions sur de nouvelles images ou vidéos.
  • Export : Exporte un modèle YOLO pour le déploiement.
  • Track : Suit des objets en temps réel en utilisant un modèle YOLO.
  • Benchmark : Évalue la vitesse et la précision des exports YOLO (ONNX, TensorRT, etc.).
ArgumentDéfautDescription
mode'train'Spécifie le mode opératoire du modèle YOLO : train pour l'entraînement, val pour la validation, predict pour l'inférence, export pour la conversion vers des formats de déploiement, track pour le suivi d'objets, et benchmark pour l'évaluation des performances. Chaque mode prend en charge différentes étapes, du développement au déploiement.

Guide des modes

Paramètres d'entraînement

Les paramètres d'entraînement pour les modèles YOLO incluent des hyperparamètres et des configurations qui affectent les performances, la vitesse et la précision du modèle. Les paramètres clés incluent la taille du batch, le taux d'apprentissage, le momentum et la décroissance du poids. Le choix de l'optimiseur, de la fonction de perte et la composition du jeu de données ont également un impact sur l'entraînement. Le réglage et l'expérimentation sont cruciaux pour des performances optimales. Pour plus de détails, consulte la fonction de point d'entrée Ultralytics.

ArgumentTypeDéfautDescription
modelstrNoneSpécifie le fichier du modèle pour l'entraînement. Accepte un chemin vers un modèle pré-entraîné .pt ou un fichier de configuration .yaml. Essentiel pour définir la structure du modèle ou initialiser les poids.
datastrNoneChemin vers le fichier de configuration du jeu de données (par exemple, coco8.yaml). Ce fichier contient les paramètres spécifiques au jeu de données, y compris les chemins vers les données d'entraînement et de validation, les noms de classe et le nombre de classes.
epochsint100Nombre total d'époques d'entraînement. Chaque époque représente un passage complet sur l'ensemble du jeu de données. Ajuster cette valeur peut affecter la durée de l'entraînement et les performances du modèle.
timefloatNoneTemps d'entraînement maximal en heures. Si défini, cela remplace l'argument epochs, permettant à l'entraînement de s'arrêter automatiquement après la durée spécifiée. Utile pour les scénarios d'entraînement à durée limitée.
patienceint100Nombre d'époques à attendre sans amélioration des métriques de validation avant d'arrêter prématurément l'entraînement. Aide à prévenir le surapprentissage en interrompant l'entraînement lorsque les performances stagnent.
batchint ou float16Taille du batch, avec trois modes : défini en tant qu'entier (par ex. batch=16), mode automatique pour une utilisation de 60% de la mémoire GPU (batch=-1), ou mode automatique avec une fraction d'utilisation spécifiée (batch=0.70).
imgszint640Taille d'image cible pour l'entraînement. Les images sont redimensionnées en carrés avec des côtés égaux à la valeur spécifiée (si rect=False), préservant le rapport d'aspect pour les modèles YOLO mais pas pour RT-DETR. Affecte la précision du modèle et sa complexité computationnelle.
saveboolTrueActive la sauvegarde des points de contrôle d'entraînement et des poids finaux du modèle. Utile pour reprendre l'entraînement ou pour le déploiement du modèle.
save_periodint-1Fréquence de sauvegarde des points de contrôle du modèle, spécifiée en époques. Une valeur de -1 désactive cette fonctionnalité. Utile pour sauvegarder des modèles intermédiaires lors de longues sessions d'entraînement.
cacheboolFalseActive la mise en cache des images du jeu de données en mémoire (True/ram), sur le disque (disk), ou la désactive (False). Améliore la vitesse d'entraînement en réduisant les E/S disque au prix d'une utilisation mémoire accrue.
deviceint ou str ou listNoneSpécifie le(s) périphérique(s) de calcul pour l'entraînement : un seul GPU (device=0), plusieurs GPU (device=[0,1]), CPU (device=cpu), MPS pour Apple silicon (device=mps), Huawei Ascend NPU (device=npu ou device=npu:0), ou sélection automatique du GPU le plus libre (device=-1) ou plusieurs GPU libres (device=[-1,-1]).
workersint8Nombre de threads de travail pour le chargement des données (par RANK en cas d'entraînement Multi-GPU). Influence la vitesse de prétraitement des données et leur alimentation dans le modèle, particulièrement utile dans les configurations multi-GPU.
projectstrNoneNom du répertoire du projet où les sorties de l'entraînement sont sauvegardées. Permet un stockage organisé des différentes expériences.
namestrNoneNom de l'exécution d'entraînement. Utilisé pour créer un sous-répertoire dans le dossier du projet, où les journaux et les sorties de l'entraînement sont stockés.
exist_okboolFalseSi True, permet d'écraser un répertoire projet/nom existant. Utile pour l'expérimentation itérative sans avoir besoin de nettoyer manuellement les sorties précédentes.
pretrainedbool ou strTrueDétermine si l'entraînement commence à partir de poids pré-entraînés. Peut être une valeur booléenne ou un chemin vers des poids à charger. pretrained=False entraîne à partir de poids initialisés aléatoirement tout en conservant l'architecture du modèle.
optimizerstr'auto'Choix de l'optimiseur pour l'entraînement. Les options incluent SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, ou auto pour une sélection automatique basée sur la configuration du modèle. Affecte la vitesse de convergence et la stabilité.
seedint0Définit la graine aléatoire pour l'entraînement, assurant la reproductibilité des résultats entre les exécutions avec les mêmes configurations.
deterministicboolTrueForce l'utilisation d'algorithmes déterministes, assurant la reproductibilité mais pouvant affecter les performances et la vitesse en raison de la restriction sur les algorithmes non déterministes.
verboseboolTrueActive une sortie détaillée pendant l'entraînement, affichant des barres de progression, des métriques par époque et des informations d'entraînement supplémentaires dans la console.
single_clsboolFalseTraite toutes les classes dans les jeux de données multi-classes comme une seule classe pendant l'entraînement. Utile pour les tâches de classification binaire ou lorsqu'on se concentre sur la présence d'objets plutôt que sur la classification.
classeslist[int]NoneSpécifie une liste d'ID de classes sur lesquelles s'entraîner. Utile pour filtrer et se concentrer uniquement sur certaines classes pendant l'entraînement.
rectboolFalseActive la stratégie de remplissage minimum—les images dans un batch sont minimalement remplies pour atteindre une taille commune, avec le côté le plus long égal à imgsz. Peut améliorer l'efficacité et la vitesse mais peut affecter la précision du modèle.
multi_scalefloat0.0Fait varier aléatoirement imgsz à chaque batch par +/- multi_scale (par exemple 0.25 -> 0.75x à 1.25x), en arrondissant aux multiples de foulée (stride) du modèle ; 0.0 désactive l'entraînement multi-échelle.
cos_lrboolFalseUtilise un planificateur de taux d'apprentissage cosinus, ajustant le taux d'apprentissage en suivant une courbe cosinus sur les époques. Aide à gérer le taux d'apprentissage pour une meilleure convergence.
close_mosaicint10Désactive la data augmentation mosaïque lors des N dernières époques pour stabiliser l'entraînement avant la fin. Définir sur 0 désactive cette fonctionnalité.
resumeboolFalseReprend l'entraînement à partir du dernier point de contrôle enregistré. Charge automatiquement les poids du modèle, l'état de l'optimiseur et le compteur d'époques, en poursuivant l'entraînement de manière fluide.
ampboolTrueActive l'entraînement en Mixed Precision automatique (AMP), ce qui réduit l'utilisation de la mémoire et accélère éventuellement l'entraînement avec un impact minimal sur la précision.
fractionfloat1.0Spécifie la fraction du jeu de données à utiliser pour l'entraînement. Permet de s'entraîner sur un sous-ensemble du jeu de données complet, utile pour des expériences ou lorsque les ressources sont limitées.
profileboolFalseActive le profilage des vitesses ONNX et TensorRT pendant l'entraînement, utile pour optimiser le déploiement du modèle.
freezeint ou listNoneGèle les N premières couches du modèle ou les couches spécifiées par index, réduisant le nombre de paramètres entraînables. Utile pour le réglage fin ou le transfer learning.
lr0float0.01Taux d'apprentissage initial (ex: SGD=1E-2, Adam=1E-3). Ajuster cette valeur est crucial pour le processus d'optimisation, car elle influence la rapidité avec laquelle les poids du modèle sont mis à jour.
lrffloat0.01Taux d'apprentissage final en tant que fraction du taux initial = (lr0 * lrf), utilisé conjointement avec des planificateurs pour ajuster le taux d'apprentissage au fil du temps.
momentumfloat0.937Facteur de momentum pour SGD ou beta1 pour les Adam optimizers, influençant l'intégration des gradients passés dans la mise à jour actuelle.
weight_decayfloat0.0005Terme de regularization L2, pénalisant les poids importants pour éviter le surapprentissage.
warmup_epochsfloat3.0Nombre d'époques pour le préchauffage du taux d'apprentissage, augmentant progressivement le taux d'apprentissage d'une valeur faible à la valeur initiale pour stabiliser l'entraînement dès le début.
warmup_momentumfloat0.8Momentum initial pour la phase de préchauffage, s'ajustant progressivement au momentum défini pendant la période de préchauffage.
warmup_bias_lrfloat0.1Taux d'apprentissage pour les paramètres de biais pendant la phase de préchauffage, aidant à stabiliser l'entraînement du modèle lors des premières époques.
boxfloat7.5Poids de la composante de perte de boîte dans la loss function, influençant l'importance accordée à la prédiction précise des coordonnées de bounding box.
clsfloat0.5Poids de la perte de classification dans la fonction de perte totale, affectant l'importance de la prédiction correcte de la classe par rapport aux autres composantes.
cls_pwfloat0.0Puissance pour la pondération des classes afin de gérer le déséquilibre des classes en utilisant la fréquence inverse des classes. 0.0 désactive la pondération des classes, 1.0 applique une pondération inverse complète. Les valeurs entre 0 et 1 fournissent une pondération partielle.
dflfloat1.5Poids de la distribution focal loss, utilisée dans certaines versions de YOLO pour une classification fine.
posefloat12.0Poids de la perte de pose dans les modèles entraînés pour l'estimation de pose, influençant l'accent mis sur la prédiction précise des points clés de pose.
kobjfloat1.0Poids de la perte d'objectness des points clés dans les modèles d'estimation de pose, équilibrant la confiance de détection avec la précision de la pose.
rlefloat1.0Poids de la perte d'estimation de log-vraisemblance résiduelle dans les modèles d'estimation de pose, affectant la précision de la localisation des points clés.
anglefloat1.0Poids de la perte d'angle dans les modèles OBB, affectant la précision des prédictions d'angle de la boîte englobante orientée.
nbsint64Taille de lot nominale pour la normalisation de la perte.
overlap_maskboolTrueDétermine si les masques d'objet doivent être fusionnés en un seul masque pour l'entraînement ou conservés séparément pour chaque objet. En cas de chevauchement, le masque plus petit est superposé au masque plus grand lors de la fusion.
mask_ratioint4Ratio de sous-échantillonnage pour les masques de segmentation, affectant la résolution des masques utilisés pendant l'entraînement.
dropoutfloat0.0Taux de dropout pour la régularisation dans les tâches de classification, empêchant le surapprentissage en omettant aléatoirement des unités pendant l'entraînement.
valboolTrueActive la validation pendant l'entraînement, permettant une évaluation périodique des performances du modèle sur un jeu de données distinct.
plotsboolTrueGénère et enregistre des tracés des métriques d'entraînement et de validation, ainsi que des exemples de prédiction, offrant des aperçus visuels sur les performances du modèle et la progression de l'apprentissage.
compilebool ou strFalseActive la compilation de graphe torch.compile de PyTorch 2.x avec backend='inductor'. Accepte True"default", False → désactive, ou un mode chaîne comme "default", "reduce-overhead", "max-autotune-no-cudagraphs". Revient au mode eager avec un avertissement si non pris en charge.
max_detint300Spécifie le nombre maximal d'objets conservés pendant la phase de validation de l'entraînement.
Note sur les paramètres de taille de lot

L'argument batch offre trois options de configuration :

  • Taille de lot fixe : Spécifie le nombre d'images par lot avec un entier (ex: batch=16).
  • Mode automatique (60% mémoire GPU) : Utilise batch=-1 pour un ajustement automatique à environ 60% de l'utilisation de la mémoire CUDA.
  • Mode automatique avec fraction d'utilisation : Définit une fraction (ex: batch=0.70) pour ajuster en fonction d'une utilisation spécifique de la mémoire GPU.

Guide d'entraînement

Paramètres de prédiction

Les paramètres de prédiction pour les modèles YOLO incluent des hyperparamètres et des configurations qui influencent les performances, la vitesse et la précision pendant l'inférence. Les paramètres clés incluent le seuil de confiance, le seuil de Non-Maximum Suppression (NMS), et le nombre de classes. La taille des données d'entrée, le format et les fonctionnalités supplémentaires comme les masques affectent également les prédictions. Ajuster ces paramètres est essentiel pour des performances optimales.

Arguments d'inférence :

ArgumentTypeDéfautDescription
sourcestr ou int ou NoneNoneSpécifie la source de données pour l'inférence. Peut être un chemin d'image, un fichier vidéo, un répertoire, une URL ou un identifiant d'appareil pour des flux en direct. Si omis, un avertissement est journalisé et le modèle revient aux assets de démonstration intégrés (ultralytics/assets, ou une URL de démonstration pour OBB). Prend en charge une large gamme de formats et de sources, permettant une application flexible à travers différents types d'entrée.
conffloat0.25Définit le seuil de confiance minimal pour les détections. Les objets détectés avec une confiance inférieure à ce seuil seront ignorés. Ajuster cette valeur peut aider à réduire les faux positifs.
ioufloat0.7Seuil d'Intersection Over Union (IoU) pour la Non-Maximum Suppression (NMS). Des valeurs plus faibles entraînent moins de détections en éliminant les boîtes qui se chevauchent, utile pour réduire les doublons.
imgszint ou tuple640Letterbox target. An integer gives a square N×N; a tuple gives (height, width). With rect=True, the actual tensor may be smaller than this target due to minimum-rectangle padding. Use rect=False for a fixed size. See Fixed shape vs minimum rectangle.
rectboolTrueSi True, utilise le remplissage du rectangle minimal lorsque c'est possible (lot de même forme et backend pris en charge). Si False, remplit toujours jusqu'à imgsz complet. Voir Forme fixe vs rectangle minimal.
halfboolFalseActive 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.
devicestrNoneSpécifie l'appareil pour l'inférence (ex: cpu, cuda:0, 0, npu ou npu:0). Permet aux utilisateurs de choisir entre le CPU, un GPU spécifique, le NPU Huawei Ascend ou d'autres appareils de calcul pour l'exécution du modèle.
batchint1Spécifie la taille de lot pour l'inférence (fonctionne uniquement lorsque la source est un répertoire, un fichier vidéo ou un fichier .txt). Une taille de lot plus grande peut fournir un débit plus élevé, réduisant la durée totale requise pour l'inférence.
max_detint300Nombre maximal 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 évite des sorties excessives dans les scènes denses.
vid_strideint1Pas de trame pour les entrées vidéo. Permet de sauter des images dans les vidéos pour accélérer le traitement au prix d'une perte de résolution temporelle. Une valeur de 1 traite chaque image, les valeurs plus élevées sautent des images.
stream_bufferboolFalseDétermine s'il faut mettre en file d'attente les images entrantes pour les flux vidéo. Si False, les anciennes images sont supprimées pour laisser place aux nouvelles (optimisé pour les applications temps réel). Si True, met les nouvelles images en mémoire tampon, garantissant qu'aucune image n'est sautée, mais cela causera de la latence si le FPS de l'inférence est inférieur au FPS du flux.
visualizeboolFalseActive la visualisation des caractéristiques du modèle pendant l'inférence, offrant un aperçu de ce que le modèle "voit". Utile pour le débogage et l'interprétation du modèle.
augmentboolFalseActive l'augmentation en temps de test (TTA) pour les prédictions, améliorant potentiellement la robustesse de la détection au prix d'une vitesse d'inférence réduite.
agnostic_nmsboolFalseActive la suppression non maximale (NMS) agnostique aux classes, qui fusionne les boîtes qui se chevauchent de classes différentes. Utile dans les scénarios de détection multi-classes où le chevauchement de classes est courant. Pour les modèles de bout en bout (YOLO26, YOLOv10), cela empêche uniquement la même détection d'apparaître avec plusieurs étiquettes de classe (doublons IoU=1.0) et n'effectue pas de suppression basée sur le seuil IoU entre des boîtes distinctes.
classeslist[int]NoneFiltre les prédictions selon un ensemble d'IDs de classe. 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_masksboolFalseRenvoie des masques de segmentation haute résolution. Les masques renvoyés (masks.data) correspondront à la taille originale de l'image si activé. S'ils sont désactivés, ils auront la taille de l'image utilisée pendant l'inférence.
embedlist[int]NoneSpécifie les couches à partir desquelles extraire les vecteurs de caractéristiques ou embeddings. Utile pour les tâches en aval comme le clustering ou la recherche de similarité.
projectstrNoneNom du répertoire de projet où les sorties de prédiction sont enregistrées si save est activé.
namestrNoneNom de l'exécution de prédiction. Utilisé pour créer un sous-répertoire dans le dossier de projet, où les sorties de prédiction sont stockées si save est activé.
streamboolFalseActive un traitement efficace en mémoire pour les longues vidéos ou les nombreuses images en renvoyant un générateur d'objets Results au lieu de charger toutes les images en mémoire simultanément.
verboseboolTrueContrôle l'affichage des logs d'inférence détaillés dans le terminal, fournissant un retour en temps réel sur le processus de prédiction.
compilebool ou strFalseActive la compilation de graphe torch.compile de PyTorch 2.x avec backend='inductor'. Accepte True"default", False → désactive, ou un mode chaîne comme "default", "reduce-overhead", "max-autotune-no-cudagraphs". Revient au mode eager avec un avertissement si non pris en charge.
end2endboolNoneRemplace le mode de bout en bout dans les modèles YOLO qui supportent l'inférence sans NMS (YOLO26, YOLOv10). Le définir sur False te permet d'exécuter la prédiction en utilisant le pipeline NMS traditionnel, tout en te permettant d'utiliser l'argument iou. Consulte le guide de détection de bout en bout pour plus de détails.

Arguments de visualisation :

ArgumentTypeDéfautDescription
showboolFalseSi True, affiche les images ou vidéos annotées dans une fenêtre. Utile pour un retour visuel immédiat lors du développement ou des tests.
saveboolFalse or TrueActive l'enregistrement des images ou vidéos annotées dans des fichiers. Utile pour la documentation, l'analyse approfondie ou le partage des résultats. Par défaut à True lors de l'utilisation de l'CLI et False lors de l'utilisation en Python.
save_framesboolFalseLors du traitement de vidéos, enregistre des images individuelles sous forme de fichiers. Utile pour extraire des images spécifiques ou pour une analyse détaillée image par image.
save_txtboolFalseEnregistre les résultats de détection dans un fichier texte, en suivant 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 enregistrés. Améliore le niveau de détail disponible pour le post-traitement et l'analyse.
save_cropboolFalseEnregistre les images recadrées des détections. Utile pour l'augmentation de données, l'analyse ou la création de jeux de données ciblés pour des objets spécifiques.
show_labelsboolTrueAffiche les étiquettes pour chaque détection dans la sortie visuelle. Fournit une compréhension immédiate des 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 englobantes autour des objets détectés. Essentiel pour l'identification visuelle et la localisation des objets dans les images ou les séquences vidéo.
line_widthint or NoneNoneSpécifie l'épaisseur de ligne des boîtes englobantes. Si None, l'épaisseur de ligne est automatiquement ajustée en fonction de la taille de l'image. Fournit une personnalisation visuelle pour plus de clarté.

Guide de prédiction

Paramètres de validation

Les paramètres de validation pour les modèles YOLO impliquent des hyperparamètres et des configurations pour évaluer la performance sur un jeu de données de validation. Ces paramètres influencent la performance, la vitesse et la précision. Les paramètres courants incluent la taille du lot, la fréquence de validation et les métriques de performance. La taille et la composition du jeu de données de validation, ainsi que la tâche spécifique, affectent également le processus.

ArgumentTypeDéfautDescription
datastrNoneSpécifie le chemin vers le fichier de configuration du jeu de données (par ex., coco8.yaml). Ce fichier doit inclure le chemin vers les données de validation.
imgszint640Définit la taille des images d'entrée. Toutes les images sont redimensionnées à cette dimension avant le traitement. Des tailles plus grandes peuvent améliorer la précision pour les petits objets mais augmentent le temps de calcul.
batchint16Définit le nombre d'images par lot. Des valeurs plus élevées utilisent la mémoire GPU plus efficacement mais nécessitent plus de VRAM. Ajuste selon les ressources matérielles disponibles.
save_jsonboolFalseSi True, enregistre les résultats dans un fichier JSON pour une analyse plus approfondie, une intégration avec d'autres outils ou une soumission à des serveurs d'évaluation comme COCO.
conffloat0.001Définit le seuil de confiance minimal pour les détections. Des valeurs plus faibles augmentent le rappel mais peuvent introduire plus de faux positifs. Utilisé pendant la validation pour calculer les courbes précision-rappel.
ioufloat0.7Définit le seuil d'Intersection Sur Union pour la Suppression Non Maximale. Contrôle l'élimination des détections en double.
max_detint300Limite le nombre maximal de détections par image. Utile dans les scènes denses pour éviter des détections excessives et gérer les ressources informatiques.
halfboolFalseActive le calcul en demi-précision (FP16), réduisant l'utilisation de la mémoire et augmentant potentiellement la vitesse avec un impact minimal sur la précision.
devicestrNoneSpécifie le périphérique pour la validation (cpu, cuda:0, npu, npu:0, etc.). Lorsque None, sélectionne automatiquement le meilleur périphérique disponible. Plusieurs périphériques CUDA peuvent être spécifiés avec une séparation par virgule.
dnnboolFalseSi True, utilise le module DNN d'OpenCV pour l'inférence du modèle ONNX, offrant une alternative aux méthodes d'inférence de PyTorch.
plotsboolTrueLorsqu'il est défini sur True, génère et enregistre des graphiques des prédictions par rapport à la vérité terrain, des matrices de confusion et des courbes PR pour une évaluation visuelle de la performance du modèle.
classeslist[int]NoneSpécifie une liste d'IDs de classe à évaluer. Utile pour filtrer et se concentrer uniquement sur certaines classes lors de l'évaluation.
rectboolTrueSi True, utilise l'inférence rectangulaire pour le traitement par lots, réduisant le rembourrage et augmentant potentiellement la vitesse et l'efficacité en traitant les images dans leur rapport d'aspect original.
splitstr'val'Détermine la division du jeu de données à utiliser pour la validation (val, test ou train). Permet une flexibilité dans le choix du segment de données pour l'évaluation de la performance.
projectstrNoneNom du répertoire de projet où les sorties de validation sont enregistrées. Aide à organiser les résultats de différentes expériences ou modèles.
namestrNoneNom de l'exécution de validation. Utilisé pour créer un sous-répertoire dans le dossier de projet, où les journaux et les sorties de validation sont stockés.
verboseboolTrueSi True, affiche des informations détaillées pendant le processus de validation, y compris les métriques par classe, la progression du lot et des informations de débogage supplémentaires.
save_txtboolFalseSi True, enregistre les résultats de détection dans des fichiers texte, avec un fichier par image, utile pour une analyse plus approfondie, un post-traitement personnalisé ou une intégration avec d'autres systèmes.
save_confboolFalseSi True, inclut les valeurs de confiance dans les fichiers texte enregistrés lorsque save_txt est activé, fournissant une sortie plus détaillée pour l'analyse et le filtrage.
workersint8Nombre de threads de travail pour le chargement des données. Des valeurs plus élevées peuvent accélérer le prétraitement des données mais peuvent augmenter l'utilisation du CPU. Régler sur 0 utilise le thread principal, ce qui peut être plus stable dans certains environnements.
augmentboolFalseActive l'augmentation en temps de test (TTA) pendant la validation, améliorant potentiellement la précision de détection au prix d'une vitesse d'inférence réduite en effectuant l'inférence sur des versions transformées de l'entrée.
agnostic_nmsboolFalseActive la Suppression Non Maximale agnostique aux classes, qui fusionne les boîtes qui se chevauchent indépendamment de leur classe prédite. Utile pour les applications axées sur les instances. Pour les modèles de bout en bout (YOLO26, YOLOv10), cela empêche uniquement la même détection d'apparaître avec plusieurs étiquettes de classe (doublons IoU=1.0) et n'effectue pas de suppression basée sur le seuil IoU entre des boîtes distinctes.
single_clsboolFalseTraite toutes les classes comme une seule classe pendant la validation. Utile pour évaluer la performance du modèle sur des tâches de détection binaire ou lorsque les distinctions de classe ne sont pas importantes.
visualizeboolFalseVisualise les vérités terrain, les vrais positifs, les faux positifs et les faux négatifs pour chaque image. Utile pour le débogage et l'interprétation du modèle.
compilebool ou strFalseActive la compilation de graphe torch.compile de PyTorch 2.x avec backend='inductor'. Accepte True"default", False → désactive, ou un mode chaîne comme "default", "reduce-overhead", "max-autotune-no-cudagraphs". Revient au mode eager avec un avertissement si non pris en charge.
end2endboolNoneRemplace le mode de bout en bout dans les modèles YOLO qui supportent l'inférence sans NMS (YOLO26, YOLOv10). Le définir sur False te permet d'exécuter la validation en utilisant le pipeline NMS traditionnel, te permettant en plus d'utiliser l'argument iou.

Un réglage minutieux et l'expérimentation sont cruciaux pour garantir une performance optimale et pour détecter et prévenir le surapprentissage.

Guide de validation

Paramètres d'exportation

Les paramètres d'exportation pour les modèles YOLO incluent des configurations pour enregistrer ou exporter le modèle pour une utilisation dans différents environnements. Ces paramètres impactent la performance, la taille et la compatibilité. Les paramètres clés incluent le format de fichier exporté (par ex., ONNX, TensorFlow SavedModel), le périphérique cible (par ex., CPU, GPU) et des fonctionnalités comme les masques. La tâche du modèle et les contraintes de l'environnement de destination affectent également le processus d'exportation.

ArgumentTypeDéfautDescription
formatstr'torchscript'Format cible pour le modèle exporté, tel que 'onnx', 'torchscript', 'engine' (TensorRT) ou autres. Chaque format permet la compatibilité avec différents environnements de déploiement.
imgszint ou tuple640Taille d'image souhaitée pour l'entrée du modèle. Peut être un entier pour des images carrées (par ex., 640 pour 640×640) ou un tuple (height, width) pour des dimensions spécifiques.
kerasboolFalseActive l'exportation au format Keras pour SavedModel de TensorFlow, offrant une compatibilité avec le service TensorFlow et les API.
optimizeboolFalseApplique une optimisation pour les appareils mobiles lors de l'exportation vers TorchScript, réduisant potentiellement la taille du modèle et améliorant la performance d'inférence. Non compatible avec le format NCNN ou les périphériques CUDA. Pour DeepX, active une optimisation de compilateur plus élevée qui réduit la latence d'inférence et augmente le temps de compilation.
halfboolFalseActive la quantification FP16 (demi-précision), réduisant la taille du modèle et accélérant potentiellement l'inférence sur le matériel pris en charge. Non compatible avec la quantification INT8 ou les exportations CPU uniquement. Disponible uniquement pour certains formats, par ex. ONNX (voir ci-dessous).
int8boolFalseActive la quantification INT8, compressant davantage le modèle et accélérant l'inférence avec une perte de précision minimale, principalement pour les appareils de périphérie. Lorsqu'il est utilisé avec TensorRT, effectue une quantification post-entraînement (PTQ).
dynamicboolFalsePermet des tailles d'entrée dynamiques pour les exportations TorchScript, ONNX, OpenVINO, TensorRT et CoreML, améliorant la flexibilité dans la gestion des dimensions d'image variables. Automatiquement réglé sur True lors de l'utilisation de TensorRT avec INT8.
simplifyboolTrueSimplifie le graphe du modèle pour les exportations ONNX avec onnxslim, améliorant potentiellement la performance et la compatibilité avec les moteurs d'inférence.
opsetintNoneSpécifie la version de l'opset ONNX pour la compatibilité avec différents analyseurs et environnements d'exécution ONNX. S'il n'est pas défini, utilise la dernière version prise en charge.
workspacefloat ou NoneNoneDéfinit la taille maximale de l'espace de travail en Gio pour les optimisations TensorRT, en équilibrant l'utilisation de la mémoire et les performances. Utilise None pour une allocation automatique par TensorRT jusqu'au maximum du périphérique.
nmsboolFalseAjoute la suppression des non-maxima (NMS) au modèle exporté lorsqu'elle est prise en charge (voir Formats d'exportation), améliorant l'efficacité du post-traitement de la détection. Non disponible pour les modèles end2end.
batchint1Spécifie la taille d'inférence par lot du modèle exporté ou le nombre maximal d'images que le modèle exporté traitera simultanément en mode predict. Pour les exportations vers Edge TPU, cela est automatiquement défini sur 1.
devicestrNoneSpécifie le périphérique pour l'exportation : GPU (device=0), CPU (device=cpu), MPS pour le silicium Apple (device=mps), NPU Huawei Ascend (device=npu ou device=npu:0), ou DLA pour NVIDIA Jetson (device=dla:0 ou device=dla:1). Les exportations TensorRT utilisent automatiquement le GPU.
datastr'coco8.yaml'Chemin d'accès au fichier de configuration du jeu de données, essentiel pour la calibration de la quantification INT8. S'il n'est pas spécifié avec INT8 activé, coco8.yaml sera utilisé par défaut pour la calibration.
fractionfloat1.0Spécifie la fraction du jeu de données à utiliser pour la calibration de la quantification INT8. Permet d'effectuer la calibration sur un sous-ensemble du jeu de données complet, ce qui est utile pour les expérimentations ou lorsque les ressources sont limitées. S'il n'est pas spécifié avec INT8 activé, le jeu de données complet sera utilisé.
end2endboolNoneRemplace le mode end-to-end dans les modèles YOLO prenant en charge l'inférence sans NMS (YOLO26, YOLOv10). Le définir sur False te permet d'exporter ces modèles pour qu'ils soient compatibles avec le pipeline traditionnel de post-traitement basé sur NMS. Voir le guide de détection End-to-End pour plus de détails.

Une configuration réfléchie garantit que le modèle exporté est optimisé pour son cas d'utilisation et fonctionne efficacement dans l'environnement cible.

Guide d'exportation

Paramètres des solutions

Les paramètres de configuration des Ultralytics Solutions offrent la flexibilité nécessaire pour personnaliser les modèles pour des tâches telles que le comptage d'objets, la création de cartes thermiques, le suivi d'entraînement, l'analyse de données, le suivi de zones, la gestion de files d'attente et le comptage par région. Ces options permettent des ajustements faciles pour obtenir des résultats précis et utiles, adaptés à tes besoins spécifiques.

ArgumentTypeDéfautDescription
modelstrNoneChemin d'accès vers un fichier de modèle Ultralytics YOLO.
regionlist'[(20, 400), (1260, 400)]'Liste de points définissant la zone de comptage.
show_inboolTrueDrapeau pour contrôler si les comptes entrants doivent être affichés sur le flux vidéo.
show_outboolTrueDrapeau pour contrôler si les comptes sortants doivent être affichés sur le flux vidéo.
analytics_typestr'line'Type de graphique, par ex. line, bar, area ou pie.
colormapintcv2.COLORMAP_DEEPGREENPalette de couleurs à utiliser pour la carte thermique.
json_filestrNoneChemin d'accès vers le fichier JSON qui contient toutes les données de coordonnées de stationnement.
up_anglefloat145.0Seuil d'angle pour la pose 'vers le haut'.
kptslist[int]'[6, 8, 10]'Liste de trois indices de points clés utilisés pour surveiller les entraînements. Ces points clés correspondent aux articulations ou aux parties du corps, comme les épaules, les coudes et les poignets, pour des exercices tels que les pompes, les tractions, les squats et les abdominaux.
down_angleint90Seuil d'angle pour la pose 'vers le bas'.
blur_ratiofloat0.5Ajuste le pourcentage d'intensité du flou, avec des valeurs dans la plage 0.1 - 1.0.
crop_dirstr'cropped-detections'Nom du répertoire pour stocker les détections recadrées.
recordsint5Nombre total de détections pour déclencher un e-mail avec le système d'alarme de sécurité.
vision_pointtuple[int, int](20, 20)Le point où la vision suivra les objets et dessinera les chemins en utilisant la solution VisionEye.
sourcestrNoneChemin d'accès vers la source d'entrée (vidéo, RTSP, etc.). Utilisable uniquement avec l'interface de ligne de commande (CLI) de Solutions.
figsizetuple[int, int](12.8, 7.2)Taille de la figure pour les graphiques analytiques tels que les cartes thermiques ou les graphiques linéaires.
fpsfloat30.0Images par seconde utilisées pour les calculs de vitesse.
max_histint5Points historiques maximaux à suivre par objet pour les calculs de vitesse/direction.
meter_per_pixelfloat0.05Facteur d'échelle utilisé pour convertir la distance en pixels en unités réelles.
max_speedint120Limite de vitesse maximale dans les superpositions visuelles (utilisée dans les alertes).
datastr'images'Chemin d'accès au répertoire d'images utilisé pour la recherche de similarité.

Guide des solutions

Paramètres d'augmentation

Les techniques d'augmentation de données sont essentielles pour améliorer la robustesse et les performances du modèle YOLO en introduisant de la variabilité dans les données d'entraînement, aidant le modèle à mieux généraliser sur des données non vues. Le tableau suivant décrit l'objectif et l'effet de chaque argument d'augmentation :

ArgumentTypeDéfautTâches prises en chargePlageDescription
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0Ajuste la teinte de l'image par une fraction de la roue chromatique, introduisant une variabilité des couleurs. Aide le modèle à généraliser à travers différentes conditions d'éclairage.
hsv_sfloat0.7detect, segment, pose, obb, classify0.0 - 1.0Modifie la saturation de l'image par une fraction, affectant l'intensité des couleurs. Utile pour simuler différentes conditions environnementales.
hsv_vfloat0.4detect, segment, pose, obb, classify0.0 - 1.0Modifie la valeur (luminosité) de l'image par une fraction, aidant le modèle à bien performer sous diverses conditions d'éclairage.
degreesfloat0detect, segment, pose, obb0.0 - 180Fait pivoter l'image aléatoirement dans la plage de degrés spécifiée, améliorant la capacité du modèle à reconnaître des objets à diverses orientations.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0Translate l'image horizontalement et verticalement par une fraction de la taille de l'image, aidant à apprendre à détecter des objets partiellement visibles.
scalefloat0.5detect, segment, pose, obb, classify0 - 1Met à l'échelle l'image par un facteur de gain, simulant des objets à différentes distances de la caméra.
shearfloat0detect, segment, pose, obb-180 - +180Cisaille l'image d'un degré spécifié, mimant l'effet d'objets vus sous différents angles.
perspectivefloat0detect, segment, pose, obb0.0 - 0.001Applique une transformation de perspective aléatoire à l'image, améliorant la capacité du modèle à comprendre les objets dans l'espace 3D.
flipudfloat0detect, segment, pose, obb, classify0.0 - 1.0Retourne l'image verticalement avec la probabilité spécifiée, augmentant la variabilité des données sans affecter les caractéristiques de l'objet.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0Retourne l'image horizontalement avec la probabilité spécifiée, utile pour apprendre des objets symétriques et augmenter la diversité du jeu de données.
bgrfloat0detect, segment, pose, obb0.0 - 1.0Inverse les canaux de l'image de RGB à BGR avec la probabilité spécifiée, utile pour augmenter la robustesse face à un mauvais ordre des canaux.
mosaicfloat1detect, segment, pose, obb0.0 - 1.0Combine quatre images d'entraînement en une seule, simulant différentes compositions de scènes et interactions d'objets. Très efficace pour la compréhension de scènes complexes.
mixupfloat0detect, segment, pose, obb0.0 - 1.0Mélange deux images et leurs étiquettes, créant une image composite. Améliore la capacité du modèle à généraliser en introduisant du bruit dans les étiquettes et de la variabilité visuelle.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0Combine des parties de deux images, créant un mélange partiel tout en conservant des zones distinctes. Améliore la robustesse du modèle en créant des scénarios d'occlusion.
copy_pastefloat0segment0.0 - 1.0Copie et colle des objets à travers les images pour augmenter les instances d'objets.
copy_paste_modestrflipsegment-Specifies the copy-paste strategy to use. Options include 'flip' and 'mixup'.
auto_augmentstrrandaugmentclassify-Applies a predefined augmentation policy ('randaugment', 'autoaugment', or 'augmix') to enhance model performance through visual diversity.
erasingfloat0.4classify0.0 - 1.0Efface aléatoirement des zones de l'image pendant l'entraînement pour encourager le modèle à se concentrer sur des caractéristiques moins évidentes.
augmentationslist``detect, segment, pose, obb-Transformations Albumentations personnalisées pour une augmentation de données avancée (API Python uniquement). Accepte une liste d'objets de transformation pour des besoins d'augmentation spécialisés.

Ajuste ces paramètres pour répondre aux exigences du jeu de données et de la tâche. Expérimenter avec différentes valeurs peut aider à trouver la stratégie d'augmentation optimale pour obtenir les meilleures performances du modèle.

Guide d'augmentation

Paramètres de journalisation, de points de contrôle et de traçage

La journalisation, les points de contrôle, le traçage et la gestion des fichiers sont importants lors de l'entraînement d'un modèle YOLO :

  • Journalisation (Logging) : Suis la progression du modèle et diagnostique les problèmes en utilisant des bibliothèques comme TensorBoard ou en écrivant dans un fichier.
  • Points de contrôle (Checkpoints) : Sauvegarde le modèle à intervalles réguliers pour reprendre l'entraînement ou expérimenter avec différentes configurations.
  • Traçage (Plotting) : Visualise les performances et la progression de l'entraînement en utilisant des bibliothèques comme Matplotlib ou TensorBoard.
  • Gestion de fichiers : Organise les fichiers générés pendant l'entraînement, tels que les points de contrôle, les fichiers journaux et les graphiques, pour un accès et une analyse faciles.

Une gestion efficace de ces aspects aide à suivre les progrès et facilite le débogage et l'optimisation.

ArgumentDéfautDescription
project'runs'Spécifie le répertoire racine pour enregistrer les exécutions d'entraînement. Chaque exécution est enregistrée dans un sous-répertoire séparé.
name'exp'Définit le nom de l'expérience. S'il n'est pas spécifié, YOLO incrémente ce nom pour chaque exécution (par ex. exp, exp-2) pour éviter d'écraser les données.
exist_okFalseDétermine s'il faut écraser un répertoire d'expérience existant. True permet l'écrasement ; False l'empêche.
plotsTrueContrôle la génération et l'enregistrement des graphiques d'entraînement et de validation. Règle sur True pour créer des graphiques comme les courbes de perte, les courbes de précision-rappel et les prédictions d'échantillons pour un suivi visuel des performances.
saveTrueActive l'enregistrement des points de contrôle d'entraînement et des poids finaux du modèle. Règle sur True pour sauvegarder périodiquement les états du modèle, permettant la reprise de l'entraînement ou le déploiement du modèle.

Fichier de configuration personnalisé

Charge un fichier YAML sauvegardé pour réutiliser un ensemble complet d'arguments sans les passer en ligne de commande. L'argument cfg remplace les valeurs du default.yaml, tandis que les arguments supplémentaires passés en parallèle ont toujours la priorité.

ArgumentDéfautDescription
cfgNoneChemin vers un fichier YAML dont les valeurs remplacent les entrées de default.yaml. Voir Remplacer le fichier de configuration par défaut pour un exemple concret en CLI.

FAQ

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

Améliore les performances en ajustant les hyperparamètres comme la taille du lot, le taux d'apprentissage, le momentum et la décroissance du poids. Ajuste les paramètres d'augmentation de données, sélectionne l'optimiseur adéquat et utilise des techniques comme l'arrêt précoce (early stopping) ou la précision mixte. Pour plus de détails, consulte le Guide d'entraînement.

Quels sont les hyperparamètres clés pour la précision du modèle YOLO ?

Les hyperparamètres clés affectant la précision incluent :

  • Taille du lot (batch) : Des tailles plus grandes peuvent stabiliser l'entraînement mais nécessitent plus de mémoire.
  • Taux d'apprentissage (lr0) : Des taux plus petits offrent des ajustements fins mais une convergence plus lente.
  • Momentum (momentum) : Accélère les vecteurs de gradient, amortissant les oscillations.
  • Taille de l'image (imgsz) : Des tailles plus grandes améliorent la précision mais augmentent la charge computationnelle.

Ajuste ces paramètres en fonction de ton jeu de données et de ton matériel. Apprends-en plus dans Paramètres d'entraînement.

Comment définir le taux d'apprentissage pour l'entraînement d'un modèle YOLO ?

Le taux d'apprentissage (lr0) est crucial ; commence avec 0.01 pour SGD ou 0.001 pour l'optimiseur Adam. Surveille les métriques et ajuste si nécessaire. Utilise des planificateurs de taux d'apprentissage cosinus (cos_lr) ou un échauffement (warmup_epochs, warmup_momentum). Les détails se trouvent dans le Guide d'entraînement.

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

Les paramètres par défaut incluent :

  • Seuil de confiance (conf=0.25) : Confiance minimale pour les détections.
  • Seuil IoU (iou=0.7) : Pour la Non-Maximum Suppression (NMS).
  • Taille de l'image (imgsz=640) : Redimensionne les images d'entrée.
  • Appareil (device=None) : Sélectionne CPU, GPU, Apple MPS ou Huawei Ascend NPU (npu).

Pour un aperçu complet, consulte Paramètres de prédiction et le Guide de prédiction.

Pourquoi utiliser l'entraînement en précision mixte avec les modèles YOLO ?

L'entraînement en précision mixte (amp=True) réduit l'utilisation de la mémoire et accélère l'entraînement en utilisant FP16 et FP32. C'est bénéfique pour les GPU modernes, permettant des modèles plus grands et des calculs plus rapides sans perte de précision significative. Apprends-en plus dans le Guide d'entraînement.

Commentaires