Contrôle vert
Lien copié dans le presse-papiers

Comment utiliser Ultralytics YOLOv5 avec Comet

Découvre comment Ultralytics s'associe à Comet pour Ultralytics YOLOv5 l'optimisation des modèles : suivi en temps réel, collaboration rationalisée et reproductibilité améliorée.

À Ultralytics , nous nous associons commercialement à d'autres startups pour nous aider à financer la recherche et le développement de nos formidables outils open-source, comme YOLOv5, afin qu'ils restent gratuits pour tout le monde. Cet article peut contenir des liens d'affiliation vers ces partenaires.

Notre tout nouveau partenaire , Comet, construit des outils qui aident les scientifiques des données, les ingénieurs et les chefs d'équipe à accélérer et à optimiser les modèles d'apprentissage automatique et d'apprentissage profond.

Comet est un outil puissant pour suivre tes modèles, tes ensembles de données et tes mesures. Il enregistre même ton système et tes variables d'environnement pour assurer la reproductibilité et un débogage en douceur pour chaque exécution. C'est comme si tu avais un assistant virtuel qui, comme par magie, sait quelles notes prendre. Suit et visualise les mesures du modèle en temps réel, enregistre tes hyperparamètres, tes ensembles de données et les points de contrôle du modèle, et visualise les prédictions de ton modèle avec Comet Custom Panels!

De plus, Comet te permet de ne jamais perdre la trace de ton travail et facilite le partage des résultats et la collaboration entre les équipes de toutes tailles !

YOLOv5 est un excellent point de départ pour ton voyage dans le domaine de la vision par ordinateur. Pour améliorer les performances de ton modèle et le rendre prêt pour la production, tu devras enregistrer les résultats dans un outil de suivi des expériences comme Comet.

L'intégration de Comet et YOLOv5 offre 3 fonctions principales:

  • Fonctionnalités d'enregistrement automatique et d'enregistrement personnalisé
  • Sauvegarde des ensembles de données et des modèles en tant qu'artefacts pour le débogage et la reproductibilité.
  • Organise ta vue avec les panneaux personnalisés de Comet


Ce guide explique comment utiliser YOLOv5 avec Comet.

Alors, prêt à suivre tes expériences en temps réel ? C'est parti !

Pour commencer

1. Installer Comet

Pip install comet_ml

2. Configure Comet Credentials

Il y a deux façons de configurer Comet avec YOLOv5.

Tu peux soit définir tes informations d'identification par le biais de variables d'environnement, soit créer un fichier .comet.config dans ton répertoire de travail et y définir tes informations d'identification.


Variables d'environnement

export COMET_API_KEY=export COMET_PROJECT_NAME= # Ce sera par défaut 'yolov5'


Comet Fichier de configuration

[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'

3. Exécute le script de formation

# Train YOLOv5s on COCO128 for 5 epochspython train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

C'est ça !

Comet enregistrera automatiquement tes hyperparamètres, les arguments de la ligne de commande, les mesures d'entraînement et de validation. Tu peux visualiser et analyser tes résultats dans l'interface utilisateur Comet .

Expériences avec YOLOv5 dans Comet Dashboard

Essaie-le toi-même !

Regarde ici un exemple d'exécution terminée.

Ou mieux encore, essaie toi-même dans ce carnet Colab.

Enregistrer automatiquement

Par défaut, Comet enregistre les éléments suivants :

Métriques

  • Perte de boîte, perte d'objet et perte de classification pour les données d'entraînement et de validation.
  • mAP_0.5, mAP_0.5:0.95 métriques pour les données de validation.
  • Précision et rappel pour les données de validation

Paramètres

  • Hyperparamètres du modèle
  • Tous les paramètres passés par les options de la ligne de commande

Visualisations

  • Matrice de confusion des prédictions du modèle sur les données de validation.
  • Tracés des courbes PR et F1 pour toutes les classes
  • Corrélogramme des étiquettes de classe

Configure Comet Logging

Comet peut être configuré pour enregistrer des données supplémentaires par le biais de drapeaux de ligne de commande transmis au script d'entraînement ou de variables d'environnement.

export COMET_MODE=online # Indique si Comet doit être exécuté en mode 'online' ou 'offline'. La valeur par défaut est onlineexport COMET_MODEL_NAME= #Définit le nom du modèle sauvegardé. La valeur par défaut est yolov5export COMET_LOG_CONFUSION_MATRIX=false # Définit la désactivation de l'enregistrement d'une matrice de confusion Comet . La valeur par défaut est trueexport COMET_MAX_IMAGE_UPLOADS= # Contrôle le nombre total de prédictions d'images à enregistrer sur Comet. La valeur par défaut est 100.export COMET_LOG_PER_CLASS_METRICS=true # Définit l'enregistrement des mesures d'évaluation pour chaque classe détectée à la fin de la formation. La valeur par défaut est falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # Définis ceci si tu souhaites reprendre la formation à partir d'un point de contrôle différent. La valeur par défaut est 'last.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # Définis ceci si tu souhaites enregistrer les mesures de formation au niveau du lot. La valeur par défaut est false.export COMET_LOG_PREDICTIONS=true # Mets cette valeur à false pour désactiver l'enregistrement des prédictions du modèle.

Enregistrer les points de contrôle avec Comet

L'enregistrement des modèles sur Comet est désactivé par défaut. Pour l'activer, passe l'argument save-period au script de formation. Les points de contrôle enregistrés seront alors sauvegardés sur Comet en fonction de la valeur de l'intervalle fournie par save-period.

python train.py \

--img 640 \

--batch 16 \

--epochs 5 \

--data coco128.yaml \

--weights yolov5s.pt \

--save-period 1

Prédictions du modèle d'exploitation forestière

Par défaut, les prédictions du modèle (images, étiquettes de vérité terrain et boîtes de délimitation) sont enregistrées sur Comet. Tu peux contrôler la fréquence des prédictions enregistrées et des images associées en passant l'argument de ligne de commande bbox_interval. Les prédictions peuvent être visualisées à l'aide du panneau personnalisé de détection d'objets de Comet. Cette fréquence correspond à chaque Nième lot de données par époque. Dans l'exemple ci-dessous, nous enregistrons un lot de données sur deux pour chaque époque.

Remarque : le chargeur de données de validation YOLOv5 utilise par défaut une taille de lot de 32, tu devras donc régler la fréquence d'enregistrement en conséquence.

Voici un exemple de projet utilisant le Panel.

python train.py \-img 640 \--batch 16 \-epochs 5 \--data coco128.yaml \-weights yolov5s.pt \--bbox_interval 2

Contrôler le nombre d'images de prédiction connectées à Comet

Lors de l'enregistrement des prédictions de YOLOv5, Comet enregistrera les images associées à chaque ensemble de prédictions. Par défaut, un maximum de 100 images de validation sont enregistrées. Tu peux augmenter ou diminuer ce nombre à l'aide de la variable d'environnement COMET_MAX_IMAGE_UPLOADS.

env COMET_MAX_IMAGE_UPLOADS=200python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 1

Enregistrement des mesures au niveau de la classe

Utilise la variable d'environnement COMET_LOG_PER_CLASS_METRICS pour enregistrer mAP, precision, recall et f1 pour chaque classe.

env COMET_LOG_PER_CLASS_METRICS=true python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt

Téléchargement d'un ensemble de données sur Comet Artifacts

Si tu souhaites stocker tes données à l'aide de Comet Artifacts, tu peux le faire en utilisant l'indicateur upload_dataset.

Le jeu de données est organisé de la manière décrite dans la documentationYOLOv5 . Le fichier config yaml du jeu de données doit suivre le même format que le fichier coco128.yaml.

python train.py \-img 640 \--batch 16 \-epochs 5 \--data coco128.yaml \-weights yolov5s.pt \-upload_dataset

Tu trouveras le jeu de données téléchargé dans l'onglet Artifacts de ton espace de travail Comet .

Comet Onglet Artefacts, YOLOv5

Tu peux prévisualiser les données directement dans l'interface utilisateur Comet .

Prévisualise les données sur Comet, YOLOv5

Les artefacts sont versionnés et permettent également d'ajouter des métadonnées sur l'ensemble de données. Comet enregistrera automatiquement les métadonnées de ton fichier dataset yaml.

Enregistre les métadonnées du fichier YAML à l'adresse Comet, YOLOv5

Utilisation d'un artefact sauvegardé

Si tu veux utiliser un jeu de données provenant de Comet Artifacts, définis la variable path dans ton fichier dataset yaml pour qu'elle pointe vers l'URL de ressource d'artefact suivante.

# contenu du fichier artifact.yaml chemin : "comet:/// :"

Passe ensuite ce fichier à ton script de formation de la manière suivante :

python train.py \-img 640 \--batch 16 \-epochs 5 \--data artifact.yaml \-weights yolov5s.pt

Les artefacts te permettent également de suivre le cheminement des données au fur et à mesure qu'elles circulent dans ton flux de travail d'expérimentation. Ici, tu peux voir un graphique qui te montre toutes les expériences qui ont utilisé ton jeu de données téléchargé.

Comet flux de travail de l'expérimentation, YOLOv5

Reprendre une course d'entraînement

Si ton parcours d'entraînement est interrompu pour une raison quelconque, par exemple une connexion Internet perturbée, tu peux reprendre le parcours en utilisant le drapeau de reprise et le chemin d'exécution Comet .

Le chemin d'exécution a le format suivant : comet:////.

Ceci restaurera l'exécution à son état avant l'interruption, ce qui inclut la restauration du modèle à partir d'un point de contrôle, la restauration de tous les hyperparamètres et arguments d'entraînement, et le téléchargement des artefacts du jeu de données Comet s'ils ont été utilisés dans l'exécution d'origine. L'exécution reprise continuera à se connecter à l'expérience existante dans l'interface utilisateur Comet .

python train.py \--resume "comet://"

Recherche d'hyperparamètres avec l'optimiseur Comet

YOLOv5 est également intégré à l'Optimizer de Comet, ce qui facilite la visualisation des balayages d'hyperparamètres dans l'interface utilisateur de Comet .

Configuration d'un balayage de l'Optimizer

Pour configurer l'Optimiseur Comet , tu devras créer un fichier JSON contenant les informations sur le balayage.

Un fichier d'exemple a été fourni dans :

utils/loggers/comet/optimizer_config.json python utils/loggers/comet/hpo.py \--comet_optimizer_config "utils/loggers/comet/optimizer_config.json"

Le script hpo.py accepte les mêmes arguments que train.py. Si tu souhaites passer des arguments supplémentaires à ton balayage, ajoute-les simplement après le script.

python utils/loggers/comet/hpo.py \--comet_optimizer_config "utils/loggers/comet/optimizer_config.json" \--save-period 1 \--bbox_interval 1

Exécuter un balayage en parallèle

comet optimizer -j utils/loggers/comet/hpo.py \utils/loggers/comet/optimizer_config.json"

Comet offre de nombreuses façons de visualiser les résultats de ton balayage. Jette un coup d'œil à un projet avec un balayage terminé ici:

Visualise les résultats du balayage sur Comet, YOLOv5

Reste en contact

Commence à utiliser notre intégration avec Comet pour gérer, visualiser et optimiser tes modèles YOLOv5 , depuis les entraînements jusqu'au contrôle de la production.

Et bien sûr, rejoins la communautéUltralytics - un endroit pour poser des questions et partager des conseils sur la formation, la validation et le déploiement de YOLOv5 .

Logo FacebookLogo de TwitterLogo LinkedInSymbole du lien de copie

Lire la suite dans cette catégorie

Construisons ensemble le futur
de l'IA !

Commence ton voyage avec le futur de l'apprentissage automatique.