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:
Ce guide explique comment utiliser YOLOv5 avec Comet.
Alors, prêt à suivre tes expériences en temps réel ? C'est parti !
Pip install comet_ml
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.
export COMET_API_KEY=export COMET_PROJECT_NAME= # Ce sera par défaut 'yolov5'
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
# 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 .
Regarde ici un exemple d'exécution terminée.
Ou mieux encore, essaie toi-même dans ce carnet Colab.
Par défaut, Comet enregistre les éléments suivants :
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.
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
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
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
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
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 .
Tu peux prévisualiser les données directement dans l'interface utilisateur Comet .
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.
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é.
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://"
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 .
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
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:
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 .
Commence ton voyage avec le futur de l'apprentissage automatique.