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

Découvrez comment Ultralytics s'associe à Comet pour l'optimisation des modèles Ultralytics YOLOv5 : suivi en temps réel, collaboration simplifiée et reproductibilité améliorée.
Chez Ultralytics, nous collaborons commercialement avec d'autres startups pour nous aider à financer la recherche et le développement de nos formidables outils open source, comme YOLOv5, afin de les maintenir gratuits pour tous. Cet article peut contenir des liens d'affiliation vers ces partenaires.
Notre nouveau partenaire, Comet, conçoit des outils qui aident les data scientists, 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 vos modèles, vos ensembles de données et vos métriques. Il enregistre même vos variables système et d'environnement pour assurer la reproductibilité et un débogage fluide pour chaque exécution. C'est comme avoir un assistant virtuel qui sait comme par magie quelles notes conserver. Suivez et visualisez les métriques du modèle en temps réel, enregistrez vos hyperparamètres, vos ensembles de données et vos points de contrôle de modèle, et visualisez les prédictions de votre modèle avec les panneaux personnalisés Comet !
De plus, Comet vous assure de ne jamais perdre la trace de votre travail et facilite le partage des résultats et la collaboration entre des équipes de toutes tailles !
YOLOv5 est un excellent point de départ pour votre parcours dans la vision par ordinateur. Pour améliorer les performances de votre modèle et le préparer à la production, vous devrez enregistrer les résultats dans un outil de suivi d'expériences tel que Comet.
L'intégration de Comet et YOLOv5 offre 3 fonctionnalités principales :
Ce guide explique comment utiliser YOLOv5 avec Comet.
Alors, prêt à suivre vos expériences en temps réel ? Commençons !
Pip install comet_ml
Il existe deux façons de configurer Comet avec YOLOv5.
Vous pouvez soit définir vos informations d'identification via des variables d'environnement, soit créer un fichier .comet.config dans votre répertoire de travail et y définir vos informations d'identification.
export COMET_API_KEY=export COMET_PROJECT_NAME= # La valeur par défaut sera 'yolov5'
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
# Entraîner YOLOv5s sur COCO128 pendant 5 epochs python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt
C'est tout !
Comet enregistrera automatiquement vos hyperparamètres, les arguments de la ligne de commande, les métriques d'entraînement et de validation. Vous pouvez visualiser et analyser vos exécutions dans l'interface utilisateur de Comet.
Découvrez un exemple d'exécution complète ici.
Ou mieux encore, essayez-le vous-même dans ce Colab Notebook.
Par défaut, Comet enregistrera les éléments suivants :
Comet peut être configuré pour enregistrer des données supplémentaires via des indicateurs de ligne de commande transmis au script d'entraînement ou aux variables d'environnement.
export COMET_MODE=online # Définir si Comet doit fonctionner en mode 'en ligne' ou 'hors ligne'. La valeur par défaut est en ligneexport COMET_MODEL_NAME= #Définir le nom du modèle enregistré. La valeur par défaut est yolov5export COMET_LOG_CONFUSION_MATRIX=false # Définir pour désactiver 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 dans Comet. La valeur par défaut est 100.export COMET_LOG_PER_CLASS_METRICS=true # Définir pour enregistrer les métriques d'évaluation pour chaque classe détectée à la fin de l'entraînement. La valeur par défaut est falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # Définir ceci si vous souhaitez reprendre l'entraînement à 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éfinir ceci si vous souhaitez enregistrer les métriques d'entraînement au niveau du lot. La valeur par défaut est false.export COMET_LOG_PREDICTIONS=true # Définir ceci sur false pour désactiver l'enregistrement des prédictions du modèle
L’enregistrement des modèles dans Comet est désactivé par défaut. Pour l’activer, transmettez l’argument save-period au script d’entraînement. Cela enregistrera les points de contrôle enregistrés dans Comet en fonction de la valeur d’intervalle fournie par save-period.
python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--save-period 1
Par défaut, les prédictions du modèle (images, étiquettes de vérité terrain et boîtes englobantes) seront enregistrées dans Comet. Vous pouvez contrôler la fréquence des prédictions enregistrées et les 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 chaque 2ème lot de données pour chaque époque.
Remarque : Le chargeur de données de validation YOLOv5 utilisera par défaut une taille de lot de 32, vous devrez donc définir la fréquence de journalisation en conséquence.
Voici un exemple de projet utilisant Panel.
python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 2
Lors de l'enregistrement des prédictions de YOLOv5, Comet enregistre les images associées à chaque ensemble 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_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
Utilisez la variable d'environnement COMET_LOG_PER_CLASS_METRICS pour enregistrer le mAP, la précision, le rappel et le 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
Si vous souhaitez stocker vos données en utilisant Comet Artifacts, vous pouvez le faire en utilisant l'indicateur upload_dataset.
L'organisation du jeu de données est conforme à la description de la documentation YOLOv5. Le fichier yaml de configuration du jeu de données doit respecter 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
Vous trouverez l'ensemble de données téléchargé dans l'onglet Artifacts de votre espace de travail Comet.
Vous pouvez prévisualiser les données directement dans l'interface utilisateur de Comet.
Les artefacts sont versionnés et prennent également en charge l'ajout de métadonnées sur l'ensemble de données. Comet enregistrera automatiquement les métadonnées de votre fichier yaml d'ensemble de données.
Si vous souhaitez utiliser un ensemble de données provenant de Comet Artifacts, définissez la variable de chemin d'accès dans votre fichier yaml d'ensemble de données pour qu'elle pointe vers l'URL de ressource Artifact suivante.
# contenu du fichier artifact.yaml path: "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 artifact.yaml \--weights yolov5s.pt
Les artefacts vous permettent également de suivre la lignée des données lorsqu'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 ensemble de données téléchargé.
Si votre entraînement est interrompu pour une raison quelconque, par exemple une coupure de la connexion Internet, vous pouvez le reprendre en utilisant l'indicateur de reprise et le chemin d'exécution Comet.
Le chemin d'exécution a le format suivant : comet://.///.
Cela 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 de l'ensemble de données Comet s'ils ont été utilisés dans l'exécution d'origine. L'exécution reprise continuera à être enregistrée dans l'expérience existante dans l'interface utilisateur de Comet.
python train.py \--resume "comet://"
YOLOv5 est également intégré à l'Optimizer de Comet, ce qui simplifie la visualisation des balayages d'hyperparamètres dans l'interface utilisateur de Comet.
Pour configurer Comet Optimizer, vous devrez créer un fichier JSON contenant les informations relatives au sweep.
Un exemple de fichier 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 vous souhaitez transmettre des arguments supplémentaires à votre balayage, ajoutez-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
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 votre sweep. Jetez un coup d'œil à un projet avec un sweep terminé ici:
Commencez à utiliser notre intégration avec Comet pour gérer, visualiser et optimiser vos modèles YOLOv5, des exécutions d'entraînement à la surveillance de la production.
Et, bien sûr, rejoignez la Communauté Ultralytics – un endroit pour poser des questions et partager des conseils sur l'entraînement, la validation et le déploiement de YOLOv5.