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 affecter le comportement du modèle à différents stades, notamment la formation, la validation et la prédiction.
Regarder : Maîtriser l'Ultralytics YOLO: Configuration
Regarder : Mastering Ultralytics YOLO : Configuration
Ultralytics utilisent la syntaxe suivante :
Exemple
Où ?
TASK
(facultatif) est l'un des éléments suivants (détecter, segment, classer, poser, obb)MODE
(obligatoire) est l'un des éléments suivants (train, valeur, prévoir, l'exportation, piste, repère)ARGS
(facultatif) sontarg=value
paires commeimgsz=640
qui remplacent les valeurs par défaut.
Défaut ARG
sont définies sur cette page et proviennent de la base de données cfg/defaults.yaml
fichier.
Tâches
Les modèlesYOLO d'Ultralytics peuvent effectuer une variété de tâches de vision par ordinateur, notamment
- Détecter: La détection d'objets permet d'identifier et de localiser des objets dans une image ou une vidéo.
- Segmenter: La segmentation des instances divise une image ou une vidéo en régions correspondant à différents objets ou classes.
- Classifier: la classification d'images prédit l'étiquette de classe d'une image d'entrée.
- Pose: L'estimation de la pose permet d'identifier les objets et d'estimer leurs points clés dans une image ou une vidéo.
- OBB: Oriented Bounding Boxes (boîtes de délimitation orientées ) utilise des boîtes de délimitation tournées, adaptées à l'imagerie satellitaire ou médicale.
Argument | Défaut | Description |
---|---|---|
task |
'detect' |
Spécifie la tâche YOLO : detect pour détection d'objets, segment pour la segmentation, classify pour la classification, pose pour l'estimation de la pose, et obb pour les boîtes de délimitation orientées. Chaque tâche est adaptée aux résultats et aux problèmes spécifiques de l'analyse d'images et de vidéos. |
Modes
Les modèlesYOLO d'Ultralytics fonctionnent selon différents modes, chacun étant conçu pour une étape spécifique du cycle de vie du modèle :
- Entraîner: Entraîner 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 en vue de son déploiement.
- Suivre: Suivre des objets en temps réel à l'aide d'un modèle YOLO .
- Benchmark: Benchmarker la vitesse et la précision des exportations de YOLO ONNX, TensorRT, etc.).
Argument | Défaut | Description |
---|---|---|
mode |
'train' |
Spécifie le mode de fonctionnement du modèle YOLO : train pour l'apprentissage du modèle, val pour validation, predict pour l'inférence, export pour la conversion en formats de déploiement, track pour le suivi des objets, et benchmark pour l'évaluation des performances. Chaque mode prend en charge différentes étapes, du développement au déploiement. |
Réglages du train
Les paramètres de formation pour les modèles YOLO comprennent des hyperparamètres et des configurations qui affectent les performances, la vitesse et la précision du modèle. Les paramètres clés comprennent la taille du lot, le taux d'apprentissage, l'élan et la décroissance des poids. Le choix de l'optimiseur, de la fonction de perte et de la composition de l'ensemble de données a également un impact sur la formation. Le réglage et l'expérimentation sont essentiels pour obtenir des performances optimales. Pour plus de détails, voir la fonctionUltralytics du point d'entrée.
Argument | Type | Défaut | Description |
---|---|---|---|
model |
str |
None |
Spécifie le fichier modèle pour la formation. Accepte un chemin vers un fichier .pt ou un modèle pré-entraîné .yaml fichier de 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 du jeu de données (par exemple, coco8.yaml ). Ce fichier contient les paramètres spécifiques à l'ensemble de données, y compris les chemins d'accès à l'entraînement et à la formation. données de validationLes noms des classes et le nombre de classes. |
epochs |
int |
100 |
Nombre total d'époques d'apprentissage. Chaque époque représente un passage complet sur l'ensemble des données. L'ajustement de cette valeur peut affecter la durée de l'apprentissage et les performances du modèle. |
time |
float |
None |
Durée maximale de la formation en heures. S'il est défini, ce paramètre remplace le paramètre epochs permettant à la formation de s'arrêter automatiquement après la durée spécifiée. Utile pour les scénarios de formation limités dans le temps. |
patience |
int |
100 |
Nombre d'époques à attendre sans amélioration des mesures de validation avant d'arrêter la formation. Permet d'éviter le surajustement en arrêtant la formation lorsque les performances atteignent un plateau. |
batch |
int |
16 |
Taille du lotavec trois modes : un nombre entier (par exemple, le nombre d'heures de travail) et un nombre de jours de travail (par exemple, le nombre d'heures de travail), batch=16 ), mode automatique pour une utilisation de la mémoire de 60 % GPU (batch=-1 ), ou le mode automatique avec la fraction d'utilisation spécifiée (batch=0.70 ). |
imgsz |
int ou list |
640 |
Taille cible de l'image pour l'apprentissage. Toutes les images sont redimensionnées à cette dimension avant d'être introduites dans le modèle. Affecte la précision du modèle et la complexité de calcul. |
save |
bool |
True |
Permet d'enregistrer les points de contrôle de la formation et les poids finaux du modèle. Utile pour reprendre la formation ou le déploiement du modèle. |
save_period |
int |
-1 |
Fréquence d'enregistrement des points de contrôle du modèle, spécifiée en époques. La valeur -1 désactive cette fonction. Utile pour sauvegarder des modèles provisoires lors de longues sessions de formation. |
cache |
bool |
False |
Permet la mise en cache des images de l'ensemble des données en mémoire (True /ram ), sur disque (disk ), ou la désactive (False ). Améliore la vitesse d'apprentissage en réduisant les E/S sur disque au prix d'une utilisation accrue de la mémoire. |
device |
int ou str ou list |
None |
Spécifie le(s) dispositif(s) de calcul pour la formation : un seul GPU (device=0 ), plusieurs GPU (device=0,1 ), CPU (device=cpu ), ou MPS pour le silicium d'Apple (device=mps ). |
workers |
int |
8 |
Nombre de threads de travail pour le chargement des données (par RANK si Multi-GPU formation). Influence la vitesse de prétraitement des données et d'alimentation du modèle, particulièrement utile dans les configurations multiGPU . |
project |
str |
None |
Nom du répertoire du projet dans lequel les résultats de la formation sont enregistrés. Permet d'organiser le stockage des différentes expériences. |
name |
str |
None |
Nom de l'exercice de formation. Utilisé pour créer un sous-répertoire dans le dossier du projet, où les journaux de formation et les résultats sont stockés. |
exist_ok |
bool |
False |
Si True, permet d'écraser un répertoire projet/nom existant. Utile pour l'expérimentation itérative sans avoir à effacer manuellement les sorties précédentes. |
pretrained |
bool ou str |
True |
Détermine s'il faut commencer la formation à partir d'un modèle pré-entraîné. Il peut s'agir d'une valeur booléenne ou d'un chemin d'accès à un modèle spécifique à partir duquel les poids sont chargés. Améliore l'efficacité de la formation et les performances du modèle. |
optimizer |
str |
'auto' |
Choix de l'optimiseur pour la formation. Les options comprennent SGD , Adam , AdamW , NAdam , RAdam , RMSProp etc. auto pour une sélection automatique basée sur la configuration du modèle. Affecte la vitesse de convergence et la stabilité. |
seed |
int |
0 |
Définit la graine aléatoire pour l'entraînement, ce qui garantit la reproductibilité des résultats d'une exécution à l'autre avec les mêmes configurations. |
deterministic |
bool |
True |
Force l'utilisation d'algorithmes déterministes, ce qui garantit la reproductibilité, mais peut 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 des ensembles de données multi-classes comme une seule classe pendant la formation. 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 pour l'entraînement. Utile pour filtrer et se concentrer uniquement sur certaines classes pendant la formation. |
rect |
bool |
False |
Permet un apprentissage rectangulaire, en optimisant la composition des lots pour un remplissage minimal. Cela peut améliorer l'efficacité et la vitesse, mais peut affecter la précision du modèle. |
multi_scale |
bool |
False |
Permet une formation à plusieurs échelles en augmentant/diminuant imgsz jusqu'à un facteur de 0.5 pendant la formation. Entraîne le modèle à être plus précis avec de multiples imgsz pendant l'inférence. |
cos_lr |
bool |
False |
Utilise un planificateur de taux d' apprentissage en cosinus, qui ajuste le taux d'apprentissage en suivant une courbe en cosinus au fil des époques. Aide à gérer le taux d'apprentissage pour une meilleure convergence. |
close_mosaic |
int |
10 |
Désactive l'augmentation des données de la mosaïque dans les N dernières époques afin de stabiliser l'apprentissage avant qu'il ne soit terminé. La valeur 0 désactive cette fonction. |
resume |
bool |
False |
Reprend la formation à 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, afin de poursuivre la formation de manière transparente. |
amp |
bool |
True |
Permet l'apprentissage automatique de la précision mixte (AMP), ce qui réduit l'utilisation de la mémoire et accélère éventuellement l'apprentissage avec un impact minimal sur la précision. |
fraction |
float |
1.0 |
Spécifie la fraction de l'ensemble de données à utiliser pour la formation. Permet la formation sur un sous-ensemble de l'ensemble des données, utile pour les expériences ou lorsque les ressources sont limitées. |
profile |
bool |
False |
Permet d'établir le profil des vitesses ONNX et TensorRT pendant la formation, 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 index, 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 ). L'ajustement de cette valeur est crucial pour le processus d'optimisation, car il influence la rapidité avec laquelle les poids du modèle sont mis à jour. |
lrf |
float |
0.01 |
Taux d'apprentissage final en fraction du taux initial = (lr0 * lrf ), utilisé en conjonction avec des programmateurs pour ajuster le taux d'apprentissage au fil du temps. |
momentum |
float |
0.937 |
Facteur d'impulsion pour SGD ou beta1 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 l'ajustement excessif. |
warmup_epochs |
float |
3.0 |
Nombre d'époques pour l'échauffement du taux d'apprentissage, augmentant progressivement le taux d'apprentissage à partir d'une valeur faible jusqu'au taux d'apprentissage initial afin de stabiliser l'apprentissage dès le début. |
warmup_momentum |
float |
0.8 |
Élan initial pour la phase d'échauffement, s'adaptant progressivement à l'élan défini au cours de la période d'échauffement. |
warmup_bias_lr |
float |
0.1 |
Taux d'apprentissage des paramètres de biais pendant la phase d'échauffement, permettant de stabiliser l'apprentissage du modèle dans les premières époques. |
box |
float |
7.5 |
Poids de la composante de perte de 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 d'une prédiction de classe correcte par rapport aux autres composants. |
dfl |
float |
1.5 |
Poids de la perte focale de distribution, utilisé dans certaines versions de YOLO pour une classification plus fine. |
pose |
float |
12.0 |
Poids de la perte de pose dans les modèles formés pour l'estimation de la pose, influençant l'accent mis sur la prédiction précise des points clés de la pose. |
kobj |
float |
2.0 |
Poids de la perte d'objectivité du point clé dans les modèles d'estimation de la pose, équilibrant la confiance dans la détection et 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'objets doivent être fusionnés en un seul masque pour l'entraînement ou s'ils doivent rester séparés pour chaque objet. En cas de chevauchement, le masque le plus petit est superposé au masque le plus grand lors de la fusion. |
mask_ratio |
int |
4 |
Rapport de sous-échantillonnage pour les masques de segmentation, affectant la résolution des masques utilisés lors de l'apprentissage. |
dropout |
float |
0.0 |
Taux d'abandon pour la régularisation dans les tâches de classification, empêchant l'ajustement excessif en omettant aléatoirement des unités pendant la formation. |
val |
bool |
True |
Permet la validation pendant la formation, ce qui permet d'évaluer périodiquement les performances du modèle sur un ensemble de données distinct. |
plots |
bool |
False |
Génère et enregistre des graphiques des mesures d'entraînement et de validation, ainsi que des exemples de prédiction, offrant un aperçu visuel des performances du modèle et de la progression de l'apprentissage. |
Note sur les réglages de la taille des lots
Le batch
argument offre trois options de configuration :
- Taille fixe des lots: Spécifiez le nombre d'images par lot à l'aide d'un nombre entier (par ex,
batch=16
). - Mode Auto (60% GPU Mémoire): Utilisation
batch=-1
pour un ajustement automatique à environ 60 % d'utilisation de la mémoire CUDA . - Mode automatique avec fraction d'utilisation: Définir une fraction (par ex,
batch=0.70
) pour l'ajuster en fonction d'une utilisation spécifiée de la mémoire du GPU .
Prévoir les paramètres
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 paramètres clés comprennent 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 les caractéristiques supplémentaires telles que les masques, affectent également les prédictions. Le réglage de ces paramètres est essentiel pour obtenir des performances optimales.
Arguments d'inférence :
Argument | Type | Défaut | Description |
---|---|---|---|
source |
str |
'ultralytics/assets' |
Spécifie la source de données pour l'inférence. Il peut s'agir d'un chemin d'accès à une image, d'un fichier vidéo, d'un répertoire, d'une URL ou de l'identifiant d'un appareil pour les flux en direct. La prise en charge d'un large éventail de formats et de sources permet une application flexible à différents types d'entrées. |
conf |
float |
0.25 |
Définit le seuil de confiance minimum pour les détections. Les objets détectés avec un niveau de confiance inférieur à ce seuil ne seront pas pris en compte. L'ajustement de cette valeur peut contribuer à réduire le nombre de faux positifs. |
iou |
float |
0.7 |
Seuil d'intersection au-dessus de l'union (IoU) pour la suppression non maximale (NMS). Des valeurs plus faibles permettent de réduire le nombre 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 seul entier 640 pour un redimensionnement carré ou un tuple (hauteur, largeur). Un dimensionnement adéquat peut améliorer la détection précision et la vitesse de traitement. |
half |
bool |
False |
Permet 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 dispositif d'inférence (par ex, cpu , cuda:0 ou 0 ). Permet aux utilisateurs de choisir entre CPU, un GPU spécifique ou d'autres dispositifs de calcul pour l'exécution du modèle. |
batch |
int |
1 |
Spécifie la taille du lot pour l'inférence (ne fonctionne que lorsque la source est un répertoire, un fichier vidéo ou .txt fichier). Une taille de lot plus importante peut permettre un débit plus élevé, en réduisant le temps total nécessaire à l'inférence. |
max_det |
int |
300 |
Nombre maximal de détections autorisées par image. Limite le nombre total d'objets que le modèle peut détecter en une seule inférence, ce qui permet d'éviter les sorties excessives dans les scènes denses. |
vid_stride |
int |
1 |
Saut d'images pour les entrées vidéo. Permet de sauter des images dans les vidéos pour accélérer le traitement au détriment de la résolution temporelle. Une valeur de 1 traite chaque image, les valeurs supérieures sautent des images. |
stream_buffer |
bool |
False |
Détermine s'il faut mettre en file d'attente les images entrantes pour les flux vidéo. Si cette option est activée, l'image est mise en file d'attente. False Les anciennes images sont abandonnées pour laisser place aux nouvelles (optimisées pour les applications en temps réel). Si les True met en file d'attente les nouvelles images dans une mémoire tampon, ce qui garantit qu'aucune image n'est omise, mais entraîne une latence si le taux d'images par seconde de l'inférence est inférieur au taux d'images par seconde du flux. |
visualize |
bool |
False |
Active la visualisation des caractéristiques du modèle pendant l'inférence, donnant un aperçu de ce que le modèle "voit". Utile pour le débogage et l'interprétation du modèle. |
augment |
bool |
False |
Permet l'augmentation du temps de test (TTA) pour les prédictions, ce qui peut améliorer la robustesse de la détection au détriment de la vitesse d'inférence. |
agnostic_nms |
bool |
False |
Permet la suppression non maximale (NMS) indépendante de la classe, qui fusionne les boîtes de différentes classes qui se chevauchent. Utile dans les scénarios de détection multi-classes où le chevauchement des classes est courant. |
classes |
list[int] |
None |
Filtre les prédictions sur un ensemble d'identifiants de classes. Seules les détections appartenant aux classes spécifiées seront renvoyées. Utile pour se concentrer sur les objets pertinents dans les tâches de détection multi-classes. |
retina_masks |
bool |
False |
Renvoie des masques de segmentation à haute résolution. Les masques retournés (masks.data ) correspondront à la taille de l'image originale si elles sont activées. S'ils sont désactivés, ils ont la taille de l'image utilisée lors de l'inférence. |
embed |
list[int] |
None |
Spécifie les couches à partir desquelles il faut extraire les vecteurs de caractéristiques ou les encastrements. Utile pour les tâches en aval telles que le regroupement ou la recherche de similarités. |
project |
str |
None |
Nom du répertoire du projet dans lequel les résultats de la prédiction sont enregistrés si save est activée. |
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 résultats de la prédiction sont stockés si save est activée. |
stream |
bool |
False |
Permet un traitement efficace de la mémoire pour les vidéos longues ou les nombreuses images en renvoyant un générateur d'objets Résultats au lieu de charger toutes les images en mémoire en une seule fois. |
verbose |
bool |
True |
Permet d'afficher ou non les journaux d'inférence détaillés dans le terminal, afin de fournir un retour d'information en temps réel sur le processus de prédiction. |
Arguments de visualisation :
Argument | Type | Défaut | Description |
---|---|---|---|
show |
bool |
False |
Si True affiche les images ou vidéos annotées dans une fenêtre. Utile pour un retour d'information visuel immédiat pendant le développement ou les tests. |
save |
bool |
False or True |
Permet d'enregistrer les images ou vidéos annotées dans un fichier. Utile pour la documentation, les analyses ultérieures ou le partage des résultats. La valeur par défaut est True lorsqu'on utilise CLI et False lorsqu'on utilise Python. |
save_frames |
bool |
False |
Lors du traitement des vidéos, enregistre les images individuelles en tant qu'images. Cela permet d'extraire des images spécifiques ou d'effectuer une analyse détaillée image par image. |
save_txt |
bool |
False |
Enregistre les résultats de la détection dans un fichier texte, en suivant le format [class] [x_center] [y_center] [width] [height] [confidence] . Utile pour l'intégration avec d'autres outils d'analyse. |
save_conf |
bool |
False |
Inclut les scores de confiance dans les fichiers texte sauvegardés. Améliore les détails disponibles pour le post-traitement et l'analyse. |
save_crop |
bool |
False |
Sauvegarde des images recadrées des détections. Utile pour l'augmentation des ensembles 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 des étiquettes pour chaque détection dans la sortie visuelle. Permet 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 de délimitation autour des objets détectés. Essentiel pour l'identification visuelle et la localisation d'objets dans des images ou des trames vidéo. |
line_width |
None or int |
None |
Spécifie la largeur de ligne des boîtes de délimitation. Si les None La largeur de la ligne est automatiquement ajustée en fonction de la taille de l'image. Permet une personnalisation visuelle pour plus de clarté. |
font_size |
float |
None |
Taille de la police de texte pour les annotations. S'adapte automatiquement à la taille de l'image si elle est définie sur None . |
font |
str |
'Arial.ttf' |
Nom de la police ou chemin d'accès pour les annotations de texte dans la visualisation. |
pil |
bool |
False |
Retourne l'image sous forme d'objet PIL Image au lieu d'un tableau numpy. |
kpt_radius |
int |
5 |
Rayon des points clés lors de la visualisation des résultats de l'estimation de la pose. |
kpt_line |
bool |
True |
Connecter les points clés avec des lignes lors de la visualisation de l'estimation de la pose. |
masks |
bool |
True |
Afficher les masques de segmentation dans le résultat de la visualisation. |
probs |
bool |
True |
Inclure les probabilités de classification dans la visualisation. |
filename |
str |
None |
Chemin d'accès et nom de fichier pour enregistrer l'image annotée lorsque save=True . |
color_mode |
str |
'class' |
Spécifier le mode de coloration des visualisations, par exemple "instance" ou "classe". |
txt_color |
tuple[int, int, int] |
(255, 255, 255) |
Couleur de texte RVB pour les annotations des tâches de classification. |
Paramètres de validation
Les paramètres de validation des modèles YOLO impliquent des hyperparamètres et des configurations permettant d'é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 comprennent la taille du lot, la fréquence de validation et les mesures 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 | Défaut | Description |
---|---|---|---|
data |
str |
None |
Spécifie le chemin d'accès au fichier de configuration du jeu de données (par exemple, coco8.yaml ). Ce fichier comprend les chemins d'accès à données de validationLes noms des classes 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 d'être traitées. 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. Les valeurs é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 Il enregistre les résultats dans un fichier JSON en vue d'une analyse plus approfondie, d'une intégration avec d'autres outils ou d'une soumission à des serveurs d'évaluation tels que COCO. |
save_hybrid |
bool |
False |
Si True enregistre une version hybride des étiquettes qui combine les annotations originales avec des prédictions de modèle supplémentaires. Utile pour l'apprentissage semi-supervisé et l'amélioration des ensembles de données. |
conf |
float |
0.001 |
Définit le seuil de confiance minimum pour les détections. Des valeurs plus faibles augmentent le rappel mais peuvent entraîner un plus grand nombre de faux positifs. Utilisé lors de la validation pour calculer les courbes de précision et de rappel. |
iou |
float |
0.6 |
Définit le seuil d'intersection au-dessus de l'union pour la suppression non maximale. Contrôle l'élimination de la détection des doublons. |
max_det |
int |
300 |
Limite le nombre maximum de détections par image. Utile dans les scènes denses pour éviter les détections excessives et gérer les ressources informatiques. |
half |
bool |
True |
Permet 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 OpenCV Module DNN pour l'inférence du modèle ONNX , offrant une alternative à PyTorch les méthodes d'inférence. |
plots |
bool |
False |
Lorsqu'il est réglé sur True Il génère et enregistre des tracés des prédictions par rapport à la vérité de terrain, des matrices de confusion et des courbes PR pour une évaluation visuelle de la performance du modèle. |
rect |
bool |
True |
Si True Il utilise l'inférence rectangulaire pour la mise en lots, ce qui réduit le remplissage et augmente potentiellement la vitesse et l'efficacité en traitant les images dans leur rapport d'aspect d'origine. |
split |
str |
'val' |
Détermine la partie du jeu de données à utiliser pour la validation (val , test ou train ). Permet une certaine souplesse dans le choix du segment de données pour l'évaluation des performances. |
project |
str |
None |
Nom du répertoire du projet dans lequel les résultats de la validation sont enregistrés. Permet d'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 de validation et les résultats sont stockés. |
verbose |
bool |
False |
Si True affiche des informations détaillées pendant le processus de validation, y compris des mesures par classe, l'état d'avancement du lot et des informations de débogage supplémentaires. |
save_txt |
bool |
False |
Si True Il enregistre les résultats de la détection dans des fichiers texte, à raison d'un fichier par image, utiles pour une analyse plus poussée, un post-traitement personnalisé ou l'intégration à d'autres systèmes. |
save_conf |
bool |
False |
Si True inclut les valeurs de confiance dans les fichiers texte sauvegardés lorsque save_txt est activée, ce qui permet d'obtenir des résultats plus détaillés à des fins d'analyse et de filtrage. |
save_crop |
bool |
False |
Si True enregistre des images recadrées des objets détectés, ce qui peut s'avérer utile pour créer des ensembles de données ciblés, pour la vérification visuelle ou pour une analyse plus poussée des détections individuelles. |
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 de l'CPU . La valeur 0 utilise le thread principal, ce qui peut être plus stable dans certains environnements. |
augment |
bool |
False |
Permet l'augmentation du temps de test (TTA) pendant la validation, ce qui peut améliorer la précision de la détection au détriment de la vitesse d'inférence en exécutant l'inférence sur des versions transformées de l'entrée. |
agnostic_nms |
bool |
False |
Permet la suppression non maximale des classes, qui fusionne les boîtes qui se chevauchent, quelle que soit leur classe prédite. Utile pour les applications axées sur les instances. |
single_cls |
bool |
False |
Traite toutes les classes comme une seule classe lors de la validation. Utile pour évaluer les performances des modèles dans les tâches de détection binaire ou lorsque les distinctions entre les classes ne sont pas importantes. |
Il est essentiel de procéder à des réglages et à des expérimentations minutieux pour garantir des performances optimales et pour détecter et prévenir les ajustements excessifs.
Paramètres d'exportation
Les paramètres d'exportation des modèles YOLO comprennent des configurations permettant d'enregistrer ou d'exporter le modèle pour l'utiliser dans différents environnements. Ces paramètres ont un impact sur les performances, la taille et la compatibilité. Les paramètres clés comprennent le format de fichier exporté (par exemple, ONNX, TensorFlow SavedModel), le périphérique cible (par exemple, CPU, GPU) et des caractéristiques 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 | Défaut | Description |
---|---|---|---|
format |
str |
'torchscript' |
Format cible pour le modèle exporté, tel que 'onnx' , 'torchscript' , 'engine' TensorRT), ou d'autres. Chaque format permet la compatibilité avec différents environnements de déploiement. |
imgsz |
int ou tuple |
640 |
Taille de l'image souhaitée pour l'entrée du modèle. Il peut s'agir d'un nombre entier pour les images carrées (par exemple, 640 pour 640×640) ou un tuple (height, width) pour les dimensions spécifiques. |
keras |
bool |
False |
Permet l'exportation au format Keras pour TensorFlow SavedModel ce qui permet d'assurer la compatibilité avec les services et les API de TensorFlow . |
optimize |
bool |
False |
Applique l'optimisation pour les appareils mobiles lors de l'exportation vers TorchScript, réduisant potentiellement la taille du modèle et améliorant les performances d'inférence. Non compatible avec le format NCNN ou les appareils CUDA . |
half |
bool |
False |
Permet 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 supporté. Non compatible avec la quantification INT8 ou les exportations CPU pour ONNX. |
int8 |
bool |
False |
Active la quantification INT8, ce qui permet de compresser davantage le modèle et d'accélérer l'inférence avec une perte de précision minimale, principalement pour les appareils périphériques. Lorsqu'il est utilisé avec TensorRT, il 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 la flexibilité dans la gestion des dimensions d'image variables. Réglé automatiquement sur True lors de l'utilisation de TensorRT avec INT8. |
simplify |
bool |
True |
Simplifie le graphique du modèle pour les exportations ONNX avec onnxslim ce qui peut améliorer les performances et la compatibilité avec les moteurs d'inférence. |
opset |
int |
None |
Spécifie la version de l'opset ONNX pour assurer la compatibilité avec les différentes versions d ONNX et les moteurs d'exécution. Si elle n'est pas définie, elle utilise la dernière version supportée. |
workspace |
float ou None |
None |
Définit la taille maximale de l'espace de travail en gigaoctets pour TensorRT optimisant l'utilisation de la mémoire et les performances. Utiliser None pour une auto-attribution par TensorRT jusqu'au maximum de l'appareil. |
nms |
bool |
False |
Ajoute la suppression non maximale (NMS) au modèle exporté lorsqu'elle est prise en charge (voir Formats d'exportation), améliorant ainsi 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 exporté ou le nombre maximum d'images que le modèle exporté traitera simultanément en predict mode. Pour les exportations Edge TPU , cette valeur est automatiquement fixée à 1. |
device |
str |
None |
Spécifie le dispositif à exporter : GPU (device=0 ), CPU (device=cpu ), MPS pour le silicium d'Apple (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 à la ensemble de données fichier de configuration (par défaut : coco8.yaml ), essentielle pour l'étalonnage de la quantification INT8. Si elle n'est pas spécifiée lorsque la fonction INT8 est activée, un jeu de données par défaut sera attribué. |
Une configuration réfléchie garantit que le modèle exporté est optimisé pour son cas d'utilisation et qu'il fonctionne efficacement dans l'environnement cible.
Solutions Paramètres
Les paramètres de configuration d'Ultralytics Solutions permettent de 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 des ajustements faciles pour des résultats précis et utiles adaptés à des besoins spécifiques.
Argument | Type | Défaut | Description |
---|---|---|---|
model |
str |
None |
Chemin d'accès au fichier modèleYOLO d'Ultralytics . |
region |
list |
[(20, 400), (1260, 400)] |
Liste des points définissant la région de comptage. |
show_in |
bool |
True |
Indicateur permettant de contrôler l'affichage du nombre d'entrées dans le flux vidéo. |
show_out |
bool |
True |
Indicateur permettant de contrôler l'affichage du nombre de sorties sur le flux vidéo. |
analytics_type |
str |
line |
Type de graphique, c'est-à-dire, line , bar , area ou pie . |
colormap |
int |
cv2.COLORMAP_JET |
Carte de couleurs à utiliser pour la carte thermique. |
json_file |
str |
None |
Chemin d'accès au fichier JSON qui contient toutes les données relatives aux coordonnées du parking. |
up_angle |
float |
145.0 |
Seuil d'angle pour la pose "debout". |
kpts |
list[int, int, int] |
[6, 8, 10] |
Liste des points clés utilisés pour le suivi des séances d'entraînement. Ces points clés correspondent à des articulations ou des parties du corps, telles que les épaules, les coudes et les poignets, pour des exercices tels que les pompes, les tractions, les squats et les séances d'abdominaux. |
down_angle |
float |
90.0 |
Seuil d'angle pour la pose "en bas". |
blur_ratio |
float |
0.5 |
Règle le pourcentage de l'intensité du flou, avec des valeurs comprises entre 0.1 - 1.0 . |
crop_dir |
str |
"cropped-detections" |
Nom du répertoire où sont stockées 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] |
(50, 50) |
Le point où la vision suivra les objets et dessinera des trajectoires à l'aide de la solution VisionEye. |
tracker |
str |
'botsort.yaml' |
Spécifie l'algorithme de suivi à utiliser, par exemple, bytetrack.yaml ou botsort.yaml . |
conf |
float |
0.3 |
Définit le seuil de confiance pour les détections ; des valeurs plus faibles permettent de suivre plus d'objets mais peuvent inclure des faux positifs. |
iou |
float |
0.5 |
Définit le seuil d'intersection sur l'union (IoU) pour le filtrage des détections qui se chevauchent. |
classes |
list |
None |
Filtre les résultats par indice de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées. |
verbose |
bool |
True |
Contrôle l'affichage des résultats du suivi, fournissant une sortie visuelle des objets suivis. |
device |
str |
None |
Spécifie le dispositif d'inférence (par ex, cpu , cuda:0 ou 0 ). Permet aux utilisateurs de choisir entre CPU, un GPU spécifique ou d'autres dispositifs de calcul pour l'exécution du modèle. |
show |
bool |
False |
Si True affiche les images ou vidéos annotées dans une fenêtre. Utile pour un retour d'information visuel immédiat pendant le développement ou les tests. |
line_width |
None or int |
None |
Spécifie la largeur de ligne des boîtes de délimitation. Si les None La largeur de la ligne est automatiquement ajustée en fonction de la taille de l'image. Permet une personnalisation visuelle pour plus de clarté. |
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'apprentissage, ce qui permet au modèle de mieux se généraliser à des données inédites. Le tableau suivant présente l'objectif et l'effet de chaque argument d'augmentation :
Argument | Type | Défaut | Gamme | Description |
---|---|---|---|---|
hsv_h |
float |
0.015 |
0.0 - 1.0 |
Ajuste la teinte de l'image par une fraction de la roue chromatique, introduisant ainsi une variabilité des couleurs. Aide le modèle à se généraliser dans 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, ce qui permet au modèle de bien fonctionner dans différentes conditions d'éclairage. |
degrees |
float |
0.0 |
-180 - +180 |
Fait pivoter l'image de manière aléatoire dans la plage de degrés spécifiée, améliorant ainsi la capacité du modèle à reconnaître des objets dans différentes orientations. |
translate |
float |
0.1 |
0.0 - 1.0 |
Traduit l'image horizontalement et verticalement d'une fraction de la taille de l'image, ce qui facilite l'apprentissage de la détection d'objets partiellement visibles. |
scale |
float |
0.5 |
>=0.0 |
Met l'image à l'échelle en fonction d'un facteur de gain, simulant ainsi des objets situés à différentes distances de la caméra. |
shear |
float |
0.0 |
-180 - +180 |
Découpe 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 aléatoire de la perspective à l'image, améliorant ainsi la capacité du modèle à comprendre les objets dans l'espace 3D. |
flipud |
float |
0.0 |
0.0 - 1.0 |
Renverse l'image avec la probabilité spécifiée, ce qui augmente 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 l'apprentissage d'objets symétriques et l'augmentation de la diversité des ensembles de données. |
bgr |
float |
0.0 |
0.0 - 1.0 |
Fait passer les canaux de l'image de RVB à BGR avec la probabilité spécifiée, ce qui est utile pour accroître la résistance à un mauvais classement 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ènes 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 ainsi une image composite. Améliore la capacité du modèle à se généraliser en introduisant le bruit des étiquettes et la variabilité visuelle. |
copy_paste |
float |
0.0 |
0.0 - 1.0 |
Copie et colle des objets sur les images, ce qui est utile pour augmenter le nombre d'instances d'objets et apprendre l'occlusion d'objets. Nécessite des étiquettes de segmentation. |
copy_paste_mode |
str |
'flip' |
- | Sélection de la méthode d'augmentation par copier-coller parmi les options de ("flip" , "mixup" ). |
auto_augment |
str |
'randaugment' |
- | Application automatique d'une politique d'augmentation prédéfinie (randaugment , autoaugment , augmix ), optimisant les tâches de classification en diversifiant les caractéristiques visuelles. |
erasing |
float |
0.4 |
0.0 - 0.9 |
Efface aléatoirement une partie de l'image pendant l'apprentissage de la classification, encourageant le modèle à se concentrer sur des caractéristiques moins évidentes pour la reconnaissance. |
crop_fraction |
float |
1.0 |
0.1 - 1.0 |
Recadrer l'image de classification à une fraction de sa taille pour mettre en valeur les caractéristiques centrales et s'adapter à l'échelle des objets, en réduisant les distractions d'arrière-plan. |
Ajustez ces paramètres en fonction des exigences du jeu de données et de la tâche. L'expérimentation de différentes valeurs peut aider à trouver la stratégie d'augmentation optimale pour obtenir les meilleures performances du modèle.
Paramètres d'enregistrement, de points de contrôle et de traçage
L'enregistrement, 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: Suivez la progression du modèle et diagnostiquez les problèmes à l'aide de bibliothèques telles que TensorBoard ou en écrivant dans un fichier.
- Points de contrôle: Sauvegarder le modèle à intervalles réguliers pour reprendre la formation ou expérimenter différentes configurations.
- Tracé: Visualisez les performances et les progrès de l'entraînement à l'aide de bibliothèques telles que matplotlib ou TensorBoard.
- Gestion des fichiers: Organiser les fichiers générés pendant la formation, tels que les points de contrôle, les fichiers journaux et les tracés, pour en faciliter l'accès et l'analyse.
Une gestion efficace de ces aspects permet de suivre les progrès réalisés et facilite le débogage et l'optimisation.
Argument | Défaut | Description |
---|---|---|
project |
'runs' |
Spécifie le répertoire racine pour l'enregistrement des formations. Chaque cycle est enregistré dans un sous-répertoire distinct. |
name |
'exp' |
Définit le nom de l'expérience. S'il n'est pas spécifié, YOLO incrémente ce nom à chaque exécution (par ex, 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 tracés d'entraînement et de validation. Réglé sur True pour créer des tracés tels que des courbes de perte, précision-rappel et des prédictions d'échantillons pour un suivi visuel de la performance. |
save |
False |
Permet d'enregistrer les points de contrôle de l'entraînement et les poids finaux du modèle. Réglé sur True pour sauvegarder périodiquement les états du modèle, ce qui permet de reprendre la formation ou de déployer le modèle. |
FAQ
Comment améliorer les performances de mon modèle YOLO pendant l'entraînement ?
Améliorez les performances en réglant les hyperparamètres tels que la taille du lot, le taux d'apprentissage, l'élan 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 anticipé ou la précision mixte. Pour plus de détails, consultez le Train Guide.
Quels sont les hyperparamètres clés pour la précision du modèle YOLO ?
Les principaux hyperparamètres qui influent sur la précision sont les suivants :
- Taille du lot (
batch
): Les tailles plus importantes peuvent stabiliser l'entraînement mais nécessitent plus de mémoire. - Taux d'apprentissage (
lr0
): Les taux plus faibles permettent des ajustements fins mais une convergence plus lente. - L'élan (
momentum
): Accélère les vecteurs de gradient, amortissant les oscillations. - Taille de l'image (
imgsz
): Des tailles plus grandes améliorent la précision mais augmentent la charge 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 rubrique Paramètres de la formation.
Comment définir le taux d'apprentissage pour la formation d'un modèle YOLO ?
Le taux d'apprentissage (lr0
) est cruciale ; commencez par 0.01
pour SGD ou 0.001
pour Adam optimizer. Contrôler les mesures et les ajuster si nécessaire. Utiliser des programmateurs de taux d'apprentissage en cosinus (cos_lr
) ou l'échauffement (warmup_epochs
, warmup_momentum
). Les détails se trouvent dans le Guide des trains.
Quels sont les paramètres d'inférence par défaut pour les modèles YOLO ?
Les paramètres par défaut sont les suivants :
- Seuil de confiance (
conf=0.25
): Confiance minimale pour les détections. - Seuil de déclenchement (
iou=0.7
): Pour Suppression non maximale (NMS). - Taille de l'image (
imgsz=640
): Redimensionne les images d'entrée. - Dispositif (
device=None
): Sélectionne le CPU ou le GPU.
Pour une présentation complète, voir les paramètres de Predict et le guide de Predict.
Pourquoi utiliser une formation de précision mixte avec des modèles YOLO ?
Précision mixte formation (amp=True
) réduit l'utilisation de la mémoire et accélère la formation en utilisant FP16 et FP32. Il est avantageux pour les GPU modernes, car il permet d'utiliser des modèles plus grands et des calculs plus rapides sans perte de précision significative. Pour en savoir plus, consultez la page Guide des trains.