Modellexport mit Ultralytics YOLO
Einführung
Das ultimative Ziel beim Trainieren eines Modells ist es, es für reale Anwendungen einzusetzen. Der Exportmodus in Ultralytics YOLO11 bietet eine Vielzahl von Optionen für den Export Ihres trainierten Modells in verschiedene Formate, sodass es auf verschiedenen Plattformen und Geräten eingesetzt werden kann. Dieser umfassende Leitfaden soll Sie durch die Feinheiten des Modellexports führen und Ihnen zeigen, wie Sie ein Maximum an Kompatibilität und Leistung erreichen können.
Beobachten: Exportieren eines individuell trainierten Ultralytics YOLO Modells und Ausführen von Live-Inferenz auf der Webcam.
Warum der Exportmodus von YOLO11?
- Vielseitigkeit: Exportieren Sie in mehrere Formate, darunter ONNX, TensorRT, CoreML, und mehr.
- Leistung: Bis zu 5x mehr Geschwindigkeit auf GPU mit TensorRT und 3x mehr Geschwindigkeit auf CPU mit ONNX oder OpenVINO.
- Kompatibilität: Machen Sie Ihr Modell in zahlreichen Hardware- und Softwareumgebungen universell einsetzbar.
- Benutzerfreundlichkeit: Einfache CLI und Python API für den schnellen und unkomplizierten Export von Modellen.
Hauptmerkmale des Exportmodus
Hier sind einige der herausragenden Funktionalitäten:
- Exportieren mit einem Klick: Einfache Befehle zum Exportieren in verschiedene Formate.
- Batch-Export: Exportieren Sie Batch-Inferenz-fähige Modelle.
- Optimierte Inferenz: Exportierte Modelle sind für schnellere Inferenzzeiten optimiert.
- Tutorial-Videos: Ausführliche Anleitungen und Tutorials für einen reibungslosen Export.
Tipp
Beispiele für die Verwendung
Exportieren Sie ein YOLO11n-Modell in ein anderes Format wie ONNX oder TensorRT. Eine vollständige Liste der Exportargumente finden Sie im Abschnitt Argumente weiter unten.
Beispiel
Argumente
In dieser Tabelle sind die verfügbaren Konfigurationen und Optionen für den Export von YOLO Modellen in verschiedene Formate aufgeführt. 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.
Argument | Typ | Standard | Beschreibung |
---|---|---|---|
format |
str |
'torchscript' |
Zielformat für das exportierte Modell, z. B. 'onnx' , 'torchscript' , 'tensorflow' oder andere, die die Kompatibilität mit verschiedenen Einsatzumgebungen festlegen. |
imgsz |
int oder tuple |
640 |
Gewü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. |
keras |
bool |
False |
Ermöglicht den Export in das Keras-Format für TensorFlow SavedModel und bietet Kompatibilität mit TensorFlow und APIs. |
optimize |
bool |
False |
Wendet beim Export nach TorchScript eine Optimierung für mobile Geräte an, wodurch die Modellgröße reduziert und die Leistung verbessert werden kann. |
half |
bool |
False |
Ermöglicht FP16-Quantisierung (mit halber Genauigkeit), wodurch die Modellgröße reduziert und die Inferenz auf unterstützter Hardware möglicherweise beschleunigt wird. |
int8 |
bool |
False |
Aktiviert die INT8-Quantisierung, wodurch das Modell weiter komprimiert und die Inferenz mit minimalem Genauigkeitsverlust beschleunigt wird, vor allem für Randgeräte. |
dynamic |
bool |
False |
Ermöglicht dynamische Eingabegrößen für die Exporte von ONNX, TensorRT und OpenVINO , was die Flexibilität bei der Handhabung unterschiedlicher Bildgrößen erhöht. |
simplify |
bool |
True |
Vereinfacht den Modellgraphen für ONNX Exporte mit onnxslim Dadurch können Leistung und Kompatibilität verbessert werden. |
opset |
int |
None |
Gibt die ONNX opset Version an, um die Kompatibilität mit verschiedenen ONNX Parsern und Laufzeiten zu gewährleisten. Wenn nicht festgelegt, wird die neueste unterstützte Version verwendet. |
workspace |
float |
4.0 |
Legt die maximale Größe des Arbeitsbereichs in GiB für TensorRT -Optimierungen fest, um ein Gleichgewicht zwischen Speichernutzung und Leistung zu schaffen. |
nms |
bool |
False |
Fügt dem CoreML Export die Nicht-Maximum-Unterdrückung (NMS) hinzu, die für eine genaue und effiziente Nachbearbeitung der Erkennung unerlässlich ist. |
batch |
int |
1 |
Gibt die Größe der exportierten Modellstapelinferenz oder die maximale Anzahl der Bilder an, die das exportierte Modell gleichzeitig in predict Modus. |
device |
str |
None |
Gibt das zu exportierende Gerät an: GPU (device=0 ), CPU (device=cpu ), MPS für Apple-Silizium (device=mps ) oder DLA für NVIDIA Jetson (device=dla:0 oder device=dla:1 ). |
Die Anpassung dieser Parameter ermöglicht die Anpassung des Exportprozesses an spezifische Anforderungen, z. B. an die Einsatzumgebung, Hardwarebeschränkungen und Leistungsziele. Die Auswahl des richtigen Formats und der richtigen Einstellungen ist entscheidend für ein optimales Gleichgewicht zwischen Modellgröße, Geschwindigkeit und Genauigkeit.
Exportformate
Die verfügbaren YOLO11 Exportformate sind in der nachstehenden Tabelle aufgeführt. Sie können in jedes beliebige Format exportieren, indem Sie die format
Argument, d.h. format='onnx'
oder format='engine'
. Sie können exportierte Modelle direkt vorhersagen oder validieren, d. h. yolo predict model=yolo11n.onnx
. Nach Abschluss des Exports werden Anwendungsbeispiele für Ihr Modell angezeigt.
Format | format Argument |
Modell | Metadaten | Argumente |
---|---|---|---|---|
PyTorch | - | yolo11n.pt |
✅ | - |
TorchScript | torchscript |
yolo11n.torchscript |
✅ | imgsz , optimize , batch |
ONNX | onnx |
yolo11n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolo11n_openvino_model/ |
✅ | imgsz , half , int8 , batch |
TensorRT | engine |
yolo11n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , batch |
CoreML | coreml |
yolo11n.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolo11n_saved_model/ |
✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolo11n.pb |
❌ | imgsz , batch |
TF Lite | tflite |
yolo11n.tflite |
✅ | imgsz , half , int8 , batch |
TF Kante TPU | edgetpu |
yolo11n_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolo11n_web_model/ |
✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolo11n_paddle_model/ |
✅ | imgsz , batch |
MNN | mnn |
yolo11n.mnn |
✅ | imgsz , batch , int8 , half |
NCNN | ncnn |
yolo11n_ncnn_model/ |
✅ | imgsz , half , batch |
IMX500 | imx |
yolov8n_imx_model/ |
✅ | imgsz , int8 |
FAQ
Wie kann ich ein Modell von YOLO11 in das Format ONNX exportieren?
Der Export eines YOLO11 Modells in das ONNX Format ist mit Ultralytics einfach. Es bietet sowohl Python als auch CLI Methoden für den Export von Modellen.
Beispiel
Weitere Einzelheiten zu diesem Prozess, einschließlich erweiterter Optionen wie die Handhabung unterschiedlicher Eingabegrößen, finden Sie im AbschnittONNX .
Was sind die Vorteile der Verwendung von TensorRT für den Modellexport?
Die Verwendung von TensorRT für den Modellexport bietet erhebliche Leistungsverbesserungen. YOLO11 Modelle, die nach TensorRT exportiert werden, können eine bis zu 5-fache GPU Beschleunigung erreichen, was sie ideal für Echtzeit-Inferenzanwendungen macht.
- Vielseitigkeit: Optimieren Sie Modelle für eine bestimmte Hardwarekonfiguration.
- Geschwindigkeit: Erzielen Sie schnellere Schlussfolgerungen durch erweiterte Optimierungen.
- Kompatibilität: Reibungslose Integration mit NVIDIA Hardware.
Weitere Informationen zur Integration von TensorRT finden Sie in der IntegrationsanleitungTensorRT .
Wie aktiviere ich die INT8-Quantisierung beim Exportieren meines YOLO11 Modells?
Die INT8-Quantisierung ist eine hervorragende Möglichkeit, das Modell zu komprimieren und die Inferenz zu beschleunigen, insbesondere auf Edge-Geräten. Hier erfahren Sie, wie Sie die INT8-Quantisierung aktivieren können:
Beispiel
Die INT8-Quantisierung kann auf verschiedene Formate angewendet werden, z. B. TensorRT und CoreML. Weitere Einzelheiten finden Sie im Abschnitt "Export".
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 stellt die Aktivierung der dynamischen Eingabegröße sicher, dass sich das Modell nahtlos an unterschiedliche Eingabeformen anpassen kann.
Um diese Funktion zu aktivieren, verwenden Sie die dynamic=True
Flagge beim Export:
Beispiel
Weitere Informationen finden Sie in der Konfiguration der dynamischen Eingabegröße.
Welches 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 FP16-Quantisierung, wodurch die Modellgröße reduziert und die Inferenz möglicherweise beschleunigt wird.optimize:
Wendet spezielle Optimierungen für mobile oder eingeschränkte Umgebungen an.int8:
Ermöglicht die INT8-Quantisierung, die für Edge-Einsätze von großem Vorteil ist.
Eine ausführliche Liste und Erläuterungen zu allen Exportargumenten finden Sie im Abschnitt Exportargumente.