Configuration#
Les paramètres et hyperparamètres de YOLO jouent un rôle essentiel dans les performances, la vitesse et la précision du modèle. Ces paramètres peuvent influer sur le comportement du modèle à différentes étapes, notamment l'entraînement, la validation et la prédiction.
Watch: Mastering 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) correspond à des pairesarg=valuetelles queimgsz=640qui 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 diverses tâches de vision par ordinateur, notamment :
- Detect : La détection d'objets identifie et localise les objets dans une image ou une vidéo.
- Segment : La segmentation d'instances divise une image ou une vidéo en régions correspondant à différents objets ou classes.
- Semantic segmentation (
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. - Depth (
depth) : L'estimation de profondeur monoculaire prédit une carte de profondeur par pixel, en mètres, à partir d'une seule image RGB. - Classify : La classification d'images prédit l'étiquette de classe d'une image d'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 satellites 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 étant conçu pour une étape spécifique du cycle de vie du modèle :
- Train : Entraîner un modèle YOLO sur un jeu de données personnalisé.
- Val : Valider un modèle YOLO entraîné.
- Predict : Utiliser un modèle YOLO entraîné pour effectuer des prédictions sur de nouvelles images ou vidéos.
- Export : Exporter un modèle YOLO pour le déploiement.
- Track : Suivre des objets en temps réel à l'aide d'un modèle YOLO.
- Benchmark : Évaluer 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 incluent des hyperparamètres et des configurations qui influent sur les performances, la vitesse et la précision du modèle. Les principaux paramètres comprennent la taille du 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 plus de détails, consulte le point d'entrée Ultralytics.
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
model | str | None | Spécifie le fichier du modèle à utiliser pour l'entraînement. Accepte un chemin vers 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 vers le fichier YAML du jeu de données (par exemple, coco8.yaml), qui contient les chemins vers les données d'entraînement et de validation, les noms des classes et le nombre de classes. La classification accepte plutôt un répertoire de données ou le nom d'un jeu de données intégré (par exemple, imagenet10). |
epochs | int | 100 | Nombre total d'époques d'entraînement. Chaque époque représente un passage complet sur l'ensemble du jeu de données. La modification de 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. Utile pour les scénarios d'entraînement soumis à des contraintes de temps. |
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 arrêtant l'entraînement lorsque les performances plafonnent. |
batch | int ou float | 16 | Taille du lot, avec trois modes : une valeur entière (par exemple, batch=16), le mode automatique pour une utilisation de 60 % de la mémoire GPU (batch=-1) ou le mode automatique avec une fraction d'utilisation définie (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 sont égaux à la valeur indiqué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 sa complexité de calcul. |
save | bool | True | Active l'enregistrement des points de contrôle d'entraînement et des poids finaux du modèle. Utile pour reprendre l'entraînement ou le déploiement du modèle. |
save_period | int | -1 | Fréquence d'enregistrement des points de contrôle du modèle, indiquée en époques. La valeur -1 désactive cette fonctionnalité. Utile pour enregistrer des modèles intermédiaires lors de longues sessions d'entraînement. |
cache | bool | False | Active la mise en cache des images du jeu de données en mémoire (True/ram), sur le disque (disk) ou la désactive (False). Accélère l'entraînement en réduisant les E/S 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 utilisés pour l'entraînement : un seul GPU (device=0), plusieurs GPU (device=[0,1]), le CPU (device=cpu), MPS pour les processeurs Apple (device=mps), un NPU Huawei Ascend (device=npu:0 ou device=npu:0,1), 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 lors d'un entraînement Multi-GPU). Influe sur la vitesse du prétraitement et de l'alimentation du modèle en données, en particulier dans les configurations multi-GPU. |
project | str | None | Nom du répertoire de projet dans lequel les sorties d'entraînement sont enregistrées. Permet de stocker de manière organisée les différentes expériences. |
name | str | None | Nom de l'exécution d'entraînement. Utilisé pour créer un sous-répertoire dans le dossier du projet, où sont stockés les journaux et les sorties d'entraînement. |
exist_ok | bool | False | Si la valeur est True, autorise l'écrasement d'un répertoire projet/nom existant. Utile pour les expérimentations itératives sans devoir supprimer manuellement les sorties précédentes. |
save_dir | str | None | Spécifie le répertoire exact dans lequel les sorties de l'exécution sont enregistrées, 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 s'il faut commencer l'entraînement à partir de poids préentraînés. Peut prendre une valeur booléenne ou un chemin sous forme de chaîne vers les 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 réglage fin sur plusieurs jeux de données, copie les lignes de la tête de classification préentraînée dans le nouveau modèle lorsque les noms de classes correspondent, afin que les classes communes conservent leur biais appris, ainsi que leurs poids lorsque la largeur de la tête reste inchangée. S'applique que le nombre de classes diffère ou corresponde avec un ordre de classes 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 pour l'entraînement afin de garantir la reproductibilité des résultats entre les exécutions utilisant les mêmes configurations. |
deterministic | bool | True | Force l'utilisation d'algorithmes déterministes, ce qui garantit la reproductibilité, mais peut influer sur les performances et la vitesse en raison de la restriction des algorithmes non déterministes. |
verbose | bool | True | Active la sortie détaillée pendant l'entraînement, en affichant les barres de progression, les métriques par époque et des informations supplémentaires sur l'entraînement dans la console. |
single_cls | bool | False | Traite toutes les classes des jeux de données multiclasse comme une seule classe pendant l'entraînement. Utile 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'ID de classes sur lesquelles effectuer l'entraînement. Utile pour filtrer certaines classes et se concentrer uniquement sur elles pendant l'entraînement. |
rect | bool | False | Active la stratégie de remplissage minimal : les images d'un lot reçoivent un remplissage minimal pour atteindre une taille commune, le côté le plus long étant égal à imgsz. Peut améliorer l'efficacité et la vitesse, mais peut influer sur la précision du modèle. |
multi_scale | float | 0.0 | Fait varier aléatoirement imgsz à chaque lot de +/- multi_scale (par exemple, de 0.25 -> 0.75x à 1.25x), en arrondissant aux multiples de la stride du modèle ; 0.0 désactive l'entraînement mult échelle. |
cos_lr | bool | False | Utilise un planificateur du taux d'apprentissage cosinus, qui ajuste le taux d'apprentissage suivant 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 l'augmentation des données mosaïque 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 nombre d'époques, puis poursuit 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-le sur 8 (ou "int8") pour l'entraînement conscient de la quantification INT8 (QAT), qui affine avec une fausse quantification dans la boucle pour que les poids tolèrent l'exportation INT8. Consulte la page Quantization-Aware Training. |
fraction | float, int ou list | 1.0 | Sous-ensemble du jeu de données défini comme un ratio/nombre ou une liste [train, val, test]. 1 désigne l'ensemble du split, les entiers supérieurs à 1 correspondent au nombre d'images, et seule l'entrée de test facultative accepte 0/0.0 pour signifier aucun élément. Les listes à deux éléments conservent l'intégralité du 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 des couches spécifiques indiquées par leur index ou leur nom de module (23.cv2, sans le model. initial), réduisant ainsi le nombre de paramètres entraînables. Utile pour le réglage fin ou l'apprentissage par transfert. |
lr0 | float | 0.01 | Taux d'apprentissage initial (c'est-à-dire SGD=1E-2, Adam=1E-3). La modification de cette valeur est essentielle au processus d'optimisation, car elle détermine la rapidité de mise à jour des poids du modèle. |
lrf | float | 0.01 | Taux d'apprentissage final sous forme de 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 beta1 pour les optimiseurs Adam, influant sur l'intégration des gradients précédents dans la mise à jour actuelle. |
weight_decay | float | 0.0005 | Terme de régularisation L2, qui pénalise les poids élevés afin de prévenir le surapprentissage. |
warmup_epochs | float | 3.0 | Nombre d'époques de montée en régime du taux d'apprentissage, qui augmente progressivement le taux d'apprentissage d'une faible valeur jusqu'au taux initial afin de stabiliser l'entraînement au début. |
warmup_momentum | float | 0.8 | Momentum initial pour la phase de montée en régime, qui s'ajuste progressivement au momentum défini pendant cette période. |
warmup_bias_lr | float | 0.1 | Taux d'apprentissage des paramètres de biais pendant la phase de montée en régime, ce qui contribue à stabiliser l'entraînement du modèle lors des premières époques. Défini automatiquement sur 0.0 avec le optimizer='auto' par défaut ; indique donc explicitement un optimiseur pour l'utiliser. |
distill_model | str | None | Chemin vers un point de contrôle du modèle enseignant (par exemple, yolo26x.pt) pour la distillation des connaissances. Lorsqu'il est défini, le modèle étudiant est entraîné avec une perte de distillation supplémentaire guidée par l'enseignant gelé. |
dis | float | 6.0 | Poids de la perte de distillation ajoutée aux pertes de détection standard. Des valeurs plus élevées augmentent l'influence des indications fournies par les caractéristiques de l'enseignant. |
box | float | 7.5 | Poids de la composante de perte des boîtes dans la fonction de perte, qui détermine l'importance accordée à la prédiction précise des coordonnées des boîtes englobantes. |
cls | float | 0.5 | Poids de la perte de classification dans la fonction de perte totale, qui influe sur l'importance d'une prédiction correcte de la classe par rapport aux autres composantes. |
cls_pw | float | 0.0 | Puissance utilisée pour pondérer les classes afin de gérer le déséquilibre des classes au moyen de la fréquence inverse des classes. 0.0 désactive la pondération des classes, tandis que 1.0 applique une pondération complète par fréquence inverse. Les valeurs comprises entre 0 et 1 fournissent une pondération partielle. |
dfl | float | 1.5 | Poids du terme de régression de la distance des boîtes : distribution focal loss (DFL) lorsque la tête de détection utilise reg_max > 1, ou perte L1 sur les distances de boîtes normalisées 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'objectness des points clés dans les modèles d'estimation de pose, qui établit un équilibre entre la confiance de détection et la précision de la pose. |
rle | float | 1.0 | Poids de la perte d'estimation de la 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, principal terme déterminant 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 focalisation de la variance de la perte SILog dans les modèles d'estimation de profondeur. 1.0 rend la perte totalement invariante à l'échelle, tandis que 0.0 la réduit à une simple RMSE logarithmique. |
nbs | int | 64 | Taille de lot nominale utilisée pour normaliser 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 | Ratio de sous-échantillonnage des masques de segmentation, qui influe sur la résolution des masques utilisés pendant l'entraînement. |
dropout | float | 0.0 | Taux de dropout utilisé pour la régularisation dans les 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, ce qui permet d'évaluer périodiquement les performances du modèle sur un jeu de données distinct. |
nms | bool, optionnel | 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 précoce. None ou True utilise du one-to-many 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 des informations visuelles sur les performances du modèle et 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ésactive, ou un mode sous forme de chaîne tel que "default", "reduce-overhead", "max-autotune-no-cudagraphs". Repasse en mode eager avec un avertissement si la fonctionnalité n’est pas prise en charge. |
channels_last | bool | None | Utilise le format de mémoire channels_last (NHWC) pour les convolutions pendant l'entraînement. None l'active automatiquement sur CUDA avec PyTorch 1.11 ou version ultérieure, sauf sur Windows, où il s'est avéré plus lent. False le désactive, et True le demande explicitement. PyTorch 1.10 et les versions antérieures, le processeur central (CPU) et le processeur multimédia (MPS) restent par défaut au format NCHW. |
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 passe au nombre d'objets étiquetés d'entraînement/validation le plus élevé uniquement lorsque 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 avec un entier (par ex.
batch=16). - Mode automatique (60 % de la mémoire GPU) : utilise
batch=-1pour ajuster automatiquement l’utilisation à environ 60 % de la mémoire CUDA. - Mode automatique avec fraction d’utilisation : définis une fraction (par ex.
batch=0.70) pour ajuster la taille en fonction d’une utilisation spécifiée de la mémoire GPU. - Aucune configuration adaptée trouvée : si aucune taille de lot candidate ne produit un profil utilisable, AutoBatch lève une
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 influencent 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, influencent également les prédictions. L’ajustement de ces paramètres est essentiel pour obtenir des performances optimales.
Arguments d’inférence :
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
source | str ou int ou None | None | Indique la source de données pour l’inférence. Il peut s’agir d’un chemin d’image, d’un fichier vidéo, d’un répertoire, d’une URL ou d’un identifiant de périphérique pour les flux en direct. Si cette valeur est omise, un avertissement est journalisé et le modèle utilise les ressources de démonstration intégrées (ultralytics/assets, ou une URL de démonstration pour OBB). Prend en charge un large éventail de formats et de sources, 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 une confiance inférieure à ce seuil sont ignorés. Ajuster cette valeur peut contribuer à réduire les faux positifs. |
iou | float | 0.7 | Seuil d’Intersection over 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 | Cible du letterbox. Un entier donne un N×N carré ; un tuple donne (height, width). Avec rect=True, le tenseur réel peut être plus petit que cette cible en raison du remplissage en rectangle minimal. Utilise rect=False pour une taille fixe. Consulte Forme fixe ou rectangle minimal. |
rect | bool | True | Si True, utilise si possible un remplissage en rectangle minimal (lot de même forme et backend pris en charge). Si False, complète toujours jusqu’à imgsz. Consulte Forme fixe ou rectangle minimal. |
quantize | int ou str | None | Précision d'inférence : 16/"fp16" et 32/"fp32"/non défini sélectionnent le calcul en FP16 ou FP32 pour les modèles PyTorch et TorchScript ; les autres formats calculent à la précision que leur artefact et leur environnement d'exécution sélectionnent. À 16, OpenVINO arrondit toujours l'entrée en FP16 côté client et l'élargit à nouveau en FP32, sans modifier la précision du calcul dans l'environnement d'exécution. La quantification INT8/PTQ se configure lors de l'exportation, puis s'utilise en chargeant le modèle exporté. Remplace l'indicateur obsolète half. |
device | str | None | Indique le périphérique utilisé pour l’inférence (par ex. cpu, cuda:0, 0, npu ou npu:0). Permet de choisir entre le CPU, un GPU spécifique, le NPU Huawei Ascend ou d’autres périphériques de calcul pour l’exécution du modèle. |
dnn | bool | False | Si True, utilise le module DNN d’OpenCV au lieu d’ONNX Runtime pour l’inférence de modèles ONNX. |
data | str | None | Chemin vers un fichier YAML de jeu de données (par ex. coco8.yaml), lu uniquement pour son names, et seulement lorsque le modèle chargé ne contient pas ses propres noms de classes : un export tiers ou un export Ultralytics séparé des métadonnées fournies avec celui-ci. Un tel modèle indique sinon class0, class1, etc. |
batch | int | 1 | Indique la taille de lot pour l’inférence (fonctionne uniquement lorsque la source est un répertoire, un fichier vidéo ou un fichier .txt). Une taille de lot plus grande peut offrir un débit supérieur et réduire la durée totale 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 de la résolution temporelle. Une valeur de 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 faire place aux nouvelles (optimisé pour les applications en temps réel). Si True, les nouvelles images sont placées dans un tampon, ce qui garantit qu’aucune image n’est ignorée, mais ajoute de la 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 de classe à côté de chaque prédiction, indiquant quels pixels ont augmenté les scores de la classe prédite. Respecte conf et classes, de sorte que classes=[0] ne mappe 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 des détections au prix de la vitesse d’inférence. Disponible uniquement pour les modèles PyTorch Ultralytics. |
agnostic_nms | bool | False | Active la suppression non maximale (NMS) agnostique aux classes, en supprimant les boîtes superposées ayant les scores les plus bas entre différentes classes plutôt que seulement au sein de la même classe. Utile dans les scénarios de détection multi-classes où le chevauchement de classes est courant. Avec l'inférence sans NMS (nms=False sur YOLO26 ou YOLOv10), cela empêche uniquement la même détection d'apparaître avec plusieurs étiquettes de classe (doublons IoU=1,0) et n'effectue pas de suppression basée sur le seuil d'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 spécifié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. Lorsque l’option est activée, les masques renvoyés (masks.data) correspondent à la taille de l’image d’origine. Si elle est désactivée, ils ont la taille de l’image utilisée pendant l’inférence. |
embed | list[int] | None | Indique les couches à partir desquelles extraire les vecteurs de caractéristiques ou les représentations. 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 spécifiques. Utile pour les tâches en aval comme le clustering ou la recherche par similarité. Disponible uniquement pour les modèles PyTorch Ultralytics. |
project | str | None | Nom du répertoire de projet où les sorties de prédiction sont enregistrées si save est activé. |
name | str | None | Nom de l’exécution de prédiction. Utilisé pour créer un sous-répertoire dans le dossier du projet, où les sorties de prédiction sont stockées si save est activé. |
stream | bool | False | Active un traitement économe en mémoire pour les vidéos longues ou les nombreuses images en renvoyant un générateur d’objets Results au lieu de charger toutes les images en mémoire simultanément. |
verbose | bool | True | Contrôle l’affichage des journaux détaillés d’inférence dans le terminal et fournit 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ésactive, ou un mode sous forme de chaîne tel que "default", "reduce-overhead", "max-autotune-no-cudagraphs". Repasse en mode eager avec un avertissement si la fonctionnalité n’est pas prise en charge. |
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 Linux et Windows x86 avec oneDNN et PyTorch 1.13 ou version ultérieure, False le désactive et True le demande sur les processeurs x86 ou périphériques CUDA pris en charge. ARM64, MPS, les anciennes versions de PyTorch, les processeurs sans oneDNN et les formats exportés tels que TensorRT et ONNX restent inchangés. |
nms | bool, optionnel | None | Exécute l'inférence one-to-many avec NMS par défaut (None ou True). Définis False pour utiliser la tête one-to-one sans NMS lorsqu'elle est disponible. Consulte le guide de détection de bout en bout pour plus de détails. |
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, l’analyse ultérieure ou le partage des résultats. Vaut True par défaut avec la CLI et False avec Python. |
save_frames | bool | False | Lors du traitement de vidéos, enregistre les images individuelles sous forme de fichiers 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, selon le format [class] [x_center] [y_center] [width] [height] [confidence]. Utile pour l’intégration avec d’autres outils d’analyse. |
save_conf | bool | False | Inclut les scores de confiance dans les fichiers texte enregistrés. Augmente le niveau de détail disponible pour le post-traitement et l’analyse. |
save_crop | bool | False | Enregistre des images recadrées des détections. Utile pour l’augmentation de jeu de données, l’analyse ou la création de jeux de données ciblés pour des objets spécifiques. |
show_labels | bool | True | Affiche les étiquettes de chaque détection dans la sortie visuelle. 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 un aperçu 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. Essentiel pour identifier visuellement les objets et les localiser dans les images ou les images vidéo. |
line_width | int or None | None | Indique la largeur de ligne des boîtes englobantes. Si None, la largeur de ligne est ajustée automatiquement selon la taille de l’image. Permet de personnaliser l’affichage pour une meilleure lisibilité. |
Paramètres de validation#
Les paramètres de validation des modèles YOLO comprennent des hyperparamètres et des configurations permettant d’évaluer les performances sur un jeu de données de validation. Ces paramètres influencent les performances, la vitesse et la précision. Les paramètres courants incluent la taille de lot, la fréquence de validation et les métriques de performance. La taille et la composition du jeu de données de validation, ainsi que la tâche spécifique, influencent également le processus.
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
data | str | None | Indique le chemin vers le fichier YAML du jeu de données (par ex. coco8.yaml), qui doit inclure le chemin vers les données de validation. La classification utilise à la place un répertoire de jeu de données ou un nom de jeu de données intégré (par ex. imagenet10). |
imgsz | int | 640 | Définit la taille des images d’entrée. Toutes les images sont redimensionnées à cette dimension avant le traitement. Des tailles plus grandes peuvent améliorer la précision pour les petits objets, mais augmentent le temps de calcul. |
batch | int | 16 | Définit le nombre d’images par lot. Des valeurs plus élevées utilisent 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, sauvegarde 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. Sur les jeux de données de détection, il évalue également les prédictions avec faster-coco-eval et rapporte le mAP pour les petits, moyens et grands objets, enregistré 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 pour les détections. Des valeurs plus faibles augmentent le rappel, mais peuvent introduire davantage de faux positifs. Les courbes précision-rappel utilisent par défaut 0.001 ; les matrices de confusion de détection utilisent explicitement la valeur conf, ou 0.25 lorsqu’elle est omise. La précision et le rappel récapitulatifs utilisent la confiance du F1 maximal et peuvent donc différer des valeurs dérivées de confusion_matrix.png. La valeur par défaut est 0.01 pour la validation OBB afin de réduire l’utilisation de la mémoire. |
iou | float | 0.7 | Définit le seuil d’Intersection over 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 detect, segment, pose et OBB, laissée à 300, cette valeur est augmentée pour atteindre le nombre d'objets étiquetés le plus élevé dans le jeu de données validé lorsqu'une image le dépasse, avec un avertissement ; toute autre valeur est conservée, accompagnée d'un avertissement indiquant que le rappel peut être limité lorsqu'une image le dépasse. |
quantize | int ou str | None | Précision de validation : 16/"fp16" et 32/"fp32"/non défini sélectionnent le calcul en FP16 ou FP32 pour les modèles PyTorch et TorchScript ; les autres formats calculent à la précision que leur artefact et leur environnement d'exécution sélectionnent. À 16, OpenVINO arrondit toujours l'entrée en FP16 côté client et l'élargit à nouveau en FP32, sans modifier la précision du calcul dans l'environnement d'exécution. La quantification INT8/PTQ se configure lors de l'exportation, puis s'utilise en validant le modèle exporté. Remplace l'indicateur obsolète half. |
device | str | None | Indique le périphérique utilisé pour la validation (cpu, cuda:0, npu, npu:0, etc.). Lorsque None, le meilleur périphérique disponible est sélectionné automatiquement. Plusieurs périphériques CUDA peuvent être spécifiés en les séparant par des virgules. |
dnn | bool | False | Si True, utilise le module DNN d’OpenCV pour l’inférence de modèles ONNX, comme alternative aux méthodes d’inférence PyTorch. |
plots | bool | True | Lorsque défini sur True, génère et enregistre des graphiques comparant les prédictions aux annotations réelles, 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, utilise l’inférence rectangulaire pour les lots, réduisant le remplissage et pouvant améliorer la vitesse et l’efficacité en traitant les images selon leur rapport d’aspect d’origine. Ignoré pour la validation depth, qui étire chaque image jusqu’à un carré fixe imgsz au lieu d’ajouter du remplissage. |
split | str | 'val' | Détermine la partition du jeu de données à utiliser pour la validation (val, test ou train). Permet de choisir librement le segment de données utilisé pour évaluer les performances. |
fraction | float, int ou list | 1.0 | Sous-ensemble de la division validée. Avec une liste [train, val, test], l'entrée correspondant à split s'applique (1 = division complète, entiers supérieurs à 1 = décomptes d'images ; les entrées omises sont complètes). Un scalaire s'applique uniquement avec split=train ; val et test utilisent ensuite la division complète. |
project | str | None | Nom du répertoire de projet où les sorties de validation sont enregistrées. 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. Utilisé pour créer un sous-répertoire dans le dossier du projet, où sont stockés les journaux et sorties de validation. |
verbose | bool | True | Si True, affiche des informations détaillées pendant le processus de validation, notamment les métriques par classe, la progression des lots et des informations de débogage supplémentaires. |
save_txt | bool | False | Si True, enregistre les résultats de détection dans des fichiers texte, avec un fichier par image, pour faciliter l’analyse ultérieure, le post-traitement personnalisé ou l’intégration avec 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 une sortie plus détaillée pour l’analyse et le filtrage. |
workers | int | 8 | Nombre de threads utilisés pour le chargement des données. Des valeurs plus élevées peuvent accélérer le prétraitement des données, mais peuvent augmenter l’utilisation du CPU. 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 des détections au prix de la vitesse d’inférence en exécutant 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 agnostique aux classes, en supprimant les boîtes superposées ayant les scores les plus bas indépendamment de 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), cela empêche uniquement la même détection d'apparaître avec plusieurs étiquettes de classe (doublons IoU=1,0) et n'effectue pas de suppression basée sur le seuil d'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 ne sont pas importantes. |
visualize | bool | False | Visualise les annotations réelles, 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 obtenir une vue plus épurée des correspondances et des erreurs. |
show_conf | bool | True | Affiche les scores de confiance dans les visualisations de validation lorsque visualize=True. Définis False pour obtenir une vue plus épurée des correspondances et des 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ésactive, ou un mode sous forme de chaîne tel que "default", "reduce-overhead", "max-autotune-no-cudagraphs". Repasse en mode eager avec un avertissement si la fonctionnalité n’est pas prise en charge. |
channels_last | bool | None | Utilise le format mémoire channels_last (NHWC) pour la validation PyTorch native. None l’active automatiquement sur les processeurs Linux et Windows x86 avec oneDNN et PyTorch 1.13 ou version ultérieure, False le désactive et True le demande sur les processeurs x86 ou périphériques CUDA pris en charge. ARM64, MPS, les anciennes versions de PyTorch, les processeurs sans oneDNN et les formats exportés restent inchangés ; la validation pendant l’entraînement conserve la disposition du modèle d’entraînement. |
nms | bool, optionnel | None | Exécute l'inférence one-to-many avec NMS par défaut (None ou True). Définis False pour utiliser la tête one-to-one sans NMS lorsqu'elle est disponible. Consulte le guide de détection de bout en bout pour plus de détails. |
Un réglage et une expérimentation rigoureux 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. Ces paramètres influencent les performances, la taille et la compatibilité. Les principaux paramètres incluent le format du fichier exporté (par ex. ONNX, TensorFlow SavedModel), le périphérique cible (par ex. CPU, GPU) et des fonctionnalités comme les masques. La tâche du modèle et les contraintes de l’environnement de destination influencent également le processus d’exportation.
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
format | str | 'torchscript' | Format cible du modèle exporté, tel que 'onnx', 'torchscript', 'engine' (TensorRT) ou d’autres. Chaque format assure la compatibilité avec différents environnements de déploiement. |
name | str | None | Nom de la cible matérielle pour les formats qui en nécessitent une : architecture Hailo ('hailo8', 'hailo8l', 'hailo10h', 'hailo15h', 'hailo15l' ; valeur par défaut : 'hailo8l'), puce Rockchip RKNN (valeur par défaut : 'rk3588'), SoC Huawei Ascend (un --soc_version CANN ; valeur par défaut : 'Ascend310B4') ou cible Qualcomm QNN HTP (valeur par défaut : '73'). À distinguer de la paire de noms d’exécution project/name utilisée par d’autres modes. |
imgsz | int ou tuple | 640 | Taille d’image souhaitée pour l’entrée du modèle. Il peut s’agir d’un entier pour les images carrées (par ex. 640 pour 640×640) ou d’un tuple (height, width) pour des dimensions spécifiques. Lorsqu’elle n’est pas fournie, 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 détection, 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 lors de son entraînement. Un modèle construit à partir d’un fichier YAML ne possède aucune taille d’entraînement enregistrée et utilise 640. |
keras | bool | False | Active l’exportation au format Keras pour TensorFlow SavedModel, assurant la compatibilité avec le service et les API TensorFlow. |
optimize | bool | False | Active une optimisation supérieure du compilateur pour DEEPX, réduisant 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 d'exactitude minimale, principalement pour les appareils de périphérie ; nécessite un étalonnage data/fraction) ; 32/non défini correspond à FP32. Un point de contrôle entraîné avec quantize=8 exporte toujours en INT8 : onnx et engine effectuent l'exportation à partir des plages qu'il transporte sans étalonnage, et les autres formats ou précisions sont rejetés. Les formats d'exportation qui prennent en charge la précision mixte poids/activation acceptent également la notation 'w8a8'/'w16a16'/'w8a16'/'w8a32'. 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 | Autorise des tailles d’entrée dynamiques pour les exportations TorchScript, ONNX, OpenVINO, TensorRT et CoreML, ce qui améliore la flexibilité lors du traitement de dimensions d’image variables. |
simplify | bool | True | Simplifie le graphe ONNX intermédiaire avec onnxslim pour les exportations qui en construisent 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 de l’opset ONNX pour les exportations qui construisent un graphe ONNX (voir Formats d’exportation), afin d’assurer la compatibilité avec différents analyseurs et runtimes ONNX. Si elle n’est pas définie, la dernière version prise en charge est utilisée. |
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 de la mémoire et les performances. Utilise None pour une allocation automatique par TensorRT jusqu’au maximum du périphérique. |
nms | bool, optionnel | None | None exporte des prédictions brutes one-to-many pour un NMS externe ; True intègre le NMS lorsqu'il est pris en charge ; False sélectionne la tête sans NMS lorsqu'elle est disponible. Le NMS intégré CoreML prend en charge la détection, la segmentation et l'estimation de pose avec des formes statiques. Consulte le guide de détection de bout en bout. |
conf | float | None | Seuil de confiance utilisé partout où la NMS au moment de l’exportation est générée : exportations nms=True ; exportations de détection Hailo sans traitement de bout en bout ; et exportations de détection, de pose et de segmentation IMX, qui imposent nms=True en interne. La valeur par défaut est 0.25 lorsqu’elle n’est pas définie. |
iou | float | 0.7 | Seuil IoU utilisé partout où la NMS au moment de l’exportation est générée : exportations nms=True ; exportations de détection Hailo sans traitement de bout en bout ; et exportations de détection, de pose et de segmentation IMX, qui imposent nms=True en interne. |
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, à l'exception de la détection CoreML, dont le pipeline NMS natif n'a pas de limite de détection, 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 d'IMX. |
agnostic_nms | bool | False | Active la NMS indépendante des classes partout où la NMS au moment de l’exportation est générée via le pipeline standard nms=True, y compris à l’étape NMS propre à CoreML, en supprimant les boîtes qui se chevauchent et dont le score est inférieur entre différentes classes, 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 aucune 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 une même détection d’apparaître sous plusieurs étiquettes de classe (doublons IoU=1.0), sans effectuer de suppression fondée sur un seuil IoU entre des boîtes distinctes. |
batch | int | 1 | Spécifie la taille du lot pour l'inférence du modèle exporté ou le nombre maximal d'images que le modèle exporté traitera simultanément en mode predict. Pour les exports Edge TPU, cette valeur est automatiquement définie sur 1. |
device | str | None | Spécifie le périphérique 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 exports TensorRT utilisent automatiquement le GPU, mais TensorRT 11.0 ne prend pas en charge le DLA. |
verbose | bool | False | Augmente le niveau de journalisation du générateur TensorRT à la sévérité VERBOSE pendant l'exportation format='engine'. Les autres formats d'exportation ignorent cette option. |
data | str | None | Chemin d'accès au fichier YAML du jeu de données, essentiel pour l'étalonnage de la quantification INT8 ; la classification prend plutôt un répertoire de jeu de données ou un nom de jeu de données intégré. Si aucun n'est spécifié alors que l'INT8 est activé, Ultralytics sélectionne un jeu de données d'étalonnage spécifique à la tâche si nécessaire, ou revient par défaut au jeu de données par défaut pour la tâche du modèle. Un point de contrôle entraîné avec quantize=8 transporte ses propres plages INT8 et ne nécessite aucune donnée d'étalonnage. |
split | str | 'val' | Partition du jeu de données ('train', 'val' ou 'test') utilisée pour créer le chargeur de données d'étalonnage de la quantification INT8 à partir de data. |
fraction | float, int ou list | 1.0 | Sous-ensemble du jeu de données utilisé pour l'étalonnage INT8 : un ratio, un nombre d'images ou des valeurs [train, val, test]. 1 désigne la partition complète, les entiers supérieurs à 1 correspondent au nombre d'images, et seule l'entrée de test facultative accepte 0/0.0 pour signifier aucune image. Les listes de deux éléments laissent test complet. |
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 pour des tâches telles que le comptage d'objets, la création de cartes thermiques, le suivi des séances d'entraînement, l'analyse des données, le suivi des zones, la gestion des files d'attente et le comptage par région. Ces options permettent d'effectuer facilement des ajustements afin d'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, soit une liste de tuples (x, y), soit un dictionnaire associant les noms des régions à des listes de points pour plusieurs régions (RegionCounter uniquement). Lorsque None, les solutions qui nécessitent une région utilisent une région par défaut prédéfinie. |
show_in | bool | True | Indicateur contrôlant l'affichage ou non des comptages entrants sur le flux vidéo. |
show_out | bool | True | Indicateur contrôlant l'affichage ou non des comptages sortants sur 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 comptages dessinés par la solution. |
verbose | bool | True | Active le journal par image de la solution, qui indique la forme d'entrée, les comptages par classe et la vitesse de traitement. L'appel de suivi lui-même est toujours silencieux. |
json_file | str | None | Chemin vers le fichier JSON contenant toutes les données de coordonnées des places de stationnement. |
up_angle | float | 145.0 | Seuil d'angle pour la pose « vers le haut ». |
kpts | list[int] | '[6, 8, 10]' | Liste de trois indices de points clés utilisés pour le suivi des séances d'entraînement. Ces points clés correspondent à des articulations ou parties du corps, comme les épaules, les coudes et les poignets, pour des exercices tels que les pompes, les tractions, les squats et les exercices abdominaux. |
down_angle | int | 90 | Seuil d'angle pour la pose « vers le bas ». |
blur_ratio | float | 0.5 | Ajuste le pourcentage d'intensité du flou, avec des valeurs comprises dans 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 à partir duquel VisionEye suit les objets et dessine les trajectoires à l'aide de VisionEye Solution. |
source | str | None | Chemin vers la source d'entrée (vidéo, RTSP, etc.). Utilisable uniquement avec l'interface de ligne de commande (CLI) des solutions. |
figsize | tuple[float, float] | (12.8, 7.2) | Taille de la figure pour les graphiques d'analyse tels que les cartes thermiques ou les graphiques. |
fps | float | 30.0 | Nombre d'images par seconde utilisé 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 une distance en pixels en unités réelles. |
max_speed | int | 120 | Limite de vitesse maximale dans les superpositions visuelles (utilisée pour les alertes). |
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 du modèle 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 inconnues. Le tableau suivant présente 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, ce qui introduit une variabilité des couleurs. Cela 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 affecte 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 aléatoirement l'image dans la plage de degrés spécifiée, ce qui améliore la capacité du modèle à reconnaître les objets selon différentes orientations. |
translate | float | 0.1 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Translate 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) | Redimensionne l'image 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 | Applique un cisaillement à l'image selon un degré spécifié, imitant l'effet d'objets vus 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 selon 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 selon la probabilité spécifiée, ce qui est utile pour apprendre 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 vers BGR selon la probabilité spécifiée, ce qui est utile pour améliorer la robustesse face à un ordre incorrect des canaux. |
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ène et interactions entre objets. Particulièrement efficace pour la compréhension de scènes complexes. |
mixup | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Mélange deux images et leurs annotations pour créer une image composite. Améliore la capacité du modèle à généraliser en introduisant du bruit dans les annotations et une variabilité visuelle. |
cutmix | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Combine des portions de deux images, créant un mélange partiel tout en conservant des régions distinctes. Améliore la robustesse du modèle en créant des scénarios d'occlusion. |
copy_paste | float | 0 | segment, obb | 0.0 - 1.0 | Fraction des objets éligibles collés ; flip les duplique dans l'image, tandis que mixup utilise également cette valeur comme probabilité d'application entre images. |
copy_paste_mode | str | flip | segment, obb | - | Spécifie la stratégie copy-paste à utiliser. Les options incluent '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 à une 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'encourager 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 une augmentation avancée des données (API Python uniquement). Accepte une liste d'objets de transformation pour des besoins d'augmentation spécialisés. |
Ajuste ces paramètres pour répondre aux exigences du jeu de données et de la tâche. Expérimenter avec différentes valeurs peut aider à trouver la stratégie d'augmentation optimale pour obtenir les meilleures performances du modèle.
Paramètres de journalisation, des points de contrôle et du traçage#
La journalisation, les points de contrôle, le traçage et la gestion des fichiers sont importants lors de l'entraînement d'un modèle YOLO :
- Journalisation : suis la progression du modèle et diagnostique les problèmes à l'aide de bibliothèques comme TensorBoard ou en écrivant dans un fichier.
- Points de contrôle : enregistre le modèle à intervalles réguliers pour reprendre l'entraînement ou expérimenter avec différentes configurations.
- Traçage : visualise les performances et la progression de l'entraînement à l'aide de bibliothèques comme Matplotlib ou TensorBoard.
- Gestion des fichiers : organise les fichiers générés pendant l'entraînement, tels que les points de contrôle, les fichiers journaux et les graphiques, afin d'en faciliter l'accès et l'analyse.
Une gestion efficace de ces aspects aide à suivre la progression et facilite le débogage et l'optimisation.
| Argument | Valeur par défaut | Description |
|---|---|---|
project | None | Spécifie le répertoire racine où enregistrer les exécutions d'entraînement. S'il n'est pas spécifié, les exécutions sont enregistrées sous runs/<task>. Chaque exécution est enregistrée dans un sous-répertoire distinct. |
name | None | Définit le nom de l'expérience. S'il n'est pas spécifié, 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 option sur True pour créer des graphiques tels que les courbes de perte, les courbes de précision-rappel et les prédictions d'exemple afin de suivre visuellement les performances. |
save | True | Active l'enregistrement des points de contrôle de l'entraînement et des poids finaux du modèle. Définis cette option sur True pour enregistrer périodiquement les états du modèle, ce qui permet de reprendre l'entraînement ou de 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 simultanément 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 voir un exemple CLI détaillé. |
FAQ#
Les principaux hyperparamètres qui influencent la précision sont les suivants :
- Taille du 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 précis, mais ralentissent la convergence. - Momentum (
momentum) : accélère les vecteurs de gradient tout en atténuant les oscillations. - Taille de l'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 du lot (
Le taux d'apprentissage (
lr0) est essentiel ; commence par0.01pour SGD ou0.001pour l'optimiseur Adam. Surveille les métriques et ajuste-les si nécessaire. Utilise des planificateurs de taux d'apprentissage cosinus (cos_lr) ou une phase de préchauffage (warmup_epochs,warmup_momentum). Tu trouveras les détails dans le guide d'entraînement.Les paramètres par défaut incluent :
- Seuil de confiance (
conf=0.25) : confiance minimale pour les détections. - Seuil IoU (
iou=0.7) : utilisé pour la suppression non maximale (NMS). - Taille de l'image (
imgsz=640) : redimensionne les images d'entrée. - Appareil (
device=None) : sélectionne le CPU, le GPU, l’Apple MPS ou le NPU Huawei (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 à FP16 et FP32. Il est particulièrement avantageux avec les GPU modernes, car il permet d’utiliser des modèles plus grands et d’effectuer des calculs plus rapides sans perte significative de précision. Pour en savoir plus, consulte le guide d’entraînement.
Améliore les performances en ajustant des hyperparamètres tels que la taille du lot, le taux d'apprentissage, le momentum et la décroissance des poids. Ajuste les paramètres d'augmentation des données, sélectionne le bon optimiseur et utilise des techniques telles que l'arrêt anticipé ou la précision mixte. Pour plus de détails, consulte le guide d'entraînement.