Zum Inhalt springen

Konfiguration

YOLO Einstellungen und Hyperparameter spielen eine entscheidende Rolle für die Leistung, Geschwindigkeit und Genauigkeit des Modells. Diese Einstellungen und Hyperparameter können das Verhalten des Modells in verschiedenen Phasen des Modellentwicklungsprozesses, einschließlich Training, Validierung und Vorhersage, beeinflussen.



Beobachten: Mastering Ultralytics YOLO : Konfiguration

Ultralytics Befehle verwenden die folgende Syntax:

Beispiel

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLO11 model from a pre-trained weights file
model = YOLO("yolo11n.pt")

# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)

Wo:

Standard ARG Werte werden auf dieser Seite aus dem cfg/defaults.yaml Datei.

Aufgaben

YOLO Modelle können für eine Vielzahl von Aufgaben verwendet werden, darunter Erkennung, Segmentierung, Klassifizierung und Pose. Diese Aufgaben unterscheiden sich durch die Art der Ausgabe, die sie erzeugen, und durch das spezifische Problem, das sie lösen sollen.

  • Erkennen: Zur Identifizierung und Lokalisierung von Objekten oder Bereichen von Interesse in einem Bild oder Video.
  • Segment: Zur Unterteilung eines Bildes oder Videos in Regionen oder Pixel, die verschiedenen Objekten oder Klassen entsprechen.
  • Klassifizieren: Zur Vorhersage der Klassenbezeichnung eines Eingabebildes.
  • Pose: Zur Identifizierung von Objekten und zur Schätzung ihrer Hauptpunkte in einem Bild oder Video.
  • OBB: Orientierte (d.h. gedrehte) Bounding Boxes, geeignet für Satellitenbilder oder medizinische Bilder.
Argument Standard Beschreibung
task 'detect' Gibt die auszuführende Aufgabe YOLO an. Die Optionen umfassen detect für Objekterkennung, segment für die Segmentierung, classify für die Klassifizierung, pose für die Posenschätzung und obb für orientierte Begrenzungsrahmen. Jede Aufgabe ist auf bestimmte Arten von Ausgaben und Problemen bei der Bild- und Videoanalyse zugeschnitten.

Aufgaben-Leitfaden

Modi

YOLO Modelle können in verschiedenen Modi verwendet werden, je nach dem spezifischen Problem, das Sie zu lösen versuchen. Diese Modi umfassen:

  • Trainieren: Zum Trainieren eines YOLO11 Modells auf einem benutzerdefinierten Datensatz.
  • Val: Zur Validierung eines YOLO11 Modells, nachdem es trainiert wurde.
  • Vorhersagen: Zur Erstellung von Vorhersagen anhand eines trainierten YOLO11 Modells für neue Bilder oder Videos.
  • Exportieren: Zum Exportieren eines YOLO11 Modells in ein Format, das für die Bereitstellung verwendet werden kann.
  • Verfolgen: Zur Verfolgung von Objekten in Echtzeit unter Verwendung eines YOLO11 Modells.
  • Benchmarking: Zum Benchmarking der Geschwindigkeit und Genauigkeit der Exporte von YOLO11 (ONNX, TensorRT, etc.).
Argument Standard Beschreibung
mode 'train' Legt den Modus fest, in dem das Modell YOLO arbeitet. Die Optionen sind train für das Modelltraining, val für die Validierung, predict für die Inferenz auf neue Daten, export für die Konvertierung von Modellen in Bereitstellungsformate, track für die Objektverfolgung, und benchmark für die Leistungsbewertung. Jeder Modus ist für verschiedene Phasen des Modelllebenszyklus konzipiert, von der Entwicklung bis zur Bereitstellung.

Leitfaden Modi

Zug-Einstellungen

Die Trainingseinstellungen für YOLO Modelle umfassen verschiedene Hyperparameter und Konfigurationen, die während des Trainingsprozesses verwendet werden. Diese Einstellungen beeinflussen die Leistung, Geschwindigkeit und Genauigkeit des Modells. Zu den wichtigsten Trainingseinstellungen gehören die Stapelgröße, die Lernrate, das Momentum und der Gewichtsabfall. Auch die Wahl des Optimierers, der Verlustfunktion und der Zusammensetzung des Trainingsdatensatzes kann sich auf den Trainingsprozess auswirken. Eine sorgfältige Abstimmung und das Experimentieren mit diesen Einstellungen sind entscheidend für die Optimierung der Leistung.

Argument Standard Beschreibung
model None Gibt die Modelldatei für das Training an. Akzeptiert einen Pfad zu entweder einer .pt vortrainiertes Modell oder ein .yaml Konfigurationsdatei. Unerlässlich für die Definition der Modellstruktur oder die Initialisierung von Gewichten.
data None Pfad zur Konfigurationsdatei des Datensatzes (z. B., coco8.yaml). Diese Datei enthält datensatzspezifische Parameter, einschließlich der Pfade zu den Trainings- und Validierungsdaten, Klassennamen und Anzahl der Klassen.
epochs 100 Gesamtzahl der Trainingsepochen. Jede Epoche stellt einen vollständigen Durchlauf durch den gesamten Datensatz dar. Die Anpassung dieses Wertes kann sich auf die Trainingsdauer und die Modellleistung auswirken.
time None Maximale Trainingszeit in Stunden. Falls festgelegt, übersteuert dies den Wert epochs Argument, so dass das Training nach der angegebenen Dauer automatisch beendet wird. Nützlich für zeitlich eingeschränkte Trainingsszenarien.
patience 100 Anzahl der Epochen, die ohne Verbesserung der Validierungsmetriken abgewartet werden sollen, bevor das Training vorzeitig beendet wird. Hilft, eine Überanpassung zu verhindern, indem das Training abgebrochen wird, wenn die Leistung nicht mehr ausreicht.
batch 16 Größe der Chargemit drei Modi: als Ganzzahl (z. B., batch=16), Auto-Modus für 60% GPU Speicherauslastung (batch=-1), oder Auto-Modus mit festgelegtem Nutzungsanteil (batch=0.70).
imgsz 640 Zielbildgröße für das Training. Alle Bilder werden auf diese Größe gebracht, bevor sie in das Modell eingespeist werden. Beeinflusst die Modellgenauigkeit und den Rechenaufwand.
save True Ermöglicht das Speichern von Trainingskontrollpunkten und endgültigen Modellgewichten. Nützlich für die Wiederaufnahme des Trainings oder den Einsatz des Modells.
save_period -1 Häufigkeit der Speicherung von Modellprüfpunkten, angegeben in Epochen. Ein Wert von -1 deaktiviert diese Funktion. Nützlich zum Speichern von Zwischenmodellen während langer Trainingssitzungen.
cache False Ermöglicht die Zwischenspeicherung von Datensatzbildern im Speicher (True/ram), auf der Festplatte (disk), oder deaktiviert sie (False). Verbessert die Trainingsgeschwindigkeit durch Verringerung der Festplattenein- und -ausgabe auf Kosten einer erhöhten Speichernutzung.
device None Gibt das/die Rechengerät(e) für das Training an: eine einzelne GPU (device=0), mehrere GPUs (device=0,1), CPU (device=cpu), oder MPS für Apple-Silizium (device=mps).
workers 8 Anzahl der Arbeits-Threads für das Laden von Daten (pro RANK wenn Multi-GPU Training). Beeinflusst die Geschwindigkeit der Datenvorverarbeitung und der Einspeisung in das Modell, besonders nützlich in MultiGPU Setups.
project None Name des Projektverzeichnisses, in dem die Trainingsergebnisse gespeichert werden. Ermöglicht die organisierte Speicherung verschiedener Experimente.
name None Name des Trainingslaufs. Wird zur Erstellung eines Unterverzeichnisses im Projektordner verwendet, in dem Trainingsprotokolle und Ausgaben gespeichert werden.
exist_ok False Bei "True" kann ein vorhandenes Projekt/Namensverzeichnis überschrieben werden. Nützlich für iterative Experimente, ohne vorherige Ausgaben manuell löschen zu müssen.
pretrained True Legt fest, ob das Training mit einem vorher trainierten Modell beginnen soll. Kann ein boolescher Wert oder ein String-Pfad zu einem bestimmten Modell sein, aus dem die Gewichte geladen werden sollen. Erhöht die Trainingseffizienz und die Modellleistung.
optimizer 'auto' Auswahl des Optimierers für die Ausbildung. Die Optionen umfassen SGD, Adam, AdamW, NAdam, RAdam, RMSProp usw., oder auto für die automatische Auswahl auf der Grundlage der Modellkonfiguration. Beeinflusst die Konvergenzgeschwindigkeit und Stabilität.
seed 0 Legt den zufälligen Seed für das Training fest, um die Reproduzierbarkeit der Ergebnisse bei verschiedenen Läufen mit denselben Konfigurationen zu gewährleisten.
deterministic True Erzwingt die Verwendung deterministischer Algorithmen, was die Reproduzierbarkeit sicherstellt, aber aufgrund der Beschränkung auf nicht-deterministische Algorithmen Leistung und Geschwindigkeit beeinträchtigen kann.
single_cls False Behandelt beim Training alle Klassen in Mehrklassendatensätzen als eine einzige Klasse. Nützlich für binäre Klassifizierungsaufgaben oder wenn der Schwerpunkt eher auf der Anwesenheit von Objekten als auf der Klassifizierung liegt.
rect False Ermöglicht rechteckiges Training, wobei die Zusammensetzung der Stapel für minimale Polsterung optimiert wird. Kann die Effizienz und Geschwindigkeit verbessern, kann aber die Modellgenauigkeit beeinträchtigen.
cos_lr False Verwendet einen Kosinus-Lernratenplaner, der die Lernrate anhand einer Kosinuskurve über Epochen hinweg anpasst. Hilft bei der Verwaltung der Lernrate für eine bessere Konvergenz.
close_mosaic 10 Deaktiviert die Mosaikdatenerweiterung in den letzten N Epochen, um das Training vor dem Abschluss zu stabilisieren. Die Einstellung 0 deaktiviert diese Funktion.
resume False Setzt das Training ab dem letzten gespeicherten Kontrollpunkt fort. Lädt automatisch Modellgewichte, Optimierungsstatus und Epochenzahl und setzt das Training nahtlos fort.
amp True Ermöglicht automatisches Mixed-Precision-Training (AMP), wodurch die Speichernutzung reduziert und das Training möglicherweise mit minimalen Auswirkungen auf die Genauigkeit beschleunigt wird.
fraction 1.0 Gibt den Teil des Datensatzes an, der für das Training verwendet werden soll. Ermöglicht das Training auf einer Teilmenge des vollständigen Datensatzes, was für Experimente oder bei begrenzten Ressourcen nützlich ist.
profile False Ermöglicht die Erstellung von Profilen der Geschwindigkeiten ONNX und TensorRT während des Trainings, was für die Optimierung der Modellbereitstellung nützlich ist.
freeze None Friert die ersten N Schichten des Modells oder bestimmte Schichten nach Index ein und reduziert so die Anzahl der trainierbaren Parameter. Nützlich für die Feinabstimmung oder das Transfer-Lernen.
lr0 0.01 Anfängliche Lernrate (d.h. SGD=1E-2, Adam=1E-3) . Die Anpassung dieses Wertes ist für den Optimierungsprozess von entscheidender Bedeutung, da er beeinflusst, wie schnell die Modellgewichte aktualisiert werden.
lrf 0.01 Endgültige Lernrate als Bruchteil der Anfangsrate = (lr0 * lrf), die in Verbindung mit Schedulern verwendet werden, um die Lernrate im Laufe der Zeit anzupassen.
momentum 0.937 Momentumfaktor für SGD oder beta1 für Adam-Optimierer, der die Einbeziehung vergangener Gradienten in die aktuelle Aktualisierung beeinflusst.
weight_decay 0.0005 L2-Regularisierungsterm, der große Gewichte bestraft, um eine Überanpassung zu verhindern.
warmup_epochs 3.0 Anzahl der Epochen zum Aufwärmen der Lernrate, wobei die Lernrate schrittweise von einem niedrigen Wert auf die anfängliche Lernrate erhöht wird, um das Training frühzeitig zu stabilisieren.
warmup_momentum 0.8 Anfangsschwung für die Aufwärmphase, der sich im Laufe der Aufwärmphase allmählich an den eingestellten Schwung anpasst.
warmup_bias_lr 0.1 Lernrate für Bias-Parameter während der Aufwärmphase, um das Modelltraining in den ersten Epochen zu stabilisieren.
box 7.5 Gewicht der Box-Verlustkomponente in der Verlustfunktion, das angibt, wie viel Wert auf die genaue Vorhersage der Bounding-Box-Koordinaten gelegt wird.
cls 0.5 Gewicht des Klassifizierungsverlusts in der Gesamtverlustfunktion, das die Bedeutung der korrekten Klassenvorhersage im Vergleich zu anderen Komponenten bestimmt.
dfl 1.5 Gewicht des fokalen Verteilungsverlustes, der in bestimmten Versionen von YOLO für eine feinere Klassifizierung verwendet wird.
pose 12.0 Gewicht des Pose-Verlustes in Modellen, die für die Pose-Schätzung trainiert wurden, was den Schwerpunkt auf die genaue Vorhersage der Pose-Keypoints legt.
kobj 2.0 Gewichtung des Objektivitätsverlustes von Schlüsselpunkten in Modellen zur Posenschätzung, wobei die Erkennungssicherheit mit der Posengenauigkeit abgeglichen wird.
label_smoothing 0.0 Die Glättung von Beschriftungen, die harte Beschriftungen zu einer Mischung aus der Zielbeschriftung und einer gleichmäßigen Verteilung über die Beschriftungen abmildert, kann die Verallgemeinerung verbessern.
nbs 64 Nominale Chargengröße für die Normalisierung des Verlustes.
overlap_mask True Legt fest, ob die Objektmasken für das Training zu einer einzigen Maske zusammengeführt oder für jedes Objekt getrennt gehalten werden sollen. Im Falle einer Überlappung wird die kleinere Maske beim Zusammenführen über die größere Maske gestülpt.
mask_ratio 4 Downsample-Verhältnis für Segmentierungsmasken, das sich auf die Auflösung der beim Training verwendeten Masken auswirkt.
dropout 0.0 Dropout-Rate für die Regularisierung bei Klassifizierungsaufgaben, die eine Überanpassung durch zufälliges Auslassen von Einheiten während des Trainings verhindert.
val True Ermöglicht die Validierung während des Trainings, so dass die Leistung des Modells in regelmäßigen Abständen anhand eines separaten Datensatzes bewertet werden kann.
plots False Erzeugt und speichert Diagramme von Trainings- und Validierungsmetriken sowie Vorhersagebeispiele, die einen visuellen Einblick in die Modellleistung und den Lernfortschritt geben.

Hinweis zu den Einstellungen der Chargengröße

Die batch Argument kann auf drei Arten konfiguriert werden:

  • Feste Chargengröße: Setzen Sie einen ganzzahligen Wert (z.B., batch=16), wobei die Anzahl der Bilder pro Stapel direkt angegeben wird.
  • Auto-Modus (60% GPU Speicher): Verwenden Sie batch=-1 um die Stapelgröße automatisch so anzupassen, dass der Speicher zu etwa 60 % genutzt wird CUDA .
  • Automatischer Modus mit Auslastungsanteil: Stellen Sie einen Bruchwert ein (z.B., batch=0.70), um die Stapelgröße auf der Grundlage des angegebenen Anteils der GPU Speichernutzung anzupassen.

Zugführer

Einstellungen vorhersagen

Die Vorhersageeinstellungen für YOLO Modelle umfassen eine Reihe von Hyperparametern und Konfigurationen, die die Leistung, Geschwindigkeit und Genauigkeit des Modells bei der Inferenz auf neue Daten beeinflussen. Eine sorgfältige Abstimmung und das Experimentieren mit diesen Einstellungen sind unerlässlich, um eine optimale Leistung für eine bestimmte Aufgabe zu erzielen. Zu den wichtigsten Einstellungen gehören der Konfidenzschwellenwert, der Schwellenwert für die Nicht-Maximum-Unterdrückung (NMS) und die Anzahl der berücksichtigten Klassen. Weitere Faktoren, die sich auf den Vorhersageprozess auswirken, sind die Größe und das Format der Eingabedaten, das Vorhandensein zusätzlicher Merkmale wie Masken oder mehrere Labels pro Box sowie die spezielle Aufgabe, für die das Modell eingesetzt wird.

Argumente für Schlussfolgerungen:

Argument Typ Standard Beschreibung
source str 'ultralytics/assets' Gibt die Datenquelle für die Inferenz an. Dies kann ein Bildpfad, eine Videodatei, ein Verzeichnis, eine URL oder eine Geräte-ID für Live-Feeds sein. Unterstützt eine breite Palette von Formaten und Quellen und ermöglicht so eine flexible Anwendung für verschiedene Arten von Eingaben.
conf float 0.25 Legt die minimale Vertrauensschwelle für Erkennungen fest. Objekte, die mit einer Konfidenzschwelle unterhalb dieser Schwelle erkannt werden, werden nicht berücksichtigt. Die Anpassung dieses Wertes kann dazu beitragen, Fehlalarme zu reduzieren.
iou float 0.7 Intersection Over Union (IoU)-Schwellenwert für Non-Maximum Suppression (NMS). Niedrigere Werte führen zu weniger Erkennungen, da überlappende Boxen eliminiert werden, was zur Reduzierung von Duplikaten nützlich ist.
imgsz int or tuple 640 Bestimmt die Bildgröße für die Inferenz. Kann eine einzelne ganze Zahl sein 640 für quadratische Größenänderungen oder ein Tupel (Höhe, Breite). Eine korrekte Größenanpassung kann die Erkennung verbessern Genauigkeit und Verarbeitungsgeschwindigkeit.
half bool False Ermöglicht die Inferenz mit halber Genauigkeit (FP16), was die Modellinferenz auf unterstützten GPUs mit minimalen Auswirkungen auf die Genauigkeit beschleunigen kann.
device str None Gibt das Gerät für die Inferenz an (z.B., cpu, cuda:0 oder 0). Ermöglicht dem Benutzer die Auswahl zwischen CPU, einem bestimmten GPU oder anderen Rechengeräten für die Modellausführung.
max_det int 300 Maximal zulässige Anzahl von Erkennungen pro Bild. Begrenzt die Gesamtzahl der Objekte, die das Modell in einer einzigen Schlussfolgerung erkennen kann, um übermäßige Ausgaben in dichten Szenen zu verhindern.
vid_stride int 1 Frame Stride für Videoeingänge. Ermöglicht das Überspringen von Bildern in Videos, um die Verarbeitung auf Kosten der zeitlichen Auflösung zu beschleunigen. Bei einem Wert von 1 wird jedes Bild verarbeitet, bei höheren Werten werden Bilder übersprungen.
stream_buffer bool False Legt fest, ob eingehende Bilder für Videostreams in eine Warteschlange gestellt werden sollen. Wenn FalseWenn `True', werden alte Frames übersprungen, um neue Frames unterzubringen (optimiert für Echtzeitanwendungen). Bei "True" werden neue Frames in einem Puffer in eine Warteschlange gestellt, wodurch sichergestellt wird, dass keine Frames übersprungen werden, was jedoch zu Latenzzeiten führt, wenn die FPS der Inferenz niedriger sind als die FPS des Streams.
visualize bool False Aktiviert die Visualisierung von Modellmerkmalen während der Inferenz und bietet Einblicke in das, was das Modell "sieht". Nützlich für die Fehlersuche und Modellinterpretation.
augment bool False Ermöglicht die Testzeit-Erweiterung (TTA) für Vorhersagen, wodurch die Robustheit der Erkennung auf Kosten der Schlussfolgerungsgeschwindigkeit verbessert werden kann.
agnostic_nms bool False Ermöglicht die klassenunabhängige Non-Maximum Suppression (NMS), die überlappende Boxen verschiedener Klassen zusammenführt. Nützlich in Szenarien der Mehrklassenerkennung, in denen es häufig zu Klassenüberschneidungen kommt.
classes list[int] None Filtert Vorhersagen auf einen Satz von Klassen-IDs. Nur Erkennungen, die zu den angegebenen Klassen gehören, werden zurückgegeben. Nützlich für die Konzentration auf relevante Objekte bei Erkennungsaufgaben mit mehreren Klassen.
retina_masks bool False Gibt hochauflösende Segmentierungsmasken zurück. Die zurückgegebenen Masken (masks.data) stimmen mit der ursprünglichen Bildgröße überein, wenn sie aktiviert sind. Wenn sie deaktiviert sind, haben sie die bei der Inferenz verwendete Bildgröße.
embed list[int] None Gibt die Ebenen an, aus denen Merkmalsvektoren oder Einbettungen extrahiert werden sollen. Nützlich für nachgelagerte Aufgaben wie Clustering oder Ähnlichkeitssuche.
project str None Name des Projektverzeichnisses, in dem die Vorhersageergebnisse gespeichert werden, wenn save aktiviert ist.
name str None Name des Vorhersagelaufs. Wird zur Erstellung eines Unterverzeichnisses im Projektordner verwendet, in dem die Vorhersageergebnisse gespeichert werden, wenn save aktiviert ist.

Argumente für die Visualisierung:

Argument Typ Standard Beschreibung
show bool False Wenn Truezeigt die kommentierten Bilder oder Videos in einem Fenster an. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder des Testens.
save bool False oder True Ermöglicht das Speichern der kommentierten Bilder oder Videos in einer Datei. Nützlich für die Dokumentation, weitere Analysen oder die Weitergabe von Ergebnissen. Standardmäßig True bei Verwendung von CLI und False bei Verwendung in Python.
save_frames bool False Speichert bei der Verarbeitung von Videos einzelne Frames als Bilder. Nützlich zum Extrahieren bestimmter Frames oder für eine detaillierte Frame-by-Frame-Analyse.
save_txt bool False Speichert die Erkennungsergebnisse in einer Textdatei, die das folgende Format hat [class] [x_center] [y_center] [width] [height] [confidence]. Nützlich für die Integration mit anderen Analysetools.
save_conf bool False Enthält Konfidenzwerte in den gespeicherten Textdateien. Verbessert die für die Nachbearbeitung und Analyse verfügbaren Details.
save_crop bool False Speichert abgeschnittene Bilder von Erkennungen. Nützlich für die Erweiterung von Datensätzen, die Analyse oder die Erstellung gezielter Datensätze für bestimmte Objekte.
show_labels bool True Zeigt Beschriftungen für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte.
show_conf bool True Zeigt neben der Kennzeichnung auch den Konfidenzwert für jede Erkennung an. Gibt einen Einblick in die Sicherheit des Modells für jede Erkennung.
show_boxes bool True Zeichnet Begrenzungsrahmen um erkannte Objekte. Unerlässlich für die visuelle Identifizierung und Lokalisierung von Objekten in Bildern oder Videoframes.
line_width None oder int None Gibt die Linienbreite von Begrenzungsrahmen an. Wenn Nonewird die Linienbreite automatisch an die Bildgröße angepasst. Bietet visuelle Anpassung für Klarheit.

Leitfaden vorhersagen

Validierungseinstellungen

Die Validierungseinstellungen für YOLO Modelle umfassen verschiedene Hyperparameter und Konfigurationen, mit denen die Leistung des Modells auf einem Validierungsdatensatz bewertet wird. Diese Einstellungen beeinflussen die Leistung, Geschwindigkeit und Genauigkeit des Modells. Zu den üblichen YOLO Validierungseinstellungen gehören die Stapelgröße, die Häufigkeit der Validierung während des Trainings und die Metriken für die Leistungsbewertung. Weitere Faktoren, die den Validierungsprozess beeinflussen, sind die Größe und Zusammensetzung des Validierungsdatensatzes sowie die spezifische Aufgabe, für die das Modell eingesetzt wird.

Argument Typ Standard Beschreibung
data str None Gibt den Pfad zur Dataset-Konfigurationsdatei an (z. B., coco8.yaml). Diese Datei enthält Pfade zu Validierungsdaten, Klassennamen und Anzahl der Klassen.
imgsz int 640 Bestimmt die Größe der Eingabebilder. Alle Bilder werden vor der Verarbeitung auf diese Größe angepasst.
batch int 16 Legt die Anzahl der Bilder pro Stapel fest. verwenden -1 für AutoBatch, das sich automatisch an die Verfügbarkeit des GPU Speichers anpasst.
save_json bool False Wenn Truespeichert die Ergebnisse in einer JSON-Datei zur weiteren Analyse oder Integration in andere Tools.
save_hybrid bool False Wenn Truespeichert eine hybride Version von Beschriftungen, die ursprüngliche Annotationen mit zusätzlichen Modellvorhersagen kombiniert.
conf float 0.001 Legt die minimale Vertrauensschwelle für Erkennungen fest. Erkennungen, deren Konfidenz unter diesem Schwellenwert liegt, werden verworfen.
iou float 0.6 Legt den Schwellenwert für die Überschneidungsunterdrückung (IoU) für die Nicht-Maximum-Unterdrückung (NMS) fest. Hilft bei der Reduzierung von Duplikaterkennungen.
max_det int 300 Begrenzt die maximale Anzahl von Erkennungen pro Bild. Nützlich in dichten Szenen, um übermäßige Erkennungen zu vermeiden.
half bool True Ermöglicht Berechnungen mit halber Genauigkeit (FP16), wodurch die Speichernutzung reduziert und die Geschwindigkeit bei minimalen Auswirkungen auf die Genauigkeit erhöht werden kann.
device str None Gibt das Gerät für die Validierung an (cpu, cuda:0, usw.). Ermöglicht Flexibilität bei der Nutzung von CPU oder GPU Ressourcen.
dnn bool False Wenn Trueverwendet die OpenCV DNN-Modul für ONNX Modellinferenz, das eine Alternative zu PyTorch Inferenzmethoden.
plots bool False Bei Einstellung auf Trueerzeugt und speichert Diagramme der Vorhersagen im Vergleich zur Grundwahrheit, um die Leistung des Modells visuell zu bewerten.
rect bool True Wenn Trueverwendet die rechteckige Inferenz für die Stapelverarbeitung, wodurch das Auffüllen reduziert und die Geschwindigkeit und Effizienz potenziell erhöht werden kann.
split str val Bestimmt den für die Validierung zu verwendenden Datensatzsplit (val, test, oder train). Ermöglicht Flexibilität bei der Auswahl des Datensegments für die Leistungsbewertung.
project str None Name des Projektverzeichnisses, in dem die Validierungsergebnisse gespeichert werden.
name str None Name des Validierungslaufs. Wird zur Erstellung eines Unterverzeichnisses im Projektordner verwendet, in dem die Validierungsprotokolle und -ausgaben gespeichert werden.

Eine sorgfältige Abstimmung und das Experimentieren mit diesen Einstellungen sind entscheidend, um eine optimale Leistung auf dem Validierungsdatensatz zu gewährleisten und eine Überanpassung zu erkennen und zu verhindern.

Val-Führer

Einstellungen exportieren

Die Exporteinstellungen für YOLO Modelle umfassen Konfigurationen und Optionen, die sich auf das Speichern oder Exportieren des Modells zur Verwendung in verschiedenen Umgebungen oder Plattformen beziehen. Diese Einstellungen können sich auf die Leistung, Größe und Kompatibilität des Modells mit verschiedenen Systemen auswirken. Zu den wichtigsten Exporteinstellungen gehören das Dateiformat des exportierten Modells (z. B. ONNX, TensorFlow SavedModel ), das Zielgerät (z. B. CPU, GPU) und zusätzliche Funktionen wie Masken oder mehrere Beschriftungen pro Box. Der Exportprozess kann auch von der spezifischen Aufgabe des Modells und den Anforderungen oder Einschränkungen der Zielumgebung oder -plattform beeinflusst werden.

Argument Typ Standard Beschreibung
format str 'torchscript' Zielformat für das exportierte Modell, z. B. 'onnx', 'torchscript', 'tensorflow'oder andere, die die Kompatibilität mit verschiedenen Einsatzumgebungen festlegen.
imgsz int oder tuple 640 Gewünschte Bildgröße für die Modelleingabe. Kann eine ganze Zahl für quadratische Bilder oder ein Tupel sein (height, width) für bestimmte Abmessungen.
keras bool False Ermöglicht den Export in das Keras-Format für TensorFlow SavedModel und bietet Kompatibilität mit TensorFlow und APIs.
optimize bool False Wendet beim Export nach TorchScript eine Optimierung für mobile Geräte an, wodurch die Modellgröße reduziert und die Leistung verbessert werden kann.
half bool False Ermöglicht FP16-Quantisierung (mit halber Genauigkeit), wodurch die Modellgröße reduziert und die Inferenz auf unterstützter Hardware möglicherweise beschleunigt wird.
int8 bool False Aktiviert die INT8-Quantisierung, wodurch das Modell weiter komprimiert und die Inferenz mit minimalem Genauigkeitsverlust beschleunigt wird, vor allem für Randgeräte.
dynamic bool False Ermöglicht dynamische Eingabegrößen für die Exporte von ONNX, TensorRT und OpenVINO , was die Flexibilität bei der Handhabung unterschiedlicher Bildgrößen erhöht.
simplify bool True Vereinfacht den Modellgraphen für ONNX Exporte mit onnxslimDadurch können Leistung und Kompatibilität verbessert werden.
opset int None Gibt die ONNX opset Version an, um die Kompatibilität mit verschiedenen ONNX Parsern und Laufzeiten zu gewährleisten. Wenn nicht festgelegt, wird die neueste unterstützte Version verwendet.
workspace float 4.0 Legt die maximale Größe des Arbeitsbereichs in GiB für TensorRT -Optimierungen fest, um ein Gleichgewicht zwischen Speichernutzung und Leistung zu schaffen.
nms bool False Fügt dem CoreML Export die Nicht-Maximum-Unterdrückung (NMS) hinzu, die für eine genaue und effiziente Nachbearbeitung der Erkennung unerlässlich ist.
batch int 1 Gibt die Größe der exportierten Modellstapelinferenz oder die maximale Anzahl der Bilder an, die das exportierte Modell gleichzeitig in predict Modus.
device str None Gibt das zu exportierende Gerät an: GPU (device=0), CPU (device=cpu), MPS für Apple-Silizium (device=mps) oder DLA für NVIDIA Jetson (device=dla:0 oder device=dla:1).

Es ist wichtig, diese Einstellungen sorgfältig zu konfigurieren, um sicherzustellen, dass das exportierte Modell für den beabsichtigten Anwendungsfall optimiert ist und in der Zielumgebung effektiv funktioniert.

Export-Leitfaden

Einstellungen zur Augmentation

Augmentierungstechniken sind wichtig, um die Robustheit und Leistung von YOLO Modellen zu verbessern, indem sie Variabilität in die Trainingsdaten einbringen und dem Modell helfen, besser auf ungesehene Daten zu generalisieren. In der folgenden Tabelle werden der Zweck und die Auswirkungen der einzelnen Erweiterungsargumente erläutert:

Argument Typ Standard Bereich Beschreibung
hsv_h float 0.015 0.0 - 1.0 Passt den Farbton des Bildes um einen Bruchteil des Farbkreises an und führt so Farbvariabilität ein. Hilft dem Modell bei der Verallgemeinerung über verschiedene Lichtverhältnisse hinweg.
hsv_s float 0.7 0.0 - 1.0 Ändert die Sättigung des Bildes um einen Bruchteil, wodurch die Intensität der Farben beeinflusst wird. Nützlich für die Simulation verschiedener Umgebungsbedingungen.
hsv_v float 0.4 0.0 - 1.0 Ändert den Wert (die Helligkeit) des Bildes um einen Bruchteil, damit das Modell unter verschiedenen Lichtverhältnissen gut funktioniert.
degrees float 0.0 -180 - +180 Dreht das Bild zufällig innerhalb des angegebenen Gradbereichs und verbessert so die Fähigkeit des Modells, Objekte in verschiedenen Ausrichtungen zu erkennen.
translate float 0.1 0.0 - 1.0 Verschiebt das Bild horizontal und vertikal um einen Bruchteil der Bildgröße und hilft so beim Erkennen von teilweise sichtbaren Objekten.
scale float 0.5 >=0.0 Skaliert das Bild mit einem Verstärkungsfaktor, um Objekte in verschiedenen Entfernungen von der Kamera zu simulieren.
shear float 0.0 -180 - +180 Schneidet das Bild um einen bestimmten Grad, um den Effekt der Betrachtung von Objekten aus verschiedenen Winkeln zu imitieren.
perspective float 0.0 0.0 - 0.001 Wendet eine zufällige perspektivische Transformation auf das Bild an, um die Fähigkeit des Modells zu verbessern, Objekte im 3D-Raum zu verstehen.
flipud float 0.0 0.0 - 1.0 Stellt das Bild mit der angegebenen Wahrscheinlichkeit auf den Kopf, wodurch die Datenvariabilität erhöht wird, ohne die Eigenschaften des Objekts zu beeinträchtigen.
fliplr float 0.5 0.0 - 1.0 Spiegelt das Bild mit der angegebenen Wahrscheinlichkeit von links nach rechts. Dies ist nützlich, um symmetrische Objekte zu lernen und die Vielfalt des Datensatzes zu erhöhen.
bgr float 0.0 0.0 - 1.0 Kehrt die Bildkanäle mit der angegebenen Wahrscheinlichkeit von RGB zu BGR um, was nützlich ist, um die Robustheit gegenüber einer falschen Kanalanordnung zu erhöhen.
mosaic float 1.0 0.0 - 1.0 Kombiniert vier Trainingsbilder zu einem einzigen und simuliert so verschiedene Szenenkompositionen und Objektinteraktionen. Äußerst effektiv für das Verständnis komplexer Szenen.
mixup float 0.0 0.0 - 1.0 Mischt zwei Bilder und ihre Beschriftungen, um ein zusammengesetztes Bild zu erzeugen. Verbessert die Verallgemeinerungsfähigkeit des Modells durch Einführung von Beschriftungsrauschen und visueller Variabilität.
copy_paste float 0.0 0.0 - 1.0 Kopiert Objekte aus einem Bild und fügt sie in ein anderes ein. Dies ist nützlich, um die Anzahl der Objektinstanzen zu erhöhen und die Objektverdeckung zu lernen.
copy_paste_mode str flip - Auswahl der Copy-Paste-Erweiterungsmethode aus den Optionen von ("flip", "mixup").
auto_augment str randaugment - Wendet automatisch eine vordefinierte Erweiterungsrichtlinie an (randaugment, autoaugment, augmix), die durch Diversifizierung der visuellen Merkmale für Klassifizierungsaufgaben optimiert werden.
erasing float 0.4 0.0 - 0.9 Löscht einen Teil des Bildes während des Klassifizierungstrainings nach dem Zufallsprinzip, damit sich das Modell bei der Erkennung auf weniger offensichtliche Merkmale konzentrieren kann.
crop_fraction float 1.0 0.1 - 1.0 Beschneidet das Klassifizierungsbild auf einen Bruchteil seiner Größe, um die zentralen Merkmale hervorzuheben und sich an den Maßstab des Objekts anzupassen, wodurch die Ablenkung durch den Hintergrund reduziert wird.

Diese Einstellungen können an die spezifischen Anforderungen des jeweiligen Datensatzes und der jeweiligen Aufgabe angepasst werden. Das Experimentieren mit verschiedenen Werten kann helfen, die optimale Augmentierungsstrategie zu finden, die zur besten Modellleistung führt.

Protokollierung, Kontrollpunkte und Plot-Einstellungen

Logging, Checkpoints, Plotten und Dateiverwaltung sind wichtige Aspekte beim Training eines YOLO Modells.

  • Protokollierung: Es ist oft hilfreich, verschiedene Metriken und Statistiken während des Trainings zu protokollieren, um den Fortschritt des Modells zu verfolgen und eventuell auftretende Probleme zu diagnostizieren. Dies kann mit einer Protokollierungsbibliothek wie TensorBoard oder durch das Schreiben von Protokollmeldungen in eine Datei erfolgen.
  • Kontrollpunkte: Es ist eine gute Praxis, während des Trainings in regelmäßigen Abständen Kontrollpunkte des Modells zu speichern. So können Sie das Training von einem früheren Punkt aus wieder aufnehmen, wenn der Trainingsprozess unterbrochen wird oder wenn Sie mit verschiedenen Trainingskonfigurationen experimentieren möchten.
  • Diagramme erstellen: Die Visualisierung der Leistung des Modells und des Trainingsfortschritts kann hilfreich sein, um zu verstehen, wie sich das Modell verhält und um mögliche Probleme zu identifizieren. Dies kann mit einer Plot-Bibliothek wie matplotlib oder durch die Erzeugung von Plots mit einer Logging-Bibliothek wie TensorBoard erfolgen.
  • Dateiverwaltung: Die Verwaltung der verschiedenen Dateien, die während des Trainingsprozesses erzeugt werden, wie z. B. Modellprüfpunkte, Protokolldateien und Diagramme, kann eine Herausforderung darstellen. Es ist wichtig, eine klare und organisierte Dateistruktur zu haben, um den Überblick über diese Dateien zu behalten und den Zugriff und die Analyse bei Bedarf zu erleichtern.

Effektive Protokollierung, Checkpointing, Plotting und Dateiverwaltung helfen Ihnen, den Fortschritt des Modells zu verfolgen und erleichtern die Fehlersuche und Optimierung des Trainingsprozesses.

Argument Standard Beschreibung
project 'runs' Gibt das Stammverzeichnis zum Speichern von Trainingsläufen an. Jeder Lauf wird in einem eigenen Unterverzeichnis innerhalb dieses Verzeichnisses gespeichert.
name 'exp' Legt den Namen des Experiments fest. Wenn nichts angegeben wird, erhöht YOLO diesen Namen automatisch für jeden Lauf, z. B., exp, exp2usw., um das Überschreiben früherer Versuche zu vermeiden.
exist_ok False Legt fest, ob ein vorhandenes Experimentierverzeichnis überschrieben werden soll, wenn bereits eines mit demselben Namen existiert. Wenn Sie dies auf True erlaubt das Überschreiben, während False verhindert dies.
plots False Steuert die Erstellung und Speicherung von Trainings- und Validierungsdiagrammen. Setzen auf True um Diagramme wie z. B. Verlustkurven zu erstellen, Präzision-Rückruf Kurven und Beispielvorhersagen. Nützlich für die visuelle Verfolgung der Modellleistung im Laufe der Zeit.
save False Ermöglicht das Speichern von Trainingskontrollpunkten und endgültigen Modellgewichten. Setzen auf True um die Modellzustände regelmäßig zu speichern, so dass das Training von diesen Kontrollpunkten aus wieder aufgenommen werden kann oder die Modelle eingesetzt werden können.

FAQ

Wie kann ich die Leistung meines YOLO Modells während des Trainings verbessern?

Die Verbesserung der Leistung des Modells YOLO beinhaltet die Abstimmung von Hyperparametern wie Stapelgröße, Lernrate, Dynamik und Gewichtsabnahme. Die Anpassung der Augmentierungseinstellungen, die Auswahl des richtigen Optimierers und die Anwendung von Techniken wie frühes Stoppen oder gemischte Präzision können ebenfalls hilfreich sein. Eine ausführliche Anleitung zu den Trainingseinstellungen finden Sie im Train Guide.

Was sind die wichtigsten Hyperparameter, die für die Genauigkeit des Modells YOLO zu berücksichtigen sind?

Zu den wichtigsten Hyperparametern, die die Genauigkeit des Modells YOLO beeinflussen, gehören:

  • Chargengröße (batch): Größere Stapelgrößen können das Training stabilisieren, benötigen aber möglicherweise mehr Speicherplatz.
  • Lernrate (lr0): Steuert die Schrittgröße für Gewichtsaktualisierungen; kleinere Raten bieten feinere Anpassungen, aber eine langsamere Konvergenz.
  • Momentum (momentum): Beschleunigt die Gradientenvektoren in die richtige Richtung und dämpft die Schwingungen.
  • Bildgröße (imgsz): Größere Bilder können die Genauigkeit verbessern, erhöhen aber die Rechenlast.

Passen Sie diese Werte auf der Grundlage Ihres Datensatzes und Ihrer Hardwarefähigkeiten an. Weitere Informationen finden Sie im Abschnitt " Zugeinstellungen ".

Wie stelle ich die Lernrate für das Training eines YOLO Modells ein?

Die Lernrate (lr0) ist entscheidend für die Optimierung. Ein üblicher Ausgangspunkt ist 0.01 für SGD oder 0.001 für Adam. Es ist wichtig, die Trainingsdaten zu überwachen und bei Bedarf anzupassen. Verwenden Sie Kosinus-Lernraten-Scheduler (cos_lr) oder Aufwärmtechniken (warmup_epochs, warmup_momentum), um die Rate während des Trainings dynamisch zu ändern. Weitere Einzelheiten finden Sie in der Zugführer.

Welches sind die Standardeinstellungen für YOLO Modelle?

Die Standardeinstellungen für Schlussfolgerungen umfassen:

  • Konfidenzschwelle (conf=0.25): Mindestvertrauen für Entdeckungen.
  • IoU-Schwellenwert (iou=0.7): Für Nicht-Maximum-Unterdrückung (NMS).
  • Bildgröße (imgsz=640): Ändert die Größe der Eingabebilder vor der Inferenz.
  • Gerät (device=None): Wählt CPU oder GPU für die Inferenz aus. Einen umfassenden Überblick finden Sie auf der Website Einstellungen vorhersagen Abschnitt und Abschnitt Leitfaden vorhersagen.

Warum sollte ich gemischtes Präzisionstraining mit YOLO Modellen verwenden?

Gemischtes Präzisionstraining, ermöglicht durch amp=TrueDadurch wird die Speichernutzung reduziert und das Training kann durch die Nutzung der Vorteile von FP16 und FP32 beschleunigt werden. Dies ist vorteilhaft für moderne Grafikprozessoren, die von Haus aus gemischte Präzision unterstützen, so dass mehr Modelle in den Speicher passen und schnellere Berechnungen ohne signifikante Genauigkeitsverluste möglich sind. Mehr darüber erfahren Sie in der Zugführer.

📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 1 Monat

Kommentare