Zum Inhalt springen

Modell Export mit Ultralytics YOLO

Ultralytics YOLO Ökosystem und Integrationen

Einführung

The ultimate goal of training a model is to deploy it for real-world applications. Export mode in Ultralytics YOLO11 offers a versatile range of options for exporting your trained model to different formats, making it deployable across various platforms and devices. This comprehensive guide aims to walk you through the nuances of model exporting, showcasing how to achieve maximum compatibility and performance.



Pass auf: How To Export Custom Trained Ultralytics YOLO Model and Run Live Inference on Webcam.

Why Choose YOLO11's Export Mode?

  • Vielseitigkeit: Exportiere in verschiedene Formate wie ONNX, TensorRT, CoreML und mehr.
  • Leistung: Bis zu 5x schneller als GPU mit TensorRT und 3x schneller als CPU mit ONNX oder OpenVINO.
  • Kompatibilität: Mach dein Modell universell einsetzbar in zahlreichen Hardware- und Softwareumgebungen.
  • Benutzerfreundlichkeit: Einfache CLI und Python API für den schnellen und unkomplizierten Export von Modellen.

Hauptmerkmale des Exportmodus

Hier sind einige der herausragenden Funktionen:

  • Ein-Klick-Export: Einfache Befehle zum Exportieren in verschiedene Formate.
  • Batch-Export: Exportiere Batch-Inferenz-fähige Modelle.
  • Optimierte Inferenz: Exportierte Modelle sind für schnellere Inferenzzeiten optimiert.
  • Tutorial-Videos: Ausführliche Anleitungen und Tutorials für ein reibungsloses Exporterlebnis.

Tipp

  • Exportieren nach ONNX oder OpenVINO für eine bis zu 3-fache Beschleunigung CPU .
  • Exportiere nach TensorRT für eine bis zu 5-fache Beschleunigung GPU .

Verwendungsbeispiele

Export a YOLO11n model to a different format like ONNX or TensorRT. See the Arguments section below for a full list of export arguments.

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo11n.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Argumente

In dieser Tabelle sind die Konfigurationen und Optionen aufgeführt, die für den Export von YOLO Modellen in verschiedene Formate verfügbar sind. Diese Einstellungen sind entscheidend für die Optimierung der Leistung, Größe und Kompatibilität des exportierten Modells auf verschiedenen Plattformen und in verschiedenen Umgebungen. Die richtige Konfiguration stellt sicher, dass das Modell für den Einsatz in der vorgesehenen Anwendung mit optimaler Effizienz bereit ist.

ArgumentTypStandardBeschreibung
formatstr'torchscript'Zielformat für das exportierte Modell, z. B. 'onnx', 'torchscript', 'tensorflow'oder andere, die die Kompatibilität mit verschiedenen Einsatzumgebungen definieren.
imgszint oder tuple640Gewünschte Bildgröße für die Modelleingabe. Kann eine ganze Zahl für quadratische Bilder oder ein Tupel sein (height, width) für bestimmte Abmessungen.
kerasboolFalseEnables export to Keras format for TensorFlow SavedModel, providing compatibility with TensorFlow serving and APIs.
optimizeboolFalseWendet beim Export nach TorchScript eine Optimierung für mobile Geräte an, wodurch die Modellgröße reduziert und die Leistung verbessert werden kann.
halfboolFalseErmöglicht die FP16-Quantisierung (halbe Genauigkeit), wodurch die Modellgröße reduziert und die Inferenz auf unterstützter Hardware möglicherweise beschleunigt wird.
int8boolFalseActivates INT8 quantization, further compressing the model and speeding up inference with minimal accuracy loss, primarily for edge devices.
dynamicboolFalseErmöglicht dynamische Eingabegrößen für die Exporte von ONNX, TensorRT und OpenVINO und erhöht so die Flexibilität bei der Handhabung unterschiedlicher Bildgrößen.
simplifyboolTrueVereinfacht das Modelldiagramm für ONNX Exporte mit onnxslim, was die Leistung und Kompatibilität verbessern kann.
opsetintNoneGibt die ONNX opset-Version an, um die Kompatibilität mit verschiedenen ONNX Parsern und Laufzeiten zu gewährleisten. Wenn nicht gesetzt, wird die letzte unterstützte Version verwendet.
workspacefloat4.0Legt die maximale Größe des Arbeitsbereichs in GiB für TensorRT Optimierungen fest, die Speicherverbrauch und Leistung ausgleichen.
nmsboolFalseFügt dem CoreML Export die Nicht-Maximum-Unterdrückung (NMS) hinzu, die für eine genaue und effiziente Nachbearbeitung der Aufdeckung unerlässlich ist.
batchint1Gibt die Größe der Stapelrückschlüsse des Exportmodells oder die maximale Anzahl von Bildern an, in denen das exportierte Modell gleichzeitig verarbeitet wird. predict Modus.
devicestrNoneSpecifies the device for exporting: GPU (device=0), CPU (device=cpu), MPS for Apple silicon (device=mps) or DLA for NVIDIA Jetson (device=dla:0 oder device=dla:1).

Adjusting these parameters allows for customization of the export process to fit specific requirements, such as deployment environment, hardware constraints, and performance targets. Selecting the appropriate format and settings is essential for achieving the best balance between model size, speed, and accuracy.

Formate exportieren

Available YOLO11 export formats are in the table below. You can export to any format using the format Argument, d.h. format='onnx' oder format='engine'. Du kannst exportierte Modelle direkt vorhersagen oder validieren, d.h. yolo predict model=yolo11n.onnx. Nach Abschluss des Exports werden Anwendungsbeispiele für dein Modell angezeigt.

Formatformat ArgumentModellMetadatenArgumente
PyTorch-yolo11n.pt-
TorchScripttorchscriptyolo11n.torchscriptimgsz, optimize, batch
ONNXonnxyolo11n.onnximgsz, half, dynamic, simplify, opset, batch
OpenVINOopenvinoyolo11n_openvino_model/imgsz, half, int8, batch
TensorRTengineyolo11n.engineimgsz, half, dynamic, simplify, workspace, int8, batch
CoreMLcoremlyolo11n.mlpackageimgsz, half, int8, nms, batch
TF SavedModelsaved_modelyolo11n_saved_model/imgsz, keras, int8, batch
TF GraphDefpbyolo11n.pbimgsz, batch
TF Litetfliteyolo11n.tfliteimgsz, half, int8, batch
TF Kante TPUedgetpuyolo11n_edgetpu.tfliteimgsz
TF.jstfjsyolo11n_web_model/imgsz, half, int8, batch
PaddlePaddlepaddleyolo11n_paddle_model/imgsz, batch
MNNmnnyolo11n.mnnimgsz, batch, int8, half
NCNNncnnyolo11n_ncnn_model/imgsz, half, batch

FAQ

How do I export a YOLO11 model to ONNX format?

Exporting a YOLO11 model to ONNX format is straightforward with Ultralytics. It provides both Python and CLI methods for exporting models.

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo11n.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

For more details on the process, including advanced options like handling different input sizes, refer to the ONNX section.

Was sind die Vorteile von TensorRT für den Modellexport?

Using TensorRT for model export offers significant performance improvements. YOLO11 models exported to TensorRT can achieve up to a 5x GPU speedup, making it ideal for real-time inference applications.

  • Vielseitigkeit: Optimiere die Modelle für ein bestimmtes Hardware-Setup.
  • Geschwindigkeit: Erreiche schnellere Schlussfolgerungen durch erweiterte Optimierungen.
  • Kompatibilität: Reibungslose Integration mit NVIDIA Hardware.

To learn more about integrating TensorRT, see the TensorRT integration guide.

How do I enable INT8 quantization when exporting my YOLO11 model?

Die INT8-Quantisierung ist eine hervorragende Möglichkeit, das Modell zu komprimieren und die Inferenz zu beschleunigen, insbesondere auf Edge-Geräten. Hier erfährst du, wie du die INT8-Quantisierung aktivieren kannst:

Beispiel

from ultralytics import YOLO

model = YOLO("yolo11n.pt")  # Load a model
model.export(format="engine", int8=True)
yolo export model=yolo11n.pt format=engine int8=True   # export TensorRT model with INT8 quantization

INT8 quantization can be applied to various formats, such as TensorRT and CoreML. More details can be found in the Export section.

Warum ist die dynamische Eingabegröße beim Export von Modellen wichtig?

Die dynamische Eingabegröße ermöglicht es dem exportierten Modell, mit unterschiedlichen Bildgrößen umzugehen, was für Flexibilität sorgt und die Verarbeitungseffizienz für verschiedene Anwendungsfälle optimiert. Beim Export in Formate wie ONNX oder TensorRT sorgt die Aktivierung der dynamischen Eingabegröße dafür, dass sich das Modell nahtlos an unterschiedliche Eingabeformen anpassen kann.

Um diese Funktion zu aktivieren, verwenden Sie die dynamic=True Flagge beim Export:

Beispiel

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="onnx", dynamic=True)
yolo export model=yolo11n.pt format=onnx dynamic=True

Weitere Informationen findest du in der Konfiguration der dynamischen Eingangsgröße.

Was sind die wichtigsten Exportargumente, die bei der Optimierung der Modellleistung zu berücksichtigen sind?

Das Verständnis und die Konfiguration von Exportargumenten sind entscheidend für die Optimierung der Modellleistung:

  • format: Das Zielformat für das exportierte Modell (z.B., onnx, torchscript, tensorflow).
  • imgsz: Gewünschte Bildgröße für die Modelleingabe (z. B., 640 oder (height, width)).
  • half: Ermöglicht die FP16-Quantisierung, wodurch die Modellgröße reduziert und die Inferenz potenziell beschleunigt wird.
  • optimize: Wendet spezielle Optimierungen für mobile oder eingeschränkte Umgebungen an.
  • int8: Ermöglicht die INT8-Quantisierung, was für den Einsatz an den Rändern von großem Vorteil ist.

For a detailed list and explanations of all the export arguments, visit the Export Arguments section.

📅 Created 11 months ago ✏️ Updated 7 days ago

Kommentare