Entdecken Sie, wie Ultralytics mit Comet zusammenarbeitet, um das Ultralytics YOLOv5-Modell zu optimieren: Verfolgung in Echtzeit, optimierte Zusammenarbeit und verbesserte Reproduzierbarkeit.

Entdecken Sie, wie Ultralytics mit Comet zusammenarbeitet, um das Ultralytics YOLOv5-Modell zu optimieren: Verfolgung in Echtzeit, optimierte Zusammenarbeit und verbesserte Reproduzierbarkeit.
Bei Ultralytics gehen wir kommerzielle Partnerschaften mit anderen Start-ups ein, um die Forschung und Entwicklung unserer großartigen Open-Source-Tools wie YOLOv5 zu finanzieren, damit sie für alle kostenlos bleiben. Dieser Artikel kann Affiliate-Links zu diesen Partnern enthalten.
Unser neuester Partner, Comet, entwickelt Tools, die Datenwissenschaftlern, Ingenieuren und Teamleitern helfen, Modelle für maschinelles Lernen und Deep Learning zu beschleunigen und zu optimieren.
Comet ist ein leistungsfähiges Tool zur Verfolgung Ihrer Modelle, Datensätze und Metriken. Es protokolliert sogar Ihre System- und Umgebungsvariablen, um die Reproduzierbarkeit und ein reibungsloses Debugging für jeden einzelnen Lauf zu gewährleisten. Es ist, als hätte man einen virtuellen Assistenten, der auf magische Weise weiß, welche Notizen zu machen sind. Verfolgen und visualisieren Sie Modellmetriken in Echtzeit, speichern Sie Ihre Hyperparameter, Datensätze und Modellprüfpunkte, und visualisieren Sie Ihre Modellvorhersagen mit Comet Custom Panels!
Außerdem sorgt Comet dafür, dass Sie nie den Überblick über Ihre Arbeit verlieren, und erleichtert die gemeinsame Nutzung von Ergebnissen und die Zusammenarbeit in Teams jeder Größe!
YOLOv5 ist ein großartiger Startpunkt für Ihre Reise in die Computer Vision. Um die Leistung Ihres Modells zu verbessern und es produktionsreif zu machen, müssen Sie die Ergebnisse in einem Experiment-Tracking-Tool wie Comet protokollieren.
Die Integration von Comet und YOLOv5 bietet 3 Hauptfunktionen:
Dieser Leitfaden beschreibt, wie Sie YOLOv5 mit Comet verwenden können.
Sind Sie also bereit, Ihre Experimente in Echtzeit zu verfolgen? Legen wir los!
Pip installieren comet_ml
Es gibt zwei Möglichkeiten, Comet mit YOLOv5 zu konfigurieren.
Sie können Ihre Anmeldedaten entweder über Umgebungsvariablen festlegen oder eine Datei .comet.config in Ihrem Arbeitsverzeichnis erstellen und dort Ihre Anmeldedaten festlegen.
export COMET_API_KEY=export COMET_PROJECT_NAME= # Dies wird standardmäßig auf 'yolov5' gesetzt
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
# Trainiere YOLOv5s auf COCO128 für 5 Epochenspython train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt
Das war's!
Comet protokolliert automatisch Ihre Hyperparameter, Befehlszeilenargumente, Trainings- und Validierungsmetriken. Sie können Ihre Läufe in der Comet-Benutzeroberfläche visualisieren und analysieren.
Sehen Sie sich hier ein Beispiel für einen abgeschlossenen Lauf an.
Oder noch besser: Probieren Sie es selbst aus - mit diesem Colab Notebook.
Comet protokolliert standardmäßig die folgenden Punkte:
Comet kann so konfiguriert werden, dass zusätzliche Daten durch Befehlszeilenflags, die an das Trainingsskript übergeben werden, oder durch Umgebungsvariablen aufgezeichnet werden.
export COMET_MODE=online # Legen Sie fest, ob Comet im "Online"- oder "Offline"-Modus laufen soll. Standardwert ist onlineexport COMET_MODEL_NAME= #Legen Sie den Namen für das gespeicherte Modell fest. Standardwert ist yolov5export COMET_LOG_CONFUSION_MATRIX=false # Legt fest, ob die Protokollierung einer Comet-Konfusionsmatrix deaktiviert werden soll. Standardwert ist trueexport COMET_MAX_IMAGE_UPLOADS= # Legt fest, wie viele Bildvorhersagen insgesamt in Comet protokolliert werden sollen. Der Standardwert ist 100.export COMET_LOG_PER_CLASS_METRICS=true # Legt fest, dass am Ende des Trainings Bewertungsmetriken für jede erkannte Klasse protokolliert werden. Der Standardwert ist falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # Legen Sie dies fest, wenn Sie das Training von einem anderen Prüfpunkt aus fortsetzen möchten. Der Standardwert ist 'last.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # Legen Sie dies fest, wenn Sie Trainingsmetriken auf Batch-Ebene protokollieren möchten. Der Standardwert ist false. export COMET_LOG_PREDICTIONS=true # Setzen Sie dies auf false, um die Protokollierung von Modellvorhersagen zu deaktivieren.
Die Protokollierung von Modellen in Comet ist standardmäßig deaktiviert. Um es zu aktivieren, übergeben Sie das Argument save-period an das Trainingsskript. Dadurch werden die protokollierten Prüfpunkte auf der Grundlage des durch save-period angegebenen Intervallwertes in Comet gespeichert.
python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--save-period 1
Standardmäßig werden Modellvorhersagen (Bilder, Grundwahrheitsbezeichnungen und Begrenzungsrahmen) in Comet protokolliert. Sie können die Häufigkeit der protokollierten Vorhersagen und der zugehörigen Bilder steuern, indem Sie das Befehlszeilenargument bbox_interval übergeben. Die Vorhersagen können mit Hilfe des benutzerdefinierten Comet-Panels für die Objekterkennung visualisiert werden. Diese Häufigkeit entspricht jedem N-ten Datenstapel pro Epoche. Im folgenden Beispiel wird jeder 2. Datenstapel für jede Epoche protokolliert.
Hinweis: Der YOLOv5 Validierungsdatenlader ist standardmäßig auf eine Stapelgröße von 32 eingestellt, so dass Sie die Protokollierungshäufigkeit entsprechend anpassen müssen.
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
Bei der Protokollierung von Vorhersagen aus YOLOv5 protokolliert Comet die Bilder, die mit jedem Satz von Vorhersagen verbunden sind. Standardmäßig werden maximal 100 Validierungsbilder protokolliert. Sie können diese Zahl mithilfe der Umgebungsvariablen COMET_MAX_IMAGE_UPLOADS erhöhen oder verringern.
env COMET_MAX_IMAGE_UPLOADS=200python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 1
Verwenden Sie 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
Wenn Sie Ihre Daten mit Comet Artifacts speichern möchten, können Sie dies mit dem Flag upload_dataset tun.
Der Datensatz ist so organisiert, wie in der YOLOv5-Dokumentation beschrieben. Die Dataset-Config-Yaml-Datei muss das gleiche Format wie die Datei coco128.yaml haben.
python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--upload_dataset
Sie finden den hochgeladenen Datensatz auf der Registerkarte Artefakte in Ihrem Comet-Arbeitsbereich
Sie können eine Vorschau der Daten direkt in der Comet-Benutzeroberfläche anzeigen.
Artefakte sind versioniert und unterstützen auch das Hinzufügen von Metadaten über den Datensatz. Comet protokolliert automatisch die Metadaten aus Ihrer Dataset-Yaml-Datei.
Wenn Sie einen Datensatz aus Comet Artifacts verwenden möchten, setzen Sie die Pfadvariable in Ihrer Dataset-Yaml-Datei so, dass sie auf die folgende Artefakt-Ressourcen-URL zeigt.
# Inhalt der Datei artifact.yaml Pfad: "comet:///:"
Übergeben Sie diese Datei dann auf folgende Weise an Ihr Trainingsskript:
python train.py \--img 640 \--batch 16 \--epochs 5 \--data artifact.yaml \--weights yolov5s.pt
Mithilfe von Artefakten können Sie auch den Verlauf der Daten verfolgen, die Ihren Experimentier-Workflow durchlaufen. Hier sehen Sie ein Diagramm, das Ihnen alle Experimente anzeigt, die Ihren hochgeladenen Datensatz verwendet haben.
Wenn Ihr Trainingslauf aus irgendeinem Grund unterbrochen wird, z.B. wegen einer gestörten Internetverbindung, können Sie den Lauf mit Hilfe der Wiederaufnahme-Flagge und dem Comet-Laufpfad wieder aufnehmen.
Der Laufpfad hat das folgende Format: comet:////.
Dadurch wird der Lauf in den Zustand vor der Unterbrechung zurückversetzt, d. h. das Modell wird von einem Prüfpunkt aus wiederhergestellt, alle Hyperparameter und Trainingsargumente werden wiederhergestellt und die Comet-Datensatz-Artefakte werden heruntergeladen, falls sie im ursprünglichen Lauf verwendet wurden. Der wiederaufgenommene Lauf setzt die Protokollierung des bestehenden Experiments in der Comet-Benutzeroberfläche fort.
python train.py \--resume "comet://"
YOLOv5 ist auch in den Optimizer von Comet integriert, so dass Hyperparameter-Sweeps in der Comet-Benutzeroberfläche einfach visualisiert werden können.
Um den Comet Optimizer zu konfigurieren, müssen Sie eine JSON-Datei mit den Informationen über den Sweep erstellen.
Eine Beispieldatei finden Sie in:
utils/loggers/comet/optimizer_config.json python utils/loggers/comet/hpo.py \--comet_optimizer_config "utils/loggers/comet/optimizer_config.json"
Das Skript hpo.py akzeptiert die gleichen Argumente wie train.py. Wenn Sie zusätzliche Argumente an Ihren Sweep übergeben möchten, fügen Sie diese 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
comet optimizer -j utils/loggers/comet/hpo.py \utils/loggers/comet/optimizer_config.json"
Comet bietet viele Möglichkeiten, die Ergebnisse Ihres Sweeps zu visualisieren. Werfen Sie hier einen Blick auf ein Projekt mit einem abgeschlossenen Sweep:
Nutzen Sie unsere Integration mit Comet, um Ihre YOLOv5-Modelle zu verwalten, zu visualisieren und zu optimieren - von Trainingsläufen bis zur Produktionsüberwachung.
Und natürlich können Sie der Ultralytics Community beitreten - ein Ort, an dem Sie Fragen stellen und Tipps zu YOLOv5-Schulung, -Validierung und -Einsatz austauschen können.