ONNX-Export für YOLO26-Modelle
~43% schnellere Inferenz.
- Der Export des Ultralytics YOLO26-Modells nach ONNX kann eine bis zu 43%ige Steigerung der Inferenzgeschwindigkeit bieten, was eine schnellere und effizientere Bereitstellung ermöglicht.
Bei der Bereitstellung von Computer Vision-Modellen benötigst du oft ein Modellformat, das sowohl flexibel als auch mit verschiedenen Plattformen kompatibel ist.
Der Export von Ultralytics YOLO26-Modellen in das ONNX-Format optimiert die Bereitstellung und gewährleistet eine optimale Leistung in verschiedenen Umgebungen. Dieser Leitfaden zeigt dir, wie du deine YOLO26-Modelle einfach in ONNX konvertieren und ihre Skalierbarkeit sowie Effektivität in realen Anwendungen verbessern kannst.
Watch: Ultralytics YOLO26 vs Ultralytics YOLO11 ONNX Inference Test | ~43% Faster Inference with YOLO26 🚀
ONNX und ONNX Runtime
ONNX, was für Open Neural Network Exchange steht, ist ein Community-Projekt, das ursprünglich von Facebook und Microsoft entwickelt wurde. Die laufende Entwicklung von ONNX ist eine gemeinsame Anstrengung, die von verschiedenen Organisationen wie IBM, Amazon (über AWS) und Google unterstützt wird. Das Projekt zielt darauf ab, ein offenes Dateiformat zu schaffen, das Machine Learning-Modelle so darstellt, dass sie über verschiedene KI-Frameworks und Hardware hinweg verwendet werden können.
ONNX-Modelle können verwendet werden, um nahtlos zwischen verschiedenen Frameworks zu wechseln. Ein in PyTorch trainiertes Deep Learning-Modell kann beispielsweise in das ONNX-Format exportiert und dann einfach in TensorFlow importiert werden.
Alternativ können ONNX-Modelle mit ONNX Runtime verwendet werden. ONNX Runtime ist ein vielseitiger, plattformübergreifender Beschleuniger für Machine-Learning-Modelle, der mit Frameworks wie PyTorch, TensorFlow, TFLite, scikit-learn usw. kompatibel ist.
ONNX Runtime optimiert die Ausführung von ONNX-Modellen durch die Nutzung hardwarespezifischer Fähigkeiten. Diese Optimierung ermöglicht es, dass Modelle effizient und mit hoher Leistung auf verschiedenen Hardwareplattformen laufen, einschließlich CPUs, GPUs und spezialisierten Beschleunigern.
Ob unabhängig oder in Verbindung mit ONNX Runtime eingesetzt, bietet ONNX eine flexible Lösung für das Modell-Deployment und die Kompatibilität beim Machine Learning.
Hauptmerkmale von ONNX-Modellen
Die Fähigkeit von ONNX, mit verschiedenen Formaten umzugehen, lässt sich auf die folgenden Hauptmerkmale zurückführen:
-
Allgemeine Modelldarstellung: ONNX definiert eine gemeinsame Menge an Operatoren (wie Konvolutionen, Layer usw.) und ein Standarddatenformat. Wenn ein Modell in das ONNX-Format konvertiert wird, werden seine Architektur und Gewichte in diese allgemeine Darstellung übersetzt. Diese Einheitlichkeit stellt sicher, dass das Modell von jedem Framework verstanden werden kann, das ONNX unterstützt.
-
Versionierung und Abwärtskompatibilität: ONNX pflegt ein Versionierungssystem für seine Operatoren. Dies stellt sicher, dass Modelle, die in älteren Versionen erstellt wurden, auch dann nutzbar bleiben, wenn sich der Standard weiterentwickelt. Abwärtskompatibilität ist eine entscheidende Eigenschaft, die verhindert, dass Modelle schnell obsolet werden.
-
Graph-basierte Modelldarstellung: ONNX stellt Modelle als Berechnungsgraphen dar. Diese graphbasierte Struktur ist eine universelle Methode zur Repräsentation von Machine-Learning-Modellen, bei der Knoten Operationen oder Berechnungen darstellen und Kanten die Tensoren, die zwischen ihnen fließen. Dieses Format ist leicht an verschiedene Frameworks anpassbar, die Modelle ebenfalls als Graphen darstellen.
-
Tools und Ökosystem: Es gibt ein reichhaltiges Ökosystem an Tools rund um ONNX, die bei der Modellkonvertierung, Visualisierung und Optimierung helfen. Diese Tools erleichtern es Entwicklern, mit ONNX-Modellen zu arbeiten und Modelle nahtlos zwischen verschiedenen Frameworks zu konvertieren.
Allgemeine Verwendung von ONNX
Bevor wir uns ansehen, wie du YOLO26-Modelle in das ONNX-Format exportierst, schauen wir uns an, wo ONNX-Modelle üblicherweise eingesetzt werden.
CPU-Bereitstellung
ONNX-Modelle werden aufgrund ihrer Kompatibilität mit ONNX Runtime häufig auf CPUs bereitgestellt. Diese Runtime ist für die CPU-Ausführung optimiert. Sie verbessert die Inferenzgeschwindigkeit erheblich und macht Echtzeit-CPU-Bereitstellungen praktikabel.
Unterstützte Bereitstellungsoptionen
Obwohl ONNX-Modelle häufig auf CPUs verwendet werden, können sie auch auf den folgenden Plattformen bereitgestellt werden:
-
GPU-Beschleunigung: ONNX unterstützt vollständig die GPU-Beschleunigung, insbesondere NVIDIA CUDA. Dies ermöglicht eine effiziente Ausführung auf NVIDIA-GPUs für Aufgaben, die eine hohe Rechenleistung erfordern.
-
Edge- und mobile Geräte: ONNX erstreckt sich auf Edge- und Mobilgeräte, was es perfekt für On-Device- und Echtzeit-Inferenzszenarien macht. Es ist leichtgewichtig und mit Edge-Hardware kompatibel.
-
Webbrowser: ONNX kann direkt in Webbrowsern ausgeführt werden und treibt interaktive und dynamische webbasierte KI-Anwendungen an.
Exportieren von YOLO26-Modellen nach ONNX
Du kannst die Modellkompatibilität und die Bereitstellungsflexibilität erweitern, indem du YOLO26-Modelle in das ONNX-Format konvertierst. Ultralytics YOLO26 bietet einen unkomplizierten Exportprozess, der die Leistung deines Modells auf verschiedenen Plattformen erheblich steigern kann.
Installation
Um das erforderliche Paket zu installieren, führe Folgendes aus:
# Install the required package for YOLO26
pip install ultralyticsFür detaillierte Anweisungen und Best Practices rund um den Installationsprozess, schau dir unsere YOLO26-Installationsanleitung an. Wenn du bei der Installation der erforderlichen Pakete für YOLO26 auf Schwierigkeiten stößt, konsultiere unsere Anleitung für häufige Probleme für Lösungen und Tipps.
Verwendung
Bevor du in die Nutzungsanweisungen eintauchst, schaue dir unbedingt die Auswahl an YOLO26-Modellen von Ultralytics an. Dies hilft dir dabei, das am besten geeignete Modell für deine Projektanforderungen auszuwählen.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to ONNX format
model.export(format="onnx") # creates 'yolo26n.onnx'
# Load the exported ONNX model
onnx_model = YOLO("yolo26n.onnx")
# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")Export-Argumente
Beim Export deines YOLO26-Modells in das ONNX-Format kannst du den Prozess mit verschiedenen Argumenten anpassen, um ihn für deine spezifischen Bereitstellungsanforderungen zu optimieren:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
format | str | 'onnx' | Zielformat für das exportierte Modell, das die Kompatibilität mit verschiedenen Bereitstellungsumgebungen definiert. |
imgsz | int oder tuple | 640 | Gewünschte Bildgröße für den Modelleingang. Kann eine Ganzzahl für quadratische Bilder oder ein Tupel (height, width) für spezifische Dimensionen sein. |
half | bool | False | Aktiviert die FP16-Quantisierung (Halbpräzision), was die Modellgröße reduziert und die Inferenz auf unterstützter Hardware potenziell beschleunigt. |
dynamic | bool | False | Ermöglicht dynamische Eingabegrößen, was die Flexibilität bei der Handhabung unterschiedlicher Bildabmessungen erhöht. |
simplify | bool | True | Vereinfacht den Modellgraphen mit onnxslim, was potenziell die Leistung und Kompatibilität verbessert. |
opset | int | None | Gibt die ONNX-Opset-Version für die Kompatibilität mit verschiedenen ONNX-Parsern und -Runtimes an. Falls nicht festgelegt, wird die neueste unterstützte Version verwendet. |
nms | bool | False | Fügt Non-Maximum Suppression (NMS) hinzu, was für eine genaue und effiziente Nachbearbeitung der Erkennung unerlässlich ist. |
batch | int | 1 | Legt die Batch-Inferenzgröße für den Export fest oder die maximale Anzahl an Bildern, die das exportierte Modell gleichzeitig im predict Modus verarbeitet. |
device | str | None | Legt das Gerät für den Export fest: GPU (device=0), CPU (device=cpu), MPS für Apple Silicon (device=mps). |
Weitere Details zum Exportprozess findest du auf der Ultralytics-Dokumentationsseite zum Export.
Bereitstellung exportierter YOLO26 ONNX-Modelle
Sobald du deine Ultralytics YOLO26-Modelle erfolgreich in das ONNX-Format exportiert hast, ist der nächste Schritt die Bereitstellung dieser Modelle in verschiedenen Umgebungen. Detaillierte Anweisungen zur Bereitstellung deiner ONNX-Modelle findest du in den folgenden Ressourcen:
-
ONNX Runtime Python API-Dokumentation: Dieser Leitfaden liefert wichtige Informationen zum Laden und Ausführen von ONNX-Modellen mit ONNX Runtime.
-
Bereitstellung auf Edge-Geräten: Schau dir diese Dokumentationsseite für verschiedene Beispiele zur Bereitstellung von ONNX-Modellen auf Edge-Geräten an.
-
ONNX-Tutorials auf GitHub: Eine Sammlung umfassender Tutorials, die verschiedene Aspekte der Verwendung und Implementierung von ONNX-Modellen in unterschiedlichen Szenarien abdecken.
-
Triton Inference Server: Erfahre, wie du deine ONNX-Modelle mit dem Triton Inference Server von NVIDIA für leistungsstarke, skalierbare Bereitstellungen einsetzt.
Zusammenfassung
In diesem Leitfaden hast du gelernt, wie du Ultralytics YOLO26-Modelle in das ONNX-Format exportierst, um ihre Interoperabilität und Leistung auf verschiedenen Plattformen zu erhöhen. Außerdem wurdest du mit der ONNX Runtime und den ONNX-Bereitstellungsoptionen vertraut gemacht.
Der ONNX-Export ist nur eines von vielen Exportformaten, die von Ultralytics YOLO26 unterstützt werden, sodass du deine Modelle in praktisch jeder Umgebung bereitstellen kannst. Je nach deinen spezifischen Anforderungen möchtest du vielleicht auch andere Exportoptionen erkunden, wie TensorRT für maximale GPU-Leistung oder CoreML für Apple-Geräte.
Weitere Details zur Verwendung findest du in der offiziellen ONNX-Dokumentation.
Wenn du außerdem mehr über andere Ultralytics YOLO26-Integrationen erfahren möchtest, besuche unsere Integrations-Leitfaden-Seite. Dort findest du viele nützliche Ressourcen und Einblicke.
FAQ
Wie exportiere ich YOLO26-Modelle mit Ultralytics in das ONNX-Format?
Um deine YOLO26-Modelle mit Ultralytics in das ONNX-Format zu exportieren, befolge diese Schritte:
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to ONNX format
model.export(format="onnx") # creates 'yolo26n.onnx'
# Load the exported ONNX model
onnx_model = YOLO("yolo26n.onnx")
# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")Weitere Details findest du in der Export-Dokumentation.
Welche Vorteile bietet die Verwendung von ONNX Runtime für die Bereitstellung von YOLO26-Modellen?
Die Verwendung von ONNX Runtime für die Bereitstellung von YOLO26-Modellen bietet mehrere Vorteile:
- Plattformübergreifende Kompatibilität: ONNX Runtime unterstützt verschiedene Plattformen wie Windows, macOS und Linux und stellt sicher, dass deine Modelle reibungslos in verschiedenen Umgebungen laufen.
- Hardwarebeschleunigung: ONNX Runtime kann hardwarespezifische Optimierungen für CPUs, GPUs und dedizierte Beschleuniger nutzen und bietet so eine leistungsstarke Inferenz.
- Framework-Interoperabilität: Modelle, die in populären Frameworks wie PyTorch oder TensorFlow trainiert wurden, können einfach in das ONNX-Format konvertiert und mit ONNX Runtime ausgeführt werden.
- Leistungsoptimierung: ONNX Runtime kann im Vergleich zu nativen PyTorch-Modellen eine bis zu 3-fache CPU-Beschleunigung bieten, was es ideal für Bereitstellungsszenarien macht, in denen GPU-Ressourcen begrenzt sind.
Erfahre mehr in der ONNX Runtime-Dokumentation.
Welche Bereitstellungsoptionen gibt es für YOLO26-Modelle, die nach ONNX exportiert wurden?
Nach ONNX exportierte YOLO26-Modelle können auf verschiedenen Plattformen bereitgestellt werden, darunter:
- CPUs: Nutzung von ONNX Runtime für optimierte CPU-Inferenz.
- GPUs: Nutzung von NVIDIA CUDA für leistungsstarke GPU-Beschleunigung.
- Edge-Geräte: Ausführung leichtgewichtiger Modelle auf Edge- und Mobilgeräten für Echtzeit-Inferenz auf dem Gerät.
- Webbrowser: Ausführung von Modellen direkt in Webbrowsern für interaktive webbasierte Anwendungen.
- Cloud-Dienste: Bereitstellung auf Cloud-Plattformen, die das ONNX-Format für skalierbare Inferenz unterstützen.
Weitere Informationen findest du in unserem Leitfaden zu Modell-Bereitstellungsoptionen.
Warum sollte ich das ONNX-Format für Ultralytics YOLO26-Modelle verwenden?
Die Verwendung des ONNX-Formats für Ultralytics YOLO26-Modelle bietet zahlreiche Vorteile:
- Interoperabilität: ONNX ermöglicht die nahtlose Übertragung von Modellen zwischen verschiedenen Machine-Learning-Frameworks.
- Leistungsoptimierung: ONNX Runtime kann die Modellleistung durch die Nutzung hardwarespezifischer Optimierungen steigern.
- Flexibilität: ONNX unterstützt verschiedene Bereitstellungsumgebungen, sodass du dasselbe Modell ohne Modifikationen auf unterschiedlichen Plattformen nutzen kannst.
- Standardisierung: ONNX bietet ein standardisiertes Format, das branchenweit weitgehend unterstützt wird und langfristige Kompatibilität gewährleistet.
Beziehe dich auf den umfassenden Leitfaden zum Exportieren von YOLO26-Modellen nach ONNX.
Wie kann ich Probleme beim Export von YOLO26-Modellen nach ONNX beheben?
Beim Export von YOLO26-Modellen nach ONNX kannst du auf häufige Probleme stoßen, wie z. B. nicht übereinstimmende Abhängigkeiten oder nicht unterstützte Operationen. Zur Fehlerbehebung:
- Überprüfe, ob die korrekte Version der erforderlichen Abhängigkeiten installiert ist.
- Prüfe die offizielle ONNX-Dokumentation auf unterstützte Operatoren und Funktionen.
- Überprüfe die Fehlermeldungen auf Hinweise und konsultiere den Leitfaden zu häufigen Problemen bei Ultralytics.
- Versuche es mit anderen Export-Argumenten wie
simplify=Trueoder passe dieopset-Version an. - Bei Problemen mit dynamischer Eingabegröße setze
dynamic=Truewährend des Exports.
Wenn die Probleme bestehen bleiben, wende dich für weitere Unterstützung an den Ultralytics-Support.