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

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:
Dieser Leitfaden beschreibt, wie Sie YOLOv5 mit Comet verwenden können.
Sind Sie also bereit, Ihre Experimente in Echtzeit track ? Legen wir los!
Pip installieren comet
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.
export COMET COMET# Dies wird standardmäßig aufyolov5' 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 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.

Sehen Sie sich hier ein Beispiel für einen abgeschlossenen Durchlauf an.
Oder noch besser, probieren Sie es selbst in diesem Colab Notebook aus.
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# 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.
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
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
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
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
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

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

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

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.

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://"
YOLOv5 ist auch in den Optimizer von Comet integriert, so dass Hyperparameter-Sweeps in der Comet 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 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
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:

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.