Ultralytics fournit des modèles de vision par ordinateur pour des tâches comme la classification d’images, la détection d’objets, la segmentation d’images et l’estimation de pose. Il héberge YOLOv8, une itération de la série YOLO de modèles de détection d’objets en temps réel, ainsi que d’autres modèles de vision par ordinateur tels que SAM (Segment Anything Model), RT-DETR et YOLO-NAS. Ultralytics fournit également des flux de travail prêts à l’emploi pour entraîner, effectuer le fine-tuning et utiliser ces modèles via une API.
Cette page vous montre comment intégrer W&B à Ultralytics afin que W&B suive et visualise automatiquement les métriques d’expérience, les points de contrôle du modèle et les prédictions sur des images de validation ou d’inférence. Elle couvre l’installation, un flux de travail d’entraînement et de validation, ainsi qu’un flux de travail dédié uniquement à l’inférence.
Pour utiliser l’intégration, vous devez d’abord installer ultralytics et wandb, puis vérifier que vous utilisez une version de ultralytics prise en charge.
Installez ultralytics et wandb :
Ligne de commande
Notebook
L’équipe de développement a testé l’intégration avec ultralytics v8.0.238 et les versions antérieures. Pour signaler tout problème lié à l’intégration, créez une GitHub issue avec le tag yolov8.
Une fois les deux packages installés, vous pouvez passer à l’instrumentation d’un flux de travail Ultralytics avec W&B.
Suivre les expériences et visualiser les résultats de validation
Cette section présente un flux de travail typique qui utilise un modèle Ultralytics pour l’entraînement, le fine-tuning et la validation, et qui assure le suivi des expériences, l’enregistrement des points de contrôle du modèle et la visualisation des performances du modèle avec W&B.
Pour plus d’informations sur l’intégration, voir Supercharging Ultralytics with W&B.
Pour utiliser l’intégration W&B avec Ultralytics, importez la fonction wandb.integration.ultralytics.add_wandb_callback. Cette fonction de rappel constitue le point d’entrée qui enregistre la journalisation W&B pour le modèle Ultralytics.
Ensuite, initialisez le modèle YOLO de votre choix, puis appelez la fonction add_wandb_callback sur ce modèle avant d’effectuer une inférence. Joindre le callback avant l’entraînement active la journalisation automatique à chaque époque. Ainsi, lorsque vous effectuez un entraînement, du fine-tuning, une validation ou une inférence, W&B enregistre automatiquement les journaux de l’expérience ainsi que les images, avec les annotations de référence et les résultats de prédiction correspondants superposés à l’aide des superpositions interactives pour les tâches de vision par ordinateur, ainsi que des informations supplémentaires dans un wandb.Table.
Une fois le callback ajouté et l’entraînement démarré, votre run envoie désormais en continu les métriques d’entraînement, les points de contrôle du modèle et les visualisations de validation pour chaque époque vers votre projet W&B.
Voici à quoi ressemblent les expériences suivies avec W&B dans un flux de travail d’entraînement ou de fine-tuning avec Ultralytics :
Voici comment les résultats de validation pour chaque époque sont visualisés à l’aide d’un tableau W&B :
Visualiser les résultats de prédiction
Cette section présente un flux de travail type qui utilise un modèle Ultralytics pour l’inférence et visualise les résultats à l’aide de W&B.
Vous pouvez essayer ce code dans Google Colab : Ouvrir dans Colab.
Comme pour le flux de travail d’entraînement, pour utiliser l’intégration de W&B avec Ultralytics, importez la fonction wandb.integration.ultralytics.add_wandb_callback.
Ensuite, téléchargez quelques images pour tester l’intégration. Vous pouvez utiliser des images fixes, des vidéos ou des flux de caméra. Pour plus d’informations sur les sources d’inférence, voir la documentation Ultralytics.
Une fois les images de test en place, initialisez un run W&B à l’aide de wandb.init(). Initialisez ensuite le modèle YOLO de votre choix, puis appelez la fonction add_wandb_callback sur celui-ci avant d’effectuer une inférence. Cela garantit que, lorsque vous effectuez une inférence, W&B journalise automatiquement les images avec vos superpositions interactives pour les tâches de vision par ordinateur, ainsi que des informations supplémentaires dans un wandb.Table.
Vous n’avez pas besoin d’initialiser explicitement un run avec wandb.init() pour un flux de travail d’entraînement ou de fine-tuning. En revanche, si le code effectue uniquement de la prédiction, vous devez créer explicitement un run.
Après l’inférence, W&B journalise les boîtes englobantes prédites et les masques de segmentation dans votre run W&B sous forme de superpositions interactives.
Voici à quoi ressemble la superposition interactive de boîtes englobantes :
Pour plus d’informations, voir le guide des superpositions d’images W&B.