Konfiguration
YOLO Einstellungen 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 Stadien beeinflussen, einschließlich Training, Validierung und Vorhersage.
Watch: Mastering Ultralytics YOLO: Configuration
Ultralytics Befehle verwenden die folgende Syntax:
yolo TASK MODE ARGSWobei:
TASK(optional) ist eines von (detect, segment, classify, pose, obb)MODE(erforderlich) ist eines von (train, val, predict, export, track, benchmark)ARGS(optional) sindarg=value-Paare wieimgsz=640, die Standardeinstellungen überschreiben.
Default ARG values are defined on this page and come from the cfg/default.yaml file.
Tasks
Ultralytics YOLO Modelle können eine Vielzahl von Computer-Vision-Aufgaben ausführen, darunter:
- Detect: Objekterkennung identifiziert und lokalisiert Objekte innerhalb eines Bildes oder Videos.
- Segment: Instanzsegmentierung unterteilt ein Bild oder Video in Regionen, die verschiedenen Objekten oder Klassen entsprechen.
- Classify: Bildklassifizierung sagt das Klassenlabel eines Eingangsbildes voraus.
- Pose: Pose-Schätzung identifiziert Objekte und schätzt deren Schlüsselpunkte in einem Bild oder Video.
- OBB: Orientierte Begrenzungsrahmen verwendet gedrehte Begrenzungsrahmen, geeignet für Satelliten- oder medizinische Bilder.
| Argument | Standard | Beschreibung |
|---|---|---|
task | 'detect' | Gibt die YOLO Aufgabe an: detect für Objekterkennung, segment für Segmentierung, classify für Klassifizierung, pose für Pose-Schätzung und obb für orientierte Begrenzungsrahmen. Jede Aufgabe ist auf spezifische Ausgaben und Probleme bei der Bild- und Videoanalyse zugeschnitten. |
Modi
Ultralytics YOLO Modelle arbeiten in verschiedenen Modi, die jeweils für ein bestimmtes Stadium des Modelllebenszyklus entwickelt wurden:
- Train: Trainiere ein YOLO Modell auf einem benutzerdefinierten Datensatz.
- Val: Validiere ein trainiertes YOLO Modell.
- Predict: Verwende ein trainiertes YOLO Modell, um Vorhersagen für neue Bilder oder Videos zu treffen.
- Export: Exportiere ein YOLO Modell für die Bereitstellung.
- Track: Verfolge Objekte in Echtzeit mit einem YOLO Modell.
- Benchmark: Benchmarking der Geschwindigkeit und Genauigkeit von YOLO Exporten (ONNX, TensorRT, etc.).
| Argument | Standard | Beschreibung |
|---|---|---|
mode | 'train' | Gibt den Betriebsmodus des YOLO Modells an: train für Modelltraining, val für Validierung, predict für Inferenz, export für die Konvertierung in Bereitstellungsformate, track für Objektverfolgung und benchmark für Leistungsbewertung. Jeder Modus unterstützt verschiedene Phasen, von der Entwicklung bis zur Bereitstellung. |
Trainings-Einstellungen
Trainingseinstellungen für YOLO Modelle beinhalten Hyperparameter und Konfigurationen, die die Leistung, Geschwindigkeit und Genauigkeit des Modells beeinflussen. Wichtige Einstellungen umfassen Batchgröße, Lernrate, Impuls und Gewichtsabfall. Die Wahl des Optimierers, der Verlustfunktion und die Datensatzkomposition beeinflussen ebenfalls das Training. Optimierung und Experimente sind entscheidend für eine optimale Leistung. Weitere Details findest du in der Ultralytics Entrypoint-Funktion.
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
model | str | None | Gibt die Modelldatei für das Training an. Akzeptiert einen Pfad zu einem vortrainierten .pt Modell oder einer .yaml Konfigurationsdatei. Essenziell für die Definition der Modellstruktur oder Initialisierung der Gewichte. |
data | str | None | Pfad zur Datensatz-Konfigurationsdatei (z.B. coco8.yaml). Diese Datei enthält datensatzspezifische Parameter, einschließlich Pfaden zu Trainings- und Validierungsdaten, Klassennamen und Anzahl der Klassen. |
epochs | int | 100 | Gesamtzahl der Trainingsepochen. Jede Epoche repräsentiert einen vollständigen Durchlauf über den gesamten Datensatz. Die Anpassung dieses Wertes kann die Trainingsdauer und die Modellleistung beeinflussen. |
time | float | None | Maximale Trainingszeit in Stunden. Falls festgelegt, überschreibt dies das epochs-Argument, wodurch das Training automatisch nach der angegebenen Dauer gestoppt wird. Nützlich für zeitlich begrenzte Trainingsszenarien. |
patience | int | 100 | Anzahl der Epochen, die ohne Verbesserung der Validierungsmetriken gewartet wird, bevor das Training frühzeitig abgebrochen wird. Hilft, Overfitting zu vermeiden, indem das Training gestoppt wird, wenn die Leistung stagniert. |
batch | int oder float | 16 | Batchgröße mit drei Modi: als Ganzzahl festgelegt (z.B. batch=16), Auto-Modus für 60% GPU-Speicherauslastung (batch=-1) oder Auto-Modus mit angegebenem Auslastungsanteil (batch=0.70). |
imgsz | int | 640 | Zielbildgröße für das Training. Bilder werden auf Quadrate mit Seiten in der angegebenen Größe skaliert (wenn rect=False), wobei das Seitenverhältnis für YOLO Modelle beibehalten wird, nicht jedoch für RT-DETR. Beeinflusst die Modell-Genauigkeit und die rechnerische Komplexität. |
save | bool | True | Ermöglicht das Speichern von Trainings-Checkpoints und endgültigen Modellgewichten. Nützlich zum Fortsetzen des Trainings oder zur Modellbereitstellung. |
save_period | int | -1 | Häufigkeit des Speicherns von Modell-Checkpoints, angegeben in Epochen. Ein Wert von -1 deaktiviert diese Funktion. Nützlich zum Speichern von Zwischenmodellen während langer Trainingssitzungen. |
cache | bool | False | Aktiviert das Caching von Datensatzbildern im Arbeitsspeicher (True/ram), auf der Festplatte (disk) oder deaktiviert es (False). Verbessert die Trainingsgeschwindigkeit durch Reduzierung der Festplatten-I/O auf Kosten einer erhöhten Speicherauslastung. |
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), MPS für Apple Silicon (device=mps), Huawei Ascend NPU (device=npu oder device=npu:0) oder die automatische Auswahl der am wenigsten ausgelasteten GPU (device=-1) bzw. mehrerer inaktiver GPUs (device=[-1,-1]). |
workers | int | 8 | Anzahl der Worker-Threads für das Laden von Daten (pro RANK bei Multi-GPU-Training). Beeinflusst die Geschwindigkeit der Datenvorverarbeitung und die Einspeisung in das Modell, besonders nützlich bei Multi-GPU-Setups. |
project | str | None | Name des Projektverzeichnisses, in dem Trainingsausgaben gespeichert werden. Ermöglicht eine organisierte Speicherung verschiedener Experimente. |
name | str | None | Name des Trainingsdurchlaufs. Wird zur Erstellung eines Unterverzeichnisses innerhalb des Projektordners verwendet, in dem Trainingsprotokolle und -ausgaben gespeichert werden. |
exist_ok | bool | False | Wenn True, erlaubt es das Überschreiben eines existierenden Projekt-/Namensverzeichnisses. Nützlich für iterative Experimente, ohne vorherige Ausgaben manuell löschen zu müssen. |
pretrained | bool oder str | True | Bestimmt, ob das Training mit vortrainierten Gewichten gestartet werden soll. Kann ein boolescher Wert oder ein String-Pfad zu den zu ladenden Gewichten sein. pretrained=False trainiert mit zufällig initialisierten Gewichten bei Beibehaltung der Modellarchitektur. |
optimizer | str | 'auto' | Wahl des Optimierers für das Training. Optionen umfassen SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp oder auto für eine automatische Auswahl basierend auf der Modellkonfiguration. Beeinflusst Konvergenzgeschwindigkeit und Stabilität. |
seed | int | 0 | Setzt den Zufallsstartwert für das Training und stellt die Reproduzierbarkeit der Ergebnisse über verschiedene Durchläufe mit denselben Konfigurationen sicher. |
deterministic | bool | True | Erzwingt die Verwendung deterministischer Algorithmen, was die Reproduzierbarkeit sicherstellt, jedoch die Leistung und Geschwindigkeit aufgrund der Einschränkung auf nicht-deterministische Algorithmen beeinträchtigen kann. |
verbose | bool | True | Aktiviert die ausführliche Ausgabe während des Trainings und zeigt Fortschrittsbalken, epochenbasierte Metriken und zusätzliche Trainingsinformationen in der Konsole an. |
single_cls | bool | False | Behandelt alle Klassen in Datensätzen mit mehreren Klassen als eine einzige Klasse während des Trainings. Nützlich für binäre Klassifizierungsaufgaben oder wenn der Fokus eher auf der Objektpräsenz als auf der Klassifizierung liegt. |
classes | list[int] | None | Gibt eine Liste von Klassen-IDs an, auf denen trainiert werden soll. Nützlich, um bestimmte Klassen herauszufiltern und sich nur auf diese während des Trainings zu konzentrieren. |
rect | bool | False | Aktiviert die Strategie der minimalen Auffüllung—Bilder in einem Batch werden minimal aufgefüllt, um eine gemeinsame Größe zu erreichen, wobei die längste Seite imgsz entspricht. Kann Effizienz und Geschwindigkeit verbessern, kann aber die Genauigkeit des Modells beeinflussen. |
multi_scale | float | 0.0 | Variiert imgsz zufällig für jeden Batch um +/- multi_scale (z.B. 0.25 -> 0.75x bis 1.25x), abgerundet auf ein Vielfaches der Modell-Stride; 0.0 deaktiviert das Multi-Scale-Training. |
cos_lr | bool | False | Verwendet einen Kosinus-Lernratenplaner, der die Lernrate über die Epochen hinweg gemäß einer Kosinuskurve anpasst. Hilft bei der Verwaltung der Lernrate für eine bessere Konvergenz. |
close_mosaic | int | 10 | Deaktiviert Data Augmentation in den letzten N Epochen, um das Training vor dem Abschluss zu stabilisieren. Wenn du diesen Wert auf 0 setzt, wird diese Funktion deaktiviert. |
resume | bool | False | Setzt das Training vom zuletzt gespeicherten Checkpoint fort. Lädt automatisch Modellgewichte, Optimierer-Status und Epochenanzahl, um das Training nahtlos fortzusetzen. |
amp | bool | True | Aktiviert das Training mit automatischer Mixed Precision (AMP), was den Speicherverbrauch reduziert und das Training bei minimalem Einfluss auf die Genauigkeit möglicherweise beschleunigt. |
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 | Aktiviert die Profilierung von ONNX- und TensorRT-Geschwindigkeiten während des Trainings, nützlich für die Optimierung der Modellbereitstellung. |
freeze | int oder list | None | Friert die ersten N Schichten des Modells oder spezifische Schichten nach Index ein, wodurch die Anzahl der trainierbaren Parameter reduziert wird. Nützlich für Fine-Tuning oder Transfer Learning. |
lr0 | float | 0.01 | Anfängliche Lernrate (z. B. SGD=1E-2, Adam=1E-3). Die Anpassung dieses Wertes ist entscheidend für den Optimierungsprozess, da sie beeinflusst, wie schnell die Modellgewichte aktualisiert werden. |
lrf | float | 0.01 | Finale Lernrate als Bruchteil der anfänglichen Rate = (lr0 * lrf), die in Verbindung mit Schedulern verwendet wird, um die Lernrate im Laufe der Zeit anzupassen. |
momentum | float | 0.937 | Momentum-Faktor für SGD oder beta1 für Adam-Optimierer, was die Einbeziehung vergangener Gradienten in das aktuelle Update beeinflusst. |
weight_decay | float | 0.0005 | L2-Regularisierung-Term, der große Gewichte bestraft, um Overfitting zu verhindern. |
warmup_epochs | float | 3.0 | Anzahl der Epochen für das Warmup der Lernrate, wodurch 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 | Anfängliches Momentum für die Warmup-Phase, das sich über den Warmup-Zeitraum hinweg schrittweise an das eingestellte Momentum anpasst. |
warmup_bias_lr | float | 0.1 | Lernrate für Bias-Parameter während der Warmup-Phase, die hilft, das Modelltraining in den anfänglichen Epochen zu stabilisieren. |
box | float | 7.5 | Gewichtung der Box-Verlustkomponente in der Loss Function, die beeinflusst, wie viel Gewicht auf die genaue Vorhersage der Bounding Box-Koordinaten gelegt wird. |
cls | float | 0.5 | Gewichtung des Klassifizierungsverlusts in der gesamten Verlustfunktion, was die Bedeutung der korrekten Klassenvorhersage im Verhältnis zu anderen Komponenten beeinflusst. |
cls_pw | float | 0.0 | Potenz für die Klassengewichtung, um das Klassenungleichgewicht mithilfe der inversen Klassenhäufigkeit zu bewältigen. 0.0 deaktiviert die Klassengewichtung, 1.0 wendet die volle inverse Häufigkeitsgewichtung an. Werte zwischen 0 und 1 bieten eine teilweise Gewichtung. |
dfl | float | 1.5 | Gewichtung des Distribution Focal Loss, der in bestimmten YOLO-Versionen für die fein abgestufte Klassifizierung verwendet wird. |
pose | float | 12.0 | Gewichtung des Pose-Verlusts bei Modellen, die für die Pose-Schätzung trainiert wurden, was den Schwerpunkt auf die genaue Vorhersage von Pose-Keypoints beeinflusst. |
kobj | float | 1.0 | Gewichtung des Keypoint-Objectness-Verlusts in Pose-Schätzungsmodellen, um Detektionsvertrauen mit Pose-Genauigkeit in Einklang zu bringen. |
rle | float | 1.0 | Gewichtung des residualen Log-Likelihood-Schätzungsverlusts in Pose-Schätzungsmodellen, was die Präzision der Keypoint-Lokalisierung beeinflusst. |
angle | float | 1.0 | Gewichtung des Winkelverlusts in OBB-Modellen, was die Präzision von orientierten Bounding-Box-Winkelvorhersagen beeinflusst. |
nbs | int | 64 | Nominale Batch-Größe für die Normalisierung des Verlusts. |
overlap_mask | bool | True | Bestimmt, ob Objektmasken für das Training zu einer einzigen Maske zusammengeführt werden sollen oder für jedes Objekt separat bleiben. Bei Überlappungen wird beim Zusammenführen die kleinere Maske über die größere gelegt. |
mask_ratio | int | 4 | Downsample-Verhältnis für Segmentierungsmasken, das die Auflösung der während des Trainings verwendeten Masken beeinflusst. |
dropout | float | 0.0 | Dropout-Rate für die Regularisierung bei Klassifizierungsaufgaben, um Overfitting durch zufälliges Weglassen von Einheiten während des Trainings zu verhindern. |
val | bool | True | Aktiviert die Validierung während des Trainings, um eine regelmäßige Bewertung der Modellleistung auf einem separaten Datensatz zu ermöglichen. |
plots | bool | True | Erstellt und speichert Plots von Trainings- und Validierungsmetriken sowie Vorhersagebeispiele, um visuelle Einblicke in die Modellleistung und den Lernfortschritt zu bieten. |
compile | bool oder str | False | Aktiviert die PyTorch 2.x torch.compile Graphenkompilierung mit backend='inductor'. Akzeptiert True → "default", False → deaktiviert, oder einen String-Modus wie "default", "reduce-overhead", "max-autotune-no-cudagraphs". Greift bei Nichtunterstützung mit einer Warnung auf den Eager-Modus zurück. |
max_det | int | 300 | Gibt die maximale Anzahl an Objekten an, die während der Validierungsphase des Trainings beibehalten werden. |
Das batch-Argument bietet drei Konfigurationsoptionen:
- Feste Batch-Größe: Gib die Anzahl der Bilder pro Batch mit einer Ganzzahl an (z. B.
batch=16). - Auto-Modus (60% GPU-Speicher): Verwende
batch=-1für eine automatische Anpassung auf etwa 60% der CUDA-Speicherauslastung. - Auto-Modus mit Auslastungsanteil: Setze einen Bruchteil (z. B.
batch=0.70), um die Anpassung basierend auf einer festgelegten GPU-Speicherauslastung vorzunehmen.
Vorhersage-Einstellungen
Vorhersage-Einstellungen für YOLO-Modelle umfassen Hyperparameter und Konfigurationen, die Leistung, Geschwindigkeit und Genauigkeit während der Inferenz beeinflussen. Zu den wichtigsten Einstellungen gehören der Konfidenz-Schwellenwert, der Non-Maximum Suppression (NMS)-Schwellenwert und die Anzahl der Klassen. Eingabedatengröße, Format und zusätzliche Funktionen wie Masken beeinflussen ebenfalls die Vorhersagen. Das Anpassen dieser Einstellungen ist für eine optimale Leistung unerlässlich.
Inferenz-Argumente:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
source | str oder int oder None | None | 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. Falls weggelassen, wird eine Warnung protokolliert und das Modell greift auf die integrierten Demo-Assets zurück (ultralytics/assets oder eine Demo-URL für OBB). Unterstützt eine Vielzahl von Formaten und Quellen, was eine flexible Anwendung über verschiedene Arten von Eingaben ermöglicht. |
conf | float | 0.25 | Setzt den minimalen Konfidenz-Schwellenwert für Detektionen fest. Objekte, die mit einer Konfidenz unter diesem Schwellenwert erkannt werden, werden ignoriert. Das Anpassen dieses Wertes kann helfen, falsch-positive Ergebnisse zu reduzieren. |
iou | float | 0.7 | Intersection Over Union (IoU)-Schwellenwert für Non-Maximum Suppression (NMS). Niedrigere Werte führen zu weniger Detektionen durch das Eliminieren überlappender Boxen, nützlich zur Reduzierung von Duplikaten. |
imgsz | int oder tuple | 640 | Letterbox-Ziel. Eine Ganzzahl ergibt ein quadratisches N×N; ein Tupel ergibt (height, width). Mit rect=True kann der tatsächliche Tensor aufgrund von Minimum-Rectangle-Padding kleiner als dieses Ziel sein. Verwende rect=False für eine feste Größe. Siehe Fixed shape vs minimum rectangle. |
rect | bool | True | Wenn True, verwende Minimum-Rectangle-Padding, wenn möglich (bei Batch mit gleicher Form und unterstütztem Backend). Wenn False, immer auf die volle imgsz auffüllen. Siehe Fixed shape vs minimum rectangle. |
half | bool | False | Aktiviert die Inferenz mit halber Präzision (FP16), was die Modell-Inferenz auf unterstützten GPUs bei minimalem Einfluss auf die Genauigkeit beschleunigen kann. |
device | str | None | Gibt das Gerät für die Inferenz an (z. B. cpu, cuda:0, 0, npu oder npu:0). Ermöglicht es Benutzern, zwischen CPU, einer spezifischen GPU, Huawei Ascend NPU oder anderen Rechengeräten für die Modellausführung zu wählen. |
batch | int | 1 | Gibt die Batch-Größe für die Inferenz an (funktioniert nur, wenn die Quelle ein Verzeichnis, eine Videodatei oder eine .txt-Datei ist). Eine größere Batch-Größe kann einen höheren Durchsatz bieten und die für die Inferenz erforderliche Gesamtzeit verkürzen. |
max_det | int | 300 | Maximale Anzahl an erlaubten Erkennungen pro Bild. Begrenzt die Gesamtzahl der Objekte, die das Modell in einer einzelnen Inferenz erkennen kann, um übermäßige Ausgaben in dichten Szenen zu vermeiden. |
vid_stride | int | 1 | Frame-Stride für Videoeingaben. Ermöglicht das Überspringen von Bildern in Videos, um die Verarbeitung auf Kosten der zeitlichen Auflösung zu beschleunigen. Ein Wert von 1 verarbeitet jedes Bild, höhere Werte überspringen Bilder. |
stream_buffer | bool | False | Bestimmt, ob eingehende Bilder für Videostreams in eine Warteschlange gestellt werden sollen. Wenn False, werden alte Bilder verworfen, um Platz für neue zu schaffen (optimiert für Echtzeitanwendungen). Wenn True, werden neue Bilder in einem Puffer in die Warteschlange gestellt, um sicherzustellen, dass keine Bilder übersprungen werden, was jedoch zu Latenz führt, wenn die Inferenz-FPS niedriger als die Stream-FPS sind. |
visualize | bool | False | Aktiviert die Visualisierung von Modellmerkmalen während der Inferenz und bietet Einblicke darin, was das Modell „sieht“. Nützlich für das Debugging und die Modellinterpretation. |
augment | bool | False | Aktiviert die Test-Time Augmentation (TTA) für Vorhersagen, was die Erkennungsrobustheit auf Kosten der Inferenzgeschwindigkeit potenziell verbessern kann. |
agnostic_nms | bool | False | Aktiviert klassenunabhängige Non-Maximum Suppression (NMS), die überlappende Boxen verschiedener Klassen zusammenführt. Nützlich in Szenarien mit Multi-Klassen-Erkennung, in denen Klassenüberlappungen häufig vorkommen. Bei End-to-End-Modellen (YOLO26, YOLOv10) verhindert dies lediglich, dass dieselbe Erkennung mit mehreren Klassen-Labels erscheint (IoU=1.0-Duplikate), und führt keine IoU-schwellenwertbasierte Unterdrückung zwischen unterschiedlichen Boxen durch. |
classes | list[int] | None | Filtert Vorhersagen auf eine Menge von Klassen-IDs. Nur Erkennungen, die zu den angegebenen Klassen gehören, werden zurückgegeben. Nützlich, um sich bei Multi-Klassen-Erkennungsaufgaben auf relevante Objekte zu konzentrieren. |
retina_masks | bool | False | Gibt hochauflösende Segmentierungsmasken zurück. Die zurückgegebenen Masken (masks.data) entsprechen bei Aktivierung der ursprünglichen Bildgröße. Wenn deaktiviert, haben sie die während der Inferenz verwendete Bildgröße. |
embed | list[int] | None | Gibt die Schichten an, aus denen Merkmalsvektoren oder Embeddings extrahiert werden sollen. Nützlich für nachgelagerte Aufgaben wie Clustering oder Ähnlichkeitssuche. |
project | str | None | Name des Projektverzeichnisses, in dem Vorhersageergebnisse gespeichert werden, wenn save aktiviert ist. |
name | str | None | Name des Vorhersagedurchlaufs. Wird zum Erstellen eines Unterverzeichnisses innerhalb des Projektordners verwendet, in dem Vorhersageergebnisse gespeichert werden, wenn save aktiviert ist. |
stream | bool | False | Ermöglicht speichereffiziente Verarbeitung für lange Videos oder zahlreiche Bilder, indem ein Generator von Results-Objekten zurückgegeben wird, anstatt alle Bilder gleichzeitig in den Speicher zu laden. |
verbose | bool | True | Steuert, ob detaillierte Inferenz-Logs im Terminal angezeigt werden, was Echtzeit-Feedback zum Vorhersageprozess liefert. |
compile | bool oder str | False | Aktiviert die PyTorch 2.x torch.compile Graphenkompilierung mit backend='inductor'. Akzeptiert True → "default", False → deaktiviert, oder einen String-Modus wie "default", "reduce-overhead", "max-autotune-no-cudagraphs". Greift bei Nichtunterstützung mit einer Warnung auf den Eager-Modus zurück. |
end2end | bool | None | Überschreibt den End-to-End-Modus in YOLO-Modellen, die NMS-freie Inferenz unterstützen (YOLO26, YOLOv10). Wenn du es auf False setzt, kannst du die Vorhersage mit der traditionellen NMS-Pipeline ausführen und zusätzlich das iou-Argument nutzen. Siehe den End-to-End Detection Guide für Details. |
Visualisierungsargumente:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Wenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für direktes visuelles Feedback während der Entwicklung oder beim Testen. |
save | bool | False or True | Ermöglicht das Speichern der annotierten Bilder oder Videos als Dateien. Nützlich für Dokumentation, weitere Analysen oder das Teilen von Ergebnissen. Standardmäßig auf True, wenn CLI verwendet wird, und auf False, wenn in Python verwendet. |
save_frames | bool | False | Speichert beim Verarbeiten von Videos einzelne Bilder als Bilddateien. Nützlich zum Extrahieren spezifischer Frames oder für detaillierte Bild-für-Bild-Analysen. |
save_txt | bool | False | Speichert Erkennungsergebnisse in einer Textdatei im Format [class] [x_center] [y_center] [width] [height] [confidence]. Nützlich für die Integration mit anderen Analysetools. |
save_conf | bool | False | Fügt Konfidenzwerte in die gespeicherten Textdateien ein. Verbessert die Details für die Nachverarbeitung und Analyse. |
save_crop | bool | False | Speichert zugeschnittene Bilder von Erkennungen. Nützlich für Daten-Augmentierung, Analysen oder zum Erstellen fokussierter Datensätze für bestimmte Objekte. |
show_labels | bool | True | Zeigt Labels für jede Erkennung in der visuellen Ausgabe an. Bietet unmittelbares Verständnis der erkannten Objekte. |
show_conf | bool | True | Zeigt den Konfidenzwert für jede Erkennung neben dem Label an. Gibt Aufschluss über die Sicherheit des Modells bei jeder Erkennung. |
show_boxes | bool | True | Zeichnet Bounding-Boxen um erkannte Objekte. Essentiell für die visuelle Identifikation und Lokalisierung von Objekten in Bildern oder Videoframes. |
line_width | int or None | None | Gibt die Linienbreite der Bounding-Boxen an. Wenn None, wird die Linienbreite automatisch basierend auf der Bildgröße angepasst. Bietet visuelle Anpassung für mehr Klarheit. |
Validierungseinstellungen
Validierungseinstellungen für YOLO-Modelle beinhalten Hyperparameter und Konfigurationen zur Bewertung der Leistung auf einem Validierungsdatensatz. Diese Einstellungen beeinflussen Leistung, Geschwindigkeit und Genauigkeit. Gängige Einstellungen sind Batch-Größe, Validierungshäufigkeit und Leistungsmetriken. Auch die Größe und Zusammensetzung des Validierungsdatensatzes sowie die spezifische Aufgabe beeinflussen den Prozess.
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
data | str | None | Gibt den Pfad zur Datensatz-Konfigurationsdatei an (z. B. coco8.yaml). Diese Datei sollte den Pfad zu den Validierungsdaten enthalten. |
imgsz | int | 640 | Definiert die Größe der Eingabebilder. Alle Bilder werden vor der Verarbeitung auf diese Dimension skaliert. Größere Dimensionen können die Genauigkeit bei kleinen Objekten verbessern, erhöhen jedoch die Rechenzeit. |
batch | int | 16 | Setzt die Anzahl der Bilder pro Batch. Höhere Werte nutzen den GPU-Speicher effizienter, erfordern jedoch mehr VRAM. Passe dies basierend auf den verfügbaren Hardware-Ressourcen an. |
save_json | bool | False | Wenn True, werden die Ergebnisse zur weiteren Analyse, Integration mit anderen Tools oder zur Einreichung bei Evaluierungsservern wie COCO in einer JSON-Datei gespeichert. |
conf | float | 0.001 | Setzt den minimalen Konfidenz-Schwellenwert für Erkennungen. Niedrigere Werte erhöhen den Recall, können aber zu mehr falsch-positiven Ergebnissen führen. Wird während der Validierung verwendet, um Precision-Recall-Kurven zu berechnen. |
iou | float | 0.7 | Setzt den Intersection Over Union-Schwellenwert für die Non-Maximum Suppression. Steuert die Eliminierung doppelter Erkennungen. |
max_det | int | 300 | Begrenzt die maximale Anzahl an Erkennungen pro Bild. Nützlich in dichten Szenen, um übermäßige Erkennungen zu vermeiden und Rechenressourcen zu verwalten. |
half | bool | False | Aktiviert die Berechnung mit halber Präzision (FP16), was den Speicherverbrauch reduziert und potenziell die Geschwindigkeit bei minimalem Einfluss auf die Genauigkeit erhöht. |
device | str | None | Gibt das Gerät für die Validierung an (cpu, cuda:0, npu, npu:0, etc.). Bei None wird automatisch das beste verfügbare Gerät ausgewählt. Mehrere CUDA-Geräte können durch Kommas getrennt angegeben werden. |
dnn | bool | False | Wenn True, wird das OpenCV DNN-Modul für die ONNX-Modell-Inferenz verwendet, was eine Alternative zu PyTorch-Inferenzmethoden bietet. |
plots | bool | True | Wenn auf True gesetzt, werden Diagramme von Vorhersagen gegenüber Ground Truth, Konfusionsmatrizen und PR-Kurven zur visuellen Bewertung der Modellleistung erstellt und gespeichert. |
classes | list[int] | None | Gibt eine Liste von Klassen-IDs zur Evaluierung an. Nützlich, um während der Evaluierung bestimmte Klassen herauszufiltern und sich nur auf diese zu konzentrieren. |
rect | bool | True | Wenn True, wird rechteckige Inferenz für das Batching verwendet, was das Padding reduziert und potenziell die Geschwindigkeit und Effizienz erhöht, indem Bilder in ihrem ursprünglichen Seitenverhältnis verarbeitet werden. |
split | str | 'val' | Bestimmt den Datensatz-Split, der für die Validierung verwendet werden soll (val, test oder train). Erlaubt Flexibilität bei der Auswahl des Datensegments zur Leistungsbewertung. |
project | str | None | Name des Projektverzeichnisses, in dem Validierungsergebnisse gespeichert werden. Hilft dabei, Ergebnisse aus verschiedenen Experimenten oder Modellen zu organisieren. |
name | str | None | Name des Validierungsdurchlaufs. Wird zum Erstellen eines Unterverzeichnisses innerhalb des Projektordners verwendet, in dem Validierungs-Logs und -ergebnisse gespeichert werden. |
verbose | bool | True | Wenn True, werden detaillierte Informationen während des Validierungsprozesses angezeigt, einschließlich Metriken pro Klasse, Batch-Fortschritt und zusätzlichen Debugging-Informationen. |
save_txt | bool | False | Wenn True, werden Erkennungsergebnisse in Textdateien gespeichert, eine Datei pro Bild; nützlich für weitere Analysen, benutzerdefinierte Nachverarbeitung oder die Integration mit anderen Systemen. |
save_conf | bool | False | Wenn True, werden Konfidenzwerte in die gespeicherten Textdateien aufgenommen, sofern save_txt aktiviert ist, was detailliertere Ausgaben für Analyse und Filterung bietet. |
workers | int | 8 | Anzahl der Worker-Threads für das Laden der Daten. Höhere Werte können die Vorverarbeitung der Daten beschleunigen, aber die CPU-Auslastung erhöhen. Die Einstellung auf 0 verwendet den Haupt-Thread, was in einigen Umgebungen stabiler sein kann. |
augment | bool | False | Aktiviert die Test-Time Augmentation (TTA) während der Validierung, was die Erkennungsgenauigkeit potenziell verbessern kann, auf Kosten der Inferenzgeschwindigkeit, da die Inferenz auf transformierten Versionen der Eingabe ausgeführt wird. |
agnostic_nms | bool | False | Aktiviert die klassenunabhängige Non-Maximum Suppression, die überlappende Boxen unabhängig von ihrer vorhergesagten Klasse zusammenführt. Nützlich für instanzorientierte Anwendungen. Bei End-to-End-Modellen (YOLO26, YOLOv10) verhindert dies nur, dass dieselbe Erkennung mit mehreren Klassen-Labels erscheint (IoU=1.0-Duplikate), und führt keine IoU-schwellenwertbasierte Unterdrückung zwischen unterschiedlichen Boxen durch. |
single_cls | bool | False | Behandelt alle Klassen als eine einzige Klasse während der Validierung. Nützlich zur Bewertung der Modellleistung bei binären Erkennungsaufgaben oder wenn Klassenunterschiede nicht wichtig sind. |
visualize | bool | False | Visualisiert die Ground Truths, True Positives, False Positives und False Negatives für jedes Bild. Nützlich für das Debugging und die Modellinterpretation. |
compile | bool oder str | False | Aktiviert die PyTorch 2.x torch.compile Graphenkompilierung mit backend='inductor'. Akzeptiert True → "default", False → deaktiviert, oder einen String-Modus wie "default", "reduce-overhead", "max-autotune-no-cudagraphs". Greift bei Nichtunterstützung mit einer Warnung auf den Eager-Modus zurück. |
end2end | bool | None | Überschreibt den End-to-End-Modus in YOLO-Modellen, die NMS-freie Inferenz unterstützen (YOLO26, YOLOv10). Wenn du es auf False setzt, kannst du die Validierung mit der traditionellen NMS-Pipeline ausführen und zusätzlich das iou-Argument nutzen. |
Sorgfältige Abstimmung und Experimente sind entscheidend, um eine optimale Leistung zu gewährleisten und Overfitting zu erkennen und zu verhindern.
Export-Einstellungen
Export-Einstellungen für YOLO-Modelle umfassen Konfigurationen zum Speichern oder Exportieren des Modells für die Verwendung in verschiedenen Umgebungen. Diese Einstellungen wirken sich auf Leistung, Größe und Kompatibilität aus. Wichtige Einstellungen umfassen das exportierte Dateiformat (z. B. ONNX, TensorFlow SavedModel), das Zielgerät (z. B. CPU, GPU) und Features wie Masken. Auch die Aufgabe des Modells und die Einschränkungen der Zielumgebung beeinflussen den Exportprozess.
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
format | str | 'torchscript' | Zielformat für das exportierte Modell, wie z. B. 'onnx', 'torchscript', 'engine' (TensorRT) oder andere. Jedes Format ermöglicht die Kompatibilität mit verschiedenen Bereitstellungsumgebungen. |
imgsz | int oder tuple | 640 | Gewünschte Bildgröße für die Modelleingabe. Kann ein Integer für quadratische Bilder (z. B. 640 für 640×640) oder ein Tupel (height, width) für spezifische Dimensionen sein. |
keras | bool | False | Ermöglicht den Export in das Keras-Format für TensorFlow SavedModel, was Kompatibilität mit TensorFlow Serving und APIs bietet. |
optimize | bool | False | Wendet Optimierungen für mobile Geräte beim Export nach TorchScript an, was potenziell die Modellgröße reduziert und die Inferenzleistung verbessert. Nicht kompatibel mit dem NCNN-Format oder CUDA-Geräten. Für DeepX ermöglicht dies eine höhere Compiler-Optimierung, die die Inferenzlatenz verringert und die Kompilierzeit erhöht. |
half | bool | False | Ermöglicht FP16-Quantisierung (halbe Präzision), was die Modellgröße reduziert und potenziell die Inferenz auf unterstützter Hardware beschleunigt. Nicht kompatibel mit INT8-Quantisierung oder CPU-only-Exporten. Nur für bestimmte Formate verfügbar, z. B. ONNX (siehe unten). |
int8 | bool | False | Aktiviert die INT8-Quantisierung, was das Modell weiter komprimiert und die Inferenz bei minimalem Genauigkeitsverlust beschleunigt, primär für Edge-Geräte. Bei Verwendung mit TensorRT erfolgt eine Post-Training-Quantisierung (PTQ). |
dynamic | bool | False | Erlaubt dynamische Eingabegrößen für TorchScript-, ONNX-, OpenVINO-, TensorRT- und CoreML-Exporte, was die Flexibilität im Umgang mit variierenden Bilddimensionen erhöht. Wird bei der Verwendung von TensorRT mit INT8 automatisch auf True gesetzt. |
simplify | bool | True | Vereinfacht den Modellgraphen für ONNX-Exporte mit onnxslim, was potenziell die Leistung und Kompatibilität mit Inferenz-Engines verbessert. |
opset | int | None | Gibt die ONNX-Opset-Version zur Kompatibilität mit verschiedenen ONNX-Parsern und Runtimes an. Wenn nicht gesetzt, wird die neueste unterstützte Version verwendet. |
workspace | float oder None | None | Legt die maximale Arbeitsbereichsgröße in GiB für TensorRT-Optimierungen fest, um ein Gleichgewicht zwischen Speicherauslastung und Leistung zu finden. Verwende None für die automatische Zuweisung durch TensorRT bis zum Geräte-Maximum. |
nms | bool | False | Fügt Non-Maximum Suppression (NMS) zum exportierten Modell hinzu, sofern unterstützt (siehe Exportformate), was die Effizienz der Nachbearbeitung bei der Erkennung verbessert. Nicht verfügbar für end2end-Modelle. |
batch | int | 1 | Gibt die Batch-Inferenzgröße des Exportmodells oder die maximale Anzahl der Bilder an, die das exportierte Modell gleichzeitig im predict-Modus verarbeitet. Bei Edge TPU-Exporten wird dies automatisch auf 1 gesetzt. |
device | str | None | Gibt das Gerät für den Export an: GPU (device=0), CPU (device=cpu), MPS für Apple Silicon (device=mps), Huawei Ascend NPU (device=npu oder device=npu:0) oder DLA für NVIDIA Jetson (device=dla:0 oder device=dla:1). TensorRT-Exporte verwenden automatisch die GPU. |
data | str | 'coco8.yaml' | Pfad zur Dataset-Konfigurationsdatei, essenziell für die INT8-Quantisierungskalibrierung. Wenn bei aktivierter INT8-Option nichts angegeben ist, wird coco8.yaml als Fallback für die Kalibrierung verwendet. |
fraction | float | 1.0 | Gibt den Anteil des Datensatzes an, der für die INT8-Quantisierungskalibrierung verwendet werden soll. Ermöglicht die Kalibrierung auf einer Teilmenge des gesamten Datensatzes, was für Experimente oder bei begrenzten Ressourcen nützlich ist. Wenn bei aktivierter INT8-Option nichts angegeben ist, wird der gesamte Datensatz verwendet. |
end2end | bool | None | Überschreibt den End-to-End-Modus in YOLO-Modellen, die NMS-freie Inferenz unterstützen (YOLO26, YOLOv10). Wenn du dies auf False setzt, kannst du diese Modelle so exportieren, dass sie mit der traditionellen NMS-basierten Nachbearbeitungspipeline kompatibel sind. Siehe den End-to-End Detection Leitfaden für Details. |
Eine durchdachte Konfiguration stellt sicher, dass das exportierte Modell für seinen Anwendungsfall optimiert ist und in der Zielumgebung effektiv funktioniert.
Lösungseinstellungen
Die Konfigurationseinstellungen für Ultralytics Solutions bieten Flexibilität, um Modelle für Aufgaben wie Objektzählung, Heatmap-Erstellung, Workout-Tracking, Datenanalyse, Zonen-Tracking, Warteschlangenmanagement und regionsbasierte Zählung anzupassen. 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 zu einer Ultralytics YOLO-Modelldatei. |
region | list | '[(20, 400), (1260, 400)]' | Liste von Punkten, die den Zählbereich definieren. |
show_in | bool | True | Flag zur Steuerung, ob die 'In'-Zählungen auf dem Videostream angezeigt werden sollen. |
show_out | bool | True | Flag zur Steuerung, ob die 'Out'-Zählungen auf dem Videostream angezeigt werden sollen. |
analytics_type | str | 'line' | Art des Diagramms, d.h. line, bar, area oder pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Farbskala, die für die Heatmap verwendet werden soll. |
json_file | str | None | Pfad zur JSON-Datei, die alle Daten zu Parkplatzkoordinaten enthält. |
up_angle | float | 145.0 | Winkelschwellenwert für die 'up'-Pose. |
kpts | list[int] | '[6, 8, 10]' | Liste von drei Keypoint-Indizes, die zur Überwachung von Workouts verwendet werden. Diese Keypoints entsprechen Körpergelenken oder -teilen, wie Schultern, Ellbogen und Handgelenken, für Übungen wie Liegestütze, Klimmzüge, Kniebeugen und Bauchmuskeltraining. |
down_angle | int | 90 | Winkelschwellenwert für die 'down'-Pose. |
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' | Verzeichnisname zum Speichern von zugeschnittenen Erkennungen. |
records | int | 5 | Gesamtanzahl der Erkennungen, um eine E-Mail mit dem Sicherheitsalarmsystem auszulösen. |
vision_point | tuple[int, int] | (20, 20) | Der Punkt, an dem Vision Objekte verfolgt und Pfade mithilfe der VisionEye-Lösung zeichnet. |
source | str | None | Pfad zur Eingabequelle (Video, RTSP, usw.). Nur mit der Befehlszeilenschnittstelle (CLI) von Solutions verwendbar. |
figsize | tuple[int, int] | (12.8, 7.2) | Figurengröße für Analyse-Diagramme wie Heatmaps oder Graphen. |
fps | float | 30.0 | Bilder pro Sekunde, die für Geschwindigkeitsberechnungen verwendet werden. |
max_hist | int | 5 | Maximale historische Punkte, die pro Objekt für Geschwindigkeits-/Richtungsberechnungen verfolgt werden sollen. |
meter_per_pixel | float | 0.05 | Skalierungsfaktor zur Umrechnung von Pixelabständen in reale Einheiten. |
max_speed | int | 120 | Maximales Tempolimit in visuellen Overlays (wird bei Warnungen verwendet). |
data | str | 'images' | Pfad zum Bildverzeichnis, das für die Ähnlichkeitssuche verwendet wird. |
Augmentierungseinstellungen
Datenaugmentierung-Techniken sind entscheidend, um die Robustheit und Leistung des YOLO-Modells zu verbessern, indem Variabilität in die Trainingsdaten eingebracht wird. Dies hilft dem Modell, besser auf unbekannte Daten zu generalisieren. Die folgende Tabelle erläutert den Zweck und die Auswirkung jedes Augmentierungsarguments:
| Argument | Typ | Standard | Unterstützte Aufgaben | Bereich | Beschreibung |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Passt den Farbton des Bildes um einen Bruchteil des Farbkreises an, was zu Farbvariabilität führt. Hilft dem Modell, über verschiedene Lichtverhältnisse hinweg zu generalisieren. |
hsv_s | float | 0.7 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Verändert die Sättigung des Bildes um einen Bruchteil, was die Intensität der Farben beeinflusst. Nützlich zur Simulation verschiedener Umgebungsbedingungen. |
hsv_v | float | 0.4 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Modifiziert den Wert (Helligkeit) des Bildes um einen Bruchteil und hilft dem Modell, bei unterschiedlichen Lichtverhältnissen gute Leistung zu erbringen. |
degrees | float | 0 | detect, segment, pose, obb | 0.0 - 180 | Dreht das Bild zufällig innerhalb des angegebenen Gradbereichs, was die Fähigkeit des Modells verbessert, Objekte in verschiedenen Ausrichtungen zu erkennen. |
translate | float | 0.1 | detect, segment, pose, obb | 0.0 - 1.0 | Verschiebt das Bild horizontal und vertikal um einen Bruchteil der Bildgröße, was beim Lernen hilft, teilweise sichtbare Objekte zu erkennen. |
scale | float | 0.5 | detect, segment, pose, obb, classify | 0 - 1 | Skaliert das Bild um einen Verstärkungsfaktor, um Objekte in unterschiedlichen Entfernungen zur Kamera zu simulieren. |
shear | float | 0 | detect, segment, pose, obb | -180 - +180 | Scherung des Bildes um einen bestimmten Grad, was den Effekt nachahmt, dass Objekte aus verschiedenen Winkeln betrachtet werden. |
perspective | float | 0 | detect, segment, pose, obb | 0.0 - 0.001 | Wendet eine zufällige Perspektivtransformation auf das Bild an und verbessert die Fähigkeit des Modells, Objekte im 3D-Raum zu verstehen. |
flipud | float | 0 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Spiegelt das Bild mit der angegebenen Wahrscheinlichkeit vertikal, was die Datenvariabilität erhöht, ohne die Eigenschaften des Objekts zu beeinflussen. |
fliplr | float | 0.5 | detect, segment, pose, obb, classify | 0.0 - 1.0 | Spiegelt das Bild mit der angegebenen Wahrscheinlichkeit horizontal, was nützlich ist, um symmetrische Objekte zu lernen und die Vielfalt des Datensatzes zu erhöhen. |
bgr | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Tauscht die Bildkanäle mit der angegebenen Wahrscheinlichkeit von RGB auf BGR, was nützlich ist, um die Robustheit gegenüber falscher Kanalreihenfolge zu erhöhen. |
mosaic | float | 1 | detect, segment, pose, obb | 0.0 - 1.0 | Kombiniert vier Trainingsbilder zu einem, wodurch verschiedene Szenenzusammensetzungen und Objektinteraktionen simuliert werden. Sehr effektiv für das Verständnis komplexer Szenen. |
mixup | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Mischt zwei Bilder und deren Labels zu einem zusammengesetzten Bild. Verbessert die Generalisierungsfähigkeit des Modells durch Einführung von Label-Rauschen und visueller Variabilität. |
cutmix | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Kombiniert Teile von zwei Bildern, wodurch eine teilweise Mischung entsteht, während deutliche Regionen erhalten bleiben. Erhöht die Robustheit des Modells durch Erzeugung von Okklusionsszenarien. |
copy_paste | float | 0 | segment | 0.0 - 1.0 | Kopiert und fügt Objekte über Bilder hinweg ein, um die Anzahl der Objektinstanzen zu erhöhen. |
copy_paste_mode | str | flip | segment | - | Gibt die zu verwendende copy-paste-Strategie an. Optionen sind 'flip' und 'mixup'. |
auto_augment | str | randaugment | classify | - | Wendet eine vordefinierte Augmentierungsrichtlinie ('randaugment', 'autoaugment' oder 'augmix') an, um die Modellleistung durch visuelle Vielfalt zu verbessern. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | Löscht während des Trainings zufällig Regionen des Bildes, um das Modell dazu zu ermutigen, sich auf weniger offensichtliche Merkmale zu konzentrieren. |
augmentations | list | `` | detect, segment, pose, obb | - | Benutzerdefinierte Albumentations-Transformationen für fortgeschrittene Datenerweiterung (nur Python API). Akzeptiert eine Liste von Transformationsobjekten für spezielle Augmentierungsanforderungen. |
Passe diese Einstellungen an, um die Anforderungen deines Datensatzes und deiner Aufgabe zu erfüllen. Das Experimentieren mit verschiedenen Werten kann dabei helfen, die optimale Augmentierungsstrategie für die beste Modellleistung zu finden.
Einstellungen für Protokollierung, Checkpoints und Plotting
Protokollierung, Checkpoints, Plotting und Dateiverwaltung sind beim Trainieren eines YOLO Modells wichtig:
- Protokollierung: Verfolge den Fortschritt des Modells und diagnostiziere Probleme mithilfe von Bibliotheken wie TensorBoard oder durch das Schreiben in eine Datei.
- Checkpoints: Speichere das Modell in regelmäßigen Abständen, um das Training fortzusetzen oder mit verschiedenen Konfigurationen zu experimentieren.
- Plotting: Visualisiere die Leistung und den Trainingsfortschritt mithilfe von Bibliotheken wie Matplotlib oder TensorBoard.
- Dateiverwaltung: Organisiere während des Trainings generierte Dateien wie Checkpoints, Logdateien und Plots für einen einfachen Zugriff und zur Analyse.
Eine effektive Verwaltung dieser Aspekte hilft dabei, den Fortschritt zu verfolgen und macht das Debugging und die Optimierung einfacher.
| Argument | Standard | Beschreibung |
|---|---|---|
project | 'runs' | Gibt das Stammverzeichnis zum Speichern von Trainingsdurchläufen an. Jeder Durchlauf wird in einem separaten Unterverzeichnis gespeichert. |
name | 'exp' | Definiert den Namen des Experiments. Falls nicht angegeben, erhöht YOLO diesen Namen für jeden Durchlauf (z.B. exp, exp-2), um ein Überschreiben zu vermeiden. |
exist_ok | False | Bestimmt, ob ein bestehendes Experimentverzeichnis überschrieben werden soll. True erlaubt das Überschreiben; False verhindert es. |
plots | True | Steuert die Erzeugung und Speicherung von Trainings- und Validierungsplots. Setze dies auf True, um Plots wie Loss-Kurven, precision-recall-Kurven und Beispielvorhersagen zur visuellen Leistungsverfolgung zu erstellen. |
save | True | Ermöglicht das Speichern von Trainings-Checkpoints und endgültigen Modellgewichten. Setze dies auf True, um Modellzustände periodisch zu speichern, was die Fortsetzung des Trainings oder die Bereitstellung des Modells ermöglicht. |
Benutzerdefinierte Konfigurationsdatei
Lade ein gespeichertes YAML, um eine vollständige Menge an Argumenten wiederzuverwenden, ohne sie inline zu übergeben. Das cfg-Argument überschreibt Werte aus default.yaml, während zusätzlich daneben übergebene Argumente weiterhin Vorrang haben.
| Argument | Standard | Beschreibung |
|---|---|---|
cfg | None | Pfad zu einer YAML-Datei, deren Werte Einträge in default.yaml ersetzen. Siehe Overriding Default Config File für ein praktisches CLI-Beispiel. |
FAQ
Wie verbessere ich die Leistung meines YOLO Modells während des Trainings?
Verbessere die Leistung durch das Tuning von Hyperparametern wie batch size, learning rate, Momentum und Weight Decay. Passe die Einstellungen für data augmentation an, wähle den richtigen Optimierer und verwende Techniken wie Early Stopping oder mixed precision. Details findest du im Train Guide.
Was sind die wichtigsten Hyperparameter für die Genauigkeit des YOLO Modells?
Wichtige Hyperparameter, die die Genauigkeit beeinflussen, sind:
- Batch Size (
batch): Größere Größen können das Training stabilisieren, benötigen aber mehr Arbeitsspeicher. - Learning Rate (
lr0): Kleinere Raten bieten feine Anpassungen, führen aber zu einer langsameren Konvergenz. - Momentum (
momentum): Beschleunigt Gradientenvektoren und dämpft Oszillationen. - Image Size (
imgsz): Größere Größen verbessern die Genauigkeit, erhöhen aber die Rechenlast.
Passe diese basierend auf deinem Datensatz und deiner Hardware an. Erfahre mehr unter Train Settings.
Wie stelle ich die Learning Rate für das Training eines YOLO Modells ein?
Die Learning Rate (lr0) ist entscheidend; beginne mit 0.01 für SGD oder 0.001 für den Adam optimizer. Überwache Metriken und passe sie bei Bedarf an. Verwende Cosine-Learning-Rate-Scheduler (cos_lr) oder Warmup (warmup_epochs, warmup_momentum). Details findest du im Train Guide.
Was sind die Standard-Inferenz-Einstellungen für YOLO Modelle?
Die Standardeinstellungen beinhalten:
- Confidence Threshold (
conf=0.25): Minimale Konfidenz für Erkennungen. - IoU Threshold (
iou=0.7): Für Non-Maximum Suppression (NMS). - Image Size (
imgsz=640): Ändert die Größe der Eingabebilder. - Device (
device=None): Wählt CPU, GPU, Apple MPS oder Huawei Ascend NPU (npu).
Für einen vollständigen Überblick, siehe Predict Settings und den Predict Guide.
Warum sollte man Mixed-Precision-Training mit YOLO Modellen verwenden?
Mixed precision Training (amp=True) reduziert den Speicherverbrauch und beschleunigt das Training durch die Verwendung von FP16 und FP32. Es ist vorteilhaft für moderne GPUs und ermöglicht größere Modelle sowie schnellere Berechnungen ohne signifikanten Genauigkeitsverlust. Erfahre mehr im Train Guide.