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 Phasen beeinflussen, einschließlich Training, Validierung und Vorhersage.
Watch: Mastering Ultralytics YOLO: Configuration
Ultralytics-Befehle verwenden die folgende Syntax:
yolo TASK MODE ARGSDabei gilt:
TASK(optional) ist eines von (detect, segment, semantic, depth, classify, pose, obb)MODE(erforderlich) ist eines von (train, val, predict, export, track, benchmark)ARGS(optional) sindarg=value-Paare wieimgsz=640, die Standardwerte überschreiben.
Die Standardwerte für ARG sind auf dieser Seite definiert und stammen aus der cfg/default.yaml-Datei.
Aufgaben#
Ultralytics-YOLO-Modelle können verschiedene Aufgaben der Computer Vision ausführen, darunter:
- Detect: Objekterkennung identifiziert und lokalisiert Objekte innerhalb eines Bildes oder Videos.
- Segment: Die Instanzsegmentierung teilt ein Bild oder Video in Bereiche auf, die verschiedenen Objekten oder Klassen entsprechen.
- Semantic segmentation (
semantic): Die semantische Segmentierung weist jedem Pixel eines Bildes ein Klassenlabel für ein umfassendes Szenenverständnis zu. - Depth (
depth): Die monokulare Tiefenschätzung sagt aus einem einzelnen RGB-Bild eine Tiefenkarte pro Pixel in Metern voraus. - Classify: Die Bildklassifizierung sagt das Klassenlabel eines Eingabebildes voraus.
- Pose: Die Posenschätzung identifiziert Objekte und schätzt ihre Keypoints in einem Bild oder Video.
- OBB: Orientierte Begrenzungsrahmen verwenden gedrehte Begrenzungsrahmen und eignen sich für Satelliten- oder medizinische Aufnahmen.
| Argument | Standardwert | Beschreibung |
|---|---|---|
task | 'detect' | Gibt die YOLO-Aufgabe an: detect für Objekterkennung, segment für Instanzsegmentierung, semantic für semantische Segmentierung, depth für monokulare Tiefenschätzung, classify für Klassifizierung, pose für Posenschätzung und obb für orientierte Begrenzungsrahmen. Jede Aufgabe ist auf bestimmte Ausgaben und Problemstellungen der Bild- und Videoanalyse zugeschnitten. |
Modi#
Ultralytics-YOLO-Modelle arbeiten in verschiedenen Modi, die jeweils für eine bestimmte Phase des Modelllebenszyklus ausgelegt sind:
- Train: Trainiert ein YOLO-Modell mit einem benutzerdefinierten Datensatz.
- Val: Validiert ein trainiertes YOLO-Modell.
- Predict: Verwendet ein trainiertes YOLO-Modell, um Vorhersagen für neue Bilder oder Videos zu erstellen.
- Export: Exportiert ein YOLO-Modell für die Bereitstellung.
- Track: Verfolgt Objekte in Echtzeit mit einem YOLO-Modell.
- Benchmark: Bewertet die Geschwindigkeit und Genauigkeit von YOLO-Exporten (ONNX, TensorRT usw.).
| Argument | Standardwert | Beschreibung |
|---|---|---|
mode | 'train' | Gibt den Betriebsmodus des YOLO-Modells 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. |
Trainings-Einstellungen#
Trainingseinstellungen für YOLO-Modelle umfassen Hyperparameter und Konfigurationen, die Leistung, Geschwindigkeit und Genauigkeit des Modells beeinflussen. Zu den wichtigsten Einstellungen gehören Batchgröße, Lernrate, Momentum und Gewichtszerfall. Auch die Wahl des Optimierers, der Verlustfunktion und die Zusammensetzung des Datensatzes wirken sich auf das Training aus. Abstimmung und Experimente sind entscheidend für eine optimale Leistung. Weitere Informationen findest du in der Ultralytics-Einstiegsfunktion.
| Argument | Typ | Standardwert | Beschreibung |
|---|---|---|---|
model | str | None | Gibt die Modelldatei für das Training an. Akzeptiert einen Pfad zu einem vortrainierten .pt-Modell oder einer .yaml-Konfigurationsdatei. Dies ist entscheidend für die Definition der Modellstruktur oder die Initialisierung der Gewichte. |
data | str | None | Pfad zur YAML-Datei des Datensatzes (z. B. coco8.yaml), die die Pfade zu den Validierungsdaten und Trainingsdaten, Klassennamen sowie die Anzahl der Klassen enthält. Für die Klassifizierung wird stattdessen ein Datensatzverzeichnis oder der Name eines integrierten Datensatzes (z. B. imagenet10) verwendet. |
epochs | int | 100 | Gesamtzahl der Trainingsepochen. Jede Epoche stellt einen vollständigen Durchlauf über den gesamten Datensatz dar. Eine Anpassung dieses Werts kann Trainingsdauer und Modellleistung beeinflussen. |
time | float | None | Maximale Trainingszeit in Stunden. Wenn dieser Wert gesetzt ist, überschreibt er das Argument epochs und ermöglicht das automatische Beenden des Trainings nach der angegebenen Dauer. Nützlich für zeitlich begrenzte Trainingsszenarien. |
patience | int | 100 | Anzahl der Epochen, die ohne Verbesserung der Validierungsmetriken abgewartet werden, bevor das Training vorzeitig beendet wird. Hilft, Überanpassung zu verhindern, indem das Training beendet wird, sobald sich die Leistung nicht mehr verbessert. |
batch | int oder float | 16 | Batchgröße mit drei Modi: Festlegung als Ganzzahl (z. B. batch=16), automatischer Modus für eine Auslastung des GPU-Speichers von 60 % (batch=-1) oder automatischer Modus mit einem angegebenen Auslastungsanteil (batch=0.70). |
imgsz | int | 640 | Zielbildgröße für das Training. Bilder werden auf Quadrate mit Seitenlängen entsprechend dem angegebenen Wert skaliert (wenn rect=False), wobei das Seitenverhältnis für YOLO-Modelle, nicht jedoch für RT-DETR, beibehalten wird. Beeinflusst die Genauigkeit und die Rechenkomplexität des Modells. |
save | bool | True | Aktiviert das Speichern von Trainingsprüfpunkten und den finalen Modellgewichten. Nützlich, um das Training fortzusetzen oder das Modell bereitzustellen. |
save_period | int | -1 | Häufigkeit, mit der Modellprüfpunkte in Epochen gespeichert werden. Der Wert -1 deaktiviert diese Funktion. Nützlich zum Speichern von Zwischenmodellen während langer Trainingsläufe. |
cache | bool | False | Aktiviert das Zwischenspeichern von Datensatzbildern im Arbeitsspeicher (True/ram), auf der Festplatte (disk) oder deaktiviert es (False). Beschleunigt das Training durch Verringerung der Festplatten-E/A, erhöht jedoch den Speicherverbrauch. |
device | int oder str oder list | None | Gibt die Rechengeräte für das Training an: eine einzelne GPU (device=0), mehrere GPUs (device=[0,1]), CPU (device=cpu), MPS für Apple-Chips (device=mps), Huawei Ascend NPU (device=npu:0 oder device=npu:0,1) oder die automatische Auswahl einer freien GPU (device=-1) beziehungsweise mehrerer freier GPUs (device=[-1,-1]). |
workers | int | 8 | Anzahl der Worker-Threads zum Laden von Daten (pro RANK beim Multi-GPU-Training). Beeinflusst die Geschwindigkeit der Datenvorverarbeitung und der Zuführung zum Modell und ist besonders bei Konfigurationen mit mehreren GPUs nützlich. |
project | str | None | Name des Projektverzeichnisses, in dem die Trainingsergebnisse gespeichert werden. Ermöglicht die übersichtliche Speicherung verschiedener Experimente. |
name | str | None | Name des Trainingslaufs. Wird zum Erstellen eines Unterverzeichnisses im Projektordner verwendet, in dem Trainingsprotokolle und Ergebnisse gespeichert werden. |
exist_ok | bool | False | Wenn True, erlaubt dies das Überschreiben eines vorhandenen Projekt-/Namensverzeichnisses. Nützlich für iterative Experimente, ohne vorherige Ergebnisse manuell löschen zu müssen. |
save_dir | str | None | Gibt das genaue Verzeichnis an, in dem die Ergebnisse des Laufs gespeichert werden, und überschreibt die Kombination project/name. Der Pfad wird unverändert verwendet und nicht automatisch nummeriert, sodass aufeinanderfolgende Läufe dasselbe Verzeichnis wiederverwenden. |
pretrained | bool oder str | True | Legt fest, ob das Training mit vortrainierten Gewichten begonnen werden soll. Kann ein boolescher Wert oder ein Zeichenkettenpfad zu den zu ladenden Gewichten sein. pretrained=False trainiert mit zufällig initialisierten Gewichten, wobei die Modellarchitektur erhalten bleibt. |
cls_remap | bool | True | Beim Feinabstimmen über mehrere Datensätze hinweg werden Zeilen des vortrainierten Klassifizierungskopfs in das neue Modell kopiert, sofern die Klassennamen übereinstimmen. Dadurch behalten überlappende Klassen ihre gelernten Bias-Werte sowie ihre Gewichte, wenn die Breite des Kopfs unverändert bleibt. Dies gilt unabhängig davon, ob sich die Klassenanzahl unterscheidet oder bei gleicher Anzahl eine andere Klassenreihenfolge vorliegt. |
optimizer | str | 'auto' | Auswahl des Optimierers für das Training. Zu den Optionen gehören SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp oder auto, um anhand der Anzahl der Trainingsiterationen AdamW oder MuSGD auszuwählen. Beeinflusst Konvergenzgeschwindigkeit und -stabilität. |
seed | int | 0 | Legt den Zufalls-Seed für das Training fest und stellt die Reproduzierbarkeit der Ergebnisse bei Läufen mit denselben Konfigurationen sicher. |
deterministic | bool | True | Erzwingt die Verwendung deterministischer Algorithmen und gewährleistet dadurch Reproduzierbarkeit, kann jedoch aufgrund des Verzichts auf nichtdeterministische Algorithmen Leistung und Geschwindigkeit beeinträchtigen. |
verbose | bool | True | Aktiviert eine ausführliche Ausgabe während des Trainings, die Fortschrittsbalken, Metriken pro Epoche und zusätzliche Trainingsinformationen in der Konsole anzeigt. |
single_cls | bool | False | Behandelt beim Training alle Klassen in Datensätzen mit mehreren Klassen als eine einzige Klasse. Nützlich für binäre Klassifizierungsaufgaben oder wenn der Fokus auf dem Vorhandensein von Objekten statt auf ihrer Klassifizierung liegt. |
classes | list[int] | None | Gibt eine Liste von Klassen-IDs an, mit denen trainiert werden soll. Nützlich, um bestimmte Klassen herauszufiltern und den Fokus auf sie zu beschränken. |
rect | bool | False | Aktiviert die Strategie für minimale Auffüllung: Bilder in einem Batch werden so wenig wie möglich aufgefüllt, bis sie eine gemeinsame Größe erreichen, wobei die längste Seite imgsz entspricht. Dies kann Effizienz und Geschwindigkeit verbessern, aber die Modellgenauigkeit beeinflussen. |
multi_scale | float | 0.0 | Variiert imgsz in jedem Batch zufällig um +/- multi_scale (z. B. 0.25 -> 0.75x bis 1.25x) und rundet auf Vielfache des Modellschritts; 0.0 deaktiviert das Training mit mehreren Maßstäben. |
cos_lr | bool | False | Verwendet einen Lernraten-Scheduler nach einer Kosinuskurve, der die Lernrate über die Epochen anpasst. Hilft dabei, die Lernrate für eine bessere Konvergenz zu steuern. |
close_mosaic | int | 10 | Deaktiviert die mosaikartige Datenerweiterung in den letzten N Epochen, um das Training vor dem Abschluss zu stabilisieren. Der Wert 0 deaktiviert diese Funktion. |
resume | bool | False | Setzt das Training vom zuletzt gespeicherten Prüfpunkt fort. Lädt automatisch Modellgewichte, Optimiererstatus und Epochenzähler und setzt das Training nahtlos fort. |
amp | bool oder str | True | Legt die Trainingspräzision fest: True oder "fp16" verwendet FP16, "bf16" verwendet BF16 auf unterstützten CUDA-Geräten und False oder "fp32" verwendet FP32. |
quantize | int oder str | None | Setze dies auf 8 (oder "int8") für INT8 Quantization-Aware Training (QAT), das mit Fake-Quantization im Trainingskreislauf feinabstimmt, damit die Gewichte den INT8-Export tolerieren. Siehe Quantization-Aware Training. |
fraction | float, int oder list | 1.0 | Teilmenge des Datensatzes als Verhältnis/Anzahl oder als [train, val, test]-Liste. 1 bedeutet den vollständigen Split, Ganzzahlen über 1 geben Bildanzahlen an, und nur der optionale Testeintrag akzeptiert 0/0.0 für keine Daten. Listen mit zwei Einträgen behalten den vollständigen Testsatz bei. |
profile | bool | False | Aktiviert während des Trainings die Profilerstellung für ONNX- und TensorRT-Geschwindigkeiten und ist nützlich zur Optimierung der Modellbereitstellung. |
freeze | int oder list | None | Friert die ersten N Schichten des Modells oder bestimmte Schichten anhand ihres Index oder Modulnamens ein (23.cv2, ohne das führende model.) und reduziert dadurch die Anzahl trainierbarer Parameter. Nützlich für Feinabstimmung oder Transferlernen. |
lr0 | float | 0.01 | Anfängliche Lernrate (d. h. SGD=1E-2, Adam=1E-3). Die Anpassung dieses Werts ist für den Optimierungsprozess entscheidend, da sie beeinflusst, wie schnell die Modellgewichte aktualisiert werden. |
lrf | float | 0.01 | Endgültige Lernrate als Anteil der anfänglichen Lernrate = (lr0 * lrf), die zusammen mit Schedulern verwendet wird, um die Lernrate im Zeitverlauf anzupassen. |
momentum | float | 0.937 | Momentum-Faktor für SGD oder Beta1 für Adam-Optimierer, der beeinflusst, wie stark vergangene Gradienten in die aktuelle Aktualisierung einfließen. |
weight_decay | float | 0.0005 | L2-Regularisierung, die große Gewichte bestraft, um Überanpassung zu verhindern. |
warmup_epochs | float | 3.0 | Anzahl der Epochen für das Aufwärmen der Lernrate, bei dem die Lernrate schrittweise von einem niedrigen Wert auf die anfängliche Lernrate erhöht wird, um das Training zu Beginn zu stabilisieren. |
warmup_momentum | float | 0.8 | Anfänglicher Momentum-Wert für die Aufwärmphase, der im Verlauf der Aufwärmphase schrittweise an den festgelegten Momentum-Wert angepasst wird. |
warmup_bias_lr | float | 0.1 | Lernrate für Bias-Parameter während der Aufwärmphase, die zur Stabilisierung des Modelltrainings in den ersten Epochen beiträgt. Wird unter dem Standardwert optimizer='auto' automatisch auf 0.0 gesetzt; gib daher einen Optimierer explizit an, um diese Einstellung zu verwenden. |
distill_model | str | None | Pfad zu einem Prüfpunkt des Lehrermodells (z. B. yolo26x.pt) für Wissensdestillation. Wenn dieser Wert gesetzt ist, wird das Schülermodell mit einem zusätzlichen Destillationsverlust trainiert, der vom eingefrorenen Lehrermodell gesteuert wird. |
dis | float | 6.0 | Gewichtung des Destillationsverlusts, der zu den standardmäßigen Erkennungsverlusten hinzugefügt wird. Höhere Werte erhöhen den Einfluss der Merkmalsführung durch das Lehrermodell. |
box | float | 7.5 | Gewichtung der Box-Verlustkomponente in der Verlustfunktion, die beeinflusst, wie stark die genaue Vorhersage von Begrenzungsrahmen-Koordinaten berücksichtigt wird. |
cls | float | 0.5 | Gewichtung des Klassifizierungsverlusts im Gesamtverlust, die die Bedeutung der korrekten Klassenvorhersage im Verhältnis zu anderen Komponenten beeinflusst. |
cls_pw | float | 0.0 | Potenz für die Klassengewichtung zum Umgang mit Klassenungleichgewicht mithilfe der inversen Klassenhäufigkeit. 0.0 deaktiviert die Klassengewichtung, 1.0 wendet die vollständige Gewichtung mit inverser Häufigkeit an. Werte zwischen 0 und 1 bewirken eine teilweise Gewichtung. |
dfl | float | 1.5 | Gewichtung des Regressionsbegriffs für die Boxdistanz: Distribution Focal Loss (DFL), wenn der Erkennungskopf reg_max > 1 verwendet, oder ein L1-Verlust für normalisierte Boxdistanzen bei DFL-freiem YOLO26 (reg_max: 1). |
pose | float | 12.0 | Gewichtung des Posenschadens in für Posenschätzung trainierten Modellen, die beeinflusst, wie stark die genaue Vorhersage von Pose-Keypoints berücksichtigt wird. |
kobj | float | 1.0 | Gewichtung des Objektivitätsverlusts der Keypoints in Posenschätzungsmodellen, die Erkennungskonfidenz und Posengenauigkeit ausbalanciert. |
rle | float | 1.0 | Gewichtung des Verlusts für die Schätzung der verbleibenden Log-Likelihood in Posenschätzungsmodellen, die die Genauigkeit der Keypoint-Lokalisierung beeinflusst. |
angle | float | 1.0 | Gewichtung des Winkelverlusts in OBB-Modellen, die die Genauigkeit der Winkelvorhersagen orientierter Begrenzungsrahmen beeinflusst. |
dlog | float | 1.0 | Gewichtung des logarithmischen, skaleninvarianten Verlusts (SILog) in Tiefenschätzungsmodellen; dies ist der primäre Term für die Tiefengenauigkeit. |
dgrad | float | 0.5 | Gewichtung des Gradientenverlusts in Tiefenschätzungsmodellen, die Fehler an Tiefenkanten bestraft und schärfere Oberflächengrenzen fördert. |
dlam | float | 1.0 | Faktor für die Varianzgewichtung des SILog-Verlusts in Tiefenschätzungsmodellen. 1.0 macht den Verlust vollständig skaleninvariant, während 0.0 ihn auf den einfachen Log-RMSE reduziert. |
nbs | int | 64 | Nominale Batchgröße zur Normalisierung des Verlusts. |
overlap_mask | bool | True | Legt fest, ob Objektmasken für das Training zu einer einzigen Maske zusammengeführt oder für jedes Objekt getrennt beibehalten werden sollen. Bei Überlappungen wird beim Zusammenführen die kleinere Maske über die größere gelegt. |
mask_ratio | int | 4 | Verkleinerungsverhältnis für Segmentierungsmasken, das die Auflösung der während des Trainings verwendeten Masken beeinflusst. |
dropout | float | 0.0 | Dropout-Rate zur Regularisierung bei Klassifizierungsaufgaben, die Überanpassung verhindert, indem während des Trainings zufällig Einheiten ausgelassen werden. |
val | bool | True | Aktiviert die Validierung während des Trainings und ermöglicht die regelmäßige Bewertung der Modellleistung anhand eines separaten Datensatzes. |
nms | bool, optional | None | Wählt den Inferenz-Kopf aus, der für die Epochenvalidierung, die Checkpoint-Auswahl und das Early Stopping verwendet wird. None oder True verwendet One-to-Many mit NMS; False verwendet den NMS-freien Kopf, sofern verfügbar. Beide Köpfe behalten ihre Trainingsverluste bei. |
plots | bool | True | Erzeugt und speichert Diagramme der Trainings- und Validierungsmetriken sowie Beispiele für Vorhersagen und bietet dadurch visuelle Einblicke in Modellleistung und Lernfortschritt. |
compile | bool oder str | False | Aktiviert die Graphkompilierung mit torch.compile von PyTorch 2.x über backend='inductor'. Akzeptiert True → "default", False → Deaktivierung oder einen Zeichenkettenmodus wie "default", "reduce-overhead", "max-autotune-no-cudagraphs". Bei fehlender Unterstützung wird mit einer Warnung auf den Eager-Modus zurückgefallen. |
channels_last | bool | None | Verwendet das Speicherformat channels_last (NHWC) für Faltungen beim Training. None aktiviert es automatisch auf CUDA mit PyTorch 1.11 oder neuer, außer unter Windows, wo es langsamer gemessen wurde. False deaktiviert es, und True fordert es explizit an. PyTorch 1.10 und älter, CPU und MPS bleiben standardmäßig bei NCHW. |
max_det | int | 300 | Maximale Detektionen pro Bild während des Trainings und der Validierung. Bei detect, segment, pose und OBB erhöht sich der Standardwert von 300 nur dann auf die Anzahl der mit einem Label versehenen Objekte im Train/Val-Datensatz, wenn diese Anzahl 300 überschreitet. Andere Werte bleiben unverändert; das Überschreiten des Limits löst eine Warnung aus. |
Das Argument batch bietet drei Konfigurationsoptionen:
- Feste Batchgröße: Gib die Anzahl der Bilder pro Batch als Ganzzahl an (z. B.
batch=16). - Automatischer Modus (60 % GPU-Speicher): Verwende
batch=-1zur automatischen Anpassung auf eine CUDA-Speicherauslastung von ungefähr 60 %. - Automatischer Modus mit Auslastungsanteil: Lege einen Anteil fest (z. B.
batch=0.70), um die Anpassung anhand einer vorgegebenen GPU-Speichernutzung vorzunehmen. - Keine passende Größe gefunden: Wenn keine mögliche Batchgröße ein nutzbares Profil erzeugt, löst AutoBatch einen eindeutigen
RuntimeErroraus, statt stillschweigend auf einen nicht passenden Standardwert zurückzufallen.
Vorhersage-Einstellungen#
Vorhersageeinstellungen 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 Konfidenzschwellwert, der Schwellwert für die Unterdrückung nicht maximaler Werte (NMS) und die Anzahl der Klassen. Auch Größe und Format der Eingabedaten sowie zusätzliche Merkmale wie Masken beeinflussen die Vorhersagen. Die Abstimmung dieser Einstellungen ist für eine optimale Leistung unerlässlich.
Inferenzargumente:
| Argument | Typ | Standardwert | Beschreibung |
|---|---|---|---|
source | str oder int oder None | None | Gibt die Datenquelle für die Inferenz an. Möglich sind ein Bildpfad, eine Videodatei, ein Verzeichnis, eine URL oder eine Geräte-ID für Live-Feeds. Wenn dieser Wert fehlt, wird eine Warnung protokolliert und das Modell greift auf die integrierten Demo-Ressourcen zurück (ultralytics/assets oder bei OBB eine Demo-URL). Es werden zahlreiche Formate und Quellen unterstützt, sodass eine flexible Anwendung auf verschiedene Eingabetypen möglich ist. |
conf | float | 0.25 | Legt den Mindestkonfidenzschwellwert für Erkennungen fest. Objekte, die mit einer Konfidenz unterhalb dieses Schwellwerts erkannt werden, werden verworfen. Das Anpassen dieses Werts kann helfen, falsch positive Erkennungen zu reduzieren. |
iou | float | 0.7 | Intersection over Union-Schwellwert (IoU) für die Non-Maximum Suppression (NMS). Niedrigere Werte führen zu weniger Erkennungen, da sich überlappende Boxen entfernt werden, was nützlich ist, um Duplikate zu reduzieren. |
imgsz | int oder tuple | 640 | Zielgröße für Letterbox. Eine Ganzzahl ergibt ein quadratisches N×N; ein Tupel ergibt (height, width). Bei rect=True kann der tatsächliche Tensor aufgrund der Auffüllung auf das kleinste Rechteck kleiner als dieses Ziel sein. Verwende rect=False für eine feste Größe. Siehe Feste Form gegenüber kleinstem Rechteck. |
rect | bool | True | Bei True wird nach Möglichkeit eine Auffüllung auf das kleinste Rechteck verwendet (gleichförmiger Batch und unterstütztes Backend). Bei False wird immer auf das vollständige imgsz aufgefüllt. Siehe Feste Form gegenüber kleinstem Rechteck. |
quantize | int oder str | None | Inferenzgenauigkeit: 16/"fp16" und 32/"fp32"/nicht gesetzt wählen FP16- oder FP32-Berechnungen für PyTorch- und TorchScript-Modelle; andere Formate berechnen mit der Genauigkeit, die ihr Artefakt und ihre Laufzeit auswählen. Bei 16 rundet OpenVINO die Eingabe auf dem Client weiterhin auf FP16 und erweitert sie wieder auf FP32, ohne zu ändern, worin die Laufzeit rechnet. Die INT8-/PTQ-Quantisierung wird während des Exports konfiguriert und anschließend durch das Laden des exportierten Modells verwendet. Ersetzt das veraltete half-Flag. |
device | str | None | Gibt das Gerät für die Inferenz an (z. B. cpu, cuda:0, 0, npu oder npu:0). Ermöglicht die Auswahl zwischen CPU, einer bestimmten GPU, Huawei Ascend NPU oder anderen Rechengeräten für die Modellausführung. |
dnn | bool | False | Wenn True, wird für die Inferenz von ONNX-Modellen das OpenCV-DNN-Modul anstelle von ONNX Runtime verwendet. |
data | str | None | Pfad zu einer Dataset-YAML-Datei (z. B. coco8.yaml), die nur wegen ihres names gelesen wird und nur dann, wenn das geladene Modell keine eigenen Klassennamen enthält: bei einem Export eines Drittanbieters oder einem von den mitgelieferten Metadaten getrennten Ultralytics-Export. Ein solches Modell meldet ansonsten class0, class1 usw. |
batch | int | 1 | Gibt die Batchgröße für die Inferenz an (funktioniert nur, wenn die Quelle ein Verzeichnis, eine Videodatei oder eine .txt-Datei ist). Eine größere Batchgröße kann einen höheren Durchsatz ermöglichen und dadurch die für die Inferenz benötigte Gesamtzeit verkürzen. |
max_det | int | 300 | Maximale Anzahl zulässiger Erkennungen pro Bild. Begrenzt die Gesamtzahl der Objekte, die das Modell bei einer einzelnen Inferenz erkennen kann, und verhindert übermäßig viele Ausgaben in dichten Szenen. |
vid_stride | int | 1 | Bildschritt 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 | Legt fest, ob eingehende Bilder für Videostreams in eine Warteschlange eingereiht werden. Bei False werden alte Bilder verworfen, um Platz für neue zu schaffen (optimiert für Echtzeitanwendungen). Bei True werden neue Bilder in einem Puffer eingereiht, sodass keine Bilder übersprungen werden, was jedoch zu Latenz führt, wenn die Inferenz-FPS niedriger als die Stream-FPS ist. |
visualize | bool | False | Speichert neben jeder Vorhersage eine Aktivierungskarte der Klassen, die zeigt, welche Pixel die vorhergesagten Klassenwerte erhöht haben. Berücksichtigt conf und classes, sodass classes=[0] nur diese Klasse abbildet. Nur für Ultralytics-PyTorch-Modelle verfügbar. |
augment | bool | False | Aktiviert Testzeit-Augmentierung (TTA) für Vorhersagen, wodurch sich die Robustheit der Erkennung möglicherweise auf Kosten der Inferenzgeschwindigkeit verbessert. Nur für Ultralytics-PyTorch-Modelle verfügbar. |
agnostic_nms | bool | False | Aktiviert die klassenagnostische Non-Maximum Suppression (NMS), wodurch überlappende Boxen mit niedrigerem Score über verschiedene Klassen hinweg unterdrückt werden, anstatt nur innerhalb derselben Klasse. Nützlich in Szenarien der Multiklassen-Erkennung, in denen Klassenüberlappungen häufig sind. Bei NMS-freier Inferenz (nms=False auf YOLO26 oder YOLOv10) verhindert dies lediglich, dass dieselbe Erkennung mit mehreren Klassenlabels erscheint (IoU=1.0-Duplikate), und führt keine Schwellenwert-basierte Unterdrückung von IoU zwischen unterschiedlichen Boxen durch. |
classes | list[int] | None | Filtert Vorhersagen auf eine Gruppe von Klassen-IDs. Es werden nur Erkennungen zurückgegeben, die zu den angegebenen Klassen gehören. Nützlich, um sich bei Mehrklassenerkennungsaufgaben auf relevante Objekte zu konzentrieren. |
retina_masks | bool | False | Gibt Segmentierungsmasken mit hoher Auflösung zurück. Die zurückgegebenen Masken (masks.data) entsprechen bei Aktivierung der Größe des Originalbilds. Bei Deaktivierung haben sie die während der Inferenz verwendete Bildgröße. |
embed | list[int] | None | Gibt die Layer an, aus denen Merkmalsvektoren oder Embeddings extrahiert werden sollen. Verwende model.embed(source) für Embeddings des vorletzten Layers oder model.predict(source, embed=[layer]), um bestimmte Layer auszuwählen. Nützlich für nachgelagerte Aufgaben wie Clustering oder Ähnlichkeitssuche. Nur für Ultralytics-PyTorch-Modelle verfügbar. |
project | str | None | Name des Projektverzeichnisses, in dem die Vorhersageausgaben gespeichert werden, wenn save aktiviert ist. |
name | str | None | Name des Vorhersagelaufs. Wird zum Erstellen eines Unterverzeichnisses im Projektordner verwendet, in dem die Vorhersageausgaben gespeichert werden, wenn save aktiviert ist. |
stream | bool | False | Ermöglicht eine speichereffiziente Verarbeitung langer Videos oder zahlreicher Bilder, indem ein Generator von Results-Objekten zurückgegeben wird, anstatt alle Bilder auf einmal in den Speicher zu laden. |
verbose | bool | True | Steuert, ob detaillierte Inferenzprotokolle im Terminal angezeigt werden, und liefert Echtzeitinformationen zum Vorhersageprozess. |
compile | bool oder str | False | Aktiviert die Graphkompilierung mit torch.compile von PyTorch 2.x über backend='inductor'. Akzeptiert True → "default", False → Deaktivierung oder einen Zeichenkettenmodus wie "default", "reduce-overhead", "max-autotune-no-cudagraphs". Bei fehlender Unterstützung wird mit einer Warnung auf den Eager-Modus zurückgefallen. |
channels_last | bool | None | Verwendet das Speicherformat channels_last (NHWC) für native PyTorch-Inferenz. None aktiviert es automatisch auf Linux- und Windows-x86-CPUs mit aktiviertem oneDNN und PyTorch 1.13 oder neuer, False deaktiviert es und True fordert es auf unterstützten x86-CPUs oder CUDA-Geräten an. ARM64, MPS, ältere PyTorch-Versionen, CPUs ohne oneDNN sowie exportierte Formate wie TensorRT und ONNX bleiben unverändert. |
nms | bool, optional | None | Führt standardmäßig One-to-Many-Inferenz mit NMS aus (None oder True). Setze False, um den NMS-freien One-to-One-Kopf zu verwenden, sofern verfügbar. Weitere Details findest du im End-to-End Detection guide. |
Argumente für die Visualisierung:
| Argument | Typ | Standardwert | Beschreibung |
|---|---|---|---|
show | bool | False | Wenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Dies ist nützlich für unmittelbares visuelles Feedback während der Entwicklung oder des Testens. |
save | bool | False or True | Aktiviert das Speichern der annotierten Bilder oder Videos in Dateien. Nützlich für Dokumentation, weitere Analysen oder das Teilen von Ergebnissen. Standardmäßig True bei Verwendung der CLI und False bei Verwendung in Python. |
save_frames | bool | False | Speichert bei der Verarbeitung von Videos einzelne Bilder als Dateien. Nützlich zum Extrahieren bestimmter Bilder oder für eine detaillierte Einzelbildanalyse. |
save_txt | bool | False | Speichert Erkennungsergebnisse in einer Textdatei nach dem Format [class] [x_center] [y_center] [width] [height] [confidence]. Nützlich für die Integration mit anderen Analysewerkzeugen. |
save_conf | bool | False | Fügt Konfidenzwerte in die gespeicherten Textdateien ein. Erhöht den für die Nachverarbeitung und Analyse verfügbaren Detailgrad. |
save_crop | bool | False | Speichert zugeschnittene Bilder der Erkennungen. Nützlich für Dataset-Augmentierung, Analysen oder das Erstellen fokussierter Datasets für bestimmte Objekte. |
show_labels | bool | True | Zeigt Labels für jede Erkennung in der visuellen Ausgabe an. Dies ermöglicht ein unmittelbares Verständnis der erkannten Objekte. |
show_conf | bool | True | Zeigt neben dem Label den Konfidenzwert für jede Erkennung an. Dadurch erhältst du Einblick in die Sicherheit des Modells bei jeder Erkennung. |
show_boxes | bool | True | Zeichnet Begrenzungsrahmen um erkannte Objekte. Dies ist für die visuelle Identifizierung und Lokalisierung von Objekten in Bildern oder Videobildern unerlässlich. |
line_width | int or None | None | Gibt die Linienbreite der Begrenzungsboxen an. Bei None wird die Linienbreite automatisch anhand der Bildgröße angepasst. Ermöglicht eine visuelle Anpassung für bessere Übersichtlichkeit. |
Validierungseinstellungen#
Validierungseinstellungen für YOLO-Modelle umfassen Hyperparameter und Konfigurationen zur Bewertung der Leistung auf einem Validierungsdatensatz. Diese Einstellungen beeinflussen Leistung, Geschwindigkeit und Genauigkeit. Zu den üblichen Einstellungen gehören Batchgröße, Validierungshäufigkeit und Leistungsmetriken. Auch Größe und Zusammensetzung des Validierungsdatensatzes sowie die jeweilige Aufgabe beeinflussen den Prozess.
| Argument | Typ | Standardwert | Beschreibung |
|---|---|---|---|
data | str | None | Gibt den Pfad zur YAML-Datei des Datensatzes an (z. B. coco8.yaml), die den Pfad zu den Validierungsdaten enthalten sollte. Für die Klassifikation wird stattdessen ein Datensatzverzeichnis oder der Name eines integrierten Datensatzes verwendet (z. B. imagenet10). |
imgsz | int | 640 | Legt die Größe der Eingabebilder fest. Alle Bilder werden vor der Verarbeitung auf diese Abmessungen skaliert. Größere Abmessungen können die Genauigkeit bei kleinen Objekten verbessern, erhöhen jedoch die Berechnungszeit. |
batch | int | 16 | Legt die Anzahl der Bilder pro Stapel fest. Höhere Werte nutzen den GPU-Speicher effizienter, benötigen aber mehr VRAM. Passe den Wert an die verfügbaren Hardware-Ressourcen an. |
save_json | bool | False | Wenn True, speichert dies die Ergebnisse in einer JSON-Datei zur weiteren Analyse, Integration mit anderen Tools oder Einreichung bei Evaluierungsservern wie COCO. Bei Erfassungsdatensätzen werden die Vorhersagen zudem mit faster-coco-eval evaluiert und das mAP für kleine, mittlere und große Objekte gemeldet, was während des Trainings als metrics/mAP_small(B), metrics/mAP_medium(B) und metrics/mAP_large(B) in results.csv protokolliert wird. |
conf | float | 0.001 | Legt den minimalen Konfidenzschwellenwert für Erkennungen fest. Niedrigere Werte erhöhen den Recall, können aber mehr False Positives verursachen. Präzisions-Recall-Kurven verwenden standardmäßig 0.001; Erkennungskonfusionsmatrizen verwenden explizit den Wert conf oder, falls dieser fehlt, 0.25. Die zusammengefasste Präzision und der Recall verwenden die Max-F1-Konfidenz und können daher von Werten abweichen, die aus confusion_matrix.png abgeleitet wurden. Für die OBB-Validierung ist der Standardwert 0.01, um den Speicherbedarf zu reduzieren. |
iou | float | 0.7 | Legt den Schwellenwert für die Schnittmenge über der Vereinigungsmenge bei der Unterdrückung nicht maximaler Werte fest. Steuert die Entfernung doppelter Erkennungen. |
max_det | int | 300 | Begrenzt die maximale Anzahl von Detektionen pro Bild. Bei detect, segment, pose und OBB wird der Wert bei Belassung auf 300 auf die höchste Anzahl mit einem Label versehener Objekte im validierten Split angehoben, wenn ein Bild diesen Wert überschreitet, begleitet von einer Warnung; jeder andere Wert wird beibehalten, verbunden mit der Warnung, dass der Recall gedeckelt sein kann, wenn ein Bild ihn überschreitet. |
quantize | int oder str | None | Validierungsgenauigkeit: 16/"fp16" und 32/"fp32"/nicht gesetzt wählen FP16- oder FP32-Berechnungen für PyTorch- und TorchScript-Modelle; andere Formate berechnen mit der Genauigkeit, die ihr Artefakt und ihre Laufzeit auswählen. Bei 16 rundet OpenVINO die Eingabe auf dem Client weiterhin auf FP16 und erweitert sie wieder auf FP32, ohne zu ändern, worin die Laufzeit rechnet. Die INT8-/PTQ-Quantisierung wird während des Exports konfiguriert und anschließend durch das Validieren des exportierten Modells verwendet. Ersetzt das veraltete half-Flag. |
device | str | None | Gibt das Gerät für die Validierung an (cpu, cuda:0, npu, npu:0 usw.). Bei None wird automatisch das beste verfügbare Gerät ausgewählt. Mehrere CUDA-Geräte können durch Kommata getrennt angegeben werden. |
dnn | bool | False | Bei True wird das OpenCV-DNN-Modul für die Inferenz von ONNX-Modellen verwendet und bietet damit eine Alternative zu PyTorch-Inferenzmethoden. |
plots | bool | True | Wenn True, werden Diagramme der Vorhersagen im Vergleich zu den Ground-Truth-Daten, Konfusionsmatrizen und PR-Kurven zur visuellen Bewertung der Modellleistung erstellt und gespeichert. |
classes | list[int] | None | Gibt eine Liste der zu bewertenden Klassen-IDs an. Dies ist nützlich, um während der Bewertung bestimmte Klassen herauszufiltern und sich auf sie zu konzentrieren. |
rect | bool | True | Bei True wird für die Stapelverarbeitung eine rechteckige Inferenz verwendet. Dadurch wird die Auffüllung reduziert und die Geschwindigkeit sowie Effizienz können steigen, da Bilder in ihrem ursprünglichen Seitenverhältnis verarbeitet werden. Bei der Validierung von depth wird diese Einstellung ignoriert; jedes Bild wird stattdessen auf ein festes quadratisches imgsz gestreckt und nicht aufgefüllt. |
split | str | 'val' | Legt den für die Validierung zu verwendenden Datensatzabschnitt fest (val, test oder train). Dadurch kannst du flexibel den Datenbereich für die Leistungsbewertung auswählen. |
fraction | float, int oder list | 1.0 | Teilmenge des validierten Splits. Bei einer Liste von [train, val, test] gilt der Eintrag, der zu split passt (1 = vollständiger Split, Ganzzahlen über 1 = Bildanzahlen; ausgelassene Einträge sind vollständig). Ein Skalar gilt nur bei split=train; val und test verwenden dann den vollständigen Split. |
project | str | None | Name des Projektverzeichnisses, in dem die Validierungsausgaben gespeichert werden. Dies hilft, Ergebnisse verschiedener Experimente oder Modelle zu organisieren. |
name | str | None | Name des Validierungslaufs. Wird zum Erstellen eines Unterverzeichnisses im Projektordner verwendet, in dem Validierungsprotokolle und Ausgaben gespeichert werden. |
verbose | bool | True | Bei True werden während der Validierung detaillierte Informationen angezeigt, darunter klassenbezogene Metriken, der Stapelfortschritt und zusätzliche Informationen zur Fehlersuche. |
save_txt | bool | False | Bei True werden die Erkennungsergebnisse in Textdateien gespeichert, eine Datei pro Bild. Dies ist für weitere Analysen, benutzerdefinierte Nachverarbeitung oder die Integration mit anderen Systemen nützlich. |
save_conf | bool | False | Bei True werden Konfidenzwerte in die gespeicherten Textdateien aufgenommen, wenn save_txt aktiviert ist. Dadurch stehen detailliertere Ausgaben für Analyse und Filterung zur Verfügung. |
workers | int | 8 | Anzahl der Worker-Threads zum Laden der Daten. Höhere Werte können die Datenvorverarbeitung beschleunigen, aber die CPU-Auslastung erhöhen. Bei 0 wird der Hauptthread verwendet, was in manchen Umgebungen stabiler sein kann. |
augment | bool | False | Aktiviert Test-Time Augmentation (TTA) während der Validierung. Dies kann die Erkennungsgenauigkeit auf Kosten der Inferenzgeschwindigkeit verbessern, da die Inferenz auf transformierten Versionen der Eingabe ausgeführt wird. Nur für Ultralytics PyTorch-Modelle verfügbar. |
agnostic_nms | bool | False | Aktiviert die klassenagnostische Non-Maximum Suppression, wodurch überlappende Boxen mit niedrigerem Score unabhängig von ihrer vorhergesagten Klasse unterdrückt werden. Nützlich für instanzfokussierte Anwendungen. Bei NMS-freier Inferenz (nms=False auf YOLO26 oder YOLOv10) verhindert dies lediglich, dass dieselbe Erkennung mit mehreren Klassenlabels erscheint (IoU=1.0-Duplikate), und führt keine Schwellenwert-basierte Unterdrückung von IoU zwischen unterschiedlichen Boxen durch. |
single_cls | bool | False | Behandelt während der Validierung alle Klassen als eine einzige Klasse. Dies ist nützlich, um die Modellleistung bei binären Erkennungsaufgaben zu bewerten oder wenn Klassenunterscheidungen keine Rolle spielen. |
visualize | bool | False | Visualisiert für jedes Bild die Ground-Truth-Daten, True Positives, False Positives und False Negatives. Dies ist für die Fehlersuche und die Interpretation des Modells nützlich. |
show_labels | bool | True | Zeigt Klassenbezeichnungen in Validierungsvisualisierungen an, wenn visualize=True. Setze den Wert auf False, um Übereinstimmungen und Fehler übersichtlicher darzustellen. |
show_conf | bool | True | Zeigt Konfidenzwerte in Validierungsvisualisierungen an, wenn visualize=True. Setze den Wert auf False, um Übereinstimmungen und Fehler übersichtlicher darzustellen. |
compile | bool oder str | False | Aktiviert die Graphkompilierung mit torch.compile von PyTorch 2.x über backend='inductor'. Akzeptiert True → "default", False → Deaktivierung oder einen Zeichenkettenmodus wie "default", "reduce-overhead", "max-autotune-no-cudagraphs". Bei fehlender Unterstützung wird mit einer Warnung auf den Eager-Modus zurückgefallen. |
channels_last | bool | None | Verwendet das Speicherformat channels_last (NHWC) für die native PyTorch-Validierung. None aktiviert es automatisch auf Linux- und Windows-x86-CPUs mit oneDNN und PyTorch 1.13 oder neuer, False deaktiviert es und True fordert es auf unterstützten x86-CPUs oder CUDA-Geräten an. ARM64, MPS, ältere PyTorch-Versionen, CPUs ohne oneDNN und exportierte Formate bleiben unverändert; die Validierung während des Trainings behält das Layout des Trainingsmodells bei. |
nms | bool, optional | None | Führt standardmäßig One-to-Many-Inferenz mit NMS aus (None oder True). Setze False, um den NMS-freien One-to-One-Kopf zu verwenden, sofern verfügbar. Weitere Details findest du im End-to-End Detection guide. |
Sorgfältige Abstimmung und Experimente sind entscheidend, um eine optimale Leistung sicherzustellen und Overfitting zu erkennen und zu verhindern.
Exporteinstellungen#
Exporteinstellungen für YOLO-Modelle umfassen Konfigurationen zum Speichern oder Exportieren des Modells für die Verwendung in verschiedenen Umgebungen. Diese Einstellungen beeinflussen 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. Auch die Aufgabe des Modells und die Einschränkungen der Zielumgebung beeinflussen den Exportprozess.
| Argument | Typ | Standardwert | 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 unterschiedlichen Bereitstellungsumgebungen. |
name | str | None | Name des Hardwareziels für Formate, die eines benötigen: Hailo-Architektur ('hailo8', 'hailo8l', 'hailo10h', 'hailo15h', 'hailo15l'; Standardwert ist 'hailo8l'), Rockchip-RKNN-Chip (Standardwert ist 'rk3588'), Huawei Ascend SoC (ein CANN---soc_version; Standardwert ist 'Ascend310B4') oder Qualcomm-QNN-HTP-Ziel (Standardwert ist '73'). Nicht zu verwechseln mit dem aus project/name bestehenden Paar zur Benennung von Läufen, das von anderen Modi verwendet wird. |
imgsz | int oder tuple | 640 | Gewünschte Bildgröße für die Modelleingabe. Kann eine Ganzzahl für quadratische Bilder sein (z. B. 640 für 640×640) oder ein Tupel (height, width) für bestimmte Abmessungen. Wenn keine Größe übergeben wird, verwendet der Export erneut die im geladenen Checkpoint gespeicherte Trainingsgröße: Die offiziellen YOLO26-Checkpoints speichern 768 für Tiefe, 224 für Klassifizierung, 1024 für OBB und 640 für die übrigen Aufgaben, während ein Fine-Tuning den Wert imgsz speichert, mit dem trainiert wurde. Ein aus einer YAML-Datei erstelltes Modell hat keine gespeicherte Trainingsgröße und verwendet 640. |
keras | bool | False | Aktiviert den Export in das Keras-Format für TensorFlow SavedModel und ermöglicht die Kompatibilität mit TensorFlow Serving und APIs. |
optimize | bool | False | Aktiviert eine höhere Compileroptimierung für DEEPX, wodurch die Inferenzlatenz reduziert, die Kompilierungszeit jedoch erhöht wird. |
quantize | int oder str | None | Quantisierungsgenauigkeit: 16 (FP16, reduziert die Modellgröße und kann die Inferenz auf unterstützter Hardware beschleunigen) oder 8 (INT8/PTQ, komprimiert das Modell weiter bei minimalem Genauigkeitsverlust, primär für Edge-Geräte; erfordert die Kalibrierung data/fraction); 32/nicht gesetzt ist FP32. Ein mit quantize=8 trainierter Checkpoint exportiert immer INT8: onnx und engine exportieren aus den darin enthaltenen Bereichen ohne Kalibrierung, und andere Formate oder Genauigkeiten werden abgelehnt. Exportformate, die gemischte Gewichts-/Aktivierungsgenauigkeit unterstützen, akzeptieren auch die Notation 'w8a8'/'w16a16'/'w8a16'/'w8a32'. Ersetzt die veralteten half/int8-Flags (half=True → 16, int8=True → 8, werden weiterhin mit einer Veraltungswarnung akzeptiert). Nur vom Zielformat unterstützte Genauigkeiten sind zulässig (siehe unten). |
dynamic | bool | False | Ermöglicht dynamische Eingabegrößen für TorchScript-, ONNX-, OpenVINO-, TensorRT- und CoreML-Exporte und erhöht dadurch die Flexibilität bei der Verarbeitung unterschiedlicher Bildabmessungen. |
simplify | bool | True | Vereinfacht den Zwischengraphen von ONNX mit onnxslim für die Exporte, die einen solchen Graphen erstellen (siehe Exportformate), und kann dadurch Leistung und Kompatibilität mit Inferenz-Engines verbessern. |
opset | int | None | Gibt die ONNX-Opset-Version für die Exporte an, die einen ONNX-Graphen erstellen (siehe Exportformate), um die Kompatibilität mit verschiedenen ONNX-Parsern und Laufzeitumgebungen sicherzustellen. Wenn nicht festgelegt, wird die neueste unterstützte Version verwendet. |
workspace | float oder None | None | Legt die maximale Workspace-Größe in GiB für TensorRT-Optimierungen fest und bildet einen Kompromiss zwischen Speichernutzung und Leistung. Verwende None, damit TensorRT automatisch bis zum Gerätemaximum Speicher zuweist. |
nms | bool, optional | None | None exportiert rohe One-to-Many-Vorhersagen für externes NMS; True bettet NMS ein, wo dies unterstützt wird; False wählt den NMS-freien Kopf aus, sofern verfügbar. In CoreML eingebettetes NMS unterstützt Detect, Segment und Pose mit statischen Formen. Siehe den End-to-End Detection guide. |
conf | float | None | Konfidenzschwellwert, der überall verwendet wird, wo NMS während des Exports erzeugt wird: bei nms=True-Exporten, Hailos End-to-End-freien Erkennungsexporten sowie IMXs Erkennungs-, Posenschätzungs- und Segmentierungsexporten, die intern nms=True erzwingen. Wenn nicht gesetzt, ist der Standardwert 0.25. |
iou | float | 0.7 | IoU-Schwellwert, der überall verwendet wird, wo NMS während des Exports erzeugt wird: bei nms=True-Exporten, Hailos End-to-End-freien Erkennungsexporten sowie IMXs Erkennungs-, Posenschätzungs- und Segmentierungsexporten, die intern nms=True erzwingen. |
max_det | int | 300 | Maximale Anzahl an Detektionen, die in der Ausgabe des exportierten Modells beibehalten werden. Gilt für nms=True-Exporte in jedem Format außer CoreML-Detektion (deren native NMS-Pipeline kein Detektionslimit hat) sowie NMS-freie End-to-End-Detektionsexporte (YOLO26, YOLOv10, begrenzt auf die Anzahl der verfügbaren Anker) und die Detektions-, Posen- und Segmentexporte von IMX. |
agnostic_nms | bool | False | Aktiviert klassenunabhängige NMS überall dort, wo NMS während des Exports über die standardmäßige nms=True-Pipeline erzeugt wird, einschließlich der eigenen NMS-Phase von CoreML. Dabei werden sich überlappende Boxen mit niedrigeren Werten über verschiedene Klassen hinweg statt nur innerhalb derselben Klasse unterdrückt. Wird von den eigenen erzeugten NMS-Konfigurationen von Hailo oder IMX nicht berücksichtigt; diese verfügen über keine klassenunabhängige Option und bleiben unabhängig von diesem Flag klassenabhängig. Ist außerdem in NMS-freie End-to-End-Exporte (YOLO26, YOLOv10) integriert, wo es nur verhindert, dass dieselbe Erkennung unter mehreren Klassenbezeichnungen erscheint (Duplikate mit IoU=1.0), nicht jedoch die Unterdrückung anhand eines IoU-Schwellwerts zwischen unterschiedlichen Boxen. |
batch | int | 1 | Gibt die Batchgröße für die Inferenz des exportierten Modells oder die maximale Anzahl von Bildern an, die das exportierte Modell im Modus predict gleichzeitig verarbeitet. Bei Edge-TPU-Exporten wird dieser Wert 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, TensorRT 11.0 unterstützt DLA jedoch nicht. |
verbose | bool | False | Setzt die Protokollierungsstufe des TensorRT-Builders während des format='engine'-Exports auf VERBOSE. Andere Exportformate ignorieren diese Einstellung. |
data | str | None | Pfad zum Dataset-YAML, essenziell für die INT8-Quantisierungskalibrierung; die Klassifikation nimmt stattdessen ein Dataset-Verzeichnis oder einen integrierten Dataset-Namen entgegen. Wenn bei aktiviertem INT8 nicht angegeben, wählt Ultralytics wo erforderlich ein aufgabenspezifisches Kalibrierungs-Dataset aus oder greift auf das Standard-Dataset für die Modellaufgabe zurück. Ein mit quantize=8 trainierter Checkpoint bringt eigene INT8-Bereiche mit und benötigt keine Kalibrierungsdaten. |
split | str | 'val' | Dataset-Aufteilung ('train', 'val' oder 'test'), die zum Erstellen des INT8-Quantisierungskalibrierungs-Dataloaders aus data verwendet wird. |
fraction | float, int oder list | 1.0 | Für die INT8-Kalibrierung verwendete Dataset-Teilmenge: ein Verhältnis, eine Bildanzahl oder [train, val, test]-Werte. 1 bedeutet die vollständige Aufteilung, Ganzzahlen über 1 sind Bildanzahlen, und nur der optionale Testeintrag akzeptiert 0/0.0 für „keine“. Listen mit zwei Einträgen lassen test vollständig. |
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 bei der Anpassung von Modellen für Aufgaben wie Objektzählung, Erstellung von Heatmaps, Trainingsverfolgung, Datenanalyse, Zonenverfolgung, Warteschlangenverwaltung und bereichsbasierte Zählung. Diese Optionen ermöglichen einfache Anpassungen für genaue und nützliche Ergebnisse, die auf bestimmte Anforderungen zugeschnitten sind.
| Argument | Typ | Standardwert | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer YOLO-Modell-Datei von Ultralytics. |
region | list oder dict | None | Punkte zur Definition des Interessenbereichs: entweder eine Liste von (x, y)-Tupeln oder ein Wörterbuch, das Bereichsnamen Punktelisten für mehrere Bereiche zuordnet (nur RegionCounter). Wenn None, greifen Lösungen, die einen Bereich benötigen, auf einen vordefinierten Standardwert zurück. |
show_in | bool | True | Steuert, ob die Eingangsanzahl im Videostream angezeigt wird. |
show_out | bool | True | Steuert, ob die Ausgangsanzahl im Videostream angezeigt wird. |
analytics_type | str | 'line' | Art des Diagramms, also line, bar, area oder pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Für die Heatmap zu verwendende Farbkarte. |
line_width | int | 2 | Linienstärke für die von der Lösung gezeichneten Boxen, Keypoints und Zählwerte. |
verbose | bool | True | Aktiviert das Protokoll der Lösung pro Frame mit Eingabeform, Klassenanzahlen und Verarbeitungsgeschwindigkeit. Der Tracking-Aufruf selbst bleibt immer ohne Ausgabe. |
json_file | str | None | Pfad zur JSON-Datei mit allen Koordinatendaten der Parkplätze. |
up_angle | float | 145.0 | Winkelschwellenwert für die „Aufwärts“-Pose. |
kpts | list[int] | '[6, 8, 10]' | Liste mit drei Keypoint-Indizes zur Überwachung von Trainingseinheiten. Diese Keypoints entsprechen Körpergelenken oder -teilen wie Schultern, Ellbogen und Handgelenken für Übungen wie Liegestütze, Klimmzüge, Kniebeugen und Bauchmuskelübungen. |
down_angle | int | 90 | Winkelschwellenwert für die „Abwärts“-Pose. |
blur_ratio | float | 0.5 | Passt den Prozentsatz der Unschärfeintensität an; mögliche Werte liegen im Bereich 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | Verzeichnisname zum Speichern ausgeschnittener Erkennungen. |
records | int | 5 | Gesamtzahl der Erkennungen, ab der eine E-Mail des Sicherheitsalarmsystems ausgelöst wird. |
vision_point | tuple[int, int] | (20, 20) | Der Punkt, an dem VisionEye Objekte verfolgt und Pfade zeichnet. |
source | str | None | Pfad zur Eingabequelle (Video, RTSP usw.). Nur über die Befehlszeilenschnittstelle (CLI) der Lösungen verwendbar. |
figsize | tuple[float, float] | (12.8, 7.2) | Abbildungsgröße für Analyse-Diagramme wie Heatmaps oder Graphen. |
fps | float | 30.0 | Für Geschwindigkeitsberechnungen verwendete Bilder pro Sekunde. |
max_hist | int | 5 | Maximale Anzahl historischer Punkte, die pro Objekt für Geschwindigkeits- und Richtungsberechnungen verfolgt werden. |
meter_per_pixel | float | 0.05 | Skalierungsfaktor zur Umrechnung der Pixeldistanz in reale Einheiten. |
max_speed | int | 120 | Maximale Geschwindigkeitsbegrenzung in visuellen Overlays (für Warnungen verwendet). |
data | str | 'images' | Pfad zum Bildverzeichnis für die Ähnlichkeitssuche. |
imgsz | int | 640 | Eingabebildgröße für die Modellinferenz. |
Augmentierungseinstellungen#
Techniken zur Datenaugmentierung sind entscheidend, um die Robustheit und Leistung von YOLO-Modellen zu verbessern, indem sie Variabilität in die Trainingsdaten einführen und dem Modell helfen, besser auf bisher ungesehene Daten zu generalisieren. Die folgende Tabelle beschreibt Zweck und Wirkung jedes Augmentierungsarguments:
| Argument | Typ | Standardwert | Unterstützte Aufgaben | Bereich | Beschreibung |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Passt den Farbton des Bildes um einen Anteil des Farbkreises an und führt dadurch Farbvariabilität ein. Hilft dem Modell, unter verschiedenen Lichtbedingungen zu generalisieren. Für classify gilt dies nur, wenn auto_augment=None. |
hsv_s | float | 0.7 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Ändert die Sättigung des Bildes um einen Anteil und beeinflusst dadurch die Farbintensität. Nützlich zur Simulation verschiedener Umgebungsbedingungen. Für classify gilt dies nur, wenn auto_augment=None. |
hsv_v | float | 0.4 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Ändert den Wert (die Helligkeit) des Bildes um einen Anteil und hilft dem Modell dadurch, unter verschiedenen Lichtbedingungen gute Ergebnisse zu erzielen. Für classify gilt dies nur, wenn auto_augment=None. |
degrees | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 180 | Dreht das Bild zufällig innerhalb des angegebenen Winkelbereichs und verbessert dadurch die Fähigkeit des Modells, Objekte in verschiedenen Ausrichtungen zu erkennen. |
translate | float | 0.1 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Verschiebt das Bild horizontal und vertikal um einen Anteil der Bildgröße und unterstützt dadurch das Lernen, teilweise sichtbare Objekte zu erkennen. |
scale | float | tuple | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0 - 1 oder ein explizites (min, max)-Tupel (nicht für classify) | Skaliert das Bild mit einem Verstärkungsfaktor und simuliert dadurch Objekte in unterschiedlichen Entfernungen von der Kamera. |
shear | float | 0 | detect, segment, semantic, depth, pose, obb | -180 - +180 | Verzerrt das Bild um den angegebenen Winkel und ahmt dadurch den Effekt nach, dass Objekte aus verschiedenen Blickwinkeln betrachtet werden. |
perspective | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 0.001 | Wendet eine zufällige perspektivische Transformation auf das Bild an und verbessert dadurch die Fähigkeit des Modells, Objekte im 3D-Raum zu verstehen. |
flipud | float | 0 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Dreht das Bild mit der angegebenen Wahrscheinlichkeit auf den Kopf und erhöht dadurch die Datenvariabilität, ohne die Eigenschaften des Objekts zu verändern. |
fliplr | float | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Spiegelt das Bild mit der angegebenen Wahrscheinlichkeit von links nach rechts und ist nützlich, um symmetrische Objekte zu lernen und die Vielfalt des Datasets zu erhöhen. |
bgr | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Vertauscht die Bildkanäle mit der angegebenen Wahrscheinlichkeit von RGB zu BGR und erhöht dadurch die Robustheit gegenüber einer falschen Kanalreihenfolge. |
mosaic | float | 1 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Kombiniert vier Trainingsbilder zu einem und simuliert dadurch unterschiedliche Szenenzusammensetzungen und Objektinteraktionen. Besonders wirksam für das Verständnis komplexer Szenen. |
mixup | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Mischt zwei Bilder und ihre Bezeichnungen und erstellt dadurch ein zusammengesetztes Bild. Verbessert die Generalisierungsfähigkeit des Modells durch das Einführen von Bezeichnungsrauschen und visueller Variabilität. |
cutmix | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Kombiniert Teile zweier Bilder und erstellt dadurch eine teilweise Mischung bei gleichzeitiger Beibehaltung klar abgegrenzter Bereiche. Verbessert die Robustheit des Modells durch das Erzeugen von Verdeckungsszenarien. |
copy_paste | float | 0 | segment, obb | 0.0 - 1.0 | Anteil der geeigneten Objekte, die eingefügt werden; flip spiegelt sie innerhalb des Bildes, während mixup den Wert zusätzlich als Wahrscheinlichkeit für die bildübergreifende Anwendung verwendet. |
copy_paste_mode | str | flip | segment, obb | - | Gibt die zu verwendende copy-paste-Strategie an. Zu den Optionen gehören '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 Bildbereiche, damit sich das Modell auf weniger offensichtliche Merkmale konzentriert. |
augmentations | list | None | detect, segment, semantic, depth, pose, obb | - | Benutzerdefinierte Albumentations-Transformationen für fortgeschrittene Datenaugmentierung (nur Python-API). Akzeptiert eine Liste von Transformationsobjekten für spezielle Augmentierungsanforderungen. |
Passe diese Einstellungen an die Anforderungen des Datasets und der Aufgabe an. Experimente mit verschiedenen Werten können helfen, die optimale Augmentierungsstrategie für die beste Modellleistung zu finden.
Leitfaden zur Datenaugmentation
Einstellungen für Protokollierung, Checkpoints und Diagramme#
Protokollierung, Checkpoints, Diagramme und Dateiverwaltung sind beim Trainieren eines YOLO-Modells wichtig:
- Protokollierung: Verfolge den Fortschritt des Modells und diagnostiziere Probleme mit Bibliotheken wie TensorBoard oder durch das Schreiben in eine Datei.
- Checkpoints: Speichere das Modell regelmäßig, um das Training fortzusetzen oder mit verschiedenen Konfigurationen zu experimentieren.
- Diagramme: Visualisiere Leistung und Trainingsfortschritt mit Bibliotheken wie Matplotlib oder TensorBoard.
- Dateiverwaltung: Organisiere während des Trainings erzeugte Dateien wie Checkpoints, Protokolldateien und Diagramme, damit sie einfach aufgerufen und analysiert werden können.
Eine effektive Verwaltung dieser Aspekte hilft, den Fortschritt zu verfolgen, und erleichtert das Debugging und die Optimierung.
| Argument | Standardwert | Beschreibung |
|---|---|---|
project | None | Gibt das Stammverzeichnis zum Speichern von Trainingsläufen an. Wenn nicht angegeben, werden die Läufe unter runs/<task> gespeichert. Jeder Lauf wird in einem separaten Unterverzeichnis gespeichert. |
name | None | Definiert den Namen des Experiments. Wenn nicht angegeben, verwendet YOLO den Namen des Modus und erhöht ihn für jeden Lauf (z. B. train, train-2), um ein Überschreiben zu vermeiden. |
exist_ok | False | Legt fest, ob ein vorhandenes Experimentverzeichnis überschrieben werden soll. True erlaubt das Überschreiben, False verhindert es. |
plots | True | Steuert die Erstellung und Speicherung von Trainings- und Validierungsdiagrammen. Setze den Wert auf True, um Diagramme wie Verlustkurven, Precision-Recall-Kurven und Beispielvorhersagen zur visuellen Leistungsverfolgung zu erstellen. |
save | True | Aktiviert das Speichern von Trainingsprüfpunkten und finalen Modellgewichten. Setze den Wert auf True, um Modellzustände regelmäßig zu speichern und so das Fortsetzen des Trainings oder die Bereitstellung des Modells zu ermöglichen. |
Benutzerdefinierte Konfigurationsdatei#
Lädt eine gespeicherte YAML-Datei, um einen vollständigen Satz von Argumenten wiederzuverwenden, ohne sie inline zu übergeben. Das Argument cfg überschreibt Werte aus default.yaml, während zusätzlich übergebene Argumente weiterhin Vorrang haben.
| Argument | Standardwert | Beschreibung |
|---|---|---|
cfg | None | Pfad zu einer YAML-Datei, deren Werte die Einträge von default.yaml ersetzen. Ein ausgearbeitetes CLI-Beispiel findest du unter Standardkonfigurationsdatei überschreiben. |
FAQ#
Verbessere die Leistung, indem du Hyperparameter wie Batchgröße, Lernrate, Momentum und Gewichtungszerfall abstimmst. Passe die Einstellungen für die Datenerweiterung an, wähle den passenden Optimierer und verwende Techniken wie vorzeitiges Beenden oder Training mit gemischter Präzision. Weitere Informationen findest du im Trainingsleitfaden.
Zu den wichtigsten Hyperparametern, die sich auf die Genauigkeit auswirken, gehören:
- Batchgröße (
batch): Größere Werte können das Training stabilisieren, benötigen aber mehr Speicher. - Lernrate (
lr0): Kleinere Werte ermöglichen feinere Anpassungen, führen aber zu einer langsameren Konvergenz. - Momentum (
momentum): Beschleunigt Gradientenvektoren und dämpft Schwingungen. - Bildgröße (
imgsz): Größere Werte verbessern die Genauigkeit, erhöhen aber den Rechenaufwand.
Passe diese Werte an deinen Datensatz und deine Hardware an. Weitere Informationen findest du unter Trainingseinstellungen.
- Batchgröße (
Die Lernrate (
lr0) ist entscheidend. Starte mit0.01für SGD oder mit0.001für den Adam-Optimierer. Überwache die Metriken und passe die Werte bei Bedarf an. Verwende Scheduler für eine kosinusförmige Lernrate (cos_lr) oder ein Aufwärmen (warmup_epochs,warmup_momentum). Details findest du im Trainingsleitfaden.Zu den Standardeinstellungen gehören:
- Konfidenzschwellenwert (
conf=0.25): Minimale Konfidenz für Erkennungen. - IoU-Schwellenwert (
iou=0.7): Für die Unterdrückung nicht maximaler Werte (NMS). - Bildgröße (
imgsz=640): Ändert die Größe der Eingabebilder. - Gerät (
device=None): Wählt CPU, GPU, Apple MPS oder die Huawei Ascend NPU (npu) aus.
Eine vollständige Übersicht findest du unter Vorhersageeinstellungen und im Vorhersageleitfaden.
- Konfidenzschwellenwert (
Das Training mit gemischter Präzision (
amp=True) reduziert den Speicherbedarf und beschleunigt das Training durch die Verwendung von FP16 und FP32. Dies ist für moderne GPUs vorteilhaft, da größere Modelle und schnellere Berechnungen ohne wesentlichen Genauigkeitsverlust möglich werden. Weitere Informationen findest du im Trainingsleitfaden.