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 beeinflussen, z. B. beim Training, der Validierung und der Vorhersage.



Pass auf: Mastering Ultralytics YOLOv8 : Konfiguration

Ultralytics Befehle verwenden die folgende Syntax:

Beispiel

yolo TASK MODE ARGS
from ultralytics import YOLO

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

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

Wo:

Standard ARG Werte werden auf dieser Seite von der cfg/defaults.yaml Datei.

Aufgaben

YOLO Modelle k├Ânnen f├╝r eine Vielzahl von Aufgaben eingesetzt werden, darunter Erkennung, Segmentierung, Klassifizierung und Pose. Diese Aufgaben unterscheiden sich durch die Art der Ergebnisse, die sie produzieren, und durch das spezifische Problem, das sie l├Âsen sollen.

  • Erkennen: Zum Identifizieren und Lokalisieren von Objekten oder Regionen 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 Eingangsbildes.
  • Pose: Zur Identifizierung von Objekten und zur Sch├Ątzung ihrer Hauptpunkte in einem Bild oder Video.
  • OBB: Orientierte (d.h. gedrehte) Bounding Boxen, die f├╝r Satelliten- oder medizinische Bilder geeignet sind.
Argument Standard Beschreibung
task 'detect' Gibt die auszuf├╝hrende YOLO Aufgabe an. Die Optionen umfassen detect f├╝r die Objekterkennung, segment f├╝r die Segmentierung, classify f├╝r die Klassifizierung, pose f├╝r die Posensch├Ątzung und OBB f├╝r orientierte Bounding Boxes. Jede Aufgabe ist auf bestimmte Arten von Ergebnissen und Problemen bei der Bild- und Videoanalyse zugeschnitten.

Aufgaben-Leitfaden

Modi

YOLO Modelle k├Ânnen in verschiedenen Modi verwendet werden, je nachdem, welches Problem du zu l├Âsen versuchst. Diese Modi umfassen:

  • Trainieren: Zum Trainieren eines YOLOv8 Modells auf einem benutzerdefinierten Datensatz.
  • Val: Zur Validierung eines YOLOv8 Modells, nachdem es trainiert worden ist.
  • Vorhersagen: F├╝r Vorhersagen anhand eines trainierten YOLOv8 Modells f├╝r neue Bilder oder Videos.
  • Exportieren: Zum Exportieren eines YOLOv8 Modells in ein Format, das f├╝r die Bereitstellung verwendet werden kann.
  • Verfolgen: Zum Verfolgen von Objekten in Echtzeit mit einem YOLOv8 Modell.
  • Benchmark: Zum Testen der Geschwindigkeit und Genauigkeit der Exporte von YOLOv8 (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 R├╝ckschl├╝sse auf neue Daten, export f├╝r die Umwandlung von Modellen in Einsatzformate, 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 zum Einsatz.

Modi-Leitfaden

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 den Trainingsprozess beeinflussen. 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. Wichtig f├╝r die Definition der Modellstruktur oder die Initialisierung der Gewichte.
data None Pfad zur Konfigurationsdatei des Datensatzes (z. B., coco8.yaml). Diese Datei enth├Ąlt datensatzspezifische Parameter, darunter Pfade zu Trainings- und Validierungsdaten, Klassennamen und die 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 die epochs Argument, so dass das Training nach der angegebenen Dauer automatisch beendet wird. N├╝tzlich f├╝r zeitlich begrenzte Trainingsszenarien.
patience 100 Anzahl der Epochen, die abgewartet werden sollen, bevor das Training vorzeitig abgebrochen wird, ohne dass sich die Validierungskennzahlen verbessern. Hilft, eine ├ťberanpassung zu verhindern, indem das Training abgebrochen wird, wenn die Leistung nicht mehr ausreicht.
batch 16 Losgr├Â├če, mit drei Modi: als ganze Zahl (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 Trainingseinheiten.
cache False Erm├Âglicht das Zwischenspeichern von Datensatzbildern im Speicher (True/ram), auf der Festplatte (disk), oder deaktiviert sie (False). Verbessert die Trainingsgeschwindigkeit, indem es die Festplattenein- und -ausgabe auf Kosten einer erh├Âhten Speichernutzung reduziert.
device None Legt die Recheneinheit(en) f├╝r das Training fest: 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 Worker-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 f├╝r die Erstellung eines Unterverzeichnisses im Projektordner verwendet, in dem die Trainingsprotokolle und -ergebnisse gespeichert werden.
exist_ok False Bei True kann ein bestehendes Projekt/Namensverzeichnis ├╝berschrieben werden. N├╝tzlich f├╝r iterative Experimente, ohne dass die vorherigen Ausgaben manuell gel├Âscht werden 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, von dem die Gewichte geladen werden sollen. Erh├Âht die Trainingseffizienz und die Leistung des Modells.
optimizer 'auto' W├Ąhle einen Optimierer f├╝r die Ausbildung. Die Optionen umfassen SGD, Adam, AdamW, NAdam, RAdam, RMSProp usw., oder auto f├╝r die automatische Auswahl auf Basis der Modellkonfiguration. Beeinflusst die Konvergenzgeschwindigkeit und Stabilit├Ąt.
verbose False Aktiviert die ausf├╝hrliche Ausgabe w├Ąhrend des Trainings und liefert detaillierte Protokolle und Fortschrittsberichte. N├╝tzlich f├╝r die Fehlersuche und die genaue ├ťberwachung des Trainingsprozesses.
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 alle Klassen in Mehrklassen-Datens├Ątzen beim Training als eine einzige Klasse. N├╝tzlich f├╝r bin├Ąre Klassifizierungsaufgaben oder wenn der Fokus eher auf der Anwesenheit von Objekten als auf der Klassifizierung liegt.
rect False Erm├Âglicht ein rechteckiges Training, bei dem die Stapelzusammensetzung f├╝r minimale Auff├╝llungen optimiert wird. Dies 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 Steuerung 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. Ein Wert von 0 deaktiviert diese Funktion.
resume False Setzt das Training ab dem letzten gespeicherten Kontrollpunkt fort. L├Ądt automatisch die Modellgewichte, den Optimierungsstatus und die Epochenzahl und setzt das Training nahtlos fort.
amp True Erm├Âglicht ein automatisches Training mit gemischter Pr├Ązision (AMP), das die Speichernutzung reduziert und das Training m├Âglicherweise beschleunigt, ohne die Genauigkeit zu beeintr├Ąchtigen.
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 gesamten Datensatzes, was f├╝r Experimente oder bei begrenzten Ressourcen n├╝tzlich ist.
profile False Erm├Âglicht die Erstellung von Profilen der Geschwindigkeiten von ONNX und TensorRT w├Ąhrend des Trainings, was f├╝r die Optimierung des Modelleinsatzes 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 Transferlernen.
lr0 0.01 Anf├Ąngliche Lernrate (d. h. SGD=1E-2, Adam=1E-3) . Die Anpassung dieses Wertes ist entscheidend f├╝r den Optimierungsprozess und beeinflusst, wie schnell die Modellgewichte aktualisiert werden.
lrf 0.01 Endg├╝ltige Lernrate als ein Bruchteil der anf├Ąnglichen Rate = (lr0 * lrf), die in Verbindung mit Schedulern verwendet werden, um die Lernrate im Laufe der Zeit anzupassen.
momentum 0.937 Momentum-Faktor 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 f├╝r das 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-Loss-Komponente in der Verlustfunktion, die bestimmt, 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 Verteilungsfokusverlustes, der in bestimmten Versionen von YOLO f├╝r eine feink├Ârnige Klassifizierung verwendet wird.
pose 12.0 Gewicht des Posenverlusts in Modellen, die f├╝r die Posensch├Ątzung trainiert wurden, was den Schwerpunkt auf die genaue Vorhersage der Posen-Keypoints legt.
kobj 2.0 Gewichtung des Objektivit├Ątsverlusts von Schl├╝sselpunkten in Modellen zur Posensch├Ątzung, die die Erkennungssicherheit mit der Posengenauigkeit in Einklang bringen.
label_smoothing 0.0 Die Gl├Ąttung von Labels, d.h. die Aufweichung harter Labels zu einer Mischung aus dem Ziel-Label und einer gleichm├Ą├čigen Verteilung ├╝ber die Labels, kann die Generalisierung verbessern.
nbs 64 Nominale Losgr├Â├če zur Normalisierung des Verlustes.
overlap_mask True Legt fest, ob sich die Segmentierungsmasken w├Ąhrend des Trainings ├╝berlappen sollen, z. B. bei Instanzsegmentierungsaufgaben.
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 Weglassen von Einheiten w├Ąhrend des Trainings verhindert.
val True Erm├Âglicht die Validierung w├Ąhrend des Trainings, so dass die Leistung des Modells regelm├Ą├čig an einem separaten Datensatz bewertet werden kann.
plots False Erzeugt und speichert Diagramme von Trainings- und Validierungskennzahlen 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 Batchgr├Â├če: Legen Sie einen ganzzahligen Wert fest (z. B. batch=16), indem du die Anzahl der Bilder pro Stapel direkt angibst.
  • Auto-Modus (60% GPU Speicher):Gebrauchen batch=-1 um die Stapelgr├Â├če automatisch so anzupassen, dass der Speicher zu etwa 60 % genutzt wird CUDA .
  • Auto-Modus mit Auslastungsanteil: Legen Sie einen Bruchwert fest (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 wichtig, um eine optimale Leistung f├╝r eine bestimmte Aufgabe zu erreichen. 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 K├Ąstchen und 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. Das 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 geringeren Konfidenz als dieser Schwelle erkannt werden, werden nicht ber├╝cksichtigt. Die Anpassung dieses Wertes kann dazu beitragen, Falschmeldungen 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 K├Ąstchen eliminiert werden, was n├╝tzlich ist, um Duplikate zu reduzieren.
imgsz int or tuple 640 Legt die Bildgr├Â├če f├╝r die Inferenz fest. Kann eine einzelne ganze Zahl sein 640 f├╝r quadratische Gr├Â├čen├Ąnderungen oder ein (H├Âhe, Breite) Tupel. Die richtige Gr├Â├čenbestimmung kann die Erkennungsgenauigkeit und die Verarbeitungsgeschwindigkeit verbessern.
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 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 bei der Verarbeitung von Videostreams alle Bilder gepuffert werden sollen (True), oder ob das Modell den letzten Frame zur├╝ckgeben soll (False). N├╝tzlich f├╝r Echtzeitanwendungen.
visualize bool False Aktiviert die Visualisierung von Modellmerkmalen w├Ąhrend der Inferenz und gibt Einblicke in das, was das Modell "sieht". N├╝tzlich f├╝r die Fehlersuche und Modellinterpretation.
augment bool False Erm├Âglicht die Test-Time-Augmentation (TTA) f├╝r Vorhersagen, was die Robustheit der Erkennung auf Kosten der Schlussfolgerungsgeschwindigkeit verbessern 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 mit mehreren Klassen, in denen sich die Klassen h├Ąufig ├╝berschneiden.
classes list[int] None Filtert Vorhersagen auf eine Reihe von Klassen-IDs. Nur Erkennungen, die zu den angegebenen Klassen geh├Âren, werden zur├╝ckgegeben. N├╝tzlich, um sich bei Erkennungsaufgaben mit mehreren Klassen auf relevante Objekte zu konzentrieren.
retina_masks bool False Verwendet hochaufl├Âsende Segmentierungsmasken, falls im Modell vorhanden. Dies kann die Qualit├Ąt der Masken f├╝r Segmentierungsaufgaben verbessern, da sie feinere Details liefern.
embed list[int] None Legt die Ebenen fest, aus denen Merkmalsvektoren oder Einbettungen extrahiert werden sollen. Nützlich für nachgelagerte Aufgaben wie Clustering oder Ähnlichkeitssuche.

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 Pr├╝fung.
save bool False Erm├Âglicht das Speichern der kommentierten Bilder oder Videos in einer Datei. N├╝tzlich f├╝r die Dokumentation, weitere Analysen oder das Teilen von Ergebnissen.
save_frames bool False Bei der Verarbeitung von Videos werden einzelne Bilder als Bilder gespeichert. Das ist n├╝tzlich, um bestimmte Bilder zu extrahieren oder um eine detaillierte Bild-f├╝r-Bild-Analyse durchzuf├╝hren.
save_txt bool False Speichert die Erkennungsergebnisse in einer Textdatei, die dem Format [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. Erh├Âht die Detailgenauigkeit bei der Nachbearbeitung und Analyse.
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 die Konfidenzwerte f├╝r jede Erkennung neben der Bezeichnung an. Gibt einen Einblick in die Sicherheit des Modells f├╝r jede Erkennung.
show_boxes bool True Zeichnet Begrenzungsrahmen um erkannte Objekte. Unverzichtbar f├╝r die visuelle Identifizierung und Lokalisierung von Objekten in Bildern oder Videoframes.
line_width None or int None Legt die Linienbreite von Begrenzungsrahmen fest. Wenn NoneDie Linienbreite wird automatisch an die Bildgr├Â├če angepasst. Bietet visuelle Anpassungen f├╝r mehr 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 zur 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 den Validierungsdaten, Klassennamen und die Anzahl der Klassen.
imgsz int 640 Legt die Gr├Â├če der Eingabebilder fest. 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 Labels, die die urspr├╝nglichen 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 dabei, doppelte Erkennungen zu reduzieren.
max_det int 300 Begrenzt die maximale Anzahl der 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 der Speicherverbrauch 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, etc.). Erm├Âglicht die flexible Nutzung der Ressourcen von CPU oder GPU .
dnn bool False Wenn Trueverwendet das OpenCV DNN-Modul f├╝r die ONNX Modellinferenz und bietet damit eine Alternative zu PyTorch Inferenzmethoden.
plots bool False Bei der Einstellung auf Trueerstellt und speichert Diagramme der Vorhersagen im Vergleich zur Basiswahrheit, um die Leistung des Modells visuell zu bewerten.
rect bool False Wenn Trueverwendet die rechteckige Inferenz f├╝r die Stapelverarbeitung, wodurch das Auff├╝llen reduziert und die Geschwindigkeit und Effizienz potenziell erh├Âht wird.
split str val Bestimmt die Aufteilung des Datensatzes f├╝r die Validierung (val, test, oder train). Erm├Âglicht Flexibilit├Ąt bei der Auswahl des Datensegments f├╝r die Leistungsbewertung.

Eine sorgf├Ąltige Abstimmung und das Experimentieren mit diesen Einstellungen sind entscheidend, um eine optimale Leistung im Validierungsdatensatz sicherzustellen und eine ├ťberanpassung zu erkennen und zu verhindern.

Val Guide

Einstellungen exportieren

Die Exporteinstellungen f├╝r YOLO Modelle umfassen Konfigurationen und Optionen f├╝r das Speichern oder Exportieren des Modells zur Verwendung in verschiedenen Umgebungen oder Plattformen. Diese Einstellungen k├Ânnen sich auf die Leistung, die Gr├Â├če und die 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 Etiketten pro K├Ąstchen. 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 definieren.
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 serving and 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 die FP16-Quantisierung (halbe Genauigkeit), wodurch die Modellgr├Â├če reduziert und die Inferenz auf unterst├╝tzter Hardware m├Âglicherweise beschleunigt wird.
int8 bool False Aktiviert die INT8-Quantisierung, um das Modell weiter zu komprimieren und die Inferenz mit minimalem Genauigkeitsverlust zu beschleunigen, vor allem f├╝r Edge-Ger├Ąte.
dynamic bool False Erm├Âglicht dynamische Eingabegr├Â├čen f├╝r ONNX und TensorRT Exporte, was die Flexibilit├Ąt beim Umgang mit unterschiedlichen Bildgr├Â├čen erh├Âht.
simplify bool False Vereinfacht den Modellgraphen f├╝r ONNX Exporte, was die Leistung und Kompatibilit├Ąt verbessern kann.
opset int None Gibt die ONNX opset-Version an, um die Kompatibilit├Ąt mit verschiedenen ONNX Parsern und Laufzeiten zu gew├Ąhrleisten. Wenn nicht gesetzt, wird die letzte unterst├╝tzte Version verwendet.
workspace float 4.0 Legt die maximale Gr├Â├če des Arbeitsbereichs in GB f├╝r die TensorRT Optimierungen fest und sorgt f├╝r ein Gleichgewicht zwischen Speichernutzung und Leistung.
nms bool False F├╝gt dem CoreML Export die Nicht-Maximum-Unterdr├╝ckung (NMS) hinzu, die f├╝r eine genaue und effiziente Nachbearbeitung der Aufdeckung unerl├Ąsslich ist.

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.

Leitfaden exportieren

Erweiterungseinstellungen

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. Die folgende Tabelle zeigt den Zweck und die Wirkung der einzelnen Erweiterungsargumente:

Argument Typ Standard Reichweite Beschreibung
hsv_h float 0.015 0.0 - 1.0 Passt den Farbton des Bildes um einen Bruchteil des Farbkreises an und sorgt so f├╝r Farbvariabilit├Ąt. Hilft dem Modell, sich an unterschiedliche Lichtverh├Ąltnisse anzupassen.
hsv_s float 0.7 0.0 - 1.0 ├ändert die S├Ąttigung des Bildes um einen Bruchteil und beeinflusst so die Intensit├Ąt der Farben. N├╝tzlich, um unterschiedliche Umgebungsbedingungen zu simulieren.
hsv_v float 0.4 0.0 - 1.0 ├ändert den Wert (die Helligkeit) des Bildes um einen Bruchteil, damit das Modell bei 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 Lernen, teilweise sichtbare Objekte zu erkennen.
scale float 0.5 >=0.0 Skaliert das Bild mit einem Verst├Ąrkungsfaktor und simuliert so Objekte in unterschiedlichen Entfernungen zur Kamera.
shear float 0.0 -180 - +180 Schert das Bild um einen bestimmten Grad, um den Effekt nachzuahmen, dass Objekte aus verschiedenen Winkeln betrachtet werden.
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 der Datens├Ątze zu erh├Âhen.
bgr float 0.0 0.0 - 1.0 Dreht die Bildkan├Ąle mit der angegebenen Wahrscheinlichkeit von RGB auf BGR um, was n├╝tzlich ist, um die Robustheit gegen├╝ber einer falschen Kanalreihenfolge zu erh├Âhen.
mosaic float 1.0 0.0 - 1.0 Kombiniert vier Trainingsbilder zu einem einzigen und simuliert so verschiedene Szenenkompositionen und Objektinteraktionen. Sehr effektiv f├╝r das Verstehen komplexer Szenen.
mixup float 0.0 0.0 - 1.0 F├╝gt zwei Bilder und ihre Beschriftungen zu einem zusammengesetzten Bild zusammen. Verbessert die Verallgemeinerungsf├Ąhigkeit des Modells, indem es Rauschen und visuelle Variabilit├Ąt einbringt.
copy_paste float 0.0 0.0 - 1.0 Kopiert Objekte aus einem Bild und f├╝gt sie in ein anderes ein. Das ist n├╝tzlich, um die Anzahl der Objektinstanzen zu erh├Âhen und Objektverdeckung zu lernen.
auto_augment str randaugment - Wendet automatisch eine vordefinierte Erweiterungsrichtlinie an (randaugment, autoaugment, augmix), die durch die 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, um das Modell dazu zu bringen, sich auf weniger offensichtliche Merkmale f├╝r die Erkennung zu konzentrieren.
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 angepasst werden, um den spezifischen Anforderungen des Datensatzes und der jeweiligen Aufgabe gerecht zu werden. Das Experimentieren mit verschiedenen Werten kann helfen, die optimale Erweiterungsstrategie zu finden, die zur besten Modellleistung f├╝hrt.

Logging, 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 Logging-Bibliothek wie TensorBoard oder durch das Schreiben von Logmeldungen in eine Datei geschehen.
  • Kontrollpunkte: Es ist eine gute Praxis, w├Ąhrend des Trainings in regelm├Ą├čigen Abst├Ąnden Kontrollpunkte des Modells zu speichern. So kannst du das Training von einem fr├╝heren Punkt aus wieder aufnehmen, wenn der Trainingsprozess unterbrochen wird oder wenn du mit verschiedenen Trainingskonfigurationen experimentieren m├Âchtest.
  • 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 erkennen. Dies kann mit einer Plot-Bibliothek wie matplotlib oder durch die Erstellung von Plots mit einer Logging-Bibliothek wie TensorBoard geschehen.
  • Dateiverwaltung: Die Verwaltung der verschiedenen Dateien, die w├Ąhrend des Trainingsprozesses entstehen, wie z. B. Modellpr├╝fpunkte, Protokolldateien und Diagramme, kann eine Herausforderung sein. Es ist wichtig, eine klare und organisierte Dateistruktur zu haben, um den ├ťberblick ├╝ber diese Dateien zu behalten und sie bei Bedarf leicht abrufen und analysieren zu k├Ânnen.

Effektive Protokollierung, Checkpointing, Plotting und Dateiverwaltung helfen dir, 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 er nicht 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 du dies auf True erlaubt das ├ťberschreiben, w├Ąhrend False verhindert es.
plots False Steuert die Erstellung und Speicherung von Trainings- und Validierungsplots. Setzen auf True um Diagramme zu erstellen, z. B. Verlustkurven, Precision-Recall-Kurven und Stichprobenvorhersagen. N├╝tzlich, um die Leistung des Modells im Laufe der Zeit visuell zu verfolgen.
save False Erm├Âglicht das Speichern von Trainingskontrollpunkten und endg├╝ltigen Modellgewichten. Setzen auf True um den Zustand des Modells regelm├Ą├čig zu speichern, so dass das Training von diesen Kontrollpunkten aus fortgesetzt werden kann oder die Modelle eingesetzt werden k├Ânnen.

FAQ

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

Um die Leistung des Modells YOLO zu verbessern, m├╝ssen Hyperparameter wie Stapelgr├Â├če, Lernrate, Dynamik und Gewichtsabnahme angepasst werden. Auch die Anpassung der Augmentierungseinstellungen, die Auswahl des richtigen Optimierers und der Einsatz von Techniken wie Early Stopping oder Mixed Precision k├Ânnen helfen. Eine ausf├╝hrliche Anleitung zu den Trainingseinstellungen findest du 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 YOLO Modells beeinflussen, geh├Âren:

  • Chargengr├Â├če (batch): Gr├Â├čere Losgr├Â├čen k├Ânnen das Training stabilisieren, ben├Âtigen aber m├Âglicherweise mehr Speicherplatz.
  • Lernrate (lr0): Steuert die Schrittgr├Â├če f├╝r die Aktualisierung der Gewichte; kleinere Raten bieten feine Anpassungen, aber eine langsame Konvergenz.
  • Momentum (momentum): Hilft, die Gradientenvektoren in die richtigen Richtungen zu beschleunigen und Schwingungen zu d├Ąmpfen.
  • Bildgr├Â├če (imgsz): Gr├Â├čere Bilder k├Ânnen die Genauigkeit verbessern, erh├Âhen aber die Rechenlast.

Passe diese Werte an deinen Datensatz und deine Hardware-F├Ąhigkeiten an. Mehr dazu findest du im Abschnitt Zug-Einstellungen.

Wie kann ich die Lernrate f├╝r das Training eines YOLO Modells festlegen?

Die Lernrate (lr0) ist entscheidend f├╝r die Optimierung. Ein ├╝blicher Startpunkt ist 0.01 f├╝r SGD oder 0.001 f├╝r Adam. Es ist wichtig, die Trainingsdaten zu ├╝berwachen und bei Bedarf anzupassen. Verwende Cosinus-Lernraten-Scheduler (cos_lr) oder Aufw├Ąrmtechniken (warmup_epochs, warmup_momentum), um die Rate w├Ąhrend des Trainings dynamisch zu ver├Ąndern. Weitere Details findest du in der Zugf├╝hrer.

Wie lauten die Standardeinstellungen f├╝r YOLO Modelle?

Zu den Standardeinstellungen f├╝r die Schlussfolgerung geh├Âren:

  • 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 eingegebenen Bilder vor der Inferenz.
  • Ger├Ąt (device=None): W├Ąhlt CPU oder GPU f├╝r den R├╝ckschluss aus. Einen umfassenden ├ťberblick findest du auf der Einstellungen vorhersagen Abschnitt und der Leitfaden vorhersagen.

Warum sollte ich gemischtes Pr├Ązisionstraining mit YOLO Modellen verwenden?

Gemischtes Pr├Ązisionstraining, erm├Âglicht durch amp=TrueDadurch wird der Speicherverbrauch reduziert und das Training beschleunigt, indem die Vorteile von FP16 und FP32 genutzt werden. Das ist vorteilhaft f├╝r moderne Grafikprozessoren, die von Haus aus gemischte Pr├Ązision unterst├╝tzen. So passen mehr Modelle in den Speicher und erm├Âglichen schnellere Berechnungen ohne nennenswerte Einbu├čen bei der Genauigkeit. Mehr dar├╝ber erf├Ąhrst du in der Zugf├╝hrer.



Erstellt 2023-11-12, Aktualisiert 2024-07-04
Autoren: glenn-jocher (18), fcakyon (2), Laughing-q (2), plashchynski (1), Burhan-Q (1), AyushExel (1), RizwanMunawar (1), tensorturtle (1)

Kommentare