YOLO Vision 2026:

Modell-Benchmarking mit Ultralytics YOLO#

Ultralytics YOLO ecosystem and integrations

Benchmark-Visualisierung#

Einführung#

Sobald dein Modell trainiert und validiert ist, besteht der nächste logische Schritt darin, seine Leistung in verschiedenen realen Szenarien zu bewerten. Der Benchmark-Modus in Ultralytics YOLO26 dient diesem Zweck, indem er ein robustes Framework zur Beurteilung der Geschwindigkeit und Genauigkeit deines Modells über eine Reihe von Exportformaten hinweg bereitstellt.



Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?

Warum ist Benchmarking entscheidend?#

  • Fundierte Entscheidungen: Gewinne Einblicke in die Kompromisse zwischen Geschwindigkeit und Genauigkeit.
  • Ressourcenzuweisung: Verstehe, wie verschiedene Exportformate auf unterschiedlicher Hardware abschneiden.
  • Optimierung: Erfahre, welches Exportformat die beste Leistung für deinen spezifischen Anwendungsfall bietet.
  • Kosteneffizienz: Nutze Hardware-Ressourcen basierend auf Benchmark-Ergebnissen effizienter.

Wichtige Metriken im Benchmark-Modus#

  • mAP50-95: Für Objekterkennung, Segmentierung und Posenschätzung.
  • accuracy_top1: Für Bildklassifizierung.
  • Inferenzzeit: Die benötigte Zeit für jedes Bild in Millisekunden.

Unterstützte Exportformate#

  • ONNX: Für optimale CPU-Leistung
  • TensorRT: Für maximale GPU-Effizienz
  • OpenVINO: Für Intel-Hardware-Optimierung
  • CoreML, TensorFlow SavedModel und mehr: Für diverse Bereitstellungsanforderungen.
Tipp
  • Exportiere zu ONNX oder OpenVINO für bis zu 3x CPU-Beschleunigung.
  • Exportiere zu TensorRT für bis zu 5x GPU-Beschleunigung.

Anwendungsbeispiele#

Empfohlene Installation

Installiere Ultralytics mit Export-Abhängigkeiten vor dem Benchmarking, um fehlende Pakete zu vermeiden.

pip install ultralytics[export]

Führe YOLO26n-Benchmarks über alle unterstützten Exportformate hinweg aus (ONNX, TensorRT etc.). Siehe den Abschnitt „Argumente“ unten für eine vollständige Liste der Exportoptionen.

Beispiel
from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")

Argumente#

Argumente wie model, data, imgsz, quantize, device, verbose und format bieten dir die Flexibilität, die Benchmarks an deine spezifischen Bedürfnisse anzupassen und die Leistung verschiedener Exportformate mühelos zu vergleichen.

SchlüsselStandardwertBeschreibung
modelNoneGibt den Pfad zur Modelflüssigkeit an. Akzeptiert sowohl .pt- als auch .yaml-Formate, z. B. "yolo26n.pt" für vortrainierte Modelle oder Konfigurationsdateien.
dataNonePfad zum Dataset-YAML für das Benchmarking, der typischerweise Pfade und Einstellungen für Validierungsdaten enthält. Beispiel: "coco8.yaml". Die Klassifizierung erfordert stattdessen ein Dataset-Verzeichnis oder einen integrierten Dataset-Namen (z. B. imagenet10).
imgsz640Die Eingabebildgröße für das Modell. Muss für quadratische Bilder eine einzelne ganze Zahl sein (z. B. 640); benchmark() unterstützt nur quadratische Bildgrößen.
quantizeNoneQuantisierungspräzision: 16 (FP16) oder 8 (INT8/PTQ; erfordert Kalibrierung data/fraction); 32/nicht gesetzt ist FP32. Ersetzt die veralteten Flags half/int8.
device'cpu'Definiert das Rechengerät bzw. die Rechengeräte für das Benchmarking, wie zum Beispiel "cpu" oder "cuda:0".
verboseFalseSteuert den Detaillierungsgrad der Protokollausgabe. Setze verbose=True für detaillierte Protokolle.
eps0.001Kleines Epsilon (in Millisekunden), das zur Inferenzzeit pro Bild addiert wird, bevor diese in FPS umgewandelt wird, um eine Division durch Null zu verhindern. Wird selten geändert.
format''Führt Benchmarks nur für das angegebene Exportformat aus (z. B. format=onnx). Lass es leer, um jedes unterstützte Format automatisch zu testen.
Standardeinstellungen der eigenständigen `benchmark()`-Funktion

Die eigenständige Funktion benchmark() (from ultralytics.utils.benchmarks import benchmark) verwendet eigene Signatur-Standardwerte anstelle der obigen Tabellenwerte, insbesondere model="yolo26n.pt" und imgsz=160; übergebe imgsz explizit, um dem CLI yolo benchmark zu entsprechen.

Exportformate#

Benchmarks versuchen automatisch, auf allen unten aufgeführten möglichen Exportformaten ausgeführt zu werden. Alternativ kannst du Benchmarking für ein bestimmtes Format über das Argument format durchführen, das jedes der unten genannten Formate akzeptiert.

Formatformat-ArgumentModellMetadatenArgumente
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms
Apple Core AIcoreaiyolo26n.aimodelimgsz, batch, quantize

Weitere Details zum export-Modus findest du auf der Export-Seite.

FAQ#

  • Ultralytics YOLO26 bietet einen Benchmark-Modus, um die Leistung deines Modells über verschiedene Exportformate hinweg zu bewerten. Dieser Modus liefert Einblicke in wichtige Metriken wie mittlere durchschnittliche Präzision (mAP50-95), Genauigkeit und Inferenzzeit in Millisekunden. Um Benchmarks auszuführen, kannst du entweder Python- oder CLI-Befehle verwenden. Zum Beispiel für ein Benchmarking auf einer GPU:

    Beispiel
    from ultralytics.utils.benchmarks import benchmark
    
    # Benchmark on GPU
    benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

    Weitere Details zu Benchmark-Argumenten findest du im Abschnitt Arguments.

  • Das Exportieren von YOLO26-Modellen in verschiedene Formate wie ONNX, TensorRT und OpenVINO ermöglicht es dir, die Leistung basierend auf deiner Bereitstellungsumgebung zu optimieren. Zum Beispiel:

    • ONNX: Bietet bis zu 3x CPU-Beschleunigung.
    • TensorRT: Bietet bis zu 5x GPU-Beschleunigung.
    • OpenVINO: Speziell für Intel-Hardware optimiert.

    Diese Formate verbessern sowohl die Geschwindigkeit als auch die Genauigkeit deiner Modelle und machen sie effizienter für verschiedene reale Anwendungen. Besuche die Export-Seite für vollständige Details.

  • Das Benchmarking deiner YOLO26 Modelle ist aus mehreren Gründen unerlässlich:

    • Fundierte Entscheidungen: Verstehe die Abwägungen zwischen Geschwindigkeit und Genauigkeit.
    • Ressourcenzuweisung: Messe die Leistung über verschiedene Hardware-Optionen hinweg.
    • Optimierung: Bestimme, welches Exportformat die beste Leistung für spezifische Anwendungsfälle bietet.
    • Kosteneffizienz: Optimiere die Hardwarenutzung basierend auf Benchmark-Ergebnissen.

    Wichtige Metriken wie mAP50-95, Top-1-Genauigkeit und Inferenzzeit helfen bei diesen Bewertungen. Weitere Informationen findest du im Abschnitt Key Metrics.

  • YOLO26 unterstützt eine Vielzahl von Exportformaten, die jeweils auf spezifische Hardware und Anwendungsfälle zugeschnitten sind:

    • ONNX: Am besten für CPU-Leistung.
    • TensorRT: Ideal für GPU-Effizienz.
    • OpenVINO: Optimiert für Intel-Hardware.
    • CoreML & TensorFlow: Nützlich für iOS und allgemeine ML-Anwendungen.

    Eine vollständige Liste der unterstützten Formate und ihrer jeweiligen Vorteile findest du im Abschnitt Supported Export Formats.

  • Beim Ausführen von Benchmarks können mehrere Argumente an spezifische Bedürfnisse angepasst werden:

    • model: Pfad zur Modelldatei (z. B. "yolo26n.pt").
    • data: Pfad zum Dataset-YAML (z. B. "coco8.yaml"); die Klassifizierung erfordert stattdessen ein Dataset-Verzeichnis oder einen integrierten Dataset-Namen (z. B. imagenet10).
    • imgsz: Die quadratische Eingabebildgröße als einzelne ganze Zahl, wie z. B. 640. Der Benchmark-Modus verwendet dieselbe quadratische Bildgröße über PyTorch und exportierte Formate hinweg für einen fairen Vergleich.
    • quantize: Quantisierungspräzision: 16 für FP16, 8 für INT8 (nützlich für Edge-Geräte); 32/nicht gesetzt ist FP32.
    • device: Gib das Berechnungsgerät an (z. B. "cpu", "cuda:0").
    • verbose: Steuere den Grad der Protokollierungsdetails.

    Eine vollständige Liste der Argumente findest du im Abschnitt Arguments.

Kommentare