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 :
yolo TASK MODE ARGSOù :
TASK(facultatif) correspond à l’une des options suivantes : (detect, segment, semantic, depth, classify, pose, obb)MODE(obligatoire) correspond à l’une des options suivantes : (train, val, predict, export, track, benchmark)ARGS(facultatif) désigne des pairesarg=valuetelles queimgsz=640, qui remplacent les valeurs par défaut.
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.
| Argument | Valeur par défaut | Description |
|---|---|---|
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. |
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.).
| Argument | Valeur par défaut | Description |
|---|---|---|
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. |
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.
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
model | str | None | Spé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. |
data | str | None | Chemin 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). |
epochs | int | 100 | Nombre 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. |
time | float | None | Duré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é. |
patience | int | 100 | Nombre 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. |
batch | int ou float | 16 | Taille 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). |
imgsz | int | 640 | Taille 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. |
save | bool | True | Active 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_period | int | -1 | Fré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. |
cache | bool ou str | False | Active 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. |
device | int ou str ou list | None | Spé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]). |
workers | int | 8 | Nombre 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. |
project | str | None | Nom 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. |
name | str | None | Nom 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_ok | bool | False | Si 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_dir | str | None | Spé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. |
pretrained | bool ou str | True | Dé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_remap | bool | True | Lors 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. |
optimizer | str | '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. |
seed | int | 0 | Dé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. |
deterministic | bool | True | Force 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. |
verbose | bool | True | Active l’affichage détaillé pendant l’entraînement : barres de progression, métriques par époque et informations supplémentaires dans la console. |
single_cls | bool | False | Traite 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. |
classes | list[int] | None | Spé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. |
rect | bool | False | Active 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_scale | float | 0.0 | Fait 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_lr | bool | False | Utilise 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_mosaic | int | 10 | Dé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é. |
resume | bool | False | Reprend 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. |
amp | bool ou str | True | Dé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. |
quantize | int ou str | None | Dé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. |
fraction | float, int ou list | 1.0 | Sous-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. |
profile | bool | False | Active le profilage des vitesses ONNX et TensorRT pendant l’entraînement, ce qui est utile pour optimiser le déploiement du modèle. |
freeze | int ou list | None | Gè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. |
lr0 | float | 0.01 | Taux 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. |
lrf | float | 0.01 | Taux 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. |
momentum | float | 0.937 | Facteur 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_decay | float | 0.0005 | Terme de régularisation L2, qui pénalise les poids élevés pour prévenir le surapprentissage. |
warmup_epochs | float | 3.0 | Nombre 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_momentum | float | 0.8 | Momentum 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_lr | float | 0.1 | Taux 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_model | str | None | Chemin 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é. |
dis | float | 6.0 | Poids 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. |
box | float | 7.5 | Poids 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. |
cls | float | 0.5 | Poids 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_pw | float | 0.0 | Exposant 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. |
dfl | float | 1.5 | Poids 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). |
pose | float | 12.0 | Poids 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. |
kobj | float | 1.0 | Poids 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. |
rle | float | 1.0 | Poids 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. |
angle | float | 1.0 | Poids 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. |
dlog | float | 1.0 | Poids 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. |
dgrad | float | 0.5 | Poids 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. |
dlam | float | 1.0 | Facteur 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). |
nbs | int | 64 | Taille de lot nominale pour la normalisation de la perte. |
overlap_mask | bool | True | Dé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_ratio | int | 4 | Facteur 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. |
dropout | float | 0.0 | Taux 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. |
val | bool | True | Active la validation pendant l’entraînement afin d’évaluer périodiquement les performances du modèle sur un jeu de données distinct. |
nms | bool, facultatif | None | Sé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. |
plots | bool | True | Gé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. |
compile | bool ou str | False | Active 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_last | bool | None | Utilise 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_det | int | 300 | Nombre 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. |
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=-1pour 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
RuntimeErrorexplicite au lieu de revenir silencieusement à une valeur par défaut sans rapport.
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 :
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
source | str ou int ou None | None | Spé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. |
conf | float | 0.25 | Dé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. |
iou | float | 0.7 | Seuil 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. |
imgsz | int ou tuple | 640 | Taille 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. |
rect | bool | True | Si 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. |
quantize | int ou str | None | Pré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. |
device | str | None | Spé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. |
dnn | bool | False | Si True, utilise le module DNN d'OpenCV au lieu d'ONNX Runtime pour l'inférence des modèles ONNX. |
data | str | None | Chemin 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. |
batch | int | 1 | Dé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_det | int | 300 | Nombre 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_stride | int | 1 | Pas 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_buffer | bool | False | Dé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. |
visualize | bool | False | Enregistre 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. |
augment | bool | False | Active 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_nms | bool | False | Active 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. |
classes | list[int] | None | Filtre 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_masks | bool | False | Renvoie 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. |
embed | list[int] | None | Indique 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. |
project | str | None | Nom du répertoire de projet où sont enregistrées les sorties de prédiction si save est activé. |
name | str | None | Nom 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é. |
stream | bool | False | Permet 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. |
verbose | bool | True | Dé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. |
compile | bool ou str | False | Active 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_last | bool | None | Utilise 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. |
nms | bool, facultatif | None | Exé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 :
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
show | bool | False | Si 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. |
save | bool | False or True | Active 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_frames | bool | False | Lors 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_txt | bool | False | Enregistre 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_conf | bool | False | Inclut les scores de confiance dans les fichiers texte enregistrés. Fournit davantage de détails pour le post-traitement et l'analyse. |
save_crop | bool | False | Enregistre 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_labels | bool | True | Affiche les étiquettes de chaque détection dans le résultat visuel. Permet d'identifier immédiatement les objets détectés. |
show_conf | bool | True | Affiche 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_boxes | bool | True | Dessine 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_width | int or None | None | Dé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é. |
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.
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
data | str | None | Indique 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). |
imgsz | int | 640 | Dé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. |
batch | int | 16 | Dé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_json | bool | False | Si 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. |
conf | float | 0.001 | Dé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. |
iou | float | 0.7 | Définit le seuil d'intersection sur l'union pour la suppression non maximale. Contrôle l'élimination des détections en double. |
max_det | int | 300 | Limite 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. |
quantize | int ou str | None | Pré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. |
device | str | None | Indique 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. |
dnn | bool | False | Si 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. |
plots | bool | True | Lorsque 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. |
classes | list[int] | None | Indique une liste d'identifiants de classe à évaluer. Utile pour filtrer les classes et se concentrer uniquement sur certaines d'entre elles pendant l'évaluation. |
rect | bool | True | Si 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. |
split | str | '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. |
fraction | float, int ou list | 1.0 | Sous-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. |
project | str | None | Nom 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. |
name | str | None | Nom 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. |
verbose | bool | True | Si 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_txt | bool | False | Si 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_conf | bool | False | Si 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. |
workers | int | 8 | Nombre 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. |
augment | bool | False | Active 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_nms | bool | False | Active 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_cls | bool | False | Traite 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. |
visualize | bool | False | Visualise 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_labels | bool | True | Affiche les étiquettes de classe dans les visualisations de validation lorsque visualize=True. Définis False pour mieux distinguer les correspondances et les erreurs. |
show_conf | bool | True | Affiche les scores de confiance dans les visualisations de validation lorsque visualize=True. Définis False pour mieux distinguer les correspondances et les erreurs. |
compile | bool ou str | False | Active 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_last | bool | None | Utilise 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. |
nms | bool, facultatif | None | Exé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.
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.
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
format | str | '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. |
name | str | None | Nom 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. |
imgsz | int ou tuple | 640 | Taille 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. |
optimize | bool | False | Active 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. |
quantize | int ou str | None | Pré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). |
dynamic | bool | False | Permet 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. |
simplify | bool | True | Simplifie 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. |
opset | int | None | Indique 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. |
workspace | float ou None | None | Dé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. |
nms | bool, facultatif | None | None 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. |
conf | float | None | Seuil 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. |
iou | float | 0.7 | Seuil 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_det | int | 300 | Nombre 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_nms | bool | False | Active 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. |
batch | int | 1 | Dé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. |
device | str | None | Indique 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. |
verbose | bool | False | Augmente le niveau de détail des journaux du constructeur TensorRT à VERBOSE pendant l'exportation format='engine'. Les autres formats d'exportation ignorent cette option. |
data | str | None | Chemin 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. |
split | str | '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. |
fraction | float, int ou list | 1.0 | Sous-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.
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.
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
model | str | None | Chemin vers un fichier de modèle Ultralytics YOLO. |
region | list ou dict | None | Points 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_in | bool | True | Indicateur permettant de contrôler l'affichage du nombre d'entrées dans le flux vidéo. |
show_out | bool | True | Indicateur permettant de contrôler l'affichage du nombre de sorties dans le flux vidéo. |
analytics_type | str | 'line' | Type de graphique, c'est-à-dire line, bar, area ou pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Palette de couleurs à utiliser pour la carte thermique. |
line_width | int | 2 | Épaisseur des lignes des boîtes, des points clés et des compteurs dessinés par la solution. |
verbose | bool | True | Active 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_file | str | None | Chemin vers le fichier JSON contenant toutes les coordonnées des places de stationnement. |
up_angle | float | 145.0 | Seuil d'angle pour la pose « haute ». |
kpts | list[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_angle | float | 90.0 | Seuil d'angle pour la pose « basse ». |
blur_ratio | float | 0.5 | Ajuste le pourcentage d’intensité du flou, avec des valeurs comprises dans la plage 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | Nom du répertoire où stocker les détections recadrées. |
records | int | 5 | Nombre total de détections nécessaire pour déclencher un e-mail avec le système d’alarme de sécurité. |
vision_point | tuple[int, int] | (20, 20) | Point où la vision suivra les objets et tracera des trajectoires avec la solution VisionEye. |
source | str | None | Chemin vers la source d’entrée (vidéo, RTSP, etc.). Utilisable uniquement avec l’interface de ligne de commande Solutions (CLI). |
figsize | tuple[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. |
fps | float | 30.0 | Images par seconde utilisées pour les calculs de vitesse. |
max_hist | int | 5 | Nombre maximal de points historiques à suivre par objet pour les calculs de vitesse et de direction. |
meter_per_pixel | float | 0.05 | Facteur d’échelle utilisé pour convertir les distances en pixels en unités du monde réel. |
max_speed | int | 120 | Vitesse maximale en km/h ; les vitesses estimées supérieures sont plafonnées à cette valeur. |
data | str | 'images' | Chemin vers le répertoire d’images utilisé pour la recherche de similarité. |
imgsz | int | 640 | Taille de l’image d’entrée pour l’inférence du modèle. |
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 :
| Argument | Type | Valeur par défaut | Tâches prises en charge | Plage | Description |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Ajuste 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_s | float | 0.7 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Modifie 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_v | float | 0.4 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Modifie 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. |
degrees | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 180 | Fait 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. |
translate | float | 0.1 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Dé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. |
scale | float | tuple | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0 - 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. |
shear | float | 0 | detect, segment, semantic, depth, pose, obb | -180 - +180 | Cisaille l’image selon un degré spécifié, imitant l’effet d’objets observés sous différents angles. |
perspective | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 0.001 | Applique une transformation de perspective aléatoire à l’image, améliorant la capacité du modèle à comprendre les objets dans un espace 3D. |
flipud | float | 0 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Retourne 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. |
fliplr | float | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Retourne 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. |
bgr | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Inverse 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. |
mosaic | float | 1 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Combine 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. |
mixup | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Mé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. |
cutmix | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Combine 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_paste | float | 0 | segment, semantic, obb | 0.0 - 1.0 | Fraction 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_mode | str | flip | segment, semantic, obb | - | Indique la stratégie copy-paste à utiliser. Les options comprennent 'flip' et 'mixup'. |
auto_augment | str | randaugment | classify | - | 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. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | Efface 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. |
augmentations | list | None | detect, 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.
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.
| Argument | Valeur par défaut | Description |
|---|---|---|
project | None | Indique 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. |
name | None | Dé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_ok | False | Détermine s’il faut écraser un répertoire d’expérience existant. True autorise l’écrasement ; False l’empêche. |
plots | True | Contrô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. |
save | True | Active 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.
| Argument | Valeur par défaut | Description |
|---|---|---|
cfg | None | Chemin 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.
- Taille de lot (
Le taux d’apprentissage (
lr0) est essentiel ; commence par0.01pour SGD ou0.001pour l’optimiseur Adam, et définis explicitementoptimizer, car la valeur par défautautoignorelr0. 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.
- Seuil de confiance (
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.