Ultralytics YOLO27:
Get Started

Konfiguration#

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



Ansehen: Ultralytics YOLO meistern: Konfiguration

Ultralytics-Befehle verwenden die folgende Syntax:

Beispiel
yolo TASK MODE ARGS

Dabei gilt:

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 Computer-Vision-Aufgaben ausführen, darunter:

  • Erkennen: Bei der Objekterkennung werden Objekte in einem Bild oder Video erkannt und lokalisiert.
  • Segmentieren: Bei der Instanzsegmentierung wird ein Bild oder Video in Bereiche unterteilt, die verschiedenen Objekten oder Klassen entsprechen.
  • Semantische Segmentierung (semantic): Bei der semantischen Segmentierung wird jedem Pixel eines Bildes eine Klassenbezeichnung zugewiesen, um eine dichte Szenenanalyse zu ermöglichen.
  • Tiefe (depth): Bei der monokularen Tiefenschätzung wird aus einem einzelnen RGB-Bild eine Tiefenkarte mit einem Tiefenwert in Metern pro Pixel vorhergesagt.
  • Klassifizieren: Bei der Bildklassifizierung wird die Klassenbezeichnung eines Eingabebildes vorhergesagt.
  • Pose: Bei der Posenschätzung werden Objekte erkannt und ihre Keypoints in einem Bild oder Video geschätzt.
  • OBB: Bei orientierten Begrenzungsrahmen werden gedrehte Begrenzungsrahmen verwendet, die sich für Satelliten- oder medizinische Bilder eignen.
ArgumentStandardBeschreibung
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 Probleme bei der Bild- und Videoanalyse zugeschnitten.

Aufgabenleitfaden

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 treffen.
  • Export: Exportiert ein YOLO-Modell für die Bereitstellung.
  • Track: Verfolgt Objekte in Echtzeit mithilfe eines YOLO-Modells.
  • Benchmark: Misst Geschwindigkeit und Genauigkeit von YOLO-Exporten (ONNX, TensorRT usw.).
ArgumentStandardBeschreibung
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.

Modusleitfaden

Trainingseinstellungen#

Die 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 Gewichtsabnahme. 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.

ArgumentTypStandardBeschreibung
modelstrNoneGibt die Modelldatei für das Training an. Akzeptiert einen Pfad zu einem vortrainierten .pt-Modell oder einer .yaml-Konfigurationsdatei. Unverzichtbar, um die Modellstruktur festzulegen oder Gewichte zu initialisieren.
datastrNonePfad zur Dataset-YAML-Datei (z. B. coco8.yaml), die die Pfade zu den Trainings- und Validierungsdaten, die Klassennamen und die Anzahl der Klassen enthält. Für die Klassifizierung wird stattdessen ein Dataset-Verzeichnis oder der Name eines integrierten Datensatzes angegeben (z. B. imagenet10).
epochsint100Gesamtzahl der Trainingsepochen. Jede Epoche entspricht einem vollständigen Durchlauf durch den gesamten Datensatz. Dieser Wert wirkt sich auf die Trainingsdauer und die Modellleistung aus.
timefloatNoneMaximale Trainingsdauer in Stunden. Wenn dieser Wert gesetzt ist, überschreibt er das Argument epochs und beendet das Training automatisch nach der angegebenen Dauer. Nützlich für Trainingsszenarien mit begrenzter Zeit.
patienceint100Anzahl der Epochen, die ohne Verbesserung der Validierungsmetriken abgewartet werden, bevor das Training vorzeitig beendet wird. Hilft, Überanpassung zu verhindern, indem das Training bei stagnierender Leistung beendet wird.
batchint oder float16Batchgröße mit drei Modi: als Ganzzahl festlegen (z. B. batch=16), automatischer Modus mit 60 % GPU-Speicherauslastung (batch=-1) oder automatischer Modus mit angegebener Auslastungsfraktion (batch=0.70).
imgszint640Zielbildgröße für das Training. Bilder werden auf Quadrate mit Seitenlängen entsprechend dem angegebenen Wert skaliert (wenn rect=False), wobei YOLO-Modelle das Seitenverhältnis beibehalten, RT-DETR jedoch nicht. Beeinflusst die Genauigkeit und den Rechenaufwand des Modells.
saveboolTrueAktiviert das Speichern von Trainingsprüfpunkten und den finalen Modellgewichten. Nützlich, um das Training fortzusetzen oder das Modell bereitzustellen.
save_periodint-1Häufigkeit, mit der Modellprüfpunkte gespeichert werden, angegeben in Epochen. Der Wert -1 deaktiviert diese Funktion. Nützlich, um während langer Trainingsläufe Zwischenmodelle zu speichern.
cachebool oder strFalseAktiviert das Zwischenspeichern von Dataset-Bildern im Arbeitsspeicher (True/ram), auf der Festplatte (disk) oder deaktiviert es (False). Beschleunigt das Training durch weniger Festplatten-E/A, erhöht jedoch den Speicherbedarf.
deviceint oder str oder listNoneGibt das Rechengerät bzw. 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-Silicon (device=mps), Huawei-Ascend-NPU (device=npu:0 oder device=npu:0,1), Intel XPU (device=xpu:0), automatische Auswahl einer freien GPU (device=-1) oder mehrerer freier GPUs (device=[-1,-1]).
workersint8Anzahl der Worker-Threads für das Laden von Daten (pro RANK bei Multi-GPU-Training). Beeinflusst die Geschwindigkeit der Datenvorverarbeitung und der Datenzufuhr zum Modell; besonders nützlich bei Setups mit mehreren GPUs.
projectstrNoneName des Projektverzeichnisses, in dem die Trainingsausgaben gespeichert werden. Ermöglicht die geordnete Ablage verschiedener Experimente.
namestrNoneName des Trainingslaufs. Wird verwendet, um im Projektordner ein Unterverzeichnis für Trainingsprotokolle und -ausgaben anzulegen.
exist_okboolFalseWenn True, können ein vorhandenes Projekt-/Namensverzeichnis überschrieben werden. Nützlich für iterative Experimente, ohne vorherige Ausgaben manuell löschen zu müssen.
save_dirstrNoneGibt das genaue Verzeichnis an, in dem die Ausgaben des Laufs gespeichert werden, und überschreibt die Kombination project/name. Der Pfad wird unverändert verwendet und nicht automatisch hochgezählt, sodass aufeinanderfolgende Läufe dasselbe Verzeichnis nutzen.
pretrainedbool oder strTrueLegt fest, ob das Training mit vortrainierten Gewichten beginnt. Der Wert kann ein boolescher Wert oder ein Zeichenfolgenpfad zu ladenden Gewichten sein. pretrained=False trainiert mit zufällig initialisierten Gewichten und behält dabei die Modellarchitektur bei.
cls_remapboolTrueBeim Fine-Tuning über mehrere Datensätze hinweg werden Zeilen des vortrainierten Klassifizierungskopfs für übereinstimmende Klassennamen in das neue Modell kopiert. Überlappende Klassen behalten dadurch ihren erlernten Bias und – wenn die Breite des Kopfs unverändert bleibt – auch ihre Gewichte. Dies gilt sowohl bei unterschiedlicher Klassenanzahl als auch bei gleicher Klassenanzahl mit anderer Klassenreihenfolge.
optimizerstr'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.
seedint0Legt den Zufallsstartwert für das Training fest und gewährleistet so die Reproduzierbarkeit der Ergebnisse bei Läufen mit denselben Konfigurationen.
deterministicboolTrueErzwingt die Verwendung deterministischer Algorithmen und gewährleistet die Reproduzierbarkeit. Die Einschränkung nichtdeterministischer Algorithmen kann jedoch Leistung und Geschwindigkeit beeinträchtigen.
verboseboolTrueAktiviert ausführliche Ausgaben während des Trainings und zeigt Fortschrittsbalken, Metriken für jede Epoche und zusätzliche Trainingsinformationen in der Konsole an.
single_clsboolFalseBehandelt beim Training alle Klassen in Datensätzen mit mehreren Klassen als eine einzige Klasse. Nützlich für binäre Klassifizierungsaufgaben oder wenn es darum geht, das Vorhandensein von Objekten statt deren Klassifizierung zu erkennen.
classeslist[int]NoneGibt eine Liste der Klassen-IDs an, mit denen trainiert werden soll. Nützlich, um Klassen herauszufiltern und sich beim Training auf bestimmte Klassen zu konzentrieren.
rectboolFalseErmöglicht die Strategie der minimalen Auffüllung: Bilder in einem Batch werden nur so weit aufgefüllt, dass sie dieselbe Größe erreichen, wobei die längste Seite imgsz entspricht. Das kann Effizienz und Geschwindigkeit verbessern, sich aber auf die Modellgenauigkeit auswirken. Der standardmäßige YOLO-Trainer verwendet für die Validierung von Erkennung, Segmentierung, Pose und OBB rect=True, unabhängig von dieser Einstellung.
multi_scalefloat0.0Variiert imgsz in jedem Batch zufällig um +/- multi_scale (z. B. 0.25 -> 0.75x bis 1.25x) und rundet auf Vielfache des Modell-Strides; 0.0 deaktiviert das Training mit mehreren Skalen.
cos_lrboolFalseVerwendet einen Kosinus-Lernraten-Scheduler, der die Lernrate über die Epochen hinweg entlang einer Kosinuskurve anpasst. Unterstützt die Steuerung der Lernrate für eine bessere Konvergenz.
close_mosaicint10Deaktiviert die Mosaik-Datenerweiterung in den letzten N Epochen, um das Training vor dem Abschluss zu stabilisieren. Mit dem Wert 0 wird diese Funktion deaktiviert.
resumeboolFalseSetzt das Training ab dem zuletzt gespeicherten Prüfpunkt fort. Lädt automatisch Modellgewichte, Optimiererzustand und Epochenzahl und setzt das Training nahtlos fort.
ampbool oder strTrueLegt die Trainingsgenauigkeit fest: True oder "fp16" verwendet FP16, "bf16" BF16 auf unterstützten CUDA-Geräten und False oder "fp32" FP32.
quantizeint oder strNoneSetze den Wert auf 8 (oder "int8"), um ein quantisierungsbewusstes Training (QAT) für INT8 zu aktivieren. Dabei wird das Modell mit Fake-Quantisierung im Trainingsablauf feinabgestimmt, damit die Gewichte den INT8-Export tolerieren. Siehe quantisierungsbewusstes Training.
fractionfloat, int oder list1.0Teilmenge des Datensatzes als Verhältnis/Anzahl oder [train, val, test]-Liste. 1 steht für den vollständigen Split; Ganzzahlen über 1 geben die Anzahl der Bilder an. Nur beim optionalen Testeintrag bedeuten 0/0.0 „keine“. Bei Listen mit zwei Einträgen bleibt der Testdatensatz vollständig.
profileboolFalseAktiviert während des Trainings die Profilierung der ONNX- und TensorRT-Geschwindigkeiten, was für die Optimierung der Modellbereitstellung nützlich ist.
freezeint oder listNoneFriert die ersten N Schichten des Modells oder bestimmte Schichten anhand ihres Index oder Modulnamens ein (23.cv2, ohne vorangestelltes model.) und reduziert so die Anzahl der trainierbaren Parameter. Nützlich für Fine-Tuning oder Transferlernen.
lr0float0.01Anfängliche Lernrate (d. h. SGD=1E-2, Adam=1E-3). Wird beim Standardwert optimizer='auto' ignoriert; gib explizit einen Optimierer an, um sie zu verwenden.
lrffloat0.01Finale Lernrate als Anteil der anfänglichen Lernrate = (lr0 * lrf), die zusammen mit Schedulern zur Anpassung der Lernrate im Zeitverlauf verwendet wird.
momentumfloat0.937Momentum-Faktor für SGD oder Beta1 für Adam-Optimierer, der beeinflusst, wie stark vergangene Gradienten in die aktuelle Aktualisierung einfließen.
weight_decayfloat0.0005L2-Regularisierung, die große Gewichte bestraft, um Überanpassung zu verhindern.
warmup_epochsfloat3.0Anzahl der Epochen für das Aufwärmen der Lernrate. Dabei wird die Lernrate schrittweise von einem niedrigen Wert auf die anfängliche Lernrate erhöht, um das Training zu Beginn zu stabilisieren.
warmup_momentumfloat0.8Anfänglicher Momentum-Wert für die Aufwärmphase, der während des Aufwärmens schrittweise an den eingestellten Momentum-Wert angepasst wird.
warmup_bias_lrfloat0.1Lernrate 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 explizit einen Optimierer an, um sie zu verwenden.
distill_modelstrNonePfad zu einem Prüfpunkt des Lehrermodells (z. B. yolo26x.pt) für die Wissensdestillation. Wenn dieser Wert gesetzt ist, wird das Schülermodell mit einem zusätzlichen Destillationsverlust trainiert, der sich am eingefrorenen Lehrermodell orientiert.
disfloat6.0Gewichtung des Destillationsverlusts, der zu den standardmäßigen Erkennungsverlusten hinzukommt. Höhere Werte verstärken den Einfluss der Merkmalsvorgaben des Lehrermodells.
boxfloat7.5Gewichtung der Box-Verlustkomponente in der Verlustfunktion, die bestimmt, wie stark die präzise Vorhersage der Koordinaten des Begrenzungsrahmens gewichtet wird.
clsfloat0.5Gewichtung des Klassifizierungsverlusts in der Gesamtverlustfunktion. Beeinflusst, wie wichtig eine korrekte Klassenvorhersage im Vergleich zu anderen Komponenten ist.
cls_pwfloat0.0Potenz zur Gewichtung von Klassen, um Klassenungleichgewicht anhand der inversen Klassenhäufigkeit auszugleichen. 0.0 deaktiviert die Klassengewichtung, 1.0 wendet die vollständige Gewichtung anhand der inversen Häufigkeit an. Werte zwischen 0 und 1 bewirken eine teilweise Gewichtung.
dflfloat1.5Gewichtung des Regressionsanteils für Box-Abstände: Distribution Focal Loss (DFL), wenn der Erkennungskopf reg_max > 1 verwendet, oder ein L1-Verlust auf normalisierten Box-Abständen bei DFL-freiem YOLO26 (reg_max: 1).
posefloat12.0Gewichtung des Posenschätzungsverlusts bei Modellen, die für die Posenschätzung trainiert werden. Beeinflusst, wie stark die präzise Vorhersage von Posenschlüsselpunkten gewichtet wird.
kobjfloat1.0Gewichtung des Objektivitätsverlusts für Schlüsselpunkte bei Posenschätzungsmodellen. Stimmt die Erkennungssicherheit auf die Genauigkeit der Posenschätzung ab.
rlefloat1.0Gewichtung des Verlusts der residualen Log-Likelihood-Schätzung in Posenschätzungsmodellen. Beeinflusst die Präzision der Lokalisierung von Schlüsselpunkten.
anglefloat1.0Gewichtung des Winkelverlusts in OBB-Modellen. Beeinflusst die Präzision der Winkelvorhersagen orientierter Begrenzungsrahmen.
dlogfloat1.0Gewichtung des skaleninvarianten logarithmischen Verlusts (SILog) in Modellen zur Tiefenschätzung; dieser Hauptterm bestimmt die Tiefengenauigkeit.
dgradfloat0.5Gewichtung des Gradientenverlusts in Modellen zur Tiefenschätzung. Bestraft Fehler an Tiefenkanten und fördert schärfere Oberflächengrenzen.
dlamfloat1.0Varianzfaktor des SILog-Verlusts in Modellen zur Tiefenschätzung. 1.0 macht den Verlust vollständig skaleninvariant, während 0.0 ihn auf den einfachen logarithmischen RMSE reduziert.
nbsint64Nominelle Batchgröße zur Normalisierung des Verlusts.
overlap_maskboolTrueLegt fest, ob Objektmasken für das Training zu einer einzigen Maske zusammengeführt oder für jedes Objekt separat beibehalten werden sollen. Bei Überlappungen wird die kleinere Maske beim Zusammenführen über die größere gelegt.
mask_ratioint4Verkleinerungsfaktor für Segmentierungsmasken, der die Auflösung der während des Trainings verwendeten Masken beeinflusst. Die Auflösung vorhergesagter Masken wird dadurch nicht verändert.
dropoutfloat0.0Dropout-Rate zur Regularisierung bei Klassifizierungsaufgaben. Verhindert Überanpassung, indem während des Trainings zufällig Einheiten ausgelassen werden.
valboolTrueAktiviert die Validierung während des Trainings und ermöglicht so die regelmäßige Bewertung der Modellleistung anhand eines separaten Datensatzes.
nmsbool, optionalNoneWählt den Inferenzkopf aus, der bei der Validierung jeder Epoche, der Auswahl von Prüfpunkten und dem vorzeitigen Abbruch verwendet wird. None oder True verwendet One-to-Many mit NMS; False verwendet, sofern verfügbar, den NMS-freien Kopf. Beide Köpfe behalten ihre Trainingsverluste bei.
plotsboolTrueErzeugt und speichert Diagramme der Trainings- und Validierungsmetriken sowie Vorhersagebeispiele und bietet so einen visuellen Einblick in Modellleistung und Lernfortschritt.
compilebool oder strFalseAktiviert die PyTorch-2.x-Graphkompilierung torch.compile mit backend='inductor'. Akzeptiert True → "default", False → deaktiviert oder einen Zeichenfolgenmodus wie "default", "reduce-overhead", "max-autotune-no-cudagraphs". Bei Nichtunterstützung wird mit einer Warnung auf den Eager-Modus zurückgegriffen.
channels_lastboolNoneVerwendet für Faltungen während des Trainings das Speicherformat channels_last (NHWC). None aktiviert es automatisch unter CUDA mit PyTorch 1.11 oder neuer, außer unter Windows, wo es sich als langsamer erwiesen hat. False deaktiviert es, und True fordert es explizit an. Beim Training auf CPU oder MPS wird immer NCHW verwendet (True wird ignoriert und eine Warnung ausgegeben).
max_detint300Maximale Anzahl der Erkennungen pro Bild während der Trainingsvalidierung. Bei detect, segment, pose und OBB wird der Standardwert 300 nur dann auf die höchste Anzahl beschrifteter Objekte in Training und Validierung erhöht, wenn diese Anzahl über 300 liegt. Andere Werte bleiben unverändert; bei Überschreiten des Grenzwerts wird eine Warnung ausgegeben.
Hinweis zu Einstellungen der Batchgröße

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=-1, damit die Auslastung des CUDA-Speichers automatisch auf etwa 60 % eingestellt wird.
  • Automatischer Modus mit Auslastungsanteil: Gib einen Anteil an (z. B. batch=0.70), um die Einstellung anhand einer vorgegebenen GPU-Speicherauslastung vorzunehmen.
  • Keine passende Größe gefunden: Wenn keine Batchgröße ein verwendbares Profil ergibt, löst AutoBatch einen aussagekräftigen RuntimeError-Fehler aus, statt stillschweigend auf einen nicht passenden Standardwert zurückzugreifen.

Trainingsleitfaden

Vorhersageeinstellungen#

Die 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 Non-Maximum-Suppression (NMS) und die Anzahl der Klassen. Auch Größe und Format der Eingabedaten sowie zusätzliche Merkmale wie Masken wirken sich auf die Vorhersagen aus. Für eine optimale Leistung müssen diese Einstellungen abgestimmt werden.

Inferenzargumente:

ArgumentTypStandardBeschreibung
sourcestr oder int oder NoneNoneGibt 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 keine Quelle angegeben ist, wird eine Warnung protokolliert und das Modell greift auf die integrierten Demodateien zurück (ultralytics/assets oder bei OBB eine Demo-URL). Unterstützt eine Vielzahl von Formaten und Quellen und ermöglicht so den flexiblen Einsatz mit verschiedenen Eingabetypen.
conffloat0.25Legt den minimalen Konfidenzschwellwert für Erkennungen fest. Objekte, deren Erkennung unter diesem Schwellwert liegt, werden verworfen. Durch Anpassen dieses Werts lassen sich falsch positive Ergebnisse reduzieren.
ioufloat0.7Schwellwert für Intersection over Union (IoU) bei Non-Maximum-Suppression (NMS). Niedrigere Werte führen zu weniger Erkennungen, da überlappende Boxen entfernt werden. Das ist nützlich, um Duplikate zu reduzieren.
imgszint oder tuple640Zielgröße für Letterboxing. 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 minimale Rechteck kleiner als dieses Ziel sein. Verwende rect=False für eine feste Größe. Siehe Feste Form oder minimales Rechteck.
rectboolTrueWenn True, wird, sofern möglich (bei Batches mit gleicher Form und unterstütztem Backend), auf das minimale Rechteck aufgefüllt. Wenn False, wird immer auf die volle Größe imgsz aufgefüllt. Siehe Feste Form oder minimales Rechteck.
quantizeint oder strNoneInferenzpräzision: 16/"fp16" und 32/"fp32"/unset wählen FP16- oder FP32-Berechnungen für PyTorch- und TorchScript-Modelle aus (FP32 auf der CPU); andere Formate verwenden die Präzision, die ihr Artefakt und ihre Laufzeitumgebung vorgeben. Bei 16 rundet OpenVINO die Eingabe auf dem Client weiterhin auf FP16 und erweitert sie anschließend wieder auf FP32, ohne die Präzision der Laufzeitumgebung zu ändern. Die INT8/PTQ-Quantisierung wird beim Export konfiguriert und anschließend durch Laden des exportierten Modells verwendet. Ersetzt das veraltete Flag half.
devicestrNoneGibt 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, einer Huawei-Ascend-NPU oder anderen Rechengeräten für die Modellausführung.
dnnboolFalseWenn True verwendet wird, nutzt die Inferenz von ONNX-Modellen das DNN-Modul von OpenCV statt ONNX Runtime.
datastrNonePfad zu einer Dataset-YAML-Datei (z. B. coco8.yaml), die nur für ihre names gelesen wird und nur dann, wenn das geladene Modell keine eigenen Klassennamen enthält: bei einem Export eines Drittanbieters oder bei einem Ultralytics-Export, der von den mitgelieferten Metadaten getrennt wurde. Andernfalls meldet ein solches Modell class0, class1 und so weiter.
batchint1Legt die Batchgröße für die Inferenz fest (funktioniert nur, wenn die Quelle ein Verzeichnis, eine Videodatei oder eine .txt-Datei ist). Eine größere Batchgröße kann den Durchsatz erhöhen und so die insgesamt benötigte Inferenzzeit verkürzen.
max_detint300Maximale Anzahl der pro Bild zulässigen Erkennungen. Begrenzt die Gesamtzahl der Objekte, die das Modell bei einer einzelnen Inferenz erkennen kann, und verhindert übermäßig viele Ausgaben in dicht besetzten Szenen.
vid_strideint1Bildabstand für Videoeingaben. Überspringt bei Videos Bilder, um die Verarbeitung zu beschleunigen, verringert dabei jedoch die zeitliche Auflösung. Der Wert 1 verarbeitet jedes Bild; höhere Werte überspringen Bilder.
stream_bufferboolFalseLegt fest, ob eingehende Bilder für Videostreams in eine Warteschlange gestellt 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 zwischengespeichert, damit keine Bilder übersprungen werden; liegt die Inferenz-FPS jedoch unter der Stream-FPS, entsteht dadurch eine Verzögerung.
visualizeboolFalseSpeichert neben jeder Vorhersage eine Aktivierungskarte, 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.
augmentboolFalseAktiviert Testzeit-Augmentierung (TTA) für Vorhersagen. Dadurch kann sich die Robustheit der Erkennung verbessern, allerdings auf Kosten der Inferenzgeschwindigkeit. Nur für Ultralytics-PyTorch-Modelle verfügbar.
agnostic_nmsboolFalseAktiviert klassenunabhängige Nichtmaximalwertunterdrückung (NMS), bei der sich überlappende Boxen mit niedrigeren Konfidenzwerten klassenübergreifend unterdrückt werden, nicht nur innerhalb derselben Klasse. Nützlich bei Mehrklassenerkennungen, bei denen sich Klassen häufig überschneiden. Bei der NMS-freien Inferenz (nms=False mit YOLO26 oder YOLOv10) verhindert dies lediglich, dass dieselbe Erkennung mit mehreren Klassenbezeichnungen erscheint (Duplikate mit IoU=1.0), und unterdrückt keine unterschiedlichen Boxen anhand eines IoU-Schwellenwerts.
classeslist[int]NoneFiltert Vorhersagen nach einer Auswahl von Klassen-IDs. Zurückgegeben werden nur Erkennungen, die zu den angegebenen Klassen gehören. Nützlich, um sich bei Mehrklassenerkennungsaufgaben auf relevante Objekte zu konzentrieren.
retina_masksboolFalseGibt hochauflösende Segmentierungsmasken zurück. Wenn diese Option aktiviert ist, entsprechen die zurückgegebenen Masken (masks.data) der Originalbildgröße. Andernfalls haben sie die bei der Inferenz verwendete Bildgröße.
embedlist[int]NoneLegt fest, aus welchen Schichten Feature-Vektoren oder Einbettungen extrahiert werden. Verwende model.embed(source) für Einbettungen aus der vorletzten Schicht oder model.predict(source, embed=[layer]), um bestimmte Schichten auszuwählen. Nützlich für nachgelagerte Aufgaben wie Clustering oder Ähnlichkeitssuche. Nur für Ultralytics-PyTorch-Modelle verfügbar.
projectstrNoneName des Projektverzeichnisses, in dem die Vorhersageausgaben gespeichert werden, wenn save aktiviert ist.
namestrNoneName des Vorhersagelaufs. Dient zum Erstellen eines Unterverzeichnisses im Projektordner, in dem die Vorhersageausgaben gespeichert werden, wenn save aktiviert ist.
streamboolFalseErmöglicht eine speichereffiziente Verarbeitung langer Videos oder vieler Bilder, indem ein Generator von Results-Objekten zurückgegeben wird, statt alle Bilder gleichzeitig in den Arbeitsspeicher zu laden.
verboseboolTrueLegt fest, ob ausführliche Inferenzprotokolle im Terminal angezeigt werden, die den Vorhersageprozess in Echtzeit sichtbar machen.
compilebool oder strFalseAktiviert die PyTorch-2.x-Graphkompilierung torch.compile mit backend='inductor'. Akzeptiert True → "default", False → deaktiviert oder einen Zeichenfolgenmodus wie "default", "reduce-overhead", "max-autotune-no-cudagraphs". Bei Nichtunterstützung wird mit einer Warnung auf den Eager-Modus zurückgegriffen.
channels_lastboolNoneVerwendet für die native PyTorch-Inferenz das Speicherformat channels_last (NHWC). None aktiviert es automatisch auf oneDNN-fähigen Linux- und Windows-x86-CPUs mit 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 wie TensorRT und ONNX bleiben unverändert.
nmsbool, optionalNoneFührt standardmäßig eine Viele-zu-eins-Inferenz mit NMS aus (None oder True). Setze False, um den NMS-freien Eins-zu-eins-Kopf zu verwenden, sofern verfügbar. Weitere Informationen findest du in der Anleitung zur End-to-End-Erkennung.

Argumente für die Visualisierung:

ArgumentTypStandardBeschreibung
showboolFalseWenn True aktiviert ist, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für unmittelbares visuelles Feedback während der Entwicklung oder beim Testen.
saveboolFalse or TrueAktiviert das Speichern annotierter Bilder oder Videos in Dateien. Nützlich für Dokumentation, weiterführende Analysen oder zum Teilen der Ergebnisse. Bei Verwendung der CLI standardmäßig True, bei Verwendung in Python False.
save_framesboolFalseSpeichert bei der Verarbeitung von Videos einzelne Bilder als Dateien. Nützlich, um bestimmte Bilder zu extrahieren oder einzelne Bilder detailliert zu analysieren.
save_txtboolFalseSpeichert Erkennungsergebnisse in einer Textdatei im Format [class] [x_center] [y_center] [width] [height] [confidence]. Nützlich für die Einbindung in andere Analysewerkzeuge.
save_confboolFalseFügt den gespeicherten Textdateien Konfidenzwerte hinzu. Dadurch stehen mehr Details für die Nachbearbeitung und Analyse zur Verfügung.
save_cropboolFalseSpeichert zugeschnittene Bilder der erkannten Objekte. Nützlich für die Datensatzerweiterung, Analysen oder zum Erstellen gezielter Datensätze für bestimmte Objekte.
show_labelsboolTrueZeigt für jede Erkennung eine Bezeichnung in der visuellen Ausgabe an. So lassen sich erkannte Objekte sofort erkennen.
show_confboolTrueZeigt neben der Bezeichnung den Konfidenzwert jeder Erkennung an. Gibt Aufschluss darüber, wie sicher sich das Modell bei der jeweiligen Erkennung ist.
show_boxesboolTrueZeichnet Begrenzungsrahmen um erkannte Objekte. Unverzichtbar, um Objekte in Bildern oder Videobildern visuell zu identifizieren und zu lokalisieren.
line_widthint or NoneNoneLegt die Linienstärke der Begrenzungsrahmen fest. Bei None wird die Linienstärke automatisch an die Bildgröße angepasst. Ermöglicht eine übersichtliche visuelle Anpassung.

Anleitung zur Vorhersage

Validierungseinstellungen#

Die Validierungseinstellungen für YOLO-Modelle umfassen Hyperparameter und Konfigurationen zur Leistungsbewertung anhand eines Validierungsdatensatzes. Diese Einstellungen wirken sich auf Leistung, Geschwindigkeit und Genauigkeit aus. Zu den üblichen Einstellungen gehören Batchgröße, Validierungshäufigkeit und Leistungskennzahlen. Auch Größe und Zusammensetzung des Validierungsdatensatzes sowie die konkrete Aufgabe beeinflussen den Ablauf.

ArgumentTypStandardBeschreibung
datastrNoneGibt den Pfad zur Dataset-YAML-Datei an (z. B. coco8.yaml), die den Pfad zu den Validierungsdaten enthalten sollte. Für die Klassifizierung wird stattdessen ein Dataset-Verzeichnis oder der Name eines integrierten Datensatzes verwendet (z. B. imagenet10).
imgszint640Legt die Größe der Eingabebilder fest. Vor der Verarbeitung werden alle Bilder auf diese Abmessungen skaliert. Größere Abmessungen können die Genauigkeit bei kleinen Objekten verbessern, erhöhen aber den Rechenaufwand.
batchint16Legt die Anzahl der Bilder pro Batch fest. Höhere Werte nutzen den GPU-Speicher effizienter, benötigen aber mehr VRAM. Passe den Wert an die verfügbaren Hardwareressourcen an.
save_jsonboolFalseWenn True aktiviert ist, werden die Ergebnisse zur weiteren Analyse, zur Einbindung in andere Werkzeuge oder zur Übermittlung an Evaluierungsserver wie COCO in einer JSON-Datei gespeichert. Bei Erkennungsdatensätzen werden die Vorhersagen außerdem mit faster-coco-eval ausgewertet. Die mAP-Werte für kleine, mittlere und große Objekte werden während des Trainings in results.csv als metrics/mAP_small(B), metrics/mAP_medium(B) und metrics/mAP_large(B) protokolliert.
conffloat0.001Legt den Mindestkonfidenzschwellenwert für Erkennungen fest. Niedrigere Werte erhöhen den Recall, können aber mehr falsch-positive Ergebnisse verursachen. Präzisions-Recall-Kurven, mAP und Erkennungskonfusionsmatrizen verwenden diesen Wert. Ein höherer Wert für conf, etwa 0.25, führt zu einer Matrix, die der Vorhersageausgabe stärker entspricht, kann aber die mAP senken. Die zusammengefassten Werte für Präzision und Recall verwenden die Konfidenz mit dem maximalen F1-Wert und können daher von den aus confusion_matrix.png abgeleiteten Werten abweichen. Für die OBB-Validierung standardmäßig 0.01, um den Speicherbedarf zu verringern.
ioufloat0.7Legt den Schwellenwert für die Schnittmenge über Vereinigungsmenge für die Nichtmaximalwertunterdrückung fest. Steuert das Entfernen doppelter Erkennungen.
max_detint300Begrenzt die maximale Anzahl der Erkennungen pro Bild. Bei detect, segment, pose und OBB wird der Wert 300 auf die größte Anzahl beschrifteter Objekte im validierten Split angehoben, falls ein Bild diesen Wert überschreitet; dabei wird eine Warnung ausgegeben. Jeder andere Wert bleibt unverändert; wird er von einem Bild überschritten, weist eine Warnung darauf hin, dass der Recall begrenzt sein kann.
quantizeint oder strNoneValidierungspräzision: 16/"fp16" und 32/"fp32"/unset wählen FP16- oder FP32-Berechnungen für PyTorch- und TorchScript-Modelle aus (FP32 auf der CPU); andere Formate verwenden die Präzision, die ihr Artefakt und ihre Laufzeitumgebung vorgeben. Bei 16 rundet OpenVINO die Eingabe auf dem Client weiterhin auf FP16 und erweitert sie anschließend wieder auf FP32, ohne die Präzision der Laufzeitumgebung zu ändern. Die INT8/PTQ-Quantisierung wird beim Export konfiguriert und anschließend zur Validierung des exportierten Modells verwendet. Ersetzt das veraltete Flag half.
devicestrNoneGibt 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 Kommas getrennt angegeben werden.
dnnboolFalseWenn True aktiviert ist, verwendet die Inferenz von ONNX-Modellen das DNN-Modul von OpenCV als Alternative zu PyTorch-Inferenzmethoden.
plotsboolTrueBei True werden Vorhersagen im Vergleich zu den Ground-Truth-Daten, Konfusionsmatrizen und PR-Kurven zur visuellen Bewertung der Modellleistung erstellt und gespeichert.
classeslist[int]NoneGibt eine Liste der auszuwertenden Klassen-IDs an. Nützlich, um während der Auswertung bestimmte Klassen herauszufiltern und sich auf sie zu konzentrieren.
rectboolTrueBei True werden Bilder mit ähnlichen Seitenverhältnissen in rechteckigen Batches gruppiert. Vor dem Aufrunden jeder Dimension auf ein Vielfaches der Schrittweite wird eine halbe Schrittweite addiert (für semantic wird keine zusätzliche halbe Schrittweite addiert). Bei einer Schrittweite von 32 wird ein 640×640-Bild bei imgsz=640 zu 672×672 mit einem Versatz von 16 px, während predict 640×640 verwendet, sodass die Kennzahlen abweichen können. rect=False entspricht bei quadratischen Bildern predict. Für depth wird diese Einstellung ignoriert; dabei werden Bilder auf ein quadratisches imgsz-Format gestreckt.
splitstr'val'Legt den für die Validierung verwendeten Datensatz-Split fest (val, test oder train). So kannst du flexibel auswählen, welcher Datenabschnitt zur Leistungsbewertung verwendet wird.
fractionfloat, int oder list1.0Teilmenge des validierten Splits. Bei einer Liste in [train, val, test] gilt der Eintrag, der zu split passt (1 = vollständiger Split, Ganzzahlen über 1 = Anzahl der Bilder; ausgelassene Einträge entsprechen dem vollständigen Split). Ein einzelner Wert gilt nur für split=train; val und test verwenden dann den vollständigen Split.
projectstrNoneName des Projektverzeichnisses, in dem die Validierungsausgaben gespeichert werden. Hilft dabei, Ergebnisse verschiedener Experimente oder Modelle zu organisieren.
namestrNoneName des Validierungslaufs. Dient zum Erstellen eines Unterverzeichnisses im Projektordner, in dem Validierungsprotokolle und -ausgaben gespeichert werden.
verboseboolTrueWenn True aktiviert ist, werden während der Validierung ausführliche Informationen angezeigt, darunter Kennzahlen für jede Klasse, der Batch-Fortschritt und zusätzliche Informationen zur Fehlersuche.
save_txtboolFalseWenn True aktiviert ist, werden Erkennungsergebnisse in Textdateien gespeichert, jeweils eine Datei pro Bild. Nützlich für weiterführende Analysen, benutzerdefinierte Nachbearbeitung oder die Einbindung in andere Systeme.
save_confboolFalseWenn True aktiviert ist, werden Konfidenzwerte in die gespeicherten Textdateien aufgenommen, sofern save_txt aktiviert ist. Dadurch stehen detailliertere Ausgaben für Analysen und Filterungen zur Verfügung.
workersint8Anzahl der Worker-Threads für das Laden von 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.
augmentboolFalseAktiviert Testzeit-Augmentierung (TTA) während der Validierung. Durch Inferenz auf transformierten Versionen der Eingabe kann sich die Erkennungsgenauigkeit verbessern, allerdings auf Kosten der Inferenzgeschwindigkeit. Nur für Ultralytics-PyTorch-Modelle verfügbar.
agnostic_nmsboolFalseAktiviert klassenunabhängige Nichtmaximalwertunterdrückung, bei der sich überlappende Boxen mit niedrigeren Konfidenzwerten unabhängig von der vorhergesagten Klasse unterdrückt werden. Nützlich für Anwendungen, bei denen einzelne Objekte im Mittelpunkt stehen. Bei der NMS-freien Inferenz (nms=False mit YOLO26 oder YOLOv10) verhindert dies lediglich, dass dieselbe Erkennung mit mehreren Klassenbezeichnungen erscheint (Duplikate mit IoU=1.0), und unterdrückt keine unterschiedlichen Boxen anhand eines IoU-Schwellenwerts.
single_clsboolFalseBehandelt während der Validierung alle Klassen als eine einzige Klasse. Nützlich, um die Modellleistung bei binären Erkennungsaufgaben zu bewerten oder wenn Klassenunterscheidungen keine Rolle spielen.
visualizeboolFalseVisualisiert für jedes Bild die Ground-Truth-Daten, richtig-positiven, falsch-positiven und falsch-negativen Ergebnisse. Nützlich für die Fehlersuche und die Interpretation des Modells.
show_labelsboolTrueZeigt Klassenbezeichnungen in Validierungsvisualisierungen an, wenn visualize=True aktiviert ist. Setze den Wert auf False, um Übereinstimmungen und Fehler übersichtlicher darzustellen.
show_confboolTrueZeigt Konfidenzwerte in Validierungsvisualisierungen an, wenn visualize=True aktiviert ist. Setze den Wert auf False, um Übereinstimmungen und Fehler übersichtlicher darzustellen.
compilebool oder strFalseAktiviert die PyTorch-2.x-Graphkompilierung torch.compile mit backend='inductor'. Akzeptiert True → "default", False → deaktiviert oder einen Zeichenfolgenmodus wie "default", "reduce-overhead", "max-autotune-no-cudagraphs". Bei Nichtunterstützung wird mit einer Warnung auf den Eager-Modus zurückgegriffen.
channels_lastboolNoneVerwendet für die native PyTorch-Validierung das Speicherformat channels_last (NHWC). None aktiviert es automatisch auf oneDNN-fähigen Linux- und Windows-x86-CPUs mit 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; bei der Validierung während des Trainings bleibt das Layout des Trainingsmodells erhalten.
nmsbool, optionalNoneFührt standardmäßig eine Viele-zu-eins-Inferenz mit NMS aus (None oder True). Setze False, um den NMS-freien Eins-zu-eins-Kopf zu verwenden, sofern verfügbar. Weitere Informationen findest du in der Anleitung zur End-to-End-Erkennung.

Sorgfältige Abstimmung und Experimente sind entscheidend, um eine optimale Leistung sicherzustellen und Überanpassung zu erkennen und zu verhindern.

Anleitung zur Validierung

Exporteinstellungen#

Zu den Exporteinstellungen für YOLO-Modelle gehören Konfigurationen zum Speichern oder Exportieren des Modells für den Einsatz in unterschiedlichen Umgebungen. Diese Einstellungen beeinflussen Leistung, Größe und Kompatibilität. Zu den wichtigsten Einstellungen zählen das Exportdateiformat (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 wirken sich auf den Export aus.

ArgumentTypStandardBeschreibung
formatstr'torchscript'Zielformat für das exportierte Modell, etwa 'onnx', 'torchscript', 'engine' (TensorRT) oder ein anderes Format. Jedes Format ermöglicht die Kompatibilität mit unterschiedlichen Bereitstellungsumgebungen.
namestrNoneHardwarezielname für Formate, die eines erfordern: 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'), Qualcomm-QNN-HTP-Ziel (Standardwert ist '73') oder AMD-Xilinx-Versal-AI-Edge-Series-Gen-2-Gerät (Standardwert ist 've2-xc2ve3858', das VEK385-Evaluierungskit). Unterscheidet sich vom Run-Namenspaar project/name, das andere Modi verwenden.
imgszint oder tuple640Gewü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. Wird kein Wert übergeben, verwendet der Export erneut die im geladenen Prüfpunkt gespeicherte Trainingsgröße: In den offiziellen YOLO26-Prüfpunkten ist für depth 768, für classify 224, für OBB 1024 und für die übrigen Aufgaben 640 gespeichert. Bei einem weitertrainierten Modell wird die jeweilige Trainingsgröße imgsz übernommen. Ein aus einer YAML-Datei erstelltes Modell hat keine gespeicherte Trainingsgröße und verwendet 640.
optimizeboolFalseAktiviert eine stärkere Compileroptimierung für DEEPX. Dadurch verringert sich die Inferenzlatenz, während sich die Kompilierungszeit erhöht.
quantizeint oder strNoneQuantisierungspräzision: 16 (FP16; verringert die Modellgröße und kann die Inferenz auf unterstützter Hardware beschleunigen) oder 8 (INT8/PTQ; komprimiert das Modell weiter und verursacht nur minimale Einbußen bei der Genauigkeit, vor allem für Edge-Geräte; benötigt die Kalibrierung data/fraction); 32/nicht gesetzt bedeutet FP32. Ein mit quantize=8 trainierter Prüfpunkt wird immer als INT8 exportiert: onnx und engine exportieren anhand der darin enthaltenen Wertebereiche ohne Kalibrierung; andere Formate oder Präzisionen werden abgelehnt. 'w8a8' und 'w16a16' sind Aliase für 8 und 16. Die gemischten Präzisionen 'w8a16' (INT8-Gewichte mit 16-Bit-Aktivierungen: CoreML, LiteRT, QNN) und 'w8a32' (dynamisches INT8: LiteRT) werden nur von diesen Formaten akzeptiert. Ersetzt die veralteten Flags half/int8 (half=True → 16, int8=True → 8, weiterhin mit einer Warnung zur Veraltung akzeptiert). Zulässig sind nur Präzisionen, die das Zielformat unterstützt (siehe unten).
dynamicboolFalseErmöglicht dynamische Eingabegrößen für TorchScript-, ONNX-, OpenVINO-, TensorRT-, CoreML- und MNN-Exporte und erhöht so die Flexibilität bei unterschiedlichen Bildabmessungen.
simplifyboolTrueVereinfacht den zwischengeschalteten ONNX-Graphen mit onnxslim für Exporte, die einen solchen Graphen erstellen (siehe Exportformate). Das kann Leistung und Kompatibilität mit Inferenz-Engines verbessern.
opsetintNoneGibt die ONNX-Operatorensatz-Version für Exporte an, die einen ONNX-Graphen erstellen (siehe Exportformate), damit die Kompatibilität mit unterschiedlichen ONNX-Parsern und Laufzeitumgebungen gewährleistet ist. Wenn kein Wert gesetzt ist, wird die neueste unterstützte Version verwendet.
workspacefloat oder NoneNoneLegt die maximale Workspace-Größe in GiB für TensorRT-Optimierungen fest und schafft so einen Ausgleich zwischen Speicherbedarf und Leistung. Verwende None, damit TensorRT automatisch bis zur maximalen Gerätegröße Speicher zuweist.
nmsbool, optionalNoneNone exportiert rohe Viele-zu-eins-Vorhersagen für eine externe NMS; True bindet NMS ein, sofern unterstützt; False wählt den NMS-freien Kopf, sofern verfügbar. Integrierte NMS in CoreML unterstützt detect, segment und pose mit statischen Formen. Weitere Informationen findest du in der Anleitung zur End-to-End-Erkennung.
conffloatNoneKonfidenzschwellenwert für alle Fälle, in denen beim Export NMS erzeugt wird: nms=True-Exporte, nicht durchgängige detect-Exporte für Hailo sowie detect-, pose- und segment-Exporte für IMX, die intern nms=True erzwingen. Wenn kein Wert gesetzt ist, wird standardmäßig 0.25 verwendet.
ioufloat0.7IoU-Schwellenwert für alle Fälle, in denen beim Export NMS erzeugt wird: nms=True-Exporte, nicht durchgängige detect-Exporte für Hailo sowie detect-, pose- und segment-Exporte für IMX, die intern nms=True erzwingen.
max_detint300Maximale Anzahl der Erkennungen, die in der Ausgabe des exportierten Modells erhalten bleibt. Gilt für nms=True-Exporte in allen Formaten außer der detect-Funktion von CoreML, deren native NMS-Pipeline keine Obergrenze für Erkennungen hat. Gilt außerdem für NMS-freie End-to-End-Erkennungsexporte (YOLO26, YOLOv10; begrenzt auf die Anzahl verfügbarer Anker) und detect-, pose- sowie segment-Exporte für IMX.
agnostic_nmsboolFalseAktiviert klassenunabhängige NMS in allen Fällen, in denen NMS beim Export über die standardmäßige Pipeline nms=True erzeugt wird, einschließlich der eigenen NMS-Stufe von CoreML. Dabei werden sich überlappende Boxen mit niedrigeren Konfidenzwerten klassenübergreifend unterdrückt, nicht nur innerhalb derselben Klasse. Die Einstellung wird von den eigenen erzeugten NMS-Konfigurationen von Hailo und IMX nicht berücksichtigt. Diese bieten keine klassenunabhängige Option und bleiben unabhängig von diesem Flag klassenabhängig. Bei NMS-freien End-to-End-Exporten (YOLO26, YOLOv10) ist die Option ebenfalls fest eingebunden; dort verhindert sie lediglich, dass dieselbe Erkennung mit mehreren Klassenbezeichnungen erscheint (Duplikate mit IoU=1.0), und unterdrückt keine unterschiedlichen Boxen anhand eines IoU-Schwellenwerts.
batchint1Legt die Batchgröße für die Inferenz des Exportmodells oder die maximale Anzahl von Bildern fest, die das exportierte Modell im Modus predict gleichzeitig verarbeitet. Bei Formaten, deren Exportargumente kein batch enthalten (Edge TPU, IMX500, DEEPX, Hailo, AMD Xilinx), wird Batch 1 exportiert; andere Werte werden abgelehnt.
devicestrNoneGibt 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.
verboseboolFalseErhöht den Protokollierungsgrad des TensorRT-Builders während des Exports mit format='engine' auf VERBOSE. Andere Exportformate ignorieren diese Option.
datastrNonePfad zur YAML-Datei des Datensatzes, die für die INT8-Quantisierungskalibrierung unerlässlich ist. Für die Klassifizierung wird stattdessen ein Dataset-Verzeichnis oder der Name eines integrierten Datensatzes verwendet. Ist bei aktivierter INT8-Quantisierung kein Pfad angegeben, wählt Ultralytics bei Bedarf einen aufgabenspezifischen Kalibrierungsdatensatz aus oder verwendet den Standarddatensatz für die Aufgabe des Modells. Ein mit quantize=8 trainierter Prüfpunkt enthält eigene INT8-Wertebereiche und benötigt keine Kalibrierungsdaten.
splitstr'val'Datensatz-Split ('train', 'val' oder 'test'), der zum Erstellen des INT8-Kalibrierungsdatenladers aus data verwendet wird.
fractionfloat, int oder list1.0Für die INT8-Kalibrierung verwendete Teilmenge des Datensatzes: ein Verhältnis, eine Bildanzahl oder Werte aus [train, val, test]. 1 steht für den vollständigen Split; Ganzzahlen über 1 geben die Bildanzahl an. Nur beim optionalen Testeintrag bedeuten 0/0.0, dass keine Daten verwendet werden. Bei Listen mit zwei Einträgen bleibt test vollständig.

Durchdachte Konfigurationen stellen sicher, dass das exportierte Modell für seinen Einsatzzweck optimiert ist und in der Zielumgebung effektiv funktioniert.

Exportanleitung

Einstellungen für Lösungen#

Die Konfigurationseinstellungen der Ultralytics-Lösungen bieten Flexibilität, um Modelle für Aufgaben wie Objektzählung, Heatmap-Erstellung, Trainingsverfolgung, Datenanalyse, Zonenverfolgung, Warteschlangenverwaltung und bereichsbasierte Zählung anzupassen. Mit diesen Optionen kannst du die Einstellungen einfach anpassen, um genaue und nützliche Ergebnisse zu erhalten, die auf bestimmte Anforderungen zugeschnitten sind.

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics-YOLO-Modelldatei.
regionlist oder dictNonePunkte, die den Interessenbereich festlegen: entweder eine Liste von (x, y)-Tupeln oder ein Wörterbuch, das bei mehreren Bereichen deren Namen den jeweiligen Punktelisten zuordnet (nur RegionCounter). Bei None verwenden Lösungen, die einen Bereich benötigen, einen vordefinierten Standardbereich.
show_inboolTrueSteuert, ob die Eingangsanzahl im Videostream angezeigt wird.
show_outboolTrueSteuert, ob die Ausgangsanzahl im Videostream angezeigt wird.
analytics_typestr'line'Diagrammtyp, z. B. line, bar, area oder pie.
colormapintcv2.COLORMAP_DEEPGREENFür die Heatmap zu verwendende Farbpalette.
line_widthint2Linienstärke für die Boxen, Keypoints und Zählwerte, die von der Lösung eingezeichnet werden.
verboseboolTrueAktiviert das Protokoll der Lösung für jedes Bild, das Eingabeform, Klassenanzahlen und Verarbeitungsgeschwindigkeit enthält. Der Tracking-Aufruf selbst gibt grundsätzlich keine Meldungen aus.
json_filestrNonePfad zur JSON-Datei mit allen Koordinatendaten für Parkplätze.
up_anglefloat145.0Winkelschwellenwert für die „obere“ Pose.
kptslist[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 und werden für Übungen wie Liegestütze, Klimmzüge, Kniebeugen und Bauchmuskeltraining verwendet.
down_anglefloat90.0Winkelschwellenwert für die „untere“ Pose.
blur_ratiofloat0.5Passt den prozentualen Unschärfegrad an; Werte liegen im Bereich 0.1 - 1.0.
crop_dirstr'cropped-detections'Verzeichnisname zum Speichern zugeschnittener Erkennungen.
recordsint5Gesamtzahl der Erkennungen, ab der eine E-Mail mit einem Sicherheitsalarm ausgelöst wird.
vision_pointtuple[int, int](20, 20)Der Punkt, an dem VisionEye Objekte verfolgt und mithilfe der VisionEye-Lösung Pfade zeichnet.
sourcestrNonePfad zur Eingabequelle (Video, RTSP usw.). Nur mit der Befehlszeilenschnittstelle (CLI) für Solutions verwendbar.
figsizetuple[float, float](12.8, 7.2)Abbildungsgröße in Zoll für Analytics-Diagramme; (12.8, 7.2) rendert ein Bild mit 1280×720 Pixeln.
fpsfloat30.0Für Geschwindigkeitsberechnungen verwendete Bilder pro Sekunde.
max_histint5Maximale Anzahl historischer Punkte, die pro Objekt für Geschwindigkeits- und Richtungsberechnungen verfolgt werden.
meter_per_pixelfloat0.05Skalierungsfaktor zur Umrechnung von Pixelabständen in reale Maßeinheiten.
max_speedint120Maximale Geschwindigkeit in km/h; höhere geschätzte Geschwindigkeiten werden auf diesen Wert begrenzt.
datastr'images'Pfad zum Bildverzeichnis für die Ähnlichkeitssuche.
imgszint640Eingabebildgröße für die Modellinferenz.

Solutions-Leitfaden

Augmentierungseinstellungen#

Techniken zur Datenaugmentierung sind entscheidend, um die Robustheit und Leistung von YOLO-Modellen zu verbessern. Dazu wird Abwechslung in die Trainingsdaten gebracht, damit das Modell besser auf unbekannte Daten generalisieren kann. Die folgende Tabelle beschreibt Zweck und Wirkung der einzelnen Augmentierungsargumente:

ArgumentTypStandardUnterstützte AufgabenBereichBeschreibung
hsv_hfloat0.015detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Passt den Farbton des Bildes um einen Anteil des Farbkreises an und sorgt so für Farbvariationen. Dies hilft dem Modell, auf unterschiedliche Lichtverhältnisse zu generalisieren. Für classify gilt dies nur, wenn auto_augment=None.
hsv_sfloat0.7detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Ändert die Sättigung des Bildes um einen Anteil und beeinflusst so die Farbintensität. Dies eignet sich, um verschiedene Umgebungsbedingungen zu simulieren. Für classify gilt dies nur, wenn auto_augment=None.
hsv_vfloat0.4detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Ändert den Wert (die Helligkeit) des Bildes um einen Anteil und hilft dem Modell, bei unterschiedlichen Lichtverhältnissen gute Ergebnisse zu erzielen. Für classify gilt dies nur, wenn auto_augment=None.
degreesfloat0detect, segment, semantic, depth, pose, obb0.0 - 180Dreht das Bild zufällig innerhalb des angegebenen Winkelbereichs und verbessert so die Fähigkeit des Modells, Objekte in verschiedenen Ausrichtungen zu erkennen.
translatefloat0.1detect, segment, semantic, depth, pose, obb0.0 - 1.0Verschiebt das Bild horizontal und vertikal um einen Anteil der Bildgröße. Dadurch lernt das Modell, teilweise sichtbare Objekte zu erkennen.
scalefloat | tuple0.5detect, segment, semantic, depth, classify, pose, obb0 - 1 oder ein explizites Tupel (min, max) (nicht für classify)Skaliert das Bild mit einem Verstärkungsfaktor und simuliert so Objekte in verschiedenen Entfernungen zur Kamera.
shearfloat0detect, segment, semantic, depth, pose, obb-180 - +180Verzerrt das Bild um einen angegebenen Winkel und ahmt so den Effekt nach, dass Objekte aus verschiedenen Blickwinkeln betrachtet werden.
perspectivefloat0detect, segment, semantic, depth, pose, obb0.0 - 0.001Wendet eine zufällige perspektivische Transformation auf das Bild an und verbessert so die Fähigkeit des Modells, Objekte im dreidimensionalen Raum zu verstehen.
flipudfloat0detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Dreht das Bild mit der angegebenen Wahrscheinlichkeit auf den Kopf und erhöht so die Datenvielfalt, ohne die Merkmale des Objekts zu verändern.
fliplrfloat0.5detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Spiegelt das Bild mit der angegebenen Wahrscheinlichkeit horizontal. Dies eignet sich zum Lernen symmetrischer Objekte und erhöht die Vielfalt des Datensatzes.
bgrfloat0detect, segment, semantic, depth, pose, obb0.0 - 1.0Vertauscht mit der angegebenen Wahrscheinlichkeit die Bildkanäle von RGB zu BGR. Dies erhöht die Robustheit gegenüber einer falschen Kanalreihenfolge.
mosaicfloat1detect, segment, semantic, pose, obb0.0 - 1.0Kombiniert vier Trainingsbilder zu einem und simuliert so unterschiedliche Szenenzusammensetzungen und Objektinteraktionen. Besonders wirksam für das Verständnis komplexer Szenen.
mixupfloat0detect, segment, semantic, pose, obb0.0 - 1.0Mischt zwei Bilder und ihre Beschriftungen zu einem zusammengesetzten Bild. Durch Rauschen in den Beschriftungen und visuelle Variationen verbessert sich die Generalisierungsfähigkeit des Modells.
cutmixfloat0detect, segment, semantic, pose, obb0.0 - 1.0Kombiniert Teile zweier Bilder zu einer teilweisen Überblendung, wobei die Bereiche unterscheidbar bleiben. Dadurch wird die Robustheit des Modells durch simulierte Verdeckungssituationen verbessert.
copy_pastefloat0segment, semantic, obb0.0 - 1.0Anteil der geeigneten Objekte, die eingefügt werden; flip spiegelt sie innerhalb des Bildes, während mixup diesen Wert auch als Wahrscheinlichkeit für die Anwendung über mehrere Bilder hinweg verwendet.
copy_paste_modestrflipsegment, semantic, obb-Gibt die zu verwendende Strategie copy-paste an. Zur Auswahl stehen 'flip' und 'mixup'.
auto_augmentstrrandaugmentclassify-Wendet eine vordefinierte Augmentierungsrichtlinie ('randaugment', 'autoaugment' oder 'augmix') an, um die Modellleistung durch visuelle Vielfalt zu verbessern.
erasingfloat0.4classify0.0 - 1.0Löscht während des Trainings zufällig Bildbereiche, damit sich das Modell auf weniger offensichtliche Merkmale konzentriert.
augmentationslistNonedetect, segment, semantic, depth, pose, obb-Benutzerdefinierte Albumentations-Transformationen für erweiterte Datenaugmentierung (nur Python-API). Akzeptiert eine Liste von Transformationsobjekten für spezielle Anforderungen an die Augmentierung.

Passe diese Einstellungen an die Anforderungen des Datensatzes und der Aufgabe an. Durch Ausprobieren verschiedener Werte findest du möglicherweise die optimale Augmentierungsstrategie für die beste Modellleistung.

Augmentierungsleitfaden

Einstellungen für Protokollierung, Prüfpunkte und Diagramme#

Protokollierung, Prüfpunkte, Diagramme 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 Schreiben in eine Datei.
  • Prüfpunkte: Speichere das Modell regelmäßig, damit du das Training fortsetzen oder verschiedene Konfigurationen ausprobieren kannst.
  • Diagramme: Visualisiere Leistung und Trainingsfortschritt mithilfe von Bibliotheken wie Matplotlib oder TensorBoard.
  • Dateiverwaltung: Organisiere die während des Trainings erzeugten Dateien, beispielsweise Prüfpunkte, Protokolldateien und Diagramme, damit sie leicht zugänglich und auszuwerten sind.

Eine effektive Verwaltung dieser Aspekte hilft dir, den Fortschritt zu verfolgen und Fehlerbehebung sowie Optimierung zu erleichtern.

ArgumentStandardBeschreibung
projectNoneGibt das Stammverzeichnis zum Speichern von Trainingsläufen an. Wenn nicht angegeben, werden die Läufe unter runs/<task> gespeichert. Jeder Lauf wird in einem eigenen Unterverzeichnis abgelegt.
nameNoneLegt den Namen des Experiments fest. Wenn kein Name angegeben ist, verwendet YOLO den Namen des Modus und erhöht ihn bei jedem Lauf (z. B. train, train-2), um ein Überschreiben zu verhindern.
exist_okFalseLegt fest, ob ein vorhandenes Experimentverzeichnis überschrieben wird. True erlaubt das Überschreiben; False verhindert es.
plotsTrueSteuert die Erstellung und Speicherung von Trainings- und Validierungsdiagrammen. Setze den Wert auf True, um Diagramme wie Verlustkurven, Präzisions-Recall-Kurven und Beispielvorhersagen zur visuellen Leistungsüberwachung zu erstellen.
saveTrueAktiviert das Speichern von Trainingsprüfpunkten und den endgültigen 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#

Lade eine gespeicherte YAML-Datei, um eine vollständige Gruppe von Argumenten wiederzuverwenden, ohne sie inline anzugeben. Das Argument cfg überschreibt Werte aus default.yaml; zusätzlich angegebene Argumente haben weiterhin Vorrang.

ArgumentStandardBeschreibung
cfgNonePfad zu einer YAML-Datei, deren Werte die Einträge in default.yaml ersetzen. Ein ausgearbeitetes CLI-Beispiel findest du unter Standardkonfigurationsdatei überschreiben.

Häufig gestellte Fragen#

  • Verbessere die Leistung, indem du Hyperparameter wie Stapelgröße, Lernrate, Momentum und Gewichtsabnahme anpasst. Passe die Einstellungen für die Datenaugmentierung an, wähle den passenden Optimierer und verwende Techniken wie frühzeitiges Beenden oder Training mit gemischter Genauigkeit. Weitere Informationen findest du im Trainingsleitfaden.

  • Zu den wichtigsten Hyperparametern, die sich auf die Genauigkeit auswirken, gehören:

    • Stapelgröße (batch): Größere Werte können das Training stabilisieren, benötigen aber mehr Speicher.
    • Lernrate (lr0): Niedrigere Werte ermöglichen feinere Anpassungen, verlangsamen aber die 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.

  • Die Lernrate (lr0) ist entscheidend. Beginne mit 0.01 für SGD oder 0.001 für den Adam-Optimierer und lege optimizer ausdrücklich fest, da der Standardwert auto lr0 ignoriert. Überwache die Metriken und passe die Werte bei Bedarf an. Verwende Kosinus-Lernratenpläne (cos_lr) oder Warmup (warmup_epochs, warmup_momentum). Weitere Informationen 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 nichtmaximale Unterdrückung (NMS).
    • Bildgröße (imgsz=640): Ändert die Größe der Eingabebilder.
    • Gerät (device=None): Wählt CPU, CUDA-GPU, Apple MPS, Intel XPU (xpu) oder Huawei Ascend NPU (npu) aus.

    Eine vollständige Übersicht findest du unter Vorhersageeinstellungen und im Vorhersageleitfaden.

  • Das Training mit gemischter Genauigkeit (amp=True) reduziert den Speicherbedarf und beschleunigt das Training durch die Verwendung von FP16 und FP32. Es eignet sich für moderne GPUs und ermöglicht größere Modelle sowie schnellere Berechnungen, ohne die Genauigkeit wesentlich zu beeinträchtigen. Weitere Informationen findest du im Trainingsleitfaden.

Kommentare