Zum Inhalt springen

Konfiguration

YOLO settings and hyperparameters play a critical role in the model's performance, speed, and accuracy. These settings and hyperparameters can affect the model's behavior at various stages of the model development process, including training, validation, and prediction.



Pass auf: Mastering Ultralytics YOLO: Configuration

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 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.
ArgumentStandardBeschreibung
task'detect'Gibt die auszuführende YOLO Aufgabe an. Die Optionen umfassen detect for object detection, 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:

  • Train: For training a YOLO11 model on a custom dataset.
  • Val: For validating a YOLO11 model after it has been trained.
  • Predict: For making predictions using a trained YOLO11 model on new images or videos.
  • Export: For exporting a YOLO11 model to a format that can be used for deployment.
  • Track: For tracking objects in real-time using a YOLO11 model.
  • Benchmark: For benchmarking YOLO11 exports (ONNX, TensorRT, etc.) speed and accuracy.
ArgumentStandardBeschreibung
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

The training settings for YOLO models encompass various hyperparameters and configurations used during the training process. These settings influence the model's performance, speed, and accuracy. Key training settings include batch size, learning rate, momentum, and weight decay. Additionally, the choice of optimizer, loss function, and training dataset composition can impact the training process. Careful tuning and experimentation with these settings are crucial for optimizing performance.

ArgumentStandardBeschreibung
modelNoneGibt 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.
dataNonePfad zur Konfigurationsdatei des Datensatzes (z. B., coco8.yaml). This file contains dataset-specific parameters, including paths to training and validation data, class names, and number of classes.
epochs100Total number of training epochs. Each epoch represents a full pass over the entire dataset. Adjusting this value can affect training duration and model performance.
timeNoneMaximale 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.
patience100Number of epochs to wait without improvement in validation metrics before early stopping the training. Helps prevent overfitting by stopping training when performance plateaus.
batch16Batch size, with three modes: set as an integer (e.g., batch=16), Auto-Modus für 60% GPU Speicherauslastung (batch=-1), oder Auto-Modus mit festgelegtem Nutzungsanteil (batch=0.70).
imgsz640Target image size for training. All images are resized to this dimension before being fed into the model. Affects model accuracy and computational complexity.
saveTrueEnables saving of training checkpoints and final model weights. Useful for resuming training or model deployment.
save_period-1Hä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.
cacheFalseErmö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.
deviceNoneLegt 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).
workers8Anzahl 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.
projectNoneName des Projektverzeichnisses, in dem die Trainingsergebnisse gespeichert werden. Ermöglicht die organisierte Speicherung verschiedener Experimente.
nameNoneName des Trainingslaufs. Wird für die Erstellung eines Unterverzeichnisses im Projektordner verwendet, in dem die Trainingsprotokolle und -ergebnisse gespeichert werden.
exist_okFalseBei 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.
pretrainedTrueLegt 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.
verboseFalseAktiviert 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.
seed0Legt den zufälligen Seed für das Training fest, um die Reproduzierbarkeit der Ergebnisse bei verschiedenen Läufen mit denselben Konfigurationen zu gewährleisten.
deterministicTrueErzwingt die Verwendung deterministischer Algorithmen, was die Reproduzierbarkeit sicherstellt, aber aufgrund der Beschränkung auf nicht-deterministische Algorithmen Leistung und Geschwindigkeit beeinträchtigen kann.
single_clsFalseBehandelt 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.
rectFalseErmö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_lrFalseUtilizes a cosine learning rate scheduler, adjusting the learning rate following a cosine curve over epochs. Helps in managing learning rate for better convergence.
close_mosaic10Disables mosaic data augmentation in the last N epochs to stabilize training before completion. Setting to 0 disables this feature.
resumeFalseSetzt das Training ab dem letzten gespeicherten Kontrollpunkt fort. Lädt automatisch die Modellgewichte, den Optimierungsstatus und die Epochenzahl und setzt das Training nahtlos fort.
ampTrueEnables Automatic Mixed Precision (AMP) training, reducing memory usage and possibly speeding up training with minimal impact on accuracy.
fraction1.0Gibt 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.
profileFalseErmö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.
freezeNoneFreezes the first N layers of the model or specified layers by index, reducing the number of trainable parameters. Useful for fine-tuning or transfer learning.
lr00.01Anfä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.
lrf0.01Endgü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.
momentum0.937Momentum factor for SGD or beta1 for Adam optimizers, influencing the incorporation of past gradients in the current update.
weight_decay0.0005L2 regularization term, penalizing large weights to prevent overfitting.
warmup_epochs3.0Anzahl 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_momentum0.8Anfangsschwung für die Aufwärmphase, der sich im Laufe der Aufwärmphase allmählich an den eingestellten Schwung anpasst.
warmup_bias_lr0.1Lernrate für Bias-Parameter während der Aufwärmphase, um das Modelltraining in den ersten Epochen zu stabilisieren.
box7.5Weight of the box loss component in the loss function, influencing how much emphasis is placed on accurately predicting bounding box coordinates.
cls0.5Gewicht des Klassifizierungsverlusts in der Gesamtverlustfunktion, das die Bedeutung der korrekten Klassenvorhersage im Vergleich zu anderen Komponenten bestimmt.
dfl1.5Gewicht des Verteilungsfokusverlustes, der in bestimmten Versionen von YOLO für eine feinkörnige Klassifizierung verwendet wird.
pose12.0Gewicht des Posenverlusts in Modellen, die für die Posenschätzung trainiert wurden, was den Schwerpunkt auf die genaue Vorhersage der Posen-Keypoints legt.
kobj2.0Gewichtung des Objektivitätsverlusts von Schlüsselpunkten in Modellen zur Posenschätzung, die die Erkennungssicherheit mit der Posengenauigkeit in Einklang bringen.
label_smoothing0.0Die 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.
nbs64Nominale Losgröße zur Normalisierung des Verlustes.
overlap_maskTrueDetermines whether segmentation masks should overlap during training, applicable in instance segmentation tasks.
mask_ratio4Downsample-Verhältnis für Segmentierungsmasken, das sich auf die Auflösung der beim Training verwendeten Masken auswirkt.
dropout0.0Dropout-Rate für die Regularisierung bei Klassifizierungsaufgaben, die eine Überanpassung durch zufälliges Weglassen von Einheiten während des Trainings verhindert.
valTrueErmöglicht die Validierung während des Trainings, so dass die Leistung des Modells regelmäßig an einem separaten Datensatz bewertet werden kann.
plotsFalseErzeugt 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:

  • Fixed Batch Size: 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:

ArgumentTypStandardBeschreibung
sourcestr'ultralytics/assets'Specifies the data source for inference. Can be an image path, video file, directory, URL, or device ID for live feeds. Supports a wide range of formats and sources, enabling flexible application across different types of input.
conffloat0.25Legt 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.
ioufloat0.7Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Lower values result in fewer detections by eliminating overlapping boxes, useful for reducing duplicates.
imgszint or tuple640Legt die Bildgröße für die Inferenz fest. Kann eine einzelne ganze Zahl sein 640 for square resizing or a (height, width) tuple. Proper sizing can improve detection accuracy and processing speed.
halfboolFalseEnables half-precision (FP16) inference, which can speed up model inference on supported GPUs with minimal impact on accuracy.
devicestrNoneGibt 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_detint300Maximal 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_strideint1Frame 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_bufferboolFalseDetermines whether to queue incoming frames for video streams. If False, old frames get dropped to accomodate new frames (optimized for real-time applications). If `True', queues new frames in a buffer, ensuring no frames get skipped, but will cause latency if inference FPS is lower than stream FPS.
visualizeboolFalseAktiviert 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.
augmentboolFalseErmöglicht die Test-Time-Augmentation (TTA) für Vorhersagen, was die Robustheit der Erkennung auf Kosten der Schlussfolgerungsgeschwindigkeit verbessern kann.
agnostic_nmsboolFalseErmö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.
classeslist[int]NoneFiltert 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_masksboolFalseVerwendet hochauflösende Segmentierungsmasken, falls im Modell vorhanden. Dies kann die Qualität der Masken für Segmentierungsaufgaben verbessern, da sie feinere Details liefern.
embedlist[int]NoneSpecifies the layers from which to extract feature vectors or embeddings. Useful for downstream tasks like clustering or similarity search.

Argumente für die Visualisierung:

ArgumentTypStandardBeschreibung
showboolFalseWenn Truezeigt die kommentierten Bilder oder Videos in einem Fenster an. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder Prüfung.
saveboolFalse oder TrueEnables saving of the annotated images or videos to file. Useful for documentation, further analysis, or sharing results. Defaults to True when using CLI & False when used in Python.
save_framesboolFalseBei 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_txtboolFalseSpeichert 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_confboolFalseEnthält Konfidenzwerte in den gespeicherten Textdateien. Erhöht die Detailgenauigkeit bei der Nachbearbeitung und Analyse.
save_cropboolFalseSpeichert 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_labelsboolTrueZeigt Beschriftungen für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte.
show_confboolTrueZeigt die Konfidenzwerte für jede Erkennung neben der Bezeichnung an. Gibt einen Einblick in die Sicherheit des Modells für jede Erkennung.
show_boxesboolTrueZeichnet Begrenzungsrahmen um erkannte Objekte. Unverzichtbar für die visuelle Identifizierung und Lokalisierung von Objekten in Bildern oder Videoframes.
line_widthNone oder intNoneLegt 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.

ArgumentTypStandardBeschreibung
datastrNoneGibt den Pfad zur Dataset-Konfigurationsdatei an (z. B., coco8.yaml). This file includes paths to validation data, class names, and number of classes.
imgszint640Legt die Größe der Eingabebilder fest. Alle Bilder werden vor der Verarbeitung auf diese Größe angepasst.
batchint16Legt die Anzahl der Bilder pro Stapel fest. verwenden -1 für AutoBatch, das sich automatisch an die Verfügbarkeit des GPU Speichers anpasst.
save_jsonboolFalseWenn Truespeichert die Ergebnisse in einer JSON-Datei zur weiteren Analyse oder Integration in andere Tools.
save_hybridboolFalseWenn Truespeichert eine hybride Version von Labels, die die ursprünglichen Annotationen mit zusätzlichen Modellvorhersagen kombiniert.
conffloat0.001Legt die minimale Vertrauensschwelle für Erkennungen fest. Erkennungen, deren Konfidenz unter diesem Schwellenwert liegt, werden verworfen.
ioufloat0.6Sets the Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Helps in reducing duplicate detections.
max_detint300Begrenzt die maximale Anzahl der Erkennungen pro Bild. Nützlich in dichten Szenen, um übermäßige Erkennungen zu vermeiden.
halfboolTrueEnables half-precision (FP16) computation, reducing memory usage and potentially increasing speed with minimal impact on accuracy.
devicestrNoneGibt das Gerät für die Validierung an (cpu, cuda:0, etc.). Ermöglicht die flexible Nutzung der Ressourcen von CPU oder GPU .
dnnboolFalseWenn True, uses the OpenCV DNN module for ONNX model inference, offering an alternative to PyTorch inference methods.
plotsboolFalseBei der Einstellung auf Trueerstellt und speichert Diagramme der Vorhersagen im Vergleich zur Basiswahrheit, um die Leistung des Modells visuell zu bewerten.
rectboolFalseWenn Trueverwendet die rechteckige Inferenz für die Stapelverarbeitung, wodurch das Auffüllen reduziert und die Geschwindigkeit und Effizienz potenziell erhöht wird.
splitstrvalBestimmt 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.

Careful tuning and experimentation with these settings are crucial to ensure optimal performance on the validation dataset and detect and prevent overfitting.

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.

ArgumentTypStandardBeschreibung
formatstr'torchscript'Zielformat für das exportierte Modell, z. B. 'onnx', 'torchscript', 'tensorflow'oder andere, die die Kompatibilität mit verschiedenen Einsatzumgebungen definieren.
imgszint oder tuple640Gewü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.
kerasboolFalseEnables export to Keras format for TensorFlow SavedModel, providing compatibility with TensorFlow serving and APIs.
optimizeboolFalseWendet beim Export nach TorchScript eine Optimierung für mobile Geräte an, wodurch die Modellgröße reduziert und die Leistung verbessert werden kann.
halfboolFalseErmöglicht die FP16-Quantisierung (halbe Genauigkeit), wodurch die Modellgröße reduziert und die Inferenz auf unterstützter Hardware möglicherweise beschleunigt wird.
int8boolFalseActivates INT8 quantization, further compressing the model and speeding up inference with minimal accuracy loss, primarily for edge devices.
dynamicboolFalseErmöglicht dynamische Eingabegrößen für die Exporte von ONNX, TensorRT und OpenVINO und erhöht so die Flexibilität bei der Handhabung unterschiedlicher Bildgrößen.
simplifyboolTrueVereinfacht das Modelldiagramm für ONNX Exporte mit onnxslim, was die Leistung und Kompatibilität verbessern kann.
opsetintNoneGibt 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.
workspacefloat4.0Legt die maximale Größe des Arbeitsbereichs in GiB für TensorRT Optimierungen fest, die Speicherverbrauch und Leistung ausgleichen.
nmsboolFalseFügt dem CoreML Export die Nicht-Maximum-Unterdrückung (NMS) hinzu, die für eine genaue und effiziente Nachbearbeitung der Aufdeckung unerlässlich ist.
batchint1Gibt die Größe der Stapelrückschlüsse des Exportmodells oder die maximale Anzahl von Bildern an, in denen das exportierte Modell gleichzeitig verarbeitet wird. predict Modus.

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

Augmentation techniques are essential for improving the robustness and performance of YOLO models by introducing variability into the training data, helping the model generalize better to unseen data. The following table outlines the purpose and effect of each augmentation argument:

ArgumentTypStandardReichweiteBeschreibung
hsv_hfloat0.0150.0 - 1.0Passt 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_sfloat0.70.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_vfloat0.40.0 - 1.0Ändert den Wert (die Helligkeit) des Bildes um einen Bruchteil, damit das Modell bei verschiedenen Lichtverhältnissen gut funktioniert.
degreesfloat0.0-180 - +180Dreht das Bild zufällig innerhalb des angegebenen Gradbereichs und verbessert so die Fähigkeit des Modells, Objekte in verschiedenen Ausrichtungen zu erkennen.
translatefloat0.10.0 - 1.0Verschiebt das Bild horizontal und vertikal um einen Bruchteil der Bildgröße und hilft so beim Lernen, teilweise sichtbare Objekte zu erkennen.
scalefloat0.5>=0.0Skaliert das Bild mit einem Verstärkungsfaktor und simuliert so Objekte in unterschiedlichen Entfernungen zur Kamera.
shearfloat0.0-180 - +180Schert das Bild um einen bestimmten Grad, um den Effekt nachzuahmen, dass Objekte aus verschiedenen Winkeln betrachtet werden.
perspectivefloat0.00.0 - 0.001Wendet eine zufällige perspektivische Transformation auf das Bild an, um die Fähigkeit des Modells zu verbessern, Objekte im 3D-Raum zu verstehen.
flipudfloat0.00.0 - 1.0Stellt das Bild mit der angegebenen Wahrscheinlichkeit auf den Kopf, wodurch die Datenvariabilität erhöht wird, ohne die Eigenschaften des Objekts zu beeinträchtigen.
fliplrfloat0.50.0 - 1.0Spiegelt 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.
bgrfloat0.00.0 - 1.0Dreht 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.
mosaicfloat1.00.0 - 1.0Kombiniert vier Trainingsbilder zu einem einzigen und simuliert so verschiedene Szenenkompositionen und Objektinteraktionen. Sehr effektiv für das Verstehen komplexer Szenen.
mixupfloat0.00.0 - 1.0Fü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_pastefloat0.00.0 - 1.0Kopiert 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.
copy_paste_modestrflip-Copy-Paste augmentation method selection among the options of ("flip", "mixup").
auto_augmentstrrandaugment-Wendet automatisch eine vordefinierte Erweiterungsrichtlinie an (randaugment, autoaugment, augmix), die durch die Diversifizierung der visuellen Merkmale für Klassifizierungsaufgaben optimiert werden.
erasingfloat0.40.0 - 0.9Lö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_fractionfloat1.00.1 - 1.0Beschneidet 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.

ArgumentStandardBeschreibung
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_okFalseLegt 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.
plotsFalseSteuert die Erstellung und Speicherung von Trainings- und Validierungsplots. Setzen auf True to create plots such as loss curves, precision-recall curves, and sample predictions. Useful for visually tracking model performance over time.
saveFalseErmö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?

Improving YOLO model performance involves tuning hyperparameters like batch size, learning rate, momentum, and weight decay. Adjusting augmentation settings, selecting the right optimizer, and employing techniques like early stopping or mixed precision can also help. For detailed guidance on training settings, refer to the 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): Selects CPU or GPU for inference. For a comprehensive overview, visit the 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.

📅 Created 11 months ago ✏️ Updated 17 days ago

Kommentare