Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten

Wie man Ultralytics YOLOv5 mit Comet verwendet

Ultralytics

5 Min. Lesezeit

11. Oktober 2022

Entdecken Sie, wie Ultralytics mit Comet zusammenarbeitet, um das Ultralytics YOLOv5 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, Cometentwickelt Tools, die Datenwissenschaftlern, Ingenieuren und Teamleitern helfen, maschinelles Lernen und Deep-Learning-Modelle 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 track über Ihre Arbeit verlieren, und erleichtert die gemeinsame Nutzung von Ergebnissen und die Zusammenarbeit in Teams jeder Größe!

YOLOv5 ist ein hervorragender Ausgangspunkt 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.

Die Integration von Comet und YOLOv5 bietet 3 Hauptfunktionen:

  • Automatische Protokollierung und benutzerdefinierte Protokollierungsfunktionen
  • Speichern von Datensätzen und Modellen als Artefakte für Debugging und Reproduzierbarkeit
  • Organisieren Sie Ihre Ansicht mit den benutzerdefinierten Bedienfeldern von Comet


Dieser Leitfaden beschreibt, wie Sie YOLOv5 mit Comet verwenden können.

Sind Sie also bereit, Ihre Experimente in Echtzeit track ? Legen wir los!

Erste Schritte

1. Comet installieren

Pip installieren comet

2. Comet konfigurieren

Es gibt zwei Möglichkeiten, Comet mit YOLOv5.

Sie können Ihre Anmeldedaten entweder über Umgebungsvariablen festlegen oder eine Dateicomet.config in Ihrem Arbeitsverzeichnis erstellen und dort Ihre Anmeldedaten festlegen.


Umgebungsvariablen

export COMET COMET# Dies wird standardmäßig aufyolov5' gesetzt


Comet

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

3. Das Trainingsskript ausführen

# Trainiere YOLOv5s auf COCO128 für 5 Epochenspython train.py --img 640 --batch 16 --epochs 5 --data coco128yaml --weights yolov5s.pt

Das ist alles!

Comet protokolliert automatisch Ihre Hyperparameter, Befehlszeilenargumente, Trainings- und Validierungsmetriken. Sie können Ihre Läufe in der Comet visualisieren und analysieren.

Experimente mit YOLOv5 in Comet Dashboard

Probieren Sie es selbst aus!

Sehen Sie sich hier ein Beispiel für einen abgeschlossenen Durchlauf an.

Oder noch besser, probieren Sie es selbst in diesem Colab Notebook aus.

Automatische Protokollierung

Comet protokolliert standardmäßig die folgenden Punkte:

Metriken

  • Box Loss, Object Loss und Classification Loss für die Trainings- und Validierungsdaten
  • mAP.5, mAP.5:0.95 Metriken für die Validierungsdaten
  • Präzision und Recall für die Validierungsdaten

Parameter

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

Visualisierungen

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

Comet konfigurieren

Comet kann so konfiguriert werden, dass zusätzliche Daten durch Befehlszeilenflags, die an das Trainingsskript übergeben werden, oder durch Umgebungsvariablen aufgezeichnet werden.

export COMET# Legen Sie fest, ob Comet im "Online"- oder "Offline"-Modus laufen soll. Standardwert ist onlineexport COMET#Legen Sie den Namen für das gespeicherte Modell fest. Standardwert ist yolov5export COMET# Legt fest, ob die Protokollierung einer Comet deaktiviert werden soll. Standardwert ist trueexport COMET# Legt fest, wie viele Bildvorhersagen insgesamt in Comet protokolliert werden sollen. Der Standardwert ist 100.export COMET# Legt fest, dass am Ende des Trainings Bewertungsmetriken für jede erkannte Klasse protokolliert werden. Der Standardwert ist falseexport COMET# Legen Sie dies fest, wenn Sie das Training von einem anderen Prüfpunkt aus fortsetzen möchten. Der Standardwert ist 'last.pt'export COMET# Legen Sie dies fest, wenn Sie Trainingsmetriken auf Batch-Ebene protokollieren möchten. Der Standardwert ist false. export COMET# Setzen Sie dies auf false, um die Protokollierung von Modellvorhersagen zu deaktivieren.

Protokollierung von Kontrollpunkten mit Comet

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 coco128yaml \

--weights yolov5s.pt \

--save-period 1

Protokollieren von Modellvorhersagen

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 übergeben. Die Vorhersagen können mit Hilfe des benutzerdefinierten Comet 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 mit dem Panel.

python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--weights yolov5s.pt bbox 2

Kontrolle der Anzahl der in Comet gespeicherten Vorhersagebilder

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 erhöhen oder verringern.

env COMET train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--weights yolov5s.pt bbox 1

Protokollierung von Metriken auf Klassenebene

Verwenden Sie die Umgebungsvariable COMET, um mAP, Precision, Recall und f1 für jede Klasse zu protokollieren.

env COMET python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--weights yolov5s.pt

Hochladen eines Datensatzes in Comet Artifacts

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 beschrieben. Die yaml muss das gleiche Format wie die Datei coco128yaml haben.

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

Sie finden den hochgeladenen Datensatz auf der Registerkarte Artefakte in Ihrem Comet

Registerkarte Comet ", YOLOv5

Sie können eine Vorschau der Daten direkt in der Comet anzeigen.

Datenvorschau in Comet, YOLOv5

Artefakte sind versioniert und unterstützen auch das Hinzufügen von Metadaten über den Datensatz. Comet protokolliert automatisch die Metadaten aus Ihrer yaml .

Log-Metadaten aus YAML-Datei in Comet, YOLOv5

Verwenden eines gespeicherten Artifacts

Wenn Sie einen Datensatz aus Comet Artifacts verwenden möchten, setzen Sie die Pfadvariable in Ihrer yaml so, dass sie auf die folgende Artefakt-Ressourcen-URL zeigt.

# Inhalt der Datei artifactyaml Pfad:comet:///:"

Übergeben Sie diese Datei dann auf folgende Weise an Ihr Trainingsskript:

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

Mithilfe von Artefakten können Sie auch den Verlauf der Daten track , die Ihren Experimentier-Workflow durchlaufen. Hier sehen Sie ein Diagramm, das Ihnen alle Experimente anzeigt, die Ihren hochgeladenen Datensatz verwendet haben.

Arbeitsablauf bei Comet , YOLOv5

Wiederaufnahme eines Trainingslaufs

Wenn Ihr Trainingslauf aus irgendeinem Grund unterbrochen wird, z. B. bei einer gestörten Internetverbindung, können Sie den Lauf mit Hilfe des Fortsetzungsflags und des Comet 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 werden heruntergeladen, falls sie im ursprünglichen Lauf verwendet wurden. Der wiederaufgenommene Lauf setzt die Protokollierung des bestehenden Experiments in der Comet fort.

python train.py \--resumecomet://"

Hyperparametersuche mit dem Comet

YOLOv5 ist auch in den Optimizer von Comet integriert, so dass Hyperparameter-Sweeps in der Comet einfach visualisiert werden können.

Konfigurieren eines Optimizer-Sweeps

Um den Comet Optimizer zu konfigurieren, müssen Sie eine JSON-Datei mit den Informationen über den Sweep erstellen.

Eine Beispieldatei wurde bereitgestellt in:

comet.json python comet.py comet"comet.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 comet.py comet"comet.json" \--save-period 1 bbox 1

Einen Sweep parallel ausführen

comet optimizer -j comet.py comet.json"

Comet bietet viele Möglichkeiten, die Ergebnisse Ihres Sweeps zu visualisieren. Werfen Sie hier einen Blick auf ein Projekt mit einem abgeschlossenen Sweep:

Visualisierung der Sweep-Ergebnisse in Comet, YOLOv5

Bleiben Sie in Kontakt

Nutzen Sie unsere Integration mit Comet, um Ihre YOLOv5 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 , -Validierung und -Einsatz austauschen können.

Lasst uns gemeinsam die Zukunft
der KI gestalten!

Beginnen Sie Ihre Reise mit der Zukunft des maschinellen Lernens

Kostenlos starten