Triff YOLO26: Vision-KI der nächsten Generation.
Ultralytics
Integrationen

So verwendest du Ultralytics YOLOv5 mit Comet

Entdecke, wie Ultralytics mit Comet für die Optimierung von Ultralytics YOLOv5-Modellen zusammenarbeitet: Echtzeit-Tracking, optimierte Zusammenarbeit und verbesserte Reproduzierbarkeit.

DADas Ultralytics-Team
5 min read
Das Training von Ultralytics YOLOv5-Modellen mit Comet tracken

Bei Ultralytics arbeiten wir kommerziell mit anderen Startups zusammen, um die Forschung und Entwicklung unserer großartigen Open-Source-Tools, wie YOLOv5, zu finanzieren und sie für alle kostenlos zu halten. Dieser Artikel kann Affiliate-Links zu diesen Partnern enthalten.

Unser neuester Partner, Comet, entwickelt Tools, die Data Scientists, Ingenieuren und Teamleitern helfen, Modelle für maschinelles Lernen und Deep Learning zu beschleunigen und zu optimieren.

Comet ist ein leistungsstarkes Tool zur Nachverfolgung deiner Modelle, Datensätze und Metriken. Es protokolliert sogar deine System- und Umgebungsvariablen, um die Reproduzierbarkeit und ein reibungsloses Debugging für jeden einzelnen Lauf sicherzustellen. Es ist, als hättest du einen virtuellen Assistenten, der auf magische Weise weiß, welche Notizen du behalten musst. Verfolge und visualisiere Modellmetriken in Echtzeit, speichere deine Hyperparameter, Datensätze und Modell-Checkpoints und visualisiere deine Modellvorhersagen mit Comet Custom Panels!

Darüber hinaus sorgt Comet dafür, dass du nie den Überblick über deine Arbeit verlierst, und erleichtert das Teilen von Ergebnissen sowie die Zusammenarbeit in Teams jeder Größe!

YOLOv5 ist ein großartiger Ausgangspunkt für deine Computer-Vision-Reise. Um die Leistung deines Modells zu verbessern und es produktionsreif zu machen, musst du die Ergebnisse in einem Experiment-Tracking-Tool wie Comet protokollieren.

Die Integration von Comet und YOLOv5 bietet 3 Hauptfunktionen:

  • Funktionen zur automatischen und benutzerdefinierten Protokollierung
  • Speichern von Datensätzen und Modellen als Artefakte für Debugging und Reproduzierbarkeit
  • Organisation deiner Ansicht mit den benutzerdefinierten Panels von Comet

Diese Anleitung behandelt die Verwendung von YOLOv5 mit Comet.

Bist du bereit, deine Experimente in Echtzeit zu verfolgen? Fangen wir an!

Link to this sectionErste Schritte#

Link to this sectionInstalliere Comet#

pip install comet_ml

Link to this sectionKonfiguriere deine Comet-Anmeldedaten#

Es gibt zwei Möglichkeiten, Comet mit YOLOv5 zu konfigurieren.

Du kannst deine Anmeldedaten entweder über Umgebungsvariablen festlegen oder eine .comet.config-Datei in deinem Arbeitsverzeichnis erstellen und sie dort eintragen.

Link to this sectionUmgebungsvariablen#

export COMET_API_KEY=<Your API Key>
export COMET_PROJECT_NAME=<Your Comet Project Name> # This will default to 'yolov5'

Link to this sectionComet-Konfigurationsdatei#

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

Link to this sectionFühre das Trainingsskript aus#

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

Das war's!

Comet protokolliert automatisch deine Hyperparameter, Befehlszeilenargumente sowie Trainings- und Validierungsmetriken. Du kannst deine Läufe im Comet UI visualisieren und analysieren.

Experimente mit YOLOv5 im Comet Dashboard

Link to this sectionProbiere es selbst aus!#

Sieh dir hier ein Beispiel für einen abgeschlossenen Lauf an.

Oder noch besser: Probiere es selbst in diesem Colab Notebook aus.

Link to this sectionAutomatische Protokollierung#

Standardmäßig protokolliert Comet folgende Elemente:

Link to this sectionMetriken#

  • Box Loss, Object Loss und Classification Loss für Trainings- und Validierungsdaten
  • mAP_0.5, mAP_0.5:0.95 Metriken für die Validierungsdaten
  • Precision und Recall für die Validierungsdaten

Link to this sectionParameter#

  • Modell-Hyperparameter
  • Alle Parameter, die über die Befehlszeilenoptionen übergeben wurden

Link to this sectionVisualisierungen#

  • Konfusionsmatrix der Modellvorhersagen für die Validierungsdaten
  • Diagramme für die PR- und F1-Kurven über alle Klassen hinweg
  • Korrelogramm der Klassenbezeichnungen

Link to this sectionKonfiguration der Comet-Protokollierung#

Comet kann so konfiguriert werden, dass zusätzliche Daten über Befehlszeilen-Flags, die an das Trainingsskript übergeben werden, oder über Umgebungsvariablen protokolliert werden.

export COMET_MODE=online # Set whether to run Comet in 'online' or 'offline' mode. Defaults to online
export COMET_MODEL_NAME=<your model name> # Set the name for the saved model. Defaults to yolov5
export COMET_LOG_CONFUSION_MATRIX=false # Set to disable logging a Comet Confusion Matrix. Defaults to true
export COMET_MAX_IMAGE_UPLOADS=<number of allowed images to upload to Comet> # Controls how many total image predictions to log to Comet. Defaults to 100.
export COMET_LOG_PER_CLASS_METRICS=true # Set to log evaluation metrics for each detected class at the end of training. Defaults to false
export COMET_DEFAULT_CHECKPOINT_FILENAME=<your checkpoint filename> # Set this if you would like to resume training from a different checkpoint. Defaults to 'last.pt'
export COMET_LOG_BATCH_LEVEL_METRICS=true # Set this if you would like to log training metrics at the batch level. Defaults to false.
export COMET_LOG_PREDICTIONS=true # Set this to false to disable logging model predictions

Link to this sectionProtokollierung von Checkpoints mit Comet#

Das Protokollieren von Modellen in Comet ist standardmäßig deaktiviert. Um es zu aktivieren, übergebe das Argument save-period an das Trainingsskript. Dies speichert die protokollierten Checkpoints in Comet basierend auf dem durch save-period angegebenen Intervallwert.

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

Link to this sectionProtokollierung von Modellvorhersagen#

Standardmäßig werden Modellvorhersagen (Bilder, Ground-Truth-Labels und Begrenzungsrahmen) in Comet protokolliert. Du kannst die Häufigkeit der protokollierten Vorhersagen und der zugehörigen Bilder steuern, indem du das Befehlszeilenargument bbox_interval übergibst. Vorhersagen können mithilfe des Object Detection Custom Panels von Comet visualisiert werden. Diese Häufigkeit entspricht jedem N-ten Datenbatch pro Epoche. Im folgenden Beispiel protokollieren wir jeden zweiten Datenbatch für jede Epoche.

Hinweis: Der YOLOv5-Datenlader für die Validierung verwendet standardmäßig eine Batch-Größe von 32, daher musst du die Protokollierungshäufigkeit entsprechend anpassen.

Hier ist ein Beispielprojekt, das das Panel verwendet.

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

Link to this sectionSteuerung der Anzahl der in Comet protokollierten Vorhersagebilder#

Beim Protokollieren von Vorhersagen aus YOLOv5 protokolliert Comet die Bilder, die mit jedem Satz von Vorhersagen verknüpft sind. Standardmäßig werden maximal 100 Validierungsbilder protokolliert. Du kannst diese Anzahl mithilfe der Umgebungsvariablen COMET_MAX_IMAGE_UPLOADS erhöhen oder verringern.

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

Link to this sectionProtokollierung von Metriken auf Klassenebene#

Verwende die Umgebungsvariable COMET_LOG_PER_CLASS_METRICS, um mAP, Precision, Recall und F1 für jede Klasse zu protokollieren.

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

Link to this sectionHochladen eines Datensatzes in Comet Artifacts#

Wenn du deine Daten mit Comet Artifacts speichern möchtest, kannst du dies mit dem Flag upload_dataset tun.

Der Datensatz wird so organisiert, wie es in der YOLOv5-Dokumentation beschrieben ist. Die YAML-Datei für die Datensatzkonfiguration muss dasselbe Format wie die coco128.yaml-Datei aufweisen.

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

Du findest den hochgeladenen Datensatz im Tab "Artifacts" in deinem Comet-Arbeitsbereich.

Comet Artefakte Tab, YOLOv5

Du kannst die Daten direkt in der Comet-Benutzeroberfläche in der Vorschau anzeigen.

Daten in Comet ansehen, YOLOv5

Artefakte sind versioniert und unterstützen zudem das Hinzufügen von Metadaten über den Datensatz. Comet protokolliert automatisch die Metadaten aus deiner Datensatz-YAML-Datei.

Metadaten aus YAML-Datei in Comet protokollieren, YOLOv5

Link to this sectionVerwendung eines gespeicherten Artefakts#

Wenn du einen Datensatz aus Comet Artifacts verwenden möchtest, setze die Pfadvariable in deiner Datensatz-YAML-Datei so, dass sie auf die folgende Artifact-Ressourcen-URL verweist.

# contents of artifact.yaml file
path: "comet://<workspace name>/<artifact name>:<artifact version or alias>"

Übergib diese Datei dann wie folgt an dein Trainingsskript:

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

Artefakte ermöglichen es dir auch, die Herkunft der Daten zu verfolgen, während sie durch deinen Experimentier-Workflow fließen. Hier kannst du ein Diagramm sehen, das dir alle Experimente zeigt, die deinen hochgeladenen Datensatz verwendet haben.

Comet Experimentier-Workflow, YOLOv5

Link to this sectionFortsetzen eines Trainingslaufs#

Wenn dein Trainingslauf aus irgendeinem Grund unterbrochen wird, z. B. durch eine gestörte Internetverbindung, kannst du den Lauf mit dem Resume-Flag und dem Comet-Run-Pfad fortsetzen.

Der Run Path hat das folgende Format comet://<your workspace name>/<your project name>/<experiment id>.

Dadurch wird der Lauf in den Zustand vor der Unterbrechung zurückversetzt, einschließlich der Wiederherstellung des Modells aus einem Checkpoint, der Wiederherstellung aller Hyperparameter und Trainingsargumente sowie des Herunterladens der Comet-Datensatz-Artefakte, falls diese im ursprünglichen Lauf verwendet wurden. Der fortgesetzte Lauf protokolliert weiterhin in das bestehende Experiment in der Comet-Benutzeroberfläche.

python train.py \
  --resume "comet://<your run path>"

Link to this sectionHyperparameter-Suche mit dem Comet Optimizer#

YOLOv5 ist auch in den Comet Optimizer integriert, was es einfach macht, Hyperparameter-Sweeps in der Comet-Benutzeroberfläche zu visualisieren.

Link to this sectionKonfigurieren eines Optimizer-Sweeps#

Um den Comet Optimizer zu konfigurieren, musst du eine JSON-Datei mit den Informationen über den Sweep erstellen.

Eine Beispieldatei wurde unter utils/loggers/comet/optimizer_config.json bereitgestellt.

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

Das Skript hpo.py akzeptiert dieselben Argumente wie train.py. Wenn du zusätzliche Argumente an deinen Sweep übergeben möchtest, füge sie einfach nach dem Skript hinzu.

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

Link to this sectionAusführen eines Sweeps parallel#

comet optimizer -j <num_workers> utils/loggers/comet/hpo.py \
  utils/loggers/comet/optimizer_config.json

Comet bietet viele Möglichkeiten, die Ergebnisse deines Sweeps zu visualisieren. Sieh dir hier ein Projekt mit einem abgeschlossenen Sweep an:

Sweep-Ergebnisse in Comet visualisieren, YOLOv5

Link to this sectionBleib in Verbindung#

Nutze unsere Integration mit Comet, um deine YOLOv5-Modelle zu verwalten, zu visualisieren und zu optimieren – von Trainingsläufen bis hin zur Produktionsüberwachung.

Und tritt natürlich der Ultralytics Community bei – einem Ort, an dem du Fragen stellen und Tipps zu Training, Validierung und Bereitstellung von YOLOv5 austauschen kannst.

Explore solutions

Real-time AI that works with your team

KI in der Robotik

Stärke intelligentere Maschinen mit Ultralytics YOLO Modellen. Vision AI in der Robotik treibt autonome Navigation, Wahrnehmung, Objektverfolgung und Echtzeitsteuerung voran.
Erfahre mehr
Real-time AI that works with your team

KI in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht Paketkontrolle, Sortierung, Fahrzeugverfolgung und Echtzeit-Überwachung der Lagersicherheit.
Erfahre mehr
Real-time AI that works with your team

KI im Einzelhandel

Erfinde den Einzelhandel neu mit Ultralytics YOLO-Modellen. Vision AI fördert Bestandsverfolgung, Regalüberwachung, Warteschlangenmanagement und intelligentere Kundeneinblicke.
Erfahre mehr
Real-time AI that works with your team

KI im Gesundheitswesen

Baue Gesundheitslösungen mit Ultralytics YOLO Modellen. Vision AI im Gesundheitswesen ermöglicht schnellere medizinische Bildgebung, intelligentere Diagnostik und Patientenüberwachung.
Erfahre mehr
Real-time AI that works with your team

KI in der Fertigung

Optimiere die Fertigung mit Ultralytics YOLO-Modellen. Vision AI treibt Qualitätskontrolle, Fehlererkennung, PSA-Einhaltung und die Automatisierung von Montagelinien voran.
Erfahre mehr
Real-time AI that works with your operation

KI in der Automobilbranche

Nutze Computer Vision in der Automobilindustrie mit Ultralytics YOLO Modellen. Vision AI steigert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung für intelligentere Straßen.
Erfahre mehr
Real-time AI tailored to your operation

KI in der Landwirtschaft

Bringe Vision AI mit Ultralytics YOLO Modellen in die smarte Landwirtschaft. Optimiere die Ernteüberwachung, Viehverfolgung und Präzisionslandwirtschaft für höhere, intelligentere Erträge.
Erfahre mehr
Real-time AI that works with your team

KI in der Robotik

Stärke intelligentere Maschinen mit Ultralytics YOLO Modellen. Vision AI in der Robotik treibt autonome Navigation, Wahrnehmung, Objektverfolgung und Echtzeitsteuerung voran.
Erfahre mehr
Real-time AI that works with your team

KI in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht Paketkontrolle, Sortierung, Fahrzeugverfolgung und Echtzeit-Überwachung der Lagersicherheit.
Erfahre mehr
Real-time AI that works with your team

KI im Einzelhandel

Erfinde den Einzelhandel neu mit Ultralytics YOLO-Modellen. Vision AI fördert Bestandsverfolgung, Regalüberwachung, Warteschlangenmanagement und intelligentere Kundeneinblicke.
Erfahre mehr
Real-time AI that works with your team

KI im Gesundheitswesen

Baue Gesundheitslösungen mit Ultralytics YOLO Modellen. Vision AI im Gesundheitswesen ermöglicht schnellere medizinische Bildgebung, intelligentere Diagnostik und Patientenüberwachung.
Erfahre mehr
Real-time AI that works with your team

KI in der Fertigung

Optimiere die Fertigung mit Ultralytics YOLO-Modellen. Vision AI treibt Qualitätskontrolle, Fehlererkennung, PSA-Einhaltung und die Automatisierung von Montagelinien voran.
Erfahre mehr
Real-time AI that works with your operation

KI in der Automobilbranche

Nutze Computer Vision in der Automobilindustrie mit Ultralytics YOLO Modellen. Vision AI steigert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung für intelligentere Straßen.
Erfahre mehr
Real-time AI tailored to your operation

KI in der Landwirtschaft

Bringe Vision AI mit Ultralytics YOLO Modellen in die smarte Landwirtschaft. Optimiere die Ernteüberwachung, Viehverfolgung und Präzisionslandwirtschaft für höhere, intelligentere Erträge.
Erfahre mehr
Real-time AI that works with your team

KI in der Robotik

Stärke intelligentere Maschinen mit Ultralytics YOLO Modellen. Vision AI in der Robotik treibt autonome Navigation, Wahrnehmung, Objektverfolgung und Echtzeitsteuerung voran.
Erfahre mehr
Real-time AI that works with your team

KI in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht Paketkontrolle, Sortierung, Fahrzeugverfolgung und Echtzeit-Überwachung der Lagersicherheit.
Erfahre mehr
Real-time AI that works with your team

KI im Einzelhandel

Erfinde den Einzelhandel neu mit Ultralytics YOLO-Modellen. Vision AI fördert Bestandsverfolgung, Regalüberwachung, Warteschlangenmanagement und intelligentere Kundeneinblicke.
Erfahre mehr
Real-time AI that works with your team

KI im Gesundheitswesen

Baue Gesundheitslösungen mit Ultralytics YOLO Modellen. Vision AI im Gesundheitswesen ermöglicht schnellere medizinische Bildgebung, intelligentere Diagnostik und Patientenüberwachung.
Erfahre mehr
Real-time AI that works with your team

KI in der Fertigung

Optimiere die Fertigung mit Ultralytics YOLO-Modellen. Vision AI treibt Qualitätskontrolle, Fehlererkennung, PSA-Einhaltung und die Automatisierung von Montagelinien voran.
Erfahre mehr
Real-time AI that works with your operation

KI in der Automobilbranche

Nutze Computer Vision in der Automobilindustrie mit Ultralytics YOLO Modellen. Vision AI steigert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung für intelligentere Straßen.
Erfahre mehr
Real-time AI tailored to your operation

KI in der Landwirtschaft

Bringe Vision AI mit Ultralytics YOLO Modellen in die smarte Landwirtschaft. Optimiere die Ernteüberwachung, Viehverfolgung und Präzisionslandwirtschaft für höhere, intelligentere Erträge.
Erfahre mehr

Lass uns gemeinsam die Zukunft der KI bauen!

Beginne deine Reise mit der Zukunft des maschinellen Lernens