Ultralytics YOLO27 :
Get Started

Configuration#

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



Regarder : Maîtriser Ultralytics YOLO : configuration

Les commandes Ultralytics utilisent la syntaxe suivante :

Exemple
yolo TASK MODE ARGS

Où :

Les valeurs par défaut de ARG sont définies sur cette page et proviennent du fichier cfg/default.yaml.

Tâches#

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

  • Détection : la détection d’objets identifie et localise les objets dans une image ou une vidéo.
  • Segmentation : la segmentation d’instances divise une image ou une vidéo en régions correspondant à différents objets ou classes.
  • Segmentation sémantique (semantic) : la segmentation sémantique attribue une étiquette de classe à chaque pixel d’une image pour permettre une compréhension dense de la scène.
  • Profondeur (depth) : l’estimation monoculaire de la profondeur prédit une carte de profondeur en mètres, pixel par pixel, à partir d’une seule image RGB.
  • Classification : la classification d’images prédit l’étiquette de classe d’une image en entrée.
  • Pose : l’estimation de pose identifie les objets et estime leurs points clés dans une image ou une vidéo.
  • OBB : les boîtes englobantes orientées utilisent des boîtes englobantes pivotées, adaptées aux images satellite ou médicales.
ArgumentValeur par défautDescription
task'detect'Spécifie la tâche YOLO : detect pour la détection d’objets, segment pour la segmentation d’instances, semantic pour la segmentation sémantique, depth pour l’estimation de profondeur monoculaire, classify pour la classification, pose pour l’estimation de pose et obb pour les boîtes englobantes orientées. Chaque tâche est adaptée à des sorties et à des problèmes spécifiques de l’analyse d’images et de vidéos.

Guide des tâches

Modes#

Les modèles Ultralytics YOLO fonctionnent selon différents modes, chacun conçu pour une étape précise du cycle de vie du modèle :

  • Train : entraîne un modèle YOLO sur un jeu de données personnalisé.
  • Val : évalue 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 son déploiement.
  • Track : suit des objets en temps réel à l’aide d’un modèle YOLO.
  • Benchmark : mesure la vitesse et la précision des exports YOLO (ONNX, TensorRT, etc.).
ArgumentValeur par défautDescription
mode'train'Spécifie le mode de fonctionnement du modèle YOLO : train pour l’entraînement du modèle, 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 des modèles YOLO comprennent des hyperparamètres et des configurations qui influent sur les performances, la vitesse et la précision du modèle. Les principaux paramètres incluent la taille de lot, le taux d’apprentissage, le momentum et la décroissance des poids. Le choix de l’optimiseur, de la fonction de perte et la composition du jeu de données influent également sur l’entraînement. Le réglage et l’expérimentation sont essentiels pour obtenir des performances optimales. Pour en savoir plus, consulte la fonction d’entrée d’Ultralytics.

ArgumentTypeValeur par défautDescription
modelstrNoneSpécifie le fichier du modèle utilisé pour l’entraînement. Accepte le chemin d’accès à un modèle préentraîné .pt ou à un fichier de configuration .yaml. Indispensable pour définir la structure du modèle ou initialiser les poids.
datastrNoneChemin d’accès au fichier YAML du jeu de données (p. ex. coco8.yaml), qui contient les chemins vers les données de validation et d’entraînement, les noms des classes et le nombre de classes. Pour la classification, tu peux plutôt indiquer un répertoire de jeu de données ou le nom d’un jeu de données intégré (p. ex. imagenet10).
epochsint100Nombre total d’époques d’entraînement. Chaque époque correspond à un passage complet sur l’ensemble du jeu de données. Modifier cette valeur peut influer sur la durée de l’entraînement et les performances du modèle.
timefloatNoneDurée maximale d’entraînement, en heures. Si cette valeur est définie, elle remplace l’argument epochs et permet à l’entraînement de s’arrêter automatiquement après la durée indiquée. Pratique lorsque le temps d’entraînement est limité.
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 de lot, avec trois modes : définir un entier (p. ex. batch=16), utiliser le mode automatique avec 60 % de la mémoire GPU (batch=-1) ou le mode automatique avec une fraction d’utilisation spécifiée (batch=0.70).
imgszint640Taille cible des images pour l’entraînement. Les images sont redimensionnées en carrés dont les côtés correspondent à la valeur spécifiée (si rect=False), en préservant le rapport hauteur/largeur pour les modèles YOLO, mais pas pour RT-DETR. Influe sur la précision du modèle et la complexité des calculs.
saveboolTrueActive l’enregistrement des points de contrôle d’entraînement et des poids finaux du modèle. Pratique pour reprendre l’entraînement ou procéder au déploiement du modèle.
save_periodint-1Fréquence d’enregistrement des points de contrôle du modèle, exprimée en époques. La valeur -1 désactive cette fonctionnalité. Pratique pour enregistrer des modèles intermédiaires au cours de longues sessions d’entraînement.
cachebool ou strFalseActive la mise en cache des images du jeu de données en mémoire (True/ram), sur disque (disk) ou la désactive (False). Accélère l’entraînement en réduisant les entrées-sorties disque, au prix d’une utilisation accrue de la mémoire.
deviceint ou str ou listNoneSpécifie le ou les périphériques de calcul pour l’entraînement : un seul GPU (device=0), plusieurs GPU (device=[0,1]), un CPU (device=cpu), MPS pour les puces Apple (device=mps), un NPU Huawei Ascend (device=npu:0 ou device=npu:0,1), un Intel XPU (device=xpu:0), ou la sélection automatique d’un GPU inactif (device=-1) ou de plusieurs GPU inactifs (device=[-1,-1]).
workersint8Nombre de threads de travail pour le chargement des données (par RANK en cas d’entraînement multi-GPU). Influe sur la vitesse du prétraitement et de l’envoi des données au modèle, ce qui est particulièrement utile dans les configurations multi-GPU.
projectstrNoneNom du répertoire du projet dans lequel les résultats de l’entraînement sont enregistrés. Permet d’organiser le stockage de différentes expériences.
namestrNoneNom de la session d’entraînement. Sert à créer un sous-répertoire dans le dossier du projet, où sont stockés les journaux et les résultats de l’entraînement.
exist_okboolFalseSi True, autorise l’écrasement d’un répertoire projet/nom existant. Pratique pour les expérimentations itératives sans devoir supprimer manuellement les résultats précédents.
save_dirstrNoneSpécifie le répertoire exact dans lequel les résultats de la session sont enregistrés, en remplaçant la combinaison project/name. Le chemin est utilisé tel quel, sans incrémentation automatique ; les exécutions successives réutilisent donc le même répertoire.
pretrainedbool ou strTrueDétermine si l’entraînement commence à partir de poids préentraînés. La valeur peut être un booléen ou le chemin d’accès aux poids à charger. pretrained=False entraîne le modèle à partir de poids initialisés aléatoirement tout en conservant son architecture.
cls_remapboolTrueLors d’un ajustement fin sur plusieurs jeux de données, copie dans le nouveau modèle les lignes de la tête de classification préentraînée correspondant aux classes dont les noms correspondent. Les classes communes conservent ainsi le biais appris et, si la largeur de la tête reste inchangée, leurs poids. Cette option s’applique que le nombre de classes soit différent ou identique avec un ordre différent.
optimizerstr'auto'Choix de l’optimiseur pour l’entraînement. Les options incluent SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp ou auto, pour choisir AdamW ou MuSGD en fonction du nombre d’itérations d’entraînement. Influe sur la vitesse et la stabilité de la convergence.
seedint0Définit la graine aléatoire de l’entraînement pour garantir la reproductibilité des résultats d’une exécution à l’autre avec les mêmes configurations.
deterministicboolTrueForce l’utilisation d’algorithmes déterministes pour garantir la reproductibilité, mais peut influer sur les performances et la vitesse en raison de l’exclusion des algorithmes non déterministes.
verboseboolTrueActive l’affichage détaillé pendant l’entraînement : barres de progression, métriques par époque et informations supplémentaires dans la console.
single_clsboolFalseTraite toutes les classes des jeux de données multi-classes comme une seule classe pendant l’entraînement. Pratique pour les tâches de classification binaire ou lorsqu’on s’intéresse à la présence d’objets plutôt qu’à leur classification.
classeslist[int]NoneSpécifie une liste d’identifiants de classes à utiliser pour l’entraînement. Pratique pour filtrer les classes et se concentrer uniquement sur certaines d’entre elles.
rectboolFalseActive la stratégie de padding minimal : les images d'un lot sont rembourrées au minimum pour atteindre une taille commune, le côté le plus long étant égal à imgsz. Cela peut améliorer l'efficacité et la vitesse, mais affecter la précision du modèle. Le trainer YOLO standard utilise rect=True pour la validation de la détection, de la segmentation, de la pose et des OBB, quel que soit ce paramètre.
multi_scalefloat0.0Fait varier aléatoirement imgsz de +/- multi_scale à chaque lot (p. ex. 0.25 -> 0.75x à 1.25x), en arrondissant aux multiples du pas du modèle ; 0.0 désactive l’entraînement multi-échelle.
cos_lrboolFalseUtilise un planificateur de taux d’apprentissage cosinus, qui ajuste ce taux selon une courbe cosinus au fil des époques. Aide à gérer le taux d’apprentissage pour améliorer la convergence.
close_mosaicint10Désactive la mosaïque de l’augmentation des données pendant les N dernières époques afin de stabiliser l’entraînement avant son terme. La valeur 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 numéro de l’époque pour poursuivre l’entraînement sans interruption.
ampbool ou strTrueDéfinit la précision de l’entraînement : True ou "fp16" utilise FP16, "bf16" utilise BF16 sur les périphériques CUDA compatibles, et False ou "fp32" utilise FP32.
quantizeint ou strNoneDéfinis 8 (ou "int8") pour l’entraînement tenant compte de la quantification INT8 (QAT), qui affine le modèle avec une fausse quantification intégrée afin que les poids soient compatibles avec l’export INT8. Consulte l’entraînement tenant compte de la quantification.
fractionfloat, int ou list1.0Sous-ensemble du jeu de données, exprimé sous forme de ratio, de nombre ou de liste [train, val, test]. 1 désigne l’ensemble de la partition ; les entiers supérieurs à 1 correspondent à un nombre d’images, et seule l’entrée de test facultative accepte 0/0.0 pour signifier « aucun ». Les listes de deux éléments conservent l’ensemble de la partition de test.
profileboolFalseActive le profilage des vitesses ONNX et TensorRT pendant l’entraînement, ce qui est utile pour optimiser le déploiement du modèle.
freezeint ou listNoneGèle les N premières couches du modèle, ou certaines couches selon leur indice ou le nom du module (23.cv2, sans le model. initial), ce qui réduit le nombre de paramètres entraînables. Pratique pour l’ajustement fin ou l’apprentissage par transfert.
lr0float0.01Taux d’apprentissage initial (c.-à-d. SGD=1E-2, Adam=1E-3). Ignoré avec l’option par défaut optimizer='auto' ; nomme explicitement un optimiseur pour l’utiliser.
lrffloat0.01Taux d’apprentissage final exprimé en fraction du taux initial = (lr0 * lrf), utilisé avec les planificateurs pour ajuster le taux d’apprentissage au fil du temps.
momentumfloat0.937Facteur de momentum pour SGD ou bêta 1 pour les optimiseurs Adam, qui influe sur la prise en compte des gradients passés dans la mise à jour actuelle.
weight_decayfloat0.0005Terme de régularisation L2, qui pénalise les poids élevés pour prévenir le surapprentissage.
warmup_epochsfloat3.0Nombre d’époques de montée en chauffe du taux d’apprentissage, qui augmente progressivement d’une valeur faible jusqu’au taux initial afin de stabiliser le début de l’entraînement.
warmup_momentumfloat0.8Momentum initial pendant la phase de montée en chauffe, ajusté progressivement jusqu’à la valeur de momentum définie au cours de cette période.
warmup_bias_lrfloat0.1Taux d’apprentissage des paramètres de biais pendant la phase de montée en chauffe, qui aide à stabiliser l’entraînement du modèle lors des premières époques. Défini automatiquement sur 0.0 avec l’option par défaut optimizer='auto' ; nomme explicitement un optimiseur pour l’utiliser.
distill_modelstrNoneChemin d’accès à un point de contrôle du modèle enseignant (p. ex. yolo26x.pt) pour la distillation des connaissances. Une fois défini, le modèle étudiant est entraîné avec une perte de distillation supplémentaire guidée par le modèle enseignant figé.
disfloat6.0Poids de la perte de distillation ajoutée aux pertes de détection standard. Une valeur plus élevée accroît l’influence des caractéristiques fournies par le modèle enseignant.
boxfloat7.5Poids de la composante de perte de boîte dans la fonction de perte, qui détermine l’importance accordée à la prédiction précise des coordonnées de la boîte englobante.
clsfloat0.5Poids de la perte de classification dans la fonction de perte totale, qui influe sur l’importance accordée à la prédiction correcte de la classe par rapport aux autres composantes.
cls_pwfloat0.0Exposant de pondération des classes permettant de gérer le déséquilibre des classes en fonction de leur fréquence inverse. 0.0 désactive la pondération des classes ; 1.0 applique une pondération complète par fréquence inverse. Les valeurs entre 0 et 1 appliquent une pondération partielle.
dflfloat1.5Poids du terme de régression de distance des boîtes : perte focale de distribution (DFL) lorsque la tête de détection utilise reg_max > 1, ou perte L1 sur les distances normalisées des boîtes avec YOLO26 sans DFL (reg_max: 1).
posefloat12.0Poids de la perte de pose dans les modèles entraînés pour l’estimation de pose, qui influe sur l’importance accordée à la prédiction précise des points clés de la pose.
kobjfloat1.0Poids de la perte d’objectivité des points clés dans les modèles d’estimation de pose, qui équilibre la confiance de détection et 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, qui influe sur la précision de la localisation des points clés.
anglefloat1.0Poids de la perte angulaire dans les modèles OBB, qui influe sur la précision des prédictions d’angle des boîtes englobantes orientées.
dlogfloat1.0Poids de la perte logarithmique invariante à l’échelle (SILog) dans les modèles d’estimation de profondeur, terme principal qui détermine la précision de la profondeur.
dgradfloat0.5Poids de la perte de gradient dans les modèles d’estimation de profondeur, qui pénalise les erreurs sur les contours de profondeur et favorise des limites de surface plus nettes.
dlamfloat1.0Facteur de pondération de la variance de la perte SILog dans les modèles d’estimation de profondeur. 1.0 rend la perte entièrement invariante à l’échelle, tandis que 0.0 la réduit à une simple erreur quadratique moyenne logarithmique (log-RMSE).
nbsint64Taille de lot nominale pour la normalisation de la perte.
overlap_maskboolTrueDétermine si les masques d’objets 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 le plus petit est superposé au plus grand lors de la fusion.
mask_ratioint4Facteur de sous-échantillonnage des masques de segmentation, qui influe sur la résolution des masques utilisés pendant l’entraînement. Ne modifie pas la résolution des masques prédits.
dropoutfloat0.0Taux de dropout pour la régularisation des tâches de classification, qui prévient le surapprentissage en omettant aléatoirement des unités pendant l’entraînement.
valboolTrueActive la validation pendant l’entraînement afin d’évaluer périodiquement les performances du modèle sur un jeu de données distinct.
nmsbool, facultatifNoneSélectionne la tête d’inférence utilisée pour la validation des époques, la sélection des points de contrôle et l’arrêt anticipé. None ou True utilise la stratégie un-vers-plusieurs avec NMS ; False utilise la tête sans NMS lorsqu’elle est disponible. Les deux têtes conservent leurs pertes d’entraînement.
plotsboolTrueGénère et enregistre des graphiques des métriques d’entraînement et de validation, ainsi que des exemples de prédictions, afin de fournir un aperçu visuel des performances du modèle et de la progression de l’apprentissage.
compilebool ou strFalseActive la compilation de graphes torch.compile de PyTorch 2.x avec backend='inductor'. Accepte True → "default", False → désactivation, ou un mode sous forme de chaîne tel que "default", "reduce-overhead", "max-autotune-no-cudagraphs". En cas d’incompatibilité, revient au mode eager avec un avertissement.
channels_lastboolNoneUtilise le format mémoire channels_last (NHWC) pour les convolutions pendant l’entraînement. None l’active automatiquement sur CUDA avec PyTorch 1.11 ou ultérieur, sauf sous Windows, où les mesures ont montré un ralentissement. False le désactive et True l’active explicitement. L’entraînement sur CPU ou MPS utilise toujours NCHW (True est ignoré avec un avertissement).
max_detint300Nombre maximal de détections par image lors de la validation de l’entraînement. Pour detect, segment, pose et OBB, la valeur par défaut de 300 augmente jusqu’au nombre maximal d’objets annotés dans les partitions train/val, uniquement si ce nombre dépasse 300. Les autres valeurs restent fixes ; le dépassement de la limite déclenche un avertissement.
Remarque sur les paramètres de taille de lot

L’argument batch propose trois options de configuration :

  • Taille de lot fixe : indique le nombre d’images par lot à l’aide d’un entier (p. ex. batch=16).
  • Mode automatique (60 % de la mémoire GPU) : utilise batch=-1 pour ajuster automatiquement l’utilisation de la mémoire CUDA à environ 60 %.
  • Mode automatique avec fraction d’utilisation : définis une fraction (p. ex. batch=0.70) pour ajuster la taille selon l’utilisation spécifiée de la mémoire GPU.
  • Aucune taille adaptée trouvée : si aucune taille de lot candidate ne produit un profil exploitable, AutoBatch renvoie une erreur RuntimeError explicite au lieu de revenir silencieusement à une valeur par défaut sans rapport.

Guide de l’entraînement

Paramètres de prédiction#

Les paramètres de prédiction des modèles YOLO comprennent des hyperparamètres et des configurations qui influent sur les performances, la vitesse et la précision pendant l’inférence. Les principaux paramètres incluent le seuil de confiance, le seuil de suppression non maximale (NMS) et le nombre de classes. La taille et le format des données d’entrée, ainsi que des fonctionnalités supplémentaires comme les masques, influent également sur les prédictions. Il est essentiel de régler ces paramètres pour obtenir des performances optimales.

Arguments d’inférence :

ArgumentTypeValeur par défautDescription
sourcestr ou int ou NoneNoneSpécifie la source de données pour l’inférence. Il peut s’agir du chemin d’accès à une image, d’un fichier vidéo, d’un répertoire, d’une URL ou de l’identifiant d’un périphérique pour les flux en direct. Si cette valeur est omise, un avertissement est consigné et le modèle utilise les ressources de démonstration intégrées (ultralytics/assets ou une URL de démonstration pour OBB). De nombreux formats et sources sont pris en charge, ce qui permet une utilisation flexible avec différents types d’entrées.
conffloat0.25Définit le seuil de confiance minimal pour les détections. Les objets détectés avec un niveau de confiance inférieur à ce seuil sont ignorés. Modifier cette valeur peut aider à réduire les faux positifs.
ioufloat0.7Seuil d’intersection sur union (IoU) pour la suppression non maximale (NMS). Des valeurs plus faibles produisent moins de détections en éliminant les boîtes qui se chevauchent, ce qui est utile pour réduire les doublons.
imgszint ou tuple640Taille cible du letterboxing. Un entier définit un N×N carré ; un tuple définit (height, width). Avec rect=True, le tenseur réel peut être plus petit que cette taille cible grâce au remplissage en rectangle minimal. Utilise rect=False pour une taille fixe. Consulte Forme fixe ou rectangle minimal.
rectboolTrueSi True, utilise le remplissage en rectangle minimal lorsque c’est possible (lot de même forme et backend compatible). Si False, ajoute toujours du remplissage jusqu’à atteindre la taille complète imgsz. Consulte Forme fixe ou rectangle minimal.
quantizeint ou strNonePrécision d’inférence : 16/"fp16" et 32/"fp32"/unset sélectionnent le calcul en FP16 ou en FP32 pour les modèles PyTorch et TorchScript (FP32 sur CPU) ; les autres formats utilisent la précision définie par leur artefact et leur environnement d’exécution. Avec 16, OpenVINO arrondit toujours l’entrée en FP16 côté client, puis la reconvertit en FP32, sans modifier la précision d’exécution. La quantification INT8/PTQ est configurée lors de l’exportation, puis utilisée lors du chargement du modèle exporté. Remplace l’indicateur half obsolète.
devicestrNoneSpécifie le périphérique utilisé pour l’inférence (p. ex. cpu, cuda:0, 0, npu ou npu:0). Permet de choisir un CPU, un GPU spécifique, un NPU Huawei Ascend ou un autre périphérique de calcul pour exécuter le modèle.
dnnboolFalseSi True, utilise le module DNN d'OpenCV au lieu d'ONNX Runtime pour l'inférence des modèles ONNX.
datastrNoneChemin vers un fichier YAML de jeu de données (p. ex. coco8.yaml), lu uniquement pour son names, et seulement si le modèle chargé ne possède pas ses propres noms de classes : un export tiers, ou un export Ultralytics séparé des métadonnées qui l'accompagnent. Sinon, un tel modèle indique class0, class1, et ainsi de suite.
batchint1Définit la taille du 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 élevée peut augmenter le débit et réduire le temps total nécessaire à 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 lors d'une seule inférence, afin d'éviter des sorties excessives dans les scènes denses.
vid_strideint1Pas entre les images pour les entrées vidéo. Permet d'ignorer des images dans les vidéos afin d'accélérer le traitement, au prix d'une résolution temporelle réduite. La valeur 1 traite chaque image ; les valeurs supérieures ignorent des images.
stream_bufferboolFalseDétermine s'il faut mettre en file d'attente les images entrantes des flux vidéo. Si False, les anciennes images sont supprimées pour laisser place aux nouvelles (optimisé pour les applications en temps réel). Si True, les nouvelles images sont placées dans une mémoire tampon, ce qui garantit qu'aucune image n'est ignorée, mais entraîne une latence si le nombre d'images par seconde de l'inférence est inférieur à celui du flux.
visualizeboolFalseEnregistre une carte thermique d'activation des classes à côté de chaque prédiction, indiquant les pixels qui ont augmenté les scores des classes prédites. Respecte conf et classes, de sorte que classes=[0] ne représente que cette classe. Disponible uniquement pour les modèles PyTorch Ultralytics.
augmentboolFalseActive l'augmentation au moment du test (TTA) pour les prédictions, ce qui peut améliorer la robustesse de la détection au prix d'une inférence plus lente. Disponible uniquement pour les modèles PyTorch Ultralytics.
agnostic_nmsboolFalseActive la suppression non maximale (NMS) indépendante des classes : les boîtes qui se chevauchent et dont le score est inférieur sont supprimées même si elles appartiennent à des classes différentes, plutôt qu'uniquement au sein d'une même classe. Utile pour les tâches de détection multiclasse où les classes se chevauchent souvent. Avec l'inférence sans NMS (nms=False sur YOLO26 ou YOLOv10), cette option 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 fondée sur un seuil IoU entre des boîtes distinctes.
classeslist[int]NoneFiltre les prédictions selon un ensemble d'identifiants de classe. Seules les détections appartenant aux classes indiquées sont renvoyées. Utile pour se concentrer sur les objets pertinents dans les tâches de détection multiclasse.
retina_masksboolFalseRenvoie des masques de segmentation haute résolution. Si cette option est activée, les masques renvoyés (masks.data) ont la taille de l'image d'origine. Sinon, ils ont la taille de l'image utilisée pour l'inférence.
embedlist[int]NoneIndique les couches à partir desquelles extraire des vecteurs de caractéristiques ou des représentations vectorielles. Utilise model.embed(source) pour les représentations de l'avant-dernière couche, ou model.predict(source, embed=[layer]) pour sélectionner des couches précises. Utile pour les tâches en aval, comme le regroupement ou la recherche par similarité. Disponible uniquement pour les modèles PyTorch Ultralytics.
projectstrNoneNom du répertoire de projet où sont enregistrées les sorties de prédiction si save est activé.
namestrNoneNom de l'exécution de prédiction. Sert à créer un sous-répertoire dans le dossier du projet, où sont stockées les sorties de prédiction si save est activé.
streamboolFalsePermet de traiter efficacement en mémoire les longues vidéos ou un grand nombre d'images en renvoyant un générateur d'objets Results, au lieu de charger toutes les images en mémoire en une seule fois.
verboseboolTrueDétermine si les journaux détaillés d'inférence sont affichés dans le terminal, pour fournir un retour en temps réel sur le processus de prédiction.
compilebool ou strFalseActive la compilation de graphes torch.compile de PyTorch 2.x avec backend='inductor'. Accepte True → "default", False → désactivation, ou un mode sous forme de chaîne tel que "default", "reduce-overhead", "max-autotune-no-cudagraphs". En cas d’incompatibilité, revient au mode eager avec un avertissement.
channels_lastboolNoneUtilise le format mémoire channels_last (NHWC) pour l'inférence PyTorch native. None l'active automatiquement sur les processeurs x86 sous Linux et Windows compatibles avec oneDNN, avec PyTorch 1.13 ou version ultérieure ; False le désactive et True le demande sur les processeurs x86 ou les appareils CUDA pris en charge. Les appareils ARM64, MPS, les versions antérieures de PyTorch, les processeurs sans oneDNN et les formats exportés tels que TensorRT et ONNX ne sont pas concernés.
nmsbool, facultatifNoneExécute par défaut une inférence un-vers-plusieurs avec NMS (None ou True). Définis False pour utiliser la tête un-vers-un sans NMS lorsqu'elle est disponible. Consulte le guide sur la détection de bout en bout pour en savoir plus.

Arguments de visualisation :

ArgumentTypeValeur par défautDescription
showboolFalseSi True, affiche les images ou vidéos annotées dans une fenêtre. Utile pour obtenir un retour visuel immédiat pendant le développement ou les tests.
saveboolFalse or TrueActive l'enregistrement des images ou vidéos annotées dans des fichiers. Utile pour la documentation, les analyses ultérieures ou le partage des résultats. Valeur par défaut : True avec la CLI et False avec Python.
save_framesboolFalseLors du traitement de vidéos, enregistre chaque image comme fichier image. Utile pour extraire des images spécifiques ou effectuer une analyse détaillée image par image.
save_txtboolFalseEnregistre les résultats de détection dans un fichier texte, au format [class] [x_center] [y_center] [width] [height] [confidence]. Utile pour intégrer les résultats à d'autres outils d'analyse.
save_confboolFalseInclut les scores de confiance dans les fichiers texte enregistrés. Fournit davantage de détails pour le post-traitement et l'analyse.
save_cropboolFalseEnregistre des 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 sur des objets précis.
show_labelsboolTrueAffiche les étiquettes de chaque détection dans le résultat visuel. Permet d'identifier immédiatement les objets détectés.
show_confboolTrueAffiche le score de confiance de chaque détection à côté de son étiquette. Donne une indication du degré de certitude du modèle pour chaque détection.
show_boxesboolTrueDessine des boîtes englobantes autour des objets détectés. Indispensable pour visualiser et localiser les objets dans les images ou les images vidéo.
line_widthint or NoneNoneDéfinit l'épaisseur du trait des boîtes englobantes. Si None, l'épaisseur est ajustée automatiquement en fonction de la taille de l'image. Permet d'adapter l'affichage pour une meilleure lisibilité.

Guide de prédiction

Paramètres de validation#

Les paramètres de validation des modèles YOLO comprennent les hyperparamètres et les configurations servant à évaluer les performances sur un jeu de données de validation. Ils influent sur les performances, la vitesse et la précision. Parmi les paramètres courants figurent 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 concernée, influent également sur le processus.

ArgumentTypeValeur par défautDescription
datastrNoneIndique le chemin vers le fichier YAML du jeu de données (p. ex. coco8.yaml), qui doit inclure le chemin vers les données de validation. Pour la classification, indique plutôt un répertoire de jeu de données ou le nom d'un jeu de données intégré (p. ex. imagenet10).
imgszint640Définit la taille des images d'entrée. Toutes les images sont redimensionnées à cette taille avant le traitement. Des dimensions 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 élevées exploitent plus efficacement la mémoire GPU, mais nécessitent davantage de VRAM. Ajuste cette valeur en fonction des ressources matérielles disponibles.
save_jsonboolFalseSi True, enregistre les résultats dans un fichier JSON pour une analyse ultérieure, une intégration avec d'autres outils ou une soumission à des serveurs d'évaluation comme COCO. Pour les jeux de données de détection, évalue également les prédictions avec faster-coco-eval et indique les mAP pour les objets petits, moyens et grands, consignées pendant l'entraînement sous les noms metrics/mAP_small(B), metrics/mAP_medium(B) et metrics/mAP_large(B) dans results.csv.
conffloat0.001Définit le seuil de confiance minimal des détections. Des valeurs plus basses augmentent le rappel, mais peuvent entraîner davantage de faux positifs. Les courbes précision-rappel, le mAP et les matrices de confusion des détections utilisent toutes cette valeur ; un conf plus élevé, par exemple 0.25, produit une matrice plus proche de la sortie de prédiction, mais peut réduire le mAP. La précision et le rappel récapitulatifs utilisent le seuil de confiance au F1 maximal ; ils peuvent donc différer des valeurs calculées à partir de confusion_matrix.png. La valeur par défaut est 0.01 pour la validation OBB afin de réduire l'utilisation mémoire.
ioufloat0.7Définit le seuil d'intersection sur l'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. Pour les tâches de détection, de segmentation, de pose et OBB, si la valeur est toujours de 300, elle est portée au nombre maximal d'objets annotés dans la partition de validation lorsqu'une image dépasse cette limite, avec un avertissement ; toute autre valeur est conservée, avec un avertissement indiquant que le rappel peut être plafonné lorsqu'une image dépasse la limite.
quantizeint ou strNonePrécision de validation : 16/"fp16" et 32/"fp32"/unset sélectionnent le calcul en FP16 ou en FP32 pour les modèles PyTorch et TorchScript (FP32 sur CPU) ; les autres formats utilisent la précision définie par leur artefact et leur environnement d’exécution. Avec 16, OpenVINO arrondit toujours l’entrée en FP16 côté client, puis la reconvertit en FP32, sans modifier la précision d’exécution. La quantification INT8/PTQ est configurée lors de l’exportation, puis utilisée pour valider le modèle exporté. Remplace l’indicateur half obsolète.
devicestrNoneIndique l'appareil utilisé pour la validation (cpu, cuda:0, npu, npu:0, etc.). Si None, sélectionne automatiquement le meilleur appareil disponible. Plusieurs appareils CUDA peuvent être indiqués en les séparant par des virgules.
dnnboolFalseSi True, utilise le module DNN d'OpenCV pour l'inférence des modèles ONNX, comme solution de remplacement aux méthodes d'inférence PyTorch.
plotsboolTrueLorsque la valeur est True, génère et enregistre des graphiques comparant les prédictions à la vérité terrain, des matrices de confusion et des courbes PR pour évaluer visuellement les performances du modèle.
classeslist[int]NoneIndique une liste d'identifiants de classe à évaluer. Utile pour filtrer les classes et se concentrer uniquement sur certaines d'entre elles pendant l'évaluation.
rectboolTrueSi True, regroupe les lots d'images aux rapports d'aspect similaires en formes rectangulaires. Ajoute un demi-pas avant d'arrondir chaque dimension au multiple supérieur du pas (sans demi-pas supplémentaire pour semantic). Avec un pas de 32, une image de 640×640 à imgsz=640 devient une image de 672×672 avec un décalage de 16 px, tandis que predict utilise 640×640 ; les métriques peuvent donc différer. rect=False correspond à predict pour les images carrées. Ignoré pour depth, qui étire les images pour leur donner une forme carrée de imgsz.
splitstr'val'Détermine la partition du jeu de données utilisée pour la validation (val, test ou train). Permet de choisir la portion de données utilisée pour évaluer les performances.
fractionfloat, int ou list1.0Sous-ensemble de la partition validée. Avec une liste [train, val, test], l'entrée correspondant à split s'applique (1 = partition complète, les entiers supérieurs à 1 = nombre d'images ; les entrées omises correspondent à la partition complète). Une valeur scalaire ne s'applique qu'avec split=train ; val et test utilisent alors la partition complète.
projectstrNoneNom du répertoire de projet où sont enregistrées les sorties de validation. Aide à organiser les résultats de différentes expériences ou de différents modèles.
namestrNoneNom de l'exécution de validation. Sert à créer un sous-répertoire dans le dossier du projet, où sont stockés les journaux et les résultats de validation.
verboseboolTrueSi True, affiche des informations détaillées pendant la validation, notamment les métriques par classe, la progression des lots et des informations supplémentaires de débogage.
save_txtboolFalseSi True, enregistre les résultats de détection dans des fichiers texte, un fichier par image, pour faciliter l'analyse ultérieure, le post-traitement personnalisé ou l'intégration à d'autres systèmes.
save_confboolFalseSi True, inclut les valeurs de confiance dans les fichiers texte enregistrés lorsque save_txt est activé, afin de fournir des résultats plus détaillés pour l'analyse et le filtrage.
workersint8Nombre de threads de travail pour le chargement des données. Des valeurs élevées peuvent accélérer le prétraitement des données, mais aussi augmenter l'utilisation du CPU. La valeur 0 utilise le thread principal, ce qui peut être plus stable dans certains environnements.
augmentboolFalseActive l'augmentation au moment du test (TTA) pendant la validation, ce qui peut améliorer la précision de détection au prix d'une inférence plus lente, en effectuant l'inférence sur des versions transformées de l'entrée. Disponible uniquement pour les modèles PyTorch Ultralytics.
agnostic_nmsboolFalseActive la suppression non maximale indépendante des classes, qui supprime les boîtes qui se chevauchent et dont le score est inférieur, quelle que soit leur classe prédite. Utile pour les applications axées sur les instances. Avec l'inférence sans NMS (nms=False sur YOLO26 ou YOLOv10), cette option 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 fondée sur un seuil IoU entre des boîtes distinctes.
single_clsboolFalseTraite toutes les classes comme une seule classe pendant la validation. Utile pour évaluer les performances du modèle sur des tâches de détection binaire ou lorsque les distinctions entre classes n'ont pas d'importance.
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.
show_labelsboolTrueAffiche les étiquettes de classe dans les visualisations de validation lorsque visualize=True. Définis False pour mieux distinguer les correspondances et les erreurs.
show_confboolTrueAffiche les scores de confiance dans les visualisations de validation lorsque visualize=True. Définis False pour mieux distinguer les correspondances et les erreurs.
compilebool ou strFalseActive la compilation de graphes torch.compile de PyTorch 2.x avec backend='inductor'. Accepte True → "default", False → désactivation, ou un mode sous forme de chaîne tel que "default", "reduce-overhead", "max-autotune-no-cudagraphs". En cas d’incompatibilité, revient au mode eager avec un avertissement.
channels_lastboolNoneUtilise le format mémoire channels_last (NHWC) pour la validation PyTorch native. None l'active automatiquement sur les processeurs x86 sous Linux et Windows compatibles avec oneDNN, avec PyTorch 1.13 ou version ultérieure ; False le désactive et True le demande sur les processeurs x86 ou les appareils CUDA pris en charge. Les appareils ARM64, MPS, les versions antérieures de PyTorch, les processeurs sans oneDNN et les formats exportés ne sont pas concernés ; la validation pendant l'entraînement conserve le format mémoire du modèle d'entraînement.
nmsbool, facultatifNoneExécute par défaut une inférence un-vers-plusieurs avec NMS (None ou True). Définis False pour utiliser la tête un-vers-un sans NMS lorsqu'elle est disponible. Consulte le guide sur la détection de bout en bout pour en savoir plus.

Un réglage minutieux et des expérimentations sont essentiels pour garantir des performances optimales et détecter et prévenir le surapprentissage.

Guide de validation

Paramètres d'exportation#

Les paramètres d'exportation des modèles YOLO comprennent les configurations permettant d'enregistrer ou d'exporter le modèle pour l'utiliser dans différents environnements. Ils influent sur les performances, la taille et la compatibilité. Parmi les paramètres clés figurent le format du fichier exporté (p. ex. ONNX, TensorFlow SavedModel), l'appareil cible (p. ex. CPU, GPU) et des fonctionnalités telles que les masques. La tâche du modèle et les contraintes de l'environnement de destination influent également sur le processus d'exportation.

ArgumentTypeValeur par défautDescription
formatstr'torchscript'Format cible du modèle exporté, par exemple 'onnx', 'torchscript', 'engine' (TensorRT) ou autres. Chaque format permet la compatibilité avec différents environnements de déploiement.
namestrNoneNom du matériel cible pour les formats qui en ont besoin : architecture Hailo ('hailo8', 'hailo8l', 'hailo10h', 'hailo15h', 'hailo15l' ; valeur par défaut : 'hailo8l'), puce Rockchip RKNN (valeur par défaut : 'rk3588'), SoC Huawei Ascend (un CANN --soc_version ; valeur par défaut : 'Ascend310B4'), cible Qualcomm QNN HTP (valeur par défaut : '73') ou appareil AMD Xilinx Versal AI Edge Series Gen 2 (valeur par défaut : 've2-xc2ve3858', le kit d’évaluation VEK385). Différent de la paire de nommage d’exécution project/name utilisée par les autres modes.
imgszint ou tuple640Taille d'image souhaitée pour l'entrée du modèle. Peut être un entier pour les images carrées (p. ex. 640 pour 640×640) ou un tuple (height, width) pour des dimensions précises. Si elle n'est pas indiquée, l'exportation réutilise la taille d'entraînement enregistrée dans le point de contrôle chargé : les points de contrôle YOLO26 officiels enregistrent 768 pour la profondeur, 224 pour la classification, 1024 pour OBB et 640 pour les autres tâches, tandis qu'un modèle affiné enregistre la valeur imgsz utilisée pour son entraînement. Un modèle créé à partir d'un fichier YAML ne possède pas de taille d'entraînement enregistrée et utilise 640.
optimizeboolFalseActive une optimisation plus poussée du compilateur pour DEEPX, ce qui réduit la latence d'inférence tout en augmentant le temps de compilation.
quantizeint ou strNonePrécision de quantification : 16 (FP16, réduit la taille du modèle et peut accélérer l'inférence sur le matériel pris en charge) ou 8 (INT8/PTQ, compresse davantage le modèle avec une perte minimale de précision, principalement pour les appareils périphériques ; nécessite les données de calibration data/fraction) ; 32/non défini correspond à FP32. Un point de contrôle entraîné avec quantize=8 est toujours exporté en INT8 : onnx et engine sont exportés à partir des plages qu'il contient, sans calibration, et les autres formats ou précisions sont refusés. 'w8a8' et 'w16a16' sont des alias de 8 et 16 ; les précisions mixtes 'w8a16' (poids INT8 avec activations 16 bits : CoreML, LiteRT, QNN) et 'w8a32' (INT8 dynamique : LiteRT) sont acceptées uniquement par ces formats. Remplace les indicateurs obsolètes half/int8 (half=True → 16, int8=True → 8, toujours acceptés avec un avertissement de dépréciation). Seules les précisions prises en charge par le format cible sont autorisées (voir ci-dessous).
dynamicboolFalsePermet d'utiliser des tailles d'entrée dynamiques pour les exportations TorchScript, ONNX, OpenVINO, TensorRT, CoreML et MNN, offrant une plus grande flexibilité pour traiter des images de dimensions variées.
simplifyboolTrueSimplifie le graphe ONNX intermédiaire avec onnxslim pour les exportations qui en génèrent un (voir Formats d'exportation), ce qui peut améliorer les performances et la compatibilité avec les moteurs d'inférence.
opsetintNoneIndique la version d'opset ONNX pour les exportations qui génèrent un graphe ONNX (voir Formats d'exportation), afin d'assurer la compatibilité avec différents analyseurs et environnements d'exécution ONNX. Si aucune valeur n'est définie, 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, afin d'équilibrer l'utilisation mémoire et les performances. Utilise None pour laisser TensorRT allouer automatiquement jusqu'à la mémoire maximale de l'appareil.
nmsbool, facultatifNoneNone exporte les prédictions brutes un-vers-plusieurs pour une NMS externe ; True intègre la NMS lorsque cette option est prise en charge ; False sélectionne la tête sans NMS lorsqu'elle est disponible. La NMS intégrée de CoreML prend en charge la détection, la segmentation et la pose avec des dimensions statiques. Consulte le guide sur la détection de bout en bout.
conffloatNoneSeuil de confiance utilisé partout où une NMS est générée lors de l'exportation : les exportations nms=True ; les exportations de détection Hailo non exécutées de bout en bout ; et les exportations de détection, de pose et de segmentation IMX, qui imposent en interne nms=True. La valeur par défaut est 0.25 si aucune valeur n'est définie.
ioufloat0.7Seuil d'IoU utilisé partout où une NMS est générée lors de l'exportation : les exportations nms=True ; les exportations de détection Hailo non exécutées de bout en bout ; et les exportations de détection, de pose et de segmentation IMX, qui imposent en interne nms=True.
max_detint300Nombre maximal de détections conservées dans la sortie du modèle exporté. S'applique aux exportations nms=True dans tous les formats, sauf à la détection CoreML, dont le pipeline NMS natif ne limite pas le nombre de détections, ainsi qu'aux exportations de détection de bout en bout sans NMS (YOLO26, YOLOv10, limitées au nombre d'ancres disponibles) et aux exportations de détection, de pose et de segmentation IMX.
agnostic_nmsboolFalseActive la NMS indépendante des classes partout où une NMS est générée à l'exportation via le pipeline standard nms=True, y compris à l'étape NMS propre à CoreML ; les boîtes qui se chevauchent et dont le score est inférieur sont ainsi supprimées même si elles appartiennent à des classes différentes, plutôt qu'uniquement au sein d'une même classe. Cette option n'est pas prise en compte par les configurations NMS générées par Hailo ou IMX, qui ne proposent pas d'option indépendante des classes et restent sensibles aux classes, quelle que soit la valeur de cet indicateur. Elle est également intégrée aux exportations de bout en bout sans NMS (YOLO26, YOLOv10), où elle empêche uniquement la même détection d'apparaître sous plusieurs étiquettes de classe (doublons IoU=1.0), sans appliquer de suppression fondée sur un seuil IoU entre des boîtes distinctes.
batchint1Définit la taille du lot d’inférence du modèle exporté ou le nombre maximal d’images que le modèle exporté traite simultanément en mode predict. Les formats dont les arguments d’export ne comprennent pas batch (Edge TPU, IMX500, DEEPX, Hailo, AMD Xilinx) exportent avec un lot de 1 et rejettent les autres valeurs.
devicestrNoneIndique l'appareil utilisé pour l'exportation : GPU (device=0), CPU (device=cpu), MPS pour les puces 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, mais TensorRT 11.0 ne prend pas en charge DLA.
verboseboolFalseAugmente le niveau de détail des journaux du constructeur TensorRT à VERBOSE pendant l'exportation format='engine'. Les autres formats d'exportation ignorent cette option.
datastrNoneChemin vers le fichier YAML du jeu de données, indispensable à la calibration de la quantification INT8 ; pour la classification, indique plutôt un répertoire de jeu de données ou le nom d'un jeu de données intégré. Si cette valeur n'est pas spécifiée alors que la quantification INT8 est activée, Ultralytics sélectionne un jeu de données de calibration adapté à la tâche, si nécessaire, ou utilise le jeu de données par défaut correspondant à la tâche du modèle. Un point de contrôle entraîné avec quantize=8 contient ses propres plages INT8 et ne nécessite pas de données de calibration.
splitstr'val'Partition du jeu de données ('train', 'val' ou 'test') utilisée pour créer le chargeur de données de calibration de la quantification INT8 à partir de data.
fractionfloat, int ou list1.0Sous-ensemble du jeu de données utilisé pour la calibration INT8 : un ratio, un nombre d'images ou des valeurs [train, val, test]. 1 représente la partition complète ; les entiers supérieurs à 1 correspondent à des nombres d'images ; seules les entrées de test facultatives acceptent 0/0.0 pour signifier aucune image. Les listes de deux éléments conservent la partition test complète.

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 solutions Ultralytics offrent la flexibilité nécessaire pour personnaliser les modèles selon des tâches telles que le comptage d'objets, la création de cartes thermiques, le suivi d'entraînements, l'analyse de données, le suivi de zones, la gestion de files d'attente et le comptage par région. Ces options permettent d'ajuster facilement les paramètres pour obtenir des résultats précis et utiles, adaptés à des besoins spécifiques.

ArgumentTypeValeur par défautDescription
modelstrNoneChemin vers un fichier de modèle Ultralytics YOLO.
regionlist ou dictNonePoints définissant la région d'intérêt : une liste de tuples (x, y) ou un dictionnaire associant des noms de régions à des listes de points pour plusieurs régions (uniquement RegionCounter). Si None, les solutions qui nécessitent une région utilisent une région par défaut prédéfinie.
show_inboolTrueIndicateur permettant de contrôler l'affichage du nombre d'entrées dans le flux vidéo.
show_outboolTrueIndicateur permettant de contrôler l'affichage du nombre de sorties dans le flux vidéo.
analytics_typestr'line'Type de graphique, c'est-à-dire line, bar, area ou pie.
colormapintcv2.COLORMAP_DEEPGREENPalette de couleurs à utiliser pour la carte thermique.
line_widthint2Épaisseur des lignes des boîtes, des points clés et des compteurs dessinés par la solution.
verboseboolTrueActive le journal de la solution pour chaque image, qui indique la forme de l'entrée, le nombre d'éléments par classe et la vitesse de traitement. L'appel de suivi reste toujours silencieux.
json_filestrNoneChemin vers le fichier JSON contenant toutes les coordonnées des places de stationnement.
up_anglefloat145.0Seuil d'angle pour la pose « haute ».
kptslist[int][6, 8, 10]Liste de trois indices de points clés utilisés pour suivre les entraînements. Ces points clés correspondent à des articulations ou parties du corps, telles que les épaules, les coudes et les poignets, pour des exercices comme les pompes, les tractions, les squats et les exercices abdominaux.
down_anglefloat90.0Seuil d'angle pour la pose « basse ».
blur_ratiofloat0.5Ajuste le pourcentage d’intensité du flou, avec des valeurs comprises dans la plage 0.1 - 1.0.
crop_dirstr'cropped-detections'Nom du répertoire où stocker les détections recadrées.
recordsint5Nombre total de détections nécessaire pour déclencher un e-mail avec le système d’alarme de sécurité.
vision_pointtuple[int, int](20, 20)Point où la vision suivra les objets et tracera des trajectoires avec la solution VisionEye.
sourcestrNoneChemin vers la source d’entrée (vidéo, RTSP, etc.). Utilisable uniquement avec l’interface de ligne de commande Solutions (CLI).
figsizetuple[float, float](12.8, 7.2)Dimensions de la figure en pouces pour les graphiques Analytics ; (12.8, 7.2) affiche une image de 1280×720.
fpsfloat30.0Images par seconde utilisées pour les calculs de vitesse.
max_histint5Nombre maximal de points historiques à suivre par objet pour les calculs de vitesse et de direction.
meter_per_pixelfloat0.05Facteur d’échelle utilisé pour convertir les distances en pixels en unités du monde réel.
max_speedint120Vitesse maximale en km/h ; les vitesses estimées supérieures sont plafonnées à cette valeur.
datastr'images'Chemin vers le répertoire d’images utilisé pour la recherche de similarité.
imgszint640Taille de l’image d’entrée pour l’inférence du modèle.

Guide des solutions

Paramètres d’augmentation#

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

ArgumentTypeValeur par défautTâches prises en chargePlageDescription
hsv_hfloat0.015detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Ajuste la teinte de l’image d’une fraction de la roue chromatique, en introduisant une variabilité des couleurs. Aide le modèle à généraliser dans différentes conditions d’éclairage. Pour classify, cette option s’applique uniquement lorsque auto_augment=None.
hsv_sfloat0.7detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Modifie la saturation de l’image d’une fraction, ce qui influe sur l’intensité des couleurs. Utile pour simuler différentes conditions environnementales. Pour classify, cette option s’applique uniquement lorsque auto_augment=None.
hsv_vfloat0.4detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Modifie la valeur (luminosité) de l’image d’une fraction, ce qui aide le modèle à fonctionner correctement dans diverses conditions d’éclairage. Pour classify, cette option s’applique uniquement lorsque auto_augment=None.
degreesfloat0detect, segment, semantic, depth, pose, obb0.0 - 180Fait pivoter l’image de manière aléatoire dans la plage de degrés spécifiée, améliorant la capacité du modèle à reconnaître des objets selon différentes orientations.
translatefloat0.1detect, segment, semantic, depth, pose, obb0.0 - 1.0Déplace l’image horizontalement et verticalement d’une fraction de sa taille, ce qui aide le modèle à apprendre à détecter les objets partiellement visibles.
scalefloat | tuple0.5detect, segment, semantic, depth, classify, pose, obb0 - 1, ou un tuple (min, max) explicite (pas pour classify)Met l’image à l’échelle selon un facteur de gain, simulant des objets situés à différentes distances de la caméra.
shearfloat0detect, segment, semantic, depth, pose, obb-180 - +180Cisaille l’image selon un degré spécifié, imitant l’effet d’objets observés sous différents angles.
perspectivefloat0detect, segment, semantic, depth, pose, obb0.0 - 0.001Applique une transformation de perspective aléatoire à l’image, améliorant la capacité du modèle à comprendre les objets dans un espace 3D.
flipudfloat0detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Retourne l’image de haut en bas avec la probabilité spécifiée, augmentant la variabilité des données sans modifier les caractéristiques de l’objet.
fliplrfloat0.5detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Retourne l’image de gauche à droite avec la probabilité spécifiée, ce qui est utile pour apprendre à reconnaître les objets symétriques et accroître la diversité du jeu de données.
bgrfloat0detect, segment, semantic, depth, pose, obb0.0 - 1.0Inverse les canaux de l’image de RGB à BGR avec la probabilité spécifiée, ce qui est utile pour améliorer la robustesse face à un ordre de canaux incorrect.
mosaicfloat1detect, segment, semantic, pose, obb0.0 - 1.0Combine quatre images d’entraînement en une seule, simulant différentes compositions de scènes et interactions entre objets. Très efficace pour comprendre des scènes complexes.
mixupfloat0detect, segment, semantic, pose, obb0.0 - 1.0Mélange deux images et leurs étiquettes pour créer une image composite. Améliore la capacité de généralisation du modèle en introduisant du bruit dans les étiquettes et une variabilité visuelle.
cutmixfloat0detect, segment, semantic, pose, obb0.0 - 1.0Combine des portions de deux images pour créer un mélange partiel tout en conservant des régions distinctes. Améliore la robustesse du modèle en créant des situations d’occlusion.
copy_pastefloat0segment, semantic, obb0.0 - 1.0Fraction des objets admissibles qui sont copiés-collés ; flip les met en miroir dans l’image, tandis que mixup utilise aussi cette valeur comme probabilité d’application entre images.
copy_paste_modestrflipsegment, semantic, obb-Indique la stratégie copy-paste à utiliser. Les options comprennent 'flip' et 'mixup'.
auto_augmentstrrandaugmentclassify-Applique une politique d’augmentation prédéfinie ('randaugment', 'autoaugment' ou 'augmix') pour améliorer les performances du modèle grâce à la diversité visuelle.
erasingfloat0.4classify0.0 - 1.0Efface aléatoirement des régions de l’image pendant l’entraînement afin d’inciter le modèle à se concentrer sur des caractéristiques moins évidentes.
augmentationslistNonedetect, segment, semantic, depth, pose, obb-Transformations Albumentations personnalisées pour l’augmentation avancée des données (API Python uniquement). Accepte une liste d’objets de transformation pour des besoins d’augmentation spécifiques.

Ajuste ces paramètres en fonction des exigences du jeu de données et de la tâche. Tester différentes valeurs peut aider à trouver la stratégie d’augmentation optimale pour obtenir les meilleures performances du modèle.

Guide sur l’augmentation

Paramètres de journalisation, de points de contrôle et de graphiques#

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

  • Journalisation : Suis la progression du modèle et diagnostique les problèmes avec des bibliothèques comme TensorBoard ou en écrivant dans un fichier.
  • Points de contrôle : Enregistre régulièrement le modèle pour reprendre l’entraînement ou tester différentes configurations.
  • Graphiques : Visualise les performances et la progression de l’entraînement avec des bibliothèques comme Matplotlib ou TensorBoard.
  • Gestion des fichiers : Organise les fichiers générés pendant l’entraînement, comme les points de contrôle, les fichiers journaux et les graphiques, pour les consulter et les analyser facilement.

Une gestion efficace de ces aspects facilite le suivi de la progression, le débogage et l’optimisation.

ArgumentValeur par défautDescription
projectNoneIndique le répertoire racine où enregistrer les exécutions d’entraînement. Si cette valeur n’est pas spécifiée, les exécutions sont enregistrées dans runs/<task>. Chaque exécution est enregistrée dans un sous-répertoire distinct.
nameNoneDéfinit le nom de l’expérience. Si cette valeur n’est pas spécifiée, YOLO utilise le nom du mode et l’incrémente à chaque exécution (par exemple, train, train-2) pour éviter tout écrasement.
exist_okFalseDétermine s’il faut écraser un répertoire d’expérience existant. True autorise l’écrasement ; False l’empêche.
plotsTrueContrôle la génération et l’enregistrement des graphiques d’entraînement et de validation. Définis cette valeur sur True pour créer des graphiques tels que les courbes de perte, les courbes de précision-rappel et des prédictions d’exemple afin de suivre visuellement les performances.
saveTrueActive l’enregistrement des points de contrôle d’entraînement et des poids finaux du modèle. Définis cette valeur sur True pour enregistrer régulièrement les états du modèle et ainsi reprendre l’entraînement ou déployer le modèle.

Fichier de configuration personnalisé#

Charge un fichier YAML enregistré pour réutiliser un ensemble complet d’arguments sans les transmettre en ligne de commande. L’argument cfg remplace les valeurs de default.yaml, tandis que les arguments supplémentaires transmis en parallèle restent prioritaires.

ArgumentValeur par défautDescription
cfgNoneChemin vers un fichier YAML dont les valeurs remplacent les entrées default.yaml. Consulte Remplacer le fichier de configuration par défaut pour un exemple détaillé avec la CLI.

FAQ#

  • Améliore les performances en ajustant les hyperparamètres comme la taille de lot, le taux d’apprentissage, le momentum et la décroissance des poids. Ajuste les paramètres d’augmentation des données, choisis le bon optimiseur et utilise des techniques comme l’arrêt anticipé ou la précision mixte. Pour en savoir plus, consulte le guide d’entraînement.

  • Les principaux hyperparamètres qui influent sur la précision comprennent :

    • Taille de lot (batch) : Des tailles plus importantes peuvent stabiliser l’entraînement, mais nécessitent davantage de mémoire.
    • Taux d’apprentissage (lr0) : Des taux plus faibles permettent des ajustements fins, mais ralentissent la convergence.
    • Momentum (momentum) : Accélère les vecteurs de gradient et atténue les oscillations.
    • Taille d’image (imgsz) : Des tailles plus importantes améliorent la précision, mais augmentent la charge de calcul.

    Ajuste ces paramètres en fonction de ton jeu de données et de ton matériel. Pour en savoir plus, consulte les paramètres d’entraînement.

  • Le taux d’apprentissage (lr0) est essentiel ; commence par 0.01 pour SGD ou 0.001 pour l’optimiseur Adam, et définis explicitement optimizer, car la valeur par défaut auto ignore lr0. Surveille les métriques et ajuste-les au besoin. Utilise des planificateurs du taux d’apprentissage cosinus (cos_lr) ou une phase de préchauffage (warmup_epochs, warmup_momentum). Consulte le guide d’entraînement pour plus de détails.

  • Les paramètres par défaut comprennent :

    • Seuil de confiance (conf=0.25) : Confiance minimale requise pour les détections.
    • Seuil IoU (iou=0.7) : Pour la suppression non maximale (NMS).
    • Taille d’image (imgsz=640) : Redimensionne les images d’entrée.
    • Appareil (device=None) : Sélectionne le CPU, le GPU CUDA, Apple MPS, Intel XPU (xpu) ou le NPU Huawei Ascend (npu).

    Pour une vue d’ensemble complète, consulte les paramètres de prédiction et le guide de prédiction.

  • L’entraînement en précision mixte (amp=True) réduit l’utilisation de la mémoire et accélère l’entraînement grâce aux formats FP16 et FP32. Il est avantageux avec les GPU modernes : il permet d’utiliser des modèles plus grands et d’accélérer les calculs sans perte importante de précision. Pour en savoir plus, consulte le guide d’entraînement.

Commentaires