Configuration
Les paramètres et les hyperparamètres YOLO jouent un rôle essentiel dans la performance, la vitesse et la précision du modèle. Ces paramètres peuvent affecter le comportement du modèle à différents stades, y compris l'entraînement, la validation et la prédiction.
Regarder : Maîtriser Ultralytics YOLO : Configuration
Regarder : Maîtriser Ultralytics YOLO : Configuration
Les commandes Ultralytics utilisent la syntaxe suivante :
Exemple
yolo TASK MODE ARGS
from ultralytics import YOLO
# Load a YOLO model from a pre-trained weights file
model = YOLO("yolo11n.pt")
# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)
Où :
TASK
(facultatif) est l'un de (detect, segment, classify, pose, obb)MODE
(obligatoire) est l'un de (train, val, predict, export, track, benchmark)ARGS
(facultatif) sont des pairesarg=value
commeimgsz=640
qui remplacent les valeurs par défaut.
Par défaut ARG
les valeurs sont définies sur cette page et proviennent du cfg/defaults.yaml
fichier.
Tâches
Les modèles Ultralytics YOLO peuvent effectuer diverses tâches de vision par ordinateur, notamment :
- Détecter : La détection d'objets identifie et localise les objets dans une image ou une vidéo.
- Segment : La segmentation d’instance divise une image ou une vidéo en régions correspondant à différents objets ou classes.
- Classer : La classification d'images prédit l'étiquette de classe d'une image d'entrée.
- Pose : L’estimation de la 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 à l'imagerie satellite ou médicale.
Argument | Par défaut | Description |
---|---|---|
task |
'detect' |
Spécifie la tâche YOLO : detect pour la détection d'objets, segment pour la segmentation, classify pour la classification, pose pour l'estimation de pose, et obb pour les boîtes englobantes orientées. Chaque tâche est adaptée à des sorties et des problèmes spécifiques dans l'analyse d'images et de vidéos. |
Modes
Les modèles Ultralytics YOLO fonctionnent dans différents modes, chacun étant conçu pour une étape spécifique du cycle de vie du modèle :
- Entraîner : Entraînez un modèle YOLO sur un ensemble de données personnalisé.
- Val : Valider un modèle YOLO entraîné.
- Prédire : Utilisez un modèle YOLO entraîné pour faire des prédictions sur de nouvelles images ou vidéos.
- Exporter : Exporter un modèle YOLO pour le déploiement.
- Suivi : Suivez les objets en temps réel à l’aide d’un modèle YOLO.
- Benchmark : Évaluez la vitesse et la précision des exportations YOLO (ONNX, TensorRT, etc.).
Argument | 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 pour les modèles YOLO incluent des hyperparamètres et des configurations qui affectent la performance, la vitesse et la précision du modèle. Les paramètres clés incluent la taille du lot, le taux d'apprentissage, le moment et la décroissance du poids. Le choix de l'optimiseur, de la fonction de perte et de la composition du jeu de données a également un impact sur l'entraînement. Le réglage et l'expérimentation sont cruciaux pour une performance optimale. Pour plus de détails, consultez la fonction d'entrée Ultralytics.
Argument | Type | Par défaut | Description |
---|---|---|---|
model |
str |
None |
Spécifie le fichier de modèle pour l'entraînement. Accepte un chemin d'accès à un modèle .pt pré-entraîné ou à un fichier de .yaml configuration. Essentiel pour définir la structure du modèle ou initialiser les poids. |
data |
str |
None |
Chemin d'accès au fichier de configuration de l'ensemble de données (par exemple, coco8.yaml ). Ce fichier contient des paramètres spécifiques à l'ensemble de données, y compris les chemins d'accès aux données d'entraînement et de validation, les noms de classe et le nombre de classes. |
epochs |
int |
100 |
Nombre total d'époques d'entraînement. Chaque époque représente un passage complet sur l'ensemble de données. L'ajustement de cette valeur peut affecter la durée de l'entraînement et les performances du modèle. |
time |
float |
None |
Durée maximale de l'entraînement en heures. Si elle est définie, elle remplace l'argument epochs , permettant à l'entraînement de s'arrêter automatiquement après la durée spécifiée. Utile pour les scénarios d'entraînement à durée limitée. |
patience |
int |
100 |
Nombre d'époques à attendre sans amélioration des métriques de validation avant d'arrêter précocement l'entraînement. Aide à prévenir le surapprentissage en arrêtant l'entraînement lorsque les performances se stabilisent. |
batch |
int ou float |
16 |
Taille du lot, avec trois modes : défini comme un entier (par exemple, batch=16 ), mode automatique pour une utilisation de la mémoire GPU de 60 % (batch=-1 ), ou mode automatique avec une fraction d'utilisation spécifiée (batch=0.70 ). |
imgsz |
int |
640 |
Taille d'image cible pour l'entraînement. Les images sont redimensionnées en carrés dont les côtés sont égaux à la valeur spécifiée (si rect=False ), en conservant le rapport hauteur/largeur pour les modèles YOLO mais pas pour RTDETR. Affecte le modèle précision et la complexité de calcul. |
save |
bool |
True |
Permet de sauvegarder les points de contrôle d'entraînement et les poids finaux du modèle. Utile pour reprendre l'entraînement ou le déploiement du modèle. |
save_period |
int |
-1 |
Fréquence de sauvegarde des points de contrôle du modèle, spécifiée en époques. Une valeur de -1 désactive cette fonctionnalité. Utile pour sauvegarder les modèles intermédiaires pendant les longues sessions d'entraînement. |
cache |
bool |
False |
Permet de mettre en cache les images de l'ensemble de données en mémoire (True /ram ), sur le disque (disk ), ou le désactive (False ). Améliore la vitesse d'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(s) périphérique(s) de calcul pour l'entraînement : un seul GPU (device=0 ), plusieurs GPU (device=[0,1] ), CPU (device=cpu ), MPS pour Apple Silicon (device=mps ), ou la sélection automatique du GPU le plus inactif (device=-1 ) ou plusieurs GPU inactifs (device=[-1,-1] ) |
workers |
int |
8 |
Nombre de threads de travail pour le chargement des données (par RANK si entraînement multi-GPU). Influe sur la vitesse de prétraitement des données et d'alimentation du modèle, particulièrement utile dans les configurations multi-GPU. |
project |
str |
None |
Nom du répertoire de projet où les sorties d'entraînement sont enregistrées. Permet un stockage organisé des différentes expériences. |
name |
str |
None |
Nom de l'exécution de l'entraînement. Utilisé pour créer un sous-répertoire dans le dossier du projet, où les journaux d'entraînement et les sorties sont stockés. |
exist_ok |
bool |
False |
Si True, permet de remplacer un répertoire projet/nom existant. Utile pour l'expérimentation itérative sans avoir besoin d'effacer manuellement les sorties précédentes. |
pretrained |
bool ou str |
True |
Détermine s'il faut commencer l'entraînement à partir d'un modèle pré-entraîné. Peut être une valeur booléenne ou un chemin d'accès à un modèle spécifique à partir duquel charger les poids. Améliore l'efficacité de l'entraînement et les performances du modèle. |
optimizer |
str |
'auto' |
Choix de l'optimiseur pour l'entraînement. Les options incluent SGD , Adam , AdamW , NAdam , RAdam , RMSProp etc., ou auto pour une sélection automatique basée sur la configuration du modèle. Affecte la vitesse et la stabilité de la convergence. |
seed |
int |
0 |
Définit la graine aléatoire pour l'entraînement, assurant la reproductibilité des résultats entre les exécutions avec les mêmes configurations. |
deterministic |
bool |
True |
Force l'utilisation d'algorithmes déterministes, assurant la reproductibilité mais pouvant affecter les performances et la vitesse en raison de la restriction sur les algorithmes non déterministes. |
single_cls |
bool |
False |
Traite toutes les classes dans les ensembles de données multi-classes comme une seule classe pendant l'entraînement. Utile pour les tâches de classification binaire ou lorsque l'on se concentre sur la présence d'objets plutôt que sur la classification. |
classes |
list[int] |
None |
Spécifie une liste d'identifiants de classe sur lesquels effectuer l'apprentissage. Utile pour filtrer et se concentrer uniquement sur certaines classes pendant l'entraînement. |
rect |
bool |
False |
Active la stratégie de remplissage minimum : les images d'un lot sont minimalement remplies pour atteindre une taille commune, le côté le plus long étant égal à imgsz . Peut améliorer l'efficacité et la vitesse, mais peut affecter la précision du modèle. |
multi_scale |
bool |
False |
Active l'entraînement multi-échelle en augmentant/diminuant imgsz par un facteur allant jusqu'à 0.5 pendant l'entraînement. Entraîne le modèle à être plus précis avec plusieurs imgsz pendant l'inférence. |
cos_lr |
bool |
False |
Utilise un planificateur de taux d'apprentissage cosinus, ajustant le taux d'apprentissage suivant une courbe cosinus sur les époques. Aide à gérer le taux d'apprentissage pour une meilleure convergence. |
close_mosaic |
int |
10 |
Désactive l'augmentation de données en mosaïque dans les N dernières époques pour stabiliser l'entraînement avant la fin. Définir sur 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, poursuivant l'entraînement de manière transparente. |
amp |
bool |
True |
Active l'entraînement en Précision Mixte Automatique (AMP), réduisant l'utilisation de la mémoire et accélérant potentiellement l'entraînement avec un impact minimal sur la précision. |
fraction |
float |
1.0 |
Spécifie la fraction de l'ensemble de données à utiliser pour l'entraînement. Permet de s'entraîner sur un sous-ensemble de l'ensemble de données complet, utile pour les expériences ou lorsque les ressources sont limitées. |
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 les couches spécifiées par leur index, réduisant ainsi le nombre de paramètres entraînables. Utile pour l'affinage ou l'apprentissage par transfert. |
lr0 |
float |
0.01 |
Taux d'apprentissage initial (c'est-à-dire SGD=1E-2 , Adam=1E-3 ). L'ajustement de cette valeur est crucial pour le processus d'optimisation, influençant la rapidité avec laquelle les poids du modèle sont mis à jour. |
lrf |
float |
0.01 |
Taux d'apprentissage final en tant que fraction du taux initial = (lr0 * lrf ), utilisé conjointement avec les schedulers pour ajuster le taux d'apprentissage au fil du temps. |
momentum |
float |
0.937 |
Facteur d'impulsion pour SGD ou bêta1 pour les optimiseurs Adam, influençant l'incorporation des gradients passés dans la mise à jour actuelle. |
weight_decay |
float |
0.0005 |
Terme de régularisation L2, pénalisant les poids importants pour éviter le surapprentissage. |
warmup_epochs |
float |
3.0 |
Nombre d'epochs pour l'échauffement du taux d'apprentissage (warmup), augmentant progressivement le taux d'apprentissage d'une valeur faible au taux d'apprentissage initial afin de stabiliser l'entraînement dès le début. |
warmup_momentum |
float |
0.8 |
Impulsion initiale pour la phase d'échauffement, s'ajustant progressivement à l'impulsion définie pendant la période d'échauffement. |
warmup_bias_lr |
float |
0.1 |
Taux d'apprentissage pour les paramètres de biais pendant la phase d'échauffement, aidant à stabiliser l'entraînement du modèle dans les premières epochs. |
box |
float |
7.5 |
Poids de la composante de perte de la boîte dans la fonction de perte, influençant 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, affectant l'importance de la prédiction correcte de la classe par rapport aux autres composantes. |
dfl |
float |
1.5 |
Poids de la perte focale de distribution, utilisé dans certaines versions de YOLO pour une classification fine. |
pose |
float |
12.0 |
Poids de la perte de pose dans les modèles entraînés pour l'estimation de pose, influençant l'importance accordée à la prédiction précise des points clés de la pose. |
kobj |
float |
2.0 |
Poids de la perte d'objectivité des keypoints dans les modèles d'estimation de pose, équilibrant la confiance de la détection avec la précision de la pose. |
nbs |
int |
64 |
Taille nominale du lot pour la normalisation de la perte. |
overlap_mask |
bool |
True |
Détermine si les masques d'objet doivent être fusionnés en un seul masque pour l'entraînement, ou conservés séparés pour chaque objet. En cas de chevauchement, le plus petit masque est superposé au plus grand masque lors de la fusion. |
mask_ratio |
int |
4 |
Taux de sous-échantillonnage pour les masques de segmentation, affectant la résolution des masques utilisés pendant l'entraînement. |
dropout |
float |
0.0 |
Taux d'abandon pour la régularisation dans les tâches de classification, empêchant le surapprentissage en omettant aléatoirement des unités pendant l'entraînement. |
val |
bool |
True |
Active la validation pendant l'entraînement, permettant une évaluation périodique des performances du modèle sur un ensemble de données distinct. |
plots |
bool |
False |
Génère et enregistre des graphiques des métriques d'entraînement et de validation, ainsi que des exemples de prédiction, fournissant des informations visuelles sur les performances du modèle et la progression de l'apprentissage. |
Remarque sur les paramètres de la taille de lot
L'argument batch
argument offre trois options de configuration :
- Taille de lot fixe: Spécifiez le nombre d'images par lot avec un entier (par exemple,
batch=16
). - Mode Auto (60 % de mémoire GPU): Utilisez
batch=-1
pour un ajustement automatique à environ 60 % d'utilisation de la mémoire CUDA. - Mode Auto avec Fraction d'Utilisation: Définir une fraction (par exemple,
batch=0.70
) pour s'ajuster en fonction de l'utilisation de la mémoire GPU spécifiée.
Paramètres de prédiction
Les paramètres de prédiction pour les modèles YOLO incluent des hyperparamètres et des configurations qui influencent la performance, la vitesse et la précision pendant l'inférence. Les paramètres clés incluent le seuil de confiance, le seuil de Suppression Non Maximale (NMS), et le nombre de classes. La taille des données d'entrée, le format et les fonctionnalités supplémentaires comme les masques affectent également les prédictions. L'ajustement de ces paramètres est essentiel pour une performance optimale.
Arguments d'inférence :
Argument | Type | Par défaut | Description |
---|---|---|---|
source |
str |
'ultralytics/assets' |
Spécifie la source de données pour l'inférence. Peut être un chemin d'image, un fichier vidéo, un répertoire, une URL ou un ID de périphérique pour les flux en direct. Prend en charge une large gamme de formats et de sources, permettant une application flexible à travers différents types d'entrée. |
conf |
float |
0.25 |
Définit le seuil de confiance minimum pour les détections. Les objets détectés avec une confiance inférieure à ce seuil seront ignorés. L'ajustement de cette valeur peut aider à 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 entraînent 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 |
Définit la taille de l'image pour l'inférence. Peut être un entier unique 640 pour le redimensionnement carré ou un tuple (hauteur, largeur). Un dimensionnement approprié peut améliorer la détection précision et la vitesse de traitement. |
rect |
bool |
True |
Si activé, remplit minimalement le côté le plus court de l'image jusqu'à ce qu'il soit divisible par le pas pour améliorer la vitesse d'inférence. Si désactivé, remplit l'image pour former un carré pendant l'inférence. |
half |
bool |
False |
Active l'inférence en demi-précision (FP16), ce qui peut accélérer l'inférence du modèle sur les GPU pris en charge avec un impact minimal sur la précision. |
device |
str |
None |
Spécifie le périphérique pour l'inférence (par exemple, cpu , cuda:0 ou 0 ). Permet aux utilisateurs de choisir entre le CPU, un GPU spécifique ou d'autres périphériques de calcul pour l'exécution du modèle. |
batch |
int |
1 |
Spécifie la taille de lot pour l'inférence (fonctionne uniquement lorsque la source est un répertoire, un fichier vidéo ou .txt fichier). Une taille de lot plus importante peut fournir un débit plus élevé, ce qui réduit le temps total requis pour 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 dans une seule inférence, empêchant les sorties excessives dans les scènes denses. |
vid_stride |
int |
1 |
Pas de trame pour les entrées vidéo. Permet de sauter des trames dans les vidéos pour accélérer le traitement au détriment de la résolution temporelle. Une valeur de 1 traite chaque trame, des valeurs plus élevées sautent des trames. |
stream_buffer |
bool |
False |
Détermine s'il faut mettre en file d'attente les trames entrantes pour les 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 , met en file d'attente de nouvelles images dans un tampon, garantissant qu'aucune image n'est ignorée, mais entraînera une latence si le FPS d'inférence est inférieur au FPS du flux. |
visualize |
bool |
False |
Active la visualisation des caractéristiques du modèle pendant l'inférence, fournissant des informations sur ce que le modèle "voit". Utile pour le débogage et l'interprétation du modèle. |
augment |
bool |
False |
Active l'augmentation au moment du test (TTA) pour les prédictions, ce qui améliore potentiellement la robustesse de la détection au détriment de la vitesse d'inférence. |
agnostic_nms |
bool |
False |
Active la suppression non maximale (NMS) agnostique à la classe, qui fusionne les boîtes qui se chevauchent de différentes classes. Utile dans les scénarios de détection multi-classes où le chevauchement de classes est courant. |
classes |
list[int] |
None |
Filtre les prédictions à un ensemble d'IDs de classe. Seules les détections appartenant aux classes spécifiées seront retournées. Utile pour se concentrer sur les objets pertinents dans les tâches de détection multi-classes. |
retina_masks |
bool |
False |
Retourne des masques de segmentation haute résolution. Les masques retournés (masks.data ) correspondent à la taille de l'image originale si cette option est activée. Si elle est désactivée, ils ont la taille de l'image utilisée pendant l'inférence. |
embed |
list[int] |
None |
Spécifie les couches à partir desquelles extraire les vecteurs de caractéristiques ou les embeddings. Utile pour les tâches en aval comme le clustering ou la recherche de similarité. |
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 la 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 le traitement économe en mémoire pour les longues vidéos ou les nombreuses images en renvoyant un générateur d'objets Results au lieu de charger toutes les images en mémoire en une seule fois. |
verbose |
bool |
True |
Contrôle s'il faut afficher les journaux d'inférence détaillés dans le terminal, fournissant un retour d'information en temps réel sur le processus de prédiction. |
Arguments de visualisation :
Argument | Type | Par défaut | Description |
---|---|---|---|
show |
bool |
False |
Si True , affiche les images ou vidéos annotées dans une fenêtre. Utile pour un retour visuel immédiat pendant le développement ou les tests. |
save |
bool |
False or True |
Permet de sauvegarder les images ou vidéos annotées dans un fichier. Utile pour la documentation, l'analyse plus approfondie ou le partage des résultats. Vaut True par défaut lors de l'utilisation de la CLI et False lors de l'utilisation en python. |
save_frames |
bool |
False |
Lors du traitement de vidéos, enregistre les images individuelles sous forme d'images. Utile pour extraire des images spécifiques ou pour une analyse détaillée image par image. |
save_txt |
bool |
False |
Enregistre les résultats de détection dans un fichier texte, suivant 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. Améliore le niveau de détail disponible pour le post-traitement et l'analyse. |
save_crop |
bool |
False |
Enregistre les images recadrées des détections. Utile pour l'augmentation de l'ensemble de données, l'analyse ou la création d'ensembles de données ciblés pour des objets spécifiques. |
show_labels |
bool |
True |
Affiche les étiquettes pour chaque détection dans la sortie visuelle. Fournit une compréhension immédiate des objets détectés. |
show_conf |
bool |
True |
Affiche le score de confiance pour chaque détection à côté de l'étiquette. Donne un aperçu de la certitude du modèle pour chaque détection. |
show_boxes |
bool |
True |
Dessine des boîtes englobantes autour des objets détectés. Essentiel pour l'identification visuelle et la localisation des objets dans les images ou les trames vidéo. |
line_width |
None or int |
None |
Spécifie la largeur de ligne des boîtes englobantes. Si None , la largeur de ligne est automatiquement ajustée en fonction de la taille de l'image. Fournit une personnalisation visuelle pour plus de clarté. |
Paramètres de validation
Les paramètres de validation pour les modèles YOLO impliquent des hyperparamètres et des configurations pour évaluer les performances sur un ensemble de données de validation. Ces paramètres influencent les performances, la vitesse et la précision. Les paramètres courants incluent la taille du lot, la fréquence de validation et les métriques de performance. La taille et la composition de l'ensemble de données de validation, ainsi que la tâche spécifique, affectent également le processus.
Argument | Type | Par défaut | Description |
---|---|---|---|
data |
str |
None |
Spécifie le chemin d'accès au fichier de configuration de l'ensemble de données (par exemple, coco8.yaml ). Ce fichier comprend les chemins d'accès à validation, les noms de classe et le nombre de classes. |
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 du GPU, mais nécessitent plus de VRAM. Ajustez en fonction des ressources matérielles disponibles. |
save_json |
bool |
False |
Si True , enregistre les résultats dans un fichier JSON pour une analyse plus approfondie, une intégration avec d'autres outils ou une soumission à des serveurs d'évaluation comme COCO. |
conf |
float |
0.001 |
Définit le seuil de confiance minimal pour les détections. Des valeurs plus basses augmentent le rappel, mais peuvent introduire plus de faux positifs. Utilisé pendant la validation pour calculer les courbes de précision-rappel. |
iou |
float |
0.7 |
Définit le seuil 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. Utile dans les scènes denses pour éviter les détections excessives et gérer les ressources de calcul. |
half |
bool |
True |
Active le calcul en demi-précision (FP16), réduisant l'utilisation de la mémoire et augmentant potentiellement la vitesse avec un impact minimal sur la précision. |
device |
str |
None |
Spécifie le dispositif de validation (cpu , cuda:0 , etc.). Quand None , sélectionne automatiquement le meilleur périphérique disponible. 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 du modèle ONNX, offrant une alternative aux PyTorch méthodes d'inférence. |
plots |
bool |
False |
Lorsque défini sur True , génère et enregistre des graphiques de prédictions par rapport à la vérité terrain, des matrices de confusion et des courbes PR pour l'évaluation visuelle des performances du modèle. |
classes |
list[int] |
None |
Spécifie une liste d'ID de classe sur lesquelles s'entraîner. Utile pour filtrer et se concentrer uniquement sur certaines classes pendant l'évaluation. |
rect |
bool |
True |
Si True , utilise l'inférence rectangulaire pour le traitement par lots, réduisant le remplissage et augmentant potentiellement la vitesse et l'efficacité en traitant les images dans leur rapport hauteur/largeur d'origine. |
split |
str |
'val' |
Détermine la division de l'ensemble de données à utiliser pour la validation (val , test , ou train '). Permet une flexibilité dans le choix du segment de données pour l'évaluation des performances. |
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 modèles. |
name |
str |
None |
Nom de l'exécution de la validation. Utilisé pour créer un sous-répertoire dans le dossier du projet, où les journaux et les sorties de validation sont stockés. |
verbose |
bool |
False |
Si True , affiche des informations détaillées pendant le processus de validation, y compris 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, ce qui est utile pour une analyse plus approfondie, un post-traitement personnalisé ou une 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é, fournissant une sortie plus détaillée pour l'analyse et le filtrage. |
workers |
int |
8 |
Nombre de threads de travail pour le chargement des données. Des valeurs plus élevées peuvent accélérer le prétraitement des données, mais peuvent augmenter l'utilisation du CPU. Définir sur 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 la détection au prix d'une vitesse d'inférence plus lente en exécutant l'inférence sur des versions transformées de l'entrée. |
agnostic_nms |
bool |
False |
Active la suppression non maximale agnostique à la classe, qui fusionne les boîtes qui se chevauchent quelle que soit leur classe prédite. Utile pour les applications axées sur l'instance. |
single_cls |
bool |
False |
Traite toutes les classes comme une seule classe pendant la validation. Utile pour évaluer la performance du modèle sur des tâches de détection binaire ou lorsque les distinctions de classe ne sont pas importantes. |
visualize |
bool |
False |
Visualise les vérités de 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. |
Un réglage et une expérimentation minutieux sont essentiels pour garantir des performances optimales, ainsi que pour détecter et prévenir le surapprentissage.
Paramètres d'exportation
Les paramètres d'exportation pour les modèles YOLO incluent des configurations pour enregistrer ou exporter le modèle afin de l'utiliser dans différents environnements. Ces paramètres ont un impact sur les performances, la taille et la compatibilité. Les principaux paramètres incluent le format de fichier exporté (par exemple, ONNX, TensorFlow SavedModel), le périphérique cible (par exemple, CPU, GPU) et des fonctionnalités telles que les masques. La tâche du modèle et les contraintes de l'environnement de destination affectent également le processus d'exportation.
Argument | Type | Par défaut | Description |
---|---|---|---|
format |
str |
'torchscript' |
Format cible pour le modèle exporté, tel que 'onnx' , 'torchscript' , 'engine' (TensorRT), ou autres. Chaque format permet la compatibilité avec différents environnements de déploiement. |
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 spécifiques. |
keras |
bool |
False |
Permet l'exportation au format Keras pour TensorFlow SavedModel, assurant la compatibilité avec les services et API TensorFlow. |
optimize |
bool |
False |
Applique une optimisation pour les appareils mobiles lors de l'exportation vers TorchScript, ce qui peut réduire la taille du modèle et améliorer les performances d'inférence. Non compatible avec le format NCNN ou les appareils CUDA. |
half |
bool |
False |
Active la quantification FP16 (demi-précision), réduisant la taille du modèle et accélérant potentiellement l'inférence sur le matériel pris en charge. Non compatible avec la quantification INT8 ou les exportations en mode CPU uniquement pour ONNX. |
int8 |
bool |
False |
Active la quantification INT8, compressant davantage le modèle et accélérant l'inférence avec une perte de précision minimale, principalement pour les appareils périphériques. Lorsqu'elle est utilisée avec TensorRT, effectue une quantification post-entraînement (PTQ). |
dynamic |
bool |
False |
Permet des tailles d'entrée dynamiques pour les exportations ONNX, TensorRT et OpenVINO, améliorant ainsi la flexibilité dans la gestion des différentes dimensions d'image. Automatiquement défini sur True lors de l'utilisation de TensorRT avec INT8. |
simplify |
bool |
True |
Simplifie le graphe du modèle pour les exportations ONNX avec onnxslim , améliorant potentiellement les performances et la compatibilité avec les moteurs d'inférence. |
opset |
int |
None |
Spécifie la version d'opset ONNX pour la compatibilité avec différents analyseurs et environnements d'exécution 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 TensorRT optimisations, équilibrant l'utilisation de la mémoire et les performances. Utiliser None pour l'allocation automatique par TensorRT jusqu'au maximum de l'appareil. |
nms |
bool |
False |
Ajoute la suppression non maximale (NMS) au modèle exporté lorsque cela est pris en charge (voir Formats d'exportation), ce qui améliore l'efficacité du post-traitement de la détection. Non disponible pour les modèles end2end. |
batch |
int |
1 |
Spécifie la taille du lot d'inférence du modèle d'exportation ou le nombre maximal d'images que le modèle exporté traitera simultanément dans predict mode. Pour les exportations Edge TPU, ceci est automatiquement réglé sur 1. |
device |
str |
None |
Spécifie le dispositif pour l'exportation : GPU (device=0 ), CPU (device=cpu ), MPS pour Apple Silicon (device=mps ) ou DLA pour NVIDIA Jetson (device=dla:0 ou device=dla:1 ). Les exportations TensorRT utilisent automatiquement le GPU. |
data |
str |
'coco8.yaml' |
Chemin d'accès au ensemble de données fichier de configuration (par défaut : coco8.yaml ), essentiel pour l'étalonnage de la quantification INT8. S'il n'est pas spécifié avec INT8 activé, un ensemble de données par défaut sera attribué. |
fraction |
float |
1.0 |
Spécifie la fraction de l'ensemble de données à utiliser pour le calibrage de la quantification INT8. Permet de calibrer sur un sous-ensemble de l'ensemble de données complet, ce qui est utile pour les expériences ou lorsque les ressources sont limitées. S'il n'est pas spécifié avec INT8 activé, l'ensemble de données complet sera utilisé. |
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 une flexibilité permettant de personnaliser les modèles pour des tâches telles que le comptage d'objets, la création de cartes thermiques, le suivi des entraînements, l'analyse des données, le suivi de zones, la gestion des files d'attente et le comptage basé sur les régions. Ces options permettent des ajustements faciles pour des résultats précis et utiles, adaptés aux besoins spécifiques.
Argument | Type | Par défaut | Description |
---|---|---|---|
model |
str |
None |
Chemin d'accès au fichier de modèle Ultralytics YOLO. |
region |
list |
'[(20, 400), (1260, 400)]' |
Liste des points définissant la région de comptage. |
show_in |
bool |
True |
Indicateur pour contrôler l'affichage des comptes entrants sur le flux vidéo. |
show_out |
bool |
True |
Indicateur pour contrôler l'affichage des comptes sortants sur le flux vidéo. |
analytics_type |
str |
line |
Type de graphe, c'est-à-dire, line , bar , area , ou pie . |
colormap |
int |
cv2.COLORMAP_JET |
Palette de couleurs à utiliser pour la carte thermique. |
json_file |
str |
None |
Chemin d'accès au fichier JSON qui contient toutes les données de coordonnées de stationnement. |
up_angle |
float |
145.0 |
Seuil d'angle pour la pose 'haute'. |
kpts |
list[int, int, int] |
'[6, 8, 10]' |
Liste des points clés utilisés pour surveiller les entraînements. Ces points clés correspondent aux articulations ou parties du corps, telles que les épaules, les coudes et les poignets, pour des exercices comme les pompes, les tractions, les squats, 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 pour stocker les détections recadrées. |
records |
int |
5 |
Nombre total de détections pour déclencher un e-mail avec le système d'alarme de sécurité. |
vision_point |
tuple[int, int] |
(20, 20) |
Le point où la vision suivra les objets et dessinera des chemins à l'aide de VisionEye Solution. |
source |
str |
None |
Chemin d'accès à la source d'entrée (vidéo, RTSP, etc.). Utilisable uniquement avec l'interface de ligne de commande (CLI) Solutions. |
figsize |
tuple[int, int] |
(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 |
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/direction. |
meter_per_pixel |
float |
0.05 |
Facteur d'échelle utilisé pour convertir la distance en pixels en unités du monde réel. |
max_speed |
int |
120 |
Limite de vitesse maximale dans les superpositions visuelles (utilisée dans les alertes). |
data |
str |
'images' |
Chemin d'accès au répertoire d'images utilisé pour la recherche de similarité. |
Paramètres d'augmentation
Les techniques d'augmentation de données sont essentielles pour améliorer la robustesse et les performances du modèle YOLO en introduisant de la variabilité dans les données d'entraînement, ce qui aide le modèle à mieux se généraliser aux données non vues. Le tableau suivant décrit le but et l'effet de chaque argument d'augmentation :
Argument | Type | Par défaut | Plage | Description |
---|---|---|---|---|
hsv_h |
float |
0.015 |
0.0 - 1.0 |
Ajuste la teinte de l'image d'une fraction de la roue chromatique, introduisant une variabilité des couleurs. Aide le modèle à se généraliser à différentes conditions d'éclairage. |
hsv_s |
float |
0.7 |
0.0 - 1.0 |
Modifie la saturation de l'image d'une fraction, affectant l'intensité des couleurs. Utile pour simuler différentes conditions environnementales. |
hsv_v |
float |
0.4 |
0.0 - 1.0 |
Modifie la valeur (luminosité) de l'image d'une fraction, aidant le modèle à bien fonctionner dans diverses conditions d'éclairage. |
degrees |
float |
0.0 |
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 les objets à diverses orientations. |
translate |
float |
0.1 |
0.0 - 1.0 |
Translate l'image horizontalement et verticalement d'une fraction de la taille de l'image, aidant à apprendre à détecter les objets partiellement visibles. |
scale |
float |
0.5 |
>=0.0 |
Met à l'échelle l'image par un facteur de gain, simulant des objets à différentes distances de la caméra. |
shear |
float |
0.0 |
-180 - +180 |
Cisaille l'image d'un degré spécifié, imitant l'effet des objets vus sous différents angles. |
perspective |
float |
0.0 |
0.0 - 0.001 |
Applique une transformation de perspective aléatoire à l'image, améliorant la capacité du modèle à comprendre les objets dans l'espace 3D. |
flipud |
float |
0.0 |
0.0 - 1.0 |
Retourne l'image à l'envers avec la probabilité spécifiée, augmentant la variabilité des données sans affecter les caractéristiques de l'objet. |
fliplr |
float |
0.5 |
0.0 - 1.0 |
Retourne l'image de gauche à droite avec la probabilité spécifiée, utile pour apprendre les objets symétriques et augmenter la diversité de l'ensemble de données. |
bgr |
float |
0.0 |
0.0 - 1.0 |
Inverse les canaux d'image de RGB à BGR avec la probabilité spécifiée, utile pour augmenter la robustesse à l'ordre incorrect des canaux. |
mosaic |
float |
1.0 |
0.0 - 1.0 |
Combine quatre images d'entraînement en une seule, simulant différentes compositions de scène et interactions d'objets. Très efficace pour la compréhension de scènes complexes. |
mixup |
float |
0.0 |
0.0 - 1.0 |
Mélange deux images et leurs étiquettes, créant une image composite. Améliore la capacité du modèle à se généraliser en introduisant du bruit d'étiquette et de la variabilité visuelle. |
cutmix |
float |
0.0 |
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.0 |
0.0 - 1.0 |
Segmentation uniquement. Copie et colle des objets à travers les images pour augmenter le nombre d'instances d'objets. |
copy_paste_mode |
str |
flip |
- | Segmentation uniquement. Spécifie le copy-paste stratégie à utiliser. Les options incluent 'flip' et 'mixup' . |
auto_augment |
str |
randaugment |
- | Classification uniquement. 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 |
0.0 - 0.9 |
Classification uniquement. Efface aléatoirement des régions de l'image pendant l'entraînement pour encourager le modèle à se concentrer sur des caractéristiques moins évidentes. |
Ajustez ces paramètres pour répondre aux exigences de l'ensemble 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, de points de contrôle et de traçage
La journalisation, les points de contrôle, le traçage et la gestion des fichiers sont importants lors de la formation d'un modèle YOLO :
- Journalisation : Suivez la progression du modèle et diagnostiquez les problèmes à l’aide de bibliothèques comme TensorBoard ou en écrivant dans un fichier.
- Points de contrôle : Enregistrez le modèle à intervalles réguliers pour reprendre l'entraînement ou expérimenter différentes configurations.
- Traçage : Visualisez les performances et la progression de l’entraînement à l’aide de bibliothèques telles que matplotlib ou TensorBoard.
- Gestion des fichiers : Organisez les fichiers générés pendant la formation, tels que les points de contrôle, les fichiers journaux et les tracés, pour un accès et une analyse faciles.
Une gestion efficace de ces aspects permet de suivre les progrès et facilite le débogage et l'optimisation.
Argument | Par défaut | Description |
---|---|---|
project |
'runs' |
Spécifie le répertoire racine pour enregistrer les exécutions d'entraînement. Chaque exécution est enregistrée dans un sous-répertoire distinct. |
name |
'exp' |
Définit le nom de l'expérience. Si non spécifié, YOLO incrémente ce nom pour chaque exécution (par exemple, exp , exp2 ) pour éviter l'écrasement. |
exist_ok |
False |
Détermine s'il faut écraser un répertoire d'expériences existant. True permet l'écrasement; False l'empêche. |
plots |
False |
Contrôle la génération et l'enregistrement des graphiques d'entraînement et de validation. Définir sur True pour créer des graphiques tels que des courbes de perte, précision-rappel des courbes et des exemples de prédictions pour le suivi visuel des performances. |
save |
False |
Active l'enregistrement des points de contrôle de la formation et des poids du modèle final. Définir 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. |
FAQ
Comment puis-je améliorer les performances de mon modèle YOLO pendant l'entraînement ?
Améliorez les performances en ajustant les hyperparamètres tels que la taille du lot, le taux d'apprentissage, le momentum et la décroissance du poids. Ajustez les paramètres d'augmentation des données, sélectionnez le bon optimiseur et utilisez des techniques telles que l'arrêt précoce ou la précision mixte. Pour plus de détails, consultez le Guide d'entraînement.
Quels sont les principaux hyperparamètres pour la précision du modèle YOLO ?
Les principaux hyperparamètres affectant la précision sont les suivants :
- Taille du lot (
batch
): Les tailles plus grandes peuvent stabiliser l'entraînement, mais nécessitent plus de mémoire. - Taux d'apprentissage (
lr0
): Des taux plus faibles offrent des ajustements fins, mais une convergence plus lente. - Momentum (
momentum
): Accélère les vecteurs de gradient, amortissant les oscillations. - Taille de l'image (
imgsz
): Les tailles plus grandes améliorent la précision, mais augmentent la charge de calcul.
Ajustez ces paramètres en fonction de votre ensemble de données et de votre matériel. Pour en savoir plus, consultez la section Paramètres d'entraînement.
Comment définir le taux d'apprentissage pour l'entraînement d'un modèle YOLO ?
Le taux d'apprentissage (lr0
) est crucial ; commencez par 0.01
pour SGD ou 0.001
pour la Optimiseur Adam. Surveillez les métriques et ajustez-les au besoin. Utilisez des schedulers de taux d'apprentissage cosinus (cos_lr
) ou d'échauffement (warmup) (warmup_epochs
, warmup_momentum
). Les détails se trouvent dans la section Guide d'entraînement.
Quels sont les paramètres d'inférence par défaut pour les modèles YOLO ?
Les paramètres par défaut incluent :
- Seuil de confiance (
conf=0.25
): Confiance minimale pour les détections. - Seuil IoU (
iou=0.7
): Pour Suppression non maximale (NMS). - Taille de l'image (
imgsz=640
): Redimensionne les images d'entrée. - Appareil (
device=None
): Sélectionne le CPU ou le GPU.
Pour une vue d'ensemble complète, consultez les Paramètres de prédiction et le Guide de prédiction.
Pourquoi utiliser l'entraînement en précision mixte avec les modèles YOLO ?
Précision mixte entraînement (amp=True
) réduit l'utilisation de la mémoire et accélère l'entraînement en utilisant FP16 et FP32. Il est bénéfique pour les GPU modernes, permettant des modèles plus grands et des calculs plus rapides sans perte de précision significative. Pour en savoir plus, consultez le Guide d'entraînement.