Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant

Comment utiliser Ultralytics YOLOv5 avec Comet

L'équipe Ultralytics

5 min de lecture

11 octobre 2022

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

Chez Ultralytics , nous avons des partenariats commerciaux avec 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 nouveau partenaire, Cometconstruit des outils qui aident les data scientists, les ingénieurs et les chefs d'équipe à accélérer et à optimiser l'apprentissage automatique et les modèles d'apprentissage profond.

Comet est un outil puissant de suivi de vos modèles, ensembles de données et métriques. Il enregistre même votre système et vos variables d'environnement pour garantir la reproductibilité et un débogage en douceur pour chaque exécution. C'est comme si vous disposiez d'un assistant virtuel qui, comme par magie, sait quelles notes prendre. Suivez et visualisez les métriques de vos modèles en temps réel, sauvegardez vos hyperparamètres, vos jeux de données et les points de contrôle de vos modèles, et visualisez les prédictions de vos modèles avec les panneaux personnalisés deComet !

De plus, Comet vous permet de ne jamais perdre la track de votre travail et facilite le partage des résultats et la collaboration au sein d'équipes de toutes tailles !

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

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

  • Fonctionnalités d'enregistrement automatique et d'enregistrement personnalisé
  • Enregistrement des jeux de données et des modèles en tant qu'artefacts pour le débogage et la reproductibilité
  • Organiser votre vue avec les panneaux personnalisés de Comet


Ce guide explique comment utiliser YOLOv5 avec Comet.

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

Prise en main

1. Installer Comet

Pip install comet

2. Configuration des informations d'identification Comet

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

Vous pouvez définir vos informations d'identification par le biais de variables d'environnement ou créer un fichiercomet.config dans votre répertoire de travail et y définir vos informations d'identification.


Variables d'environnement

export COMET COMET# La valeur par défaut estyolov5'.


Fichier de configuration Comet

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

3. Exécuter le script d'entraînement

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

C'est tout !

Comet enregistre automatiquement vos hyperparamètres, les arguments de la ligne de commande, les mesures d'entraînement et de validation. Vous pouvez visualiser et analyser vos exécutions dans l'interface utilisateur de Comet .

Expériences avec YOLOv5 dans Comet Dashboard

Essayez par vous-même !

Découvrez un exemple d'exécution complète ici.

Ou mieux encore, essayez-le vous-même dans ce Colab Notebook.

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.5, mAP.5:0.95 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 via les options de la ligne de commande

Visualisations

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

Configuration de la journalisation Comet

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

export COMET# Indique si Comet doit être exécuté en mode "en ligne" ou "hors ligne". La valeur par défaut est onlineexport COMET#Définit le nom du modèle sauvegardé. La valeur par défaut est yolov5export COMET# Permet de désactiver l'enregistrement d'une matrice de confusion Comet . La valeur par défaut est trueexport COMET# Contrôle le nombre total de prédictions d'images à enregistrer dans Comet. La valeur par défaut est 100.export COMET# Définit l'enregistrement des mesures d'évaluation pour chaque classe détectée à la fin de l'apprentissage. La valeur par défaut est falseexport COMET# Définissez ceci si vous souhaitez reprendre la formation à partir d'un point de contrôle différent. La valeur par défaut est 'last.pt'export COMET# Définissez ceci si vous souhaitez enregistrer les métriques de formation au niveau du lot. La valeur par défaut est false.export COMET# Mettez cette valeur à false pour désactiver l'enregistrement des prédictions de modèle.

Enregistrement des points de contrôle avec Comet

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

python train.py \

--img 640 \

--batch 16 \

--epochs 5 \

--data coco128yaml \

--weights yolov5s.pt \

--save-period 1

Enregistrer les prédictions du modèle

Par défaut, les prédictions du modèle (images, étiquettes de vérité terrain et boîtes de délimitation) sont enregistrées dans Comet. Vous pouvez contrôler la fréquence d'enregistrement des prédictions et des images associées en passant l'argument de ligne de commande bbox. 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.

Note : Le chargeur de données de validation YOLOv5 utilise par défaut une taille de lot de 32, vous devrez donc définir la fréquence d'enregistrement en conséquence.

Voici un exemple de projet utilisant Panel.

python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--weights yolov5s.pt bbox 2

Contrôle du nombre d'images de prédiction transmises à Comet

Lors de l'enregistrement des prédictions de YOLOv5, Comet enregistre les images associées à chaque série de prédictions. Par défaut, un maximum de 100 images de validation sont enregistrées. Vous pouvez augmenter ou diminuer ce nombre à l'aide de la variable d'environnement COMET.

env COMET train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--weights yolov5s.pt bbox 1

Enregistrer les métriques au niveau de la classe

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

env COMET python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--weights yolov5s.pt

Téléchargement d'un jeu de données dans Comet Artifacts

Si vous souhaitez stocker vos données à l'aide de Comet Artifacts, vous pouvez le faire en utilisant l'option upload_dataset.

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

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

Vous trouverez le jeu de données téléchargé dans l'onglet Artifacts de votre espace de travail Comet .

Onglet Comet Artifacts, YOLOv5

Vous pouvez prévisualiser les données directement dans l'interface utilisateur de Comet .

Prévisualisation des données dans Comet, YOLOv5

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

Journaliser les métadonnées d'un fichier YAML dans Comet, YOLOv5

Utilisation d'un artefact enregistré

Si vous souhaitez utiliser un jeu de données provenant de Comet Artifacts, définissez la variable path dans votre fichier dataset yaml de manière à ce qu'elle pointe vers l'URL suivante de la ressource Artifact.

# contenu du fichier artifactyaml chemin :comet:/// :"

Passez ensuite ce fichier à votre script d'entraînement de la manière suivante :

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

Les artefacts vous permettent également de track évolution des données au fur et à mesure qu'elles circulent dans votre flux de travail d'expérimentation. Ici, vous pouvez voir un graphique qui vous montre toutes les expériences qui ont utilisé votre jeu de données téléchargé.

Flux de travail pour l'expérimentation des Comet , YOLOv5

Reprise d'une session d'entraînement

Si votre parcours d'entraînement est interrompu pour une raison quelconque, par exemple une connexion Internet perturbée, vous pouvez 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:////.

Cela restaurera l'exécution dans l'état où elle se trouvait 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 de Comet .

python train.py \--resumecomet://"

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 d'optimiseur

Pour configurer l'optimiseur Comet , vous devez créer un fichier JSON contenant les informations relatives au balayage.

Un exemple de fichier a été fourni dans :

comet.json python comet.py comet"comet.json"

Le script hpo.py accepte les mêmes arguments que train.py. Si vous souhaitez transmettre des arguments supplémentaires à votre balayage, ajoutez-les simplement après le script.

python comet.py comet"comet.json" \--save-period 1 bbox 1

Exécution d'un Sweep en parallèle

comet optimizer -j comet.py comet.json"

Comet offre de nombreuses possibilités de visualiser les résultats de votre balayage. Jetez un coup d'œil à un projet avec un balayage terminé ici:

Visualiser les résultats du balayage dans Comet, YOLOv5

Restez en contact

Commencez à utiliser notre intégration avec Comet pour gérer, visualiser et optimiser vos modèles YOLOv5 , depuis les exercices d'entraînement jusqu'au suivi de la production.

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

Construisons ensemble l'avenir
de l'IA !

Commencez votre parcours avec l'avenir de l'apprentissage automatique

Démarrer gratuitement