Zum Inhalt springen

Konfiguration

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

Beobachten: Beherrschung von Ultralytics YOLO: Konfiguration



Beobachten: Mastering Ultralytics YOLO : Konfiguration

Ultralytics Befehle verwenden die folgende Syntax:

Beispiel

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLO 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 sind auf dieser Seite definiert und stammen aus der cfg/defaults.yaml Datei.

Aufgaben

DieYOLO Ultralytics können eine Vielzahl von Computer-Vision-Aufgaben erfüllen, darunter:

  • Erkennen: Die Objekterkennung identifiziert und lokalisiert Objekte in einem Bild oder Video.
  • Segmentieren: Bei der Instanzsegmentierung wird ein Bild oder Video in Regionen unterteilt, die verschiedenen Objekten oder Klassen entsprechen.
  • Klassifizieren: Die Bildklassifizierung sagt die Klassenbezeichnung eines Eingabebildes voraus.
  • Pose: Die Posenschätzung identifiziert Objekte und schätzt ihre Hauptpunkte in einem Bild oder Video.
  • OBB: Oriented Bounding Boxes verwendet gedrehte Bounding Boxes, die sich für Satellitenbilder oder medizinische Bilder eignen.
Argument Standard Beschreibung
task 'detect' Gibt die YOLO an: detect für Objekterkennung, segment für die Segmentierung, classify für die Klassifizierung, pose für die Schätzung der Körperhaltung und obb für orientierte Begrenzungsrahmen. Jede Aufgabe ist auf bestimmte Ergebnisse und Probleme der Bild- und Videoanalyse zugeschnitten.

Aufgaben-Leitfaden

Modi

DieYOLO Ultralytics arbeiten in verschiedenen Modi, die jeweils für eine bestimmte Phase des Lebenszyklus des Modells konzipiert sind:

  • Trainieren: Trainieren Sie ein YOLO auf einem benutzerdefinierten Datensatz.
  • Val: Validieren Sie ein trainiertes YOLO .
  • Vorhersagen: Verwenden Sie ein trainiertes YOLO , um Vorhersagen über neue Bilder oder Videos zu treffen.
  • Exportieren: Exportieren Sie ein YOLO für die Bereitstellung.
  • Verfolgen: Verfolgen Sie Objekte in Echtzeit mit einem YOLO .
  • Benchmarking: Benchmarking der Geschwindigkeit und Genauigkeit von YOLO ONNX, TensorRT, etc.).
Argument Standard Beschreibung
mode 'train' Gibt den Betriebsmodus des YOLO an: train für das Modelltraining, val für die Validierung, predict für die Inferenz, export für die Konvertierung in Bereitstellungsformate, track für die Objektverfolgung, und benchmark für die Leistungsbewertung. Jeder Modus unterstützt verschiedene Phasen, von der Entwicklung bis zur Bereitstellung.

Leitfaden Modi

Zug-Einstellungen

Die Trainingseinstellungen für YOLO umfassen Hyperparameter und Konfigurationen, die die Leistung, Geschwindigkeit und Genauigkeit des Modells beeinflussen. Zu den wichtigsten Einstellungen gehören die Stapelgröße, die Lernrate, das Momentum und der Gewichtsabfall. Die Wahl des Optimierers, die Verlustfunktion und die Zusammensetzung des Datensatzes wirken sich ebenfalls auf das Training aus. Abstimmung und Experimentieren sind für eine optimale Leistung entscheidend. Weitere Einzelheiten finden Sie in der Ultralytics .

Argument Typ Standard Beschreibung
model str 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 str 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 int 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 float 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 int 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 int 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 int oder list 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 bool 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 int -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 bool 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 int oder str oder list 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 int 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 str None Name des Projektverzeichnisses, in dem die Trainingsergebnisse gespeichert werden. Ermöglicht die organisierte Speicherung verschiedener Experimente.
name str None Name des Trainingslaufs. Wird zur Erstellung eines Unterverzeichnisses im Projektordner verwendet, in dem Trainingsprotokolle und Ausgaben gespeichert werden.
exist_ok bool 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 bool oder str 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 str '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 int 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 bool 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 bool 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.
classes list[int] None Gibt eine Liste von Klassen-IDs an, auf die trainiert werden soll. Nützlich, um beim Training nur bestimmte Klassen herauszufiltern und sich auf sie zu konzentrieren.
rect bool 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.
multi_scale bool False Ermöglicht mehrstufiges Training durch Erhöhung/Verringerung imgsz um bis zu einem Faktor von 0.5 während des Trainings. Trainiert das Modell für eine höhere Genauigkeit mit mehreren imgsz während der Inferenz.
cos_lr bool 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 int 10 Deaktiviert die Mosaikdatenerweiterung in den letzten N Epochen, um das Training vor dem Abschluss zu stabilisieren. Die Einstellung 0 deaktiviert diese Funktion.
resume bool False Setzt das Training ab dem letzten gespeicherten Kontrollpunkt fort. Lädt automatisch Modellgewichte, Optimierungsstatus und Epochenzahl und setzt das Training nahtlos fort.
amp bool 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 float 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 bool 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 int oder list 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 float 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 float 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 float 0.937 Momentumfaktor für SGD oder beta1 für Adam-Optimierer, der die Einbeziehung vergangener Gradienten in die aktuelle Aktualisierung beeinflusst.
weight_decay float 0.0005 L2-Regularisierungsterm, der große Gewichte bestraft, um eine Überanpassung zu verhindern.
warmup_epochs float 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 float 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 float 0.1 Lernrate für Bias-Parameter während der Aufwärmphase, um das Modelltraining in den ersten Epochen zu stabilisieren.
box float 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 float 0.5 Gewicht des Klassifizierungsverlusts in der Gesamtverlustfunktion, das die Bedeutung der korrekten Klassenvorhersage im Vergleich zu anderen Komponenten bestimmt.
dfl float 1.5 Gewicht des fokalen Verteilungsverlustes, der in bestimmten Versionen von YOLO für eine feinere Klassifizierung verwendet wird.
pose float 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 float 2.0 Gewichtung des Objektivitätsverlustes von Schlüsselpunkten in Modellen zur Posenschätzung, wobei die Erkennungssicherheit mit der Posengenauigkeit abgeglichen wird.
nbs int 64 Nominale Chargengröße für die Normalisierung des Verlustes.
overlap_mask bool 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 gelegt.
mask_ratio int 4 Downsample-Verhältnis für Segmentierungsmasken, das sich auf die Auflösung der beim Training verwendeten Masken auswirkt.
dropout float 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 bool 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 bool 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 bietet drei Konfigurationsmöglichkeiten:

  • Feste Chargengröße: Geben Sie die Anzahl der Bilder pro Stapel mit einer ganzen Zahl an (z.B., batch=16).
  • Auto-Modus (60% GPU Speicher): Verwenden Sie batch=-1 für eine automatische Anpassung auf etwa 60 % CUDA .
  • Automatischer Modus mit Auslastungsanteil: Setzen Sie einen Bruch (z.B., batch=0.70) auf der Grundlage einer bestimmten GPU anzupassen.

Zugführer

Einstellungen vorhersagen

Die Vorhersageeinstellungen für YOLO umfassen Hyperparameter und Konfigurationen, die die Leistung, Geschwindigkeit und Genauigkeit während der Inferenz beeinflussen. Zu den wichtigsten Einstellungen gehören der Konfidenzschwellenwert, der Schwellenwert für die Nicht-Maximum-Unterdrückung (NMS) und die Anzahl der Klassen. Die Größe und das Format der Eingabedaten sowie zusätzliche Merkmale wie Masken wirken sich ebenfalls auf die Vorhersagen aus. Die Abstimmung dieser Einstellungen ist für eine optimale Leistung unerlässlich.

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 oder 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.
batch int 1 Gibt die Losgröße für die Inferenz an (funktioniert nur, wenn die Quelle ein Verzeichnis, eine Videodatei oder .txt Datei). Eine größere Batchgröße kann einen höheren Durchsatz ermöglichen und die für die Inferenz benötigte Gesamtzeit verkürzen.
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 Falsewerden alte Frames fallen gelassen, um Platz für neue Frames zu schaffen (optimiert für Echtzeitanwendungen). Wenn Truestellt neue Frames in einem Puffer in die Warteschlange und stellt sicher, dass keine Frames übersprungen werden, verursacht aber eine Latenz, 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.
stream bool False Ermöglicht eine speichereffiziente Verarbeitung langer Videos oder zahlreicher Bilder, indem ein Generator von Ergebnisobjekten zurückgegeben wird, anstatt alle Bilder auf einmal in den Speicher zu laden.
verbose bool True Legt fest, ob detaillierte Schlussfolgerungsprotokolle im Terminal angezeigt werden sollen, um Echtzeit-Feedback zum Vorhersageprozess zu erhalten.

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 or 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 or int None Gibt die Linienbreite von Begrenzungsrahmen an. Wenn Nonewird die Linienbreite automatisch an die Bildgröße angepasst. Bietet visuelle Anpassung für Klarheit.
font_size float None Textschriftgröße für Anmerkungen. Skaliert automatisch mit der Bildgröße, wenn auf None.
font str 'Arial.ttf' Name der Schriftart oder Pfad für Textanmerkungen in der Visualisierung.
pil bool False Rückgabe des Bildes als PIL-Image-Objekt anstelle eines Numpy-Arrays.
kpt_radius int 5 Radius der Keypoints bei der Visualisierung der Ergebnisse der Pose-Schätzung.
kpt_line bool True Verbinden Sie bei der Visualisierung der Pose-Schätzung Keypoints mit Linien.
masks bool True Segmentierungsmasken in der Visualisierungsausgabe anzeigen.
probs bool True Einbindung von Klassifizierungswahrscheinlichkeiten in die Visualisierung.
filename str None Pfad und Dateiname zum Speichern des kommentierten Bildes, wenn save=True.
color_mode str 'class' Geben Sie den Einfärbungsmodus für Visualisierungen an, z. B. "Instanz" oder "Klasse".
txt_color tuple[int, int, int] (255, 255, 255) RGB-Textfarbe für Anmerkungen zu Klassifizierungsaufgaben.

Leitfaden vorhersagen

Validierungseinstellungen

Validierungseinstellungen für YOLO umfassen Hyperparameter und Konfigurationen zur Bewertung der Leistung auf einem Validierungsdatensatz. Diese Einstellungen beeinflussen Leistung, Geschwindigkeit und Genauigkeit. Zu den üblichen Einstellungen gehören die Stapelgröße, die Validierungshäufigkeit und die Leistungsmetriken. Die Größe und Zusammensetzung des Validierungsdatensatzes sowie die spezifische Aufgabe beeinflussen den Prozess ebenfalls.

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 gebracht. Größere Größen können die Genauigkeit bei kleinen Objekten verbessern, erhöhen aber die Berechnungszeit.
batch int 16 Legt die Anzahl der Bilder pro Stapel fest. Höhere Werte nutzen den GPU effizienter, erfordern aber mehr VRAM. Passen Sie die Werte je nach verfügbaren Hardware-Ressourcen an.
save_json bool False Wenn Truespeichert die Ergebnisse in einer JSON-Datei zur weiteren Analyse, zur Integration in andere Tools oder zur Übermittlung an Bewertungsserver wie COCO.
save_hybrid bool False Wenn Truespeichert eine hybride Version von Beschriftungen, die ursprüngliche Annotationen mit zusätzlichen Modellvorhersagen kombiniert. Nützlich für halbüberwachtes Lernen und die Erweiterung von Datensätzen.
conf float 0.001 Legt die minimale Vertrauensschwelle für Erkennungen fest. Niedrigere Werte erhöhen die Wiedererkennungsrate, können aber zu mehr falsch-positiven Ergebnissen führen. Wird bei der Validierung verwendet, um Präzisions-Rückruf-Kurven zu berechnen.
iou float 0.6 Legt den Schwellenwert "Schnittpunkt über Vereinigung" für die Nicht-Maximum-Unterdrückung fest. Steuert die Eliminierung der Duplikaterkennung.
max_det int 300 Begrenzt die maximale Anzahl von Erkennungen pro Bild. Nützlich in dichten Szenen, um übermäßige Erkennungen zu vermeiden und die Rechenressourcen zu verwalten.
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.). Wenn Nonewählt automatisch das beste verfügbare Gerät aus. Mehrere CUDA können mit Komma-Trennung angegeben werden.
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 von Vorhersagen im Vergleich zur Grundwahrheit, Konfusionsmatrizen und PR-Kurven zur visuellen Bewertung der Modellleistung.
rect bool True Wenn Trueverwendet die rechteckige Inferenz für die Stapelverarbeitung, wodurch das Auffüllen reduziert und die Geschwindigkeit und Effizienz durch die Verarbeitung von Bildern in ihrem ursprünglichen Seitenverhältnis potenziell erhöht wird.
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. Hilft bei der Organisation von Ergebnissen aus verschiedenen Experimenten oder Modellen.
name str None Name des Validierungslaufs. Wird für die Erstellung eines Unterverzeichnisses innerhalb des Projektordners verwendet, in dem die Validierungsprotokolle und -ausgaben gespeichert werden.
verbose bool False Wenn Truezeigt während des Validierungsprozesses detaillierte Informationen an, einschließlich Metriken pro Klasse, Batch-Fortschritt und zusätzliche Debugging-Informationen.
save_txt bool False Wenn Truespeichert die Erkennungsergebnisse in Textdateien, eine Datei pro Bild, die für weitere Analysen, benutzerdefinierte Nachbearbeitungen oder die Integration in andere Systeme nützlich sind.
save_conf bool False Wenn Truedie Konfidenzwerte in die gespeicherten Textdateien ein, wenn save_txt ist aktiviert und bietet eine detailliertere Ausgabe für Analyse und Filterung.
save_crop bool False Wenn Truespeichert zugeschnittene Bilder von erkannten Objekten, die für die Erstellung konzentrierter Datensätze, die visuelle Überprüfung oder die weitere Analyse einzelner Erkennungen nützlich sein können.
workers int 8 Anzahl der Arbeits-Threads für das Laden von Daten. Höhere Werte können die Datenvorverarbeitung beschleunigen, können aber die CPU erhöhen. Bei einer Einstellung von 0 wird der Haupt-Thread verwendet, der in manchen Umgebungen stabiler sein kann.
augment bool False Ermöglicht die Testzeit-Erweiterung (TTA) während der Validierung, wodurch die Erkennungsgenauigkeit auf Kosten der Inferenzgeschwindigkeit verbessert werden kann, indem die Inferenz mit transformierten Versionen der Eingabe durchgeführt wird.
agnostic_nms bool False Ermöglicht die klassenunabhängige Non-Maximum Suppression, die überlappende Boxen unabhängig von ihrer vorhergesagten Klasse zusammenführt. Nützlich für instanzfokussierte Anwendungen.
single_cls bool False Behandelt alle Klassen während der Validierung als eine einzige Klasse. Nützlich für die Bewertung der Modellleistung bei binären Erkennungsaufgaben oder wenn Klassenunterscheidungen nicht wichtig sind.

Sorgfältige Abstimmung und Experimente sind von entscheidender Bedeutung, um eine optimale Leistung zu gewährleisten und eine Überanpassung zu erkennen und zu verhindern.

Val-Führer

Einstellungen exportieren

Die Exporteinstellungen für YOLO umfassen Konfigurationen zum Speichern oder Exportieren des Modells zur Verwendung in verschiedenen Umgebungen. Diese Einstellungen beeinflussen die Leistung, Größe und Kompatibilität. Zu den wichtigsten Einstellungen gehören das exportierte Dateiformat (z.B. ONNX, TensorFlow SavedModel), das Zielgerät (z.B. CPU, GPU) und Funktionen wie Masken. Die Aufgabe des Modells und die Beschränkungen der Zielumgebung beeinflussen den Exportprozess ebenfalls.

Argument Typ Standard Beschreibung
format str 'torchscript' Zielformat für das exportierte Modell, z. B. 'onnx', 'torchscript', 'engine' TensorRT), oder andere. Jedes Format ermöglicht die Kompatibilität mit verschiedenen Einsatzumgebungen.
imgsz int oder tuple 640 Gewünschte Bildgröße für die Modelleingabe. Kann eine ganze Zahl für quadratische Bilder sein (z. B., 640 für 640×640) oder ein Tupel (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 Inferenzleistung verbessert werden kann. Nicht kompatibel mit dem NCNN oder CUDA .
half bool False Ermöglicht die FP16-Quantisierung (halbe Genauigkeit), wodurch die Modellgröße verringert und die Inferenz auf unterstützter Hardware möglicherweise beschleunigt wird. Nicht kompatibel mit INT8-Quantisierung oder CPU für ONNX.
int8 bool False Aktiviert die INT8-Quantisierung, wodurch das Modell weiter komprimiert und die Inferenz mit minimalem Genauigkeitsverlust beschleunigt wird, hauptsächlich für Edge-Geräte. Bei Verwendung mit TensorRT wird eine Quantisierung nach dem Training (PTQ) durchgeführt.
dynamic bool False Ermöglicht dynamische Eingabegrößen für ONNX, TensorRT und OpenVINO , was die Flexibilität bei der Handhabung unterschiedlicher Bildgrößen erhöht. Automatisch eingestellt auf True bei Verwendung von TensorRT mit INT8.
simplify bool True Vereinfacht den Modellgraphen für ONNX Exporte mit onnxslimDies kann die Leistung und die Kompatibilität mit Inferenzmaschinen verbessern.
opset int None Gibt die ONNX an, um die Kompatibilität mit verschiedenen ONNX Parsern und Laufzeiten. Wenn nicht festgelegt, wird die letzte unterstützte Version verwendet.
workspace float oder None None Legt die maximale Größe des Arbeitsbereichs in GiB für TensorRT Optimierungen, die Speicherverbrauch und Leistung ausgleichen. verwenden None für die automatische Zuweisung durch TensorRT bis zum Geräte-Maximum.
nms bool False Fügt dem exportierten Modell die Nicht-Maximum-Unterdrückung (NMS) hinzu, sofern dies unterstützt wird (siehe Exportformate), um die Effizienz der Nachbearbeitung der Erkennung zu verbessern. Nicht verfügbar für end2end-Modelle.
batch int 1 Gibt die Größe des Exportmodells oder die maximale Anzahl der Bilder an, die das exportierte Modell gleichzeitig in predict Modus. Bei TPU wird dies automatisch auf 1 gesetzt.
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). TensorRT verwenden automatisch die GPU.
data str 'coco8.yaml' Weg zum Datensatz Konfigurationsdatei (Standard: coco8.yaml), wichtig für die INT8-Quantisierungskalibrierung. Wird bei aktiviertem INT8 kein Datensatz angegeben, wird ein Standarddatensatz zugewiesen.

Eine durchdachte Konfiguration stellt sicher, dass das exportierte Modell für seinen Anwendungsfall optimiert ist und in der Zielumgebung effektiv funktioniert.

Export-Leitfaden

Lösungen Einstellungen

Die Konfigurationseinstellungen von Ultralytics Solutions bieten Flexibilität bei der Anpassung von Modellen für Aufgaben wie Objektzählung, Erstellung von Heatmaps, Trainingsverfolgung, Datenanalyse, Zonenverfolgung, Warteschlangenmanagement und regionsbasierte Zählung. Diese Optionen ermöglichen einfache Anpassungen für genaue und nützliche Ergebnisse, die auf spezifische Bedürfnisse zugeschnitten sind.

Argument Typ Standard Beschreibung
model str None Pfad zur Ultralytics YOLO .
region list [(20, 400), (1260, 400)] Liste der Punkte, die den Zählbereich definieren.
show_in bool True Kennzeichen, mit dem gesteuert wird, ob die Zählungen im Videostrom angezeigt werden sollen.
show_out bool True Kennzeichen, mit dem gesteuert wird, ob die Anzahl der Ausgänge im Video-Stream angezeigt werden soll.
analytics_type str line Art des Diagramms, d. h., line, bar, area, oder pie.
colormap int cv2.COLORMAP_JET Farbkarte, die für die Heatmap verwendet werden soll.
json_file str None Pfad zu der JSON-Datei, die alle Daten zu den Parkkoordinaten enthält.
up_angle float 145.0 Winkelschwelle für die "Aufwärts"-Pose.
kpts list[int, int, int] [6, 8, 10] Liste der Keypoints, die für die Überwachung von Workouts verwendet werden. Diese Keypoints entsprechen Körpergelenken oder -teilen, z. B. Schultern, Ellbogen und Handgelenken, für Übungen wie Liegestütze, Klimmzüge, Kniebeugen und Bauchmuskeltraining.
down_angle float 90.0 Winkelschwellenwert für die "nach unten" gerichtete Haltung.
blur_ratio float 0.5 Passt den Prozentsatz der Unschärfeintensität an, mit Werten im Bereich 0.1 - 1.0.
crop_dir str "cropped-detections" Name des Verzeichnisses, in dem abgeschnittene Erkennungen gespeichert werden.
records int 5 Gesamtzahl der Erkennungen zur Auslösung einer E-Mail mit dem Sicherheitssystem.
vision_point tuple[int, int] (50, 50) Der Punkt, an dem die VisionEye-Lösung Objekte verfolgt und Pfade zeichnet.
tracker str 'botsort.yaml' Gibt den zu verwendenden Verfolgungsalgorithmus an, z. B., bytetrack.yaml oder botsort.yaml.
conf float 0.3 Legt die Konfidenzschwelle für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch zu falsch positiven Ergebnissen führen.
iou float 0.5 Legt den Schwellenwert für die Überschneidung über die Vereinigung (IoU) fest, um überlappende Erkennungen zu filtern.
classes list None Filtert die Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verbose bool True Steuert die Anzeige der Verfolgungsergebnisse und liefert eine visuelle Ausgabe der verfolgten Objekte.
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.
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.
line_width None or 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 für Lösungen

Einstellungen zur Augmentation

Datenerweiterungstechniken sind für die Verbesserung der Robustheit und Leistung YOLO unerlässlich, da sie Variabilität in die Trainingsdaten einbringen und dem Modell helfen, besser auf ungesehene Daten zu generalisieren. Die folgende Tabelle beschreibt den Zweck und die Wirkung der einzelnen Erweiterungsargumente:

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 und fügt Objekte über Bilder hinweg ein, was für die Vergrößerung von Objektinstanzen und das Lernen von Objektverdeckungen nützlich ist. Erfordert Segmentierungsetiketten.
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.

Passen Sie diese Einstellungen an die Anforderungen des Datensatzes und der Aufgabe an. Das Experimentieren mit verschiedenen Werten kann helfen, die optimale Augmentierungsstrategie für die beste Modellleistung zu finden.

Protokollierung, Kontrollpunkte und Plot-Einstellungen

Protokollierung, Kontrollpunkte, Plotten und Dateiverwaltung sind beim Training eines YOLO wichtig:

  • Protokollierung: Verfolgen Sie den Fortschritt des Modells und diagnostizieren Sie Probleme mit Hilfe von Bibliotheken wie TensorBoard oder durch Schreiben in eine Datei.
  • Kontrollpunkte: Speichern Sie das Modell in regelmäßigen Abständen, um das Training fortzusetzen oder mit verschiedenen Konfigurationen zu experimentieren.
  • Plotten: Visualisieren Sie Leistung und Trainingsfortschritt mit Bibliotheken wie matplotlib oder TensorBoard.
  • Dateiverwaltung: Organisieren Sie die während des Trainings erzeugten Dateien, wie z. B. Kontrollpunkte, Protokolldateien und Diagramme, um den Zugriff und die Analyse zu erleichtern.

Eine effektive Verwaltung dieser Aspekte hilft bei der Verfolgung der Fortschritte und erleichtert die Fehlersuche und Optimierung.

Argument Standard Beschreibung
project 'runs' Gibt das Stammverzeichnis zum Speichern von Trainingsläufen an. Jeder Lauf wird in einem eigenen Unterverzeichnis gespeichert.
name 'exp' Legt den Namen des Experiments fest. Wenn er nicht angegeben wird, erhöht YOLO diesen Namen für jeden Lauf (z.B., exp, exp2), um ein Überschreiben zu vermeiden.
exist_ok False Legt fest, ob ein vorhandenes Experimentierverzeichnis überschrieben werden soll. True erlaubt das Überschreiben; False verhindert dies.
plots False Steuert die Erstellung und Speicherung von Trainings- und Validierungsdiagrammen. Setzen auf True um Darstellungen wie Verlustkurven zu erstellen, Präzision-Rückruf Kurven und Musterprognosen zur visuellen Verfolgung der Leistung.
save False Ermöglicht das Speichern von Trainingskontrollpunkten und endgültigen Modellgewichten. Setzen auf True um den Zustand des Modells regelmäßig zu speichern, damit das Training wieder aufgenommen oder das Modell eingesetzt werden kann.

FAQ

Wie kann ich die Leistung meines YOLO während der Ausbildung verbessern?

Verbessern Sie die Leistung durch Abstimmung von Hyperparametern wie Stapelgröße, Lernrate, Dynamik und Gewichtsabnahme. Passen Sie die Einstellungen für die Datenerweiterung an, wählen Sie den richtigen Optimierer und verwenden Sie Techniken wie frühes Stoppen oder gemischte Präzision. Weitere Informationen finden Sie in der Trainingsanleitung.

Welches sind die wichtigsten Hyperparameter für die Genauigkeit des YOLO ?

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

  • Chargengröße (batch): Größere Formate können das Training stabilisieren, benötigen aber mehr Speicherplatz.
  • Lernrate (lr0): Kleinere Raten bieten feine Anpassungen, aber eine langsamere Konvergenz.
  • Momentum (momentum): Beschleunigt die Gradientenvektoren und dämpft die Schwingungen.
  • Bildgröße (imgsz): Größere Größen verbessern die Genauigkeit, erhöhen aber die Rechenlast.

Passen Sie diese auf der Grundlage Ihres Datensatzes und Ihrer Hardware an. Weitere Informationen finden Sie unter Zugeinstellungen.

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

Die Lernrate (lr0) ist entscheidend; beginnen Sie mit 0.01 für SGD oder 0.001 für Adam Optimierer. Überwachen Sie die Metriken und passen Sie sie bei Bedarf an. Verwenden Sie Scheduler mit Kosinus-Lernrate (cos_lr) oder Aufwärmen (warmup_epochs, warmup_momentum). Einzelheiten sind in der Zugführer.

Welches sind die Standardeinstellungen für YOLO Modelle?

Die Standardeinstellungen 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 eingegebenen Bilder.
  • Gerät (device=None): Wählt CPU oder GPU.

Einen vollständigen Überblick finden Sie unter Predict-Einstellungen und im Predict-Handbuch.

Warum ein gemischtes Präzisionstraining mit YOLO ?

Gemischte Präzision Ausbildung (amp=True) reduziert die Speichernutzung und beschleunigt das Training mit FP16 und FP32. Es ist vorteilhaft für moderne GPUs und ermöglicht größere Modelle und schnellere Berechnungen ohne signifikante Genauigkeitsverluste. Erfahren Sie mehr in der Zugführer.

📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 6 Tagen

Kommentare