Link to this sectionONNX-Export für YOLO26-Modelle#
~43 % schnellere Inferenz.
- Der Export des Ultralytics YOLO26-Modells nach ONNX kann einen bis zu 43 % schnelleren Inferenzdurchsatz bieten und ermöglicht so eine schnellere und effizientere Bereitstellung.
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 rationalisiert 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 🚀
Link to this sectionONNX und ONNX Runtime#
ONNX, kurz für Open Neural Network Exchange, ist ein Gemeinschaftsprojekt, das ursprünglich von Facebook und Microsoft entwickelt wurde. Die kontinuierliche Entwicklung von ONNX ist ein Gemeinschaftsprojekt, das von verschiedenen Organisationen wie IBM, Amazon (über AWS) und Google unterstützt wird. Ziel des Projekts ist die Schaffung eines offenen Dateiformats zur Darstellung von Machine Learning-Modellen, sodass diese ü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 Funktionen. Diese Optimierung ermöglicht es, dass Modelle effizient und mit hoher Leistung auf verschiedenen Hardwareplattformen ausgeführt werden können, einschließlich CPUs, GPUs und spezialisierten Beschleunigern.
Ob unabhängig oder in Verbindung mit ONNX Runtime genutzt, bietet ONNX eine flexible Lösung für das Modell-Deployment und die Kompatibilität von Machine Learning-Modellen.
Link to this sectionHauptmerkmale von ONNX-Modellen#
Die Fähigkeit von ONNX, verschiedene Formate zu verarbeiten, ist auf die folgenden Hauptmerkmale zurückzuführen:
-
Gemeinsame Modellrepräsentation: ONNX definiert eine gemeinsame Menge von Operatoren (wie Faltungen, Schichten usw.) und ein Standarddatenformat. Wenn ein Modell in das ONNX-Format konvertiert wird, werden seine Architektur und Gewichte in diese gemeinsame Repräsentation übersetzt. Diese Einheitlichkeit stellt sicher, dass das Modell von jedem Framework verstanden werden kann, das ONNX unterstützt.
-
Versionierung und Abwärtskompatibilität: ONNX unterhält ein Versionierungssystem für seine Operatoren. Dies stellt sicher, dass Modelle, die in älteren Versionen erstellt wurden, auch bei der Weiterentwicklung des Standards weiterhin verwendet werden können. Abwärtskompatibilität ist eine entscheidende Eigenschaft, die verhindert, dass Modelle schnell obsolet werden.
-
Graph-basierte Modellrepräsentation: ONNX stellt Modelle als Berechnungsgraphen dar. Diese graphbasierte Struktur ist eine universelle Art der Darstellung von Machine-Learning-Modellen, bei der Knoten Operationen oder Berechnungen darstellen und Kanten die zwischen ihnen fließenden Tensoren repräsentieren. Dieses Format ist leicht an verschiedene Frameworks anpassbar, die Modelle ebenfalls als Graphen darstellen.
-
Werkzeuge und Ökosystem: Es gibt ein reichhaltiges Ökosystem an Werkzeugen rund um ONNX, die bei der Modellkonvertierung, Visualisierung und Optimierung unterstützen. Diese Tools machen es für Entwickler einfacher, mit ONNX-Modellen zu arbeiten und Modelle nahtlos zwischen verschiedenen Frameworks zu konvertieren.
Link to this sectionHäufige Verwendung von ONNX#
Bevor wir uns damit befassen, wie man YOLO26-Modelle in das ONNX-Format exportiert, werfen wir einen Blick darauf, wo ONNX-Modelle üblicherweise eingesetzt werden.
Link to this sectionCPU-Bereitstellung#
ONNX-Modelle werden häufig auf CPUs bereitgestellt, da sie mit ONNX Runtime kompatibel sind. Diese Laufzeitumgebung ist für die CPU-Ausführung optimiert. Sie verbessert die Inferenzgeschwindigkeit erheblich und macht CPU-Bereitstellungen in Echtzeit praktikabel.
Link to this sectionUnterstü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 hohe Rechenleistung erfordern.
-
Edge- und mobile Geräte: ONNX erstreckt sich auf Edge- und Mobilgeräte, ideal für Inferenzszenarien auf dem Gerät und in Echtzeit. Es ist leichtgewichtig, kompatibel mit Edge-Hardware und dient als Basis für herstellerspezifische NPU-Formate wie Qualcomm QNN für Snapdragon-Geräte und RKNN für Rockchip-NPUs.
-
Webbrowser: ONNX kann direkt in Webbrowsern ausgeführt werden und treibt interaktive sowie dynamische webbasierte KI-Anwendungen an.
Link to this sectionExportieren von YOLO26-Modellen nach ONNX#
Du kannst die Modellkompatibilität und die Flexibilität bei der Bereitstellung 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 verbessern kann.
Link to this sectionInstallation#
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 zum Installationsprozess, siehe unseren YOLO26-Installationsleitfaden. Falls du bei der Installation der erforderlichen Pakete für YOLO26 auf Schwierigkeiten stößt, konsultiere unseren Leitfaden zu häufigen Problemen für Lösungen und Tipps.
Link to this sectionVerwendung#
Bevor du dich in die Anleitungen zur Nutzung stürzt, schau dir unbedingt die Auswahl der YOLO26 models offered by Ultralytics an. Dies hilft dir dabei, das am besten geeignete Modell für deine Projektanforderungen auszuwählen.
Das ONNX-Format unterstützt die Modi Export, Predict und Validate. Exportiere dein Modell und lade es dann, um Inferenz auszuführen oder dessen Genauigkeit zu validieren.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to ONNX format
model.export(format="onnx") # creates 'yolo26n.onnx'
# Export an INT8-quantized ONNX model with calibration data
model.export(format="onnx", quantize=8, data="coco8.yaml") # creates 'yolo26n_int8.onnx'from ultralytics import YOLO
# Load the exported ONNX model
model = YOLO("yolo26n.onnx")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported ONNX model
model = YOLO("yolo26n.onnx")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this sectionExport-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. |
quantize | int oder str | None | Quantisierungspräzision: 16 (FP16) oder 8 (INT8-statische Quantisierung mit ONNX Runtime unter Verwendung von Kalibrierungsbildern aus data, wodurch ein _int8.onnx-Modell erzeugt wird); 32/nicht gesetzt ist FP32. Ersetzt die veralteten half/int8-Flags. |
data | str | None | Dataset-YAML, das für die INT8-Kalibrierung verwendet wird. Falls bei quantize=8 weggelassen, wählt Ultralytics das Standard-Kalibrierungs-Dataset für die Modellaufgabe aus. |
fraction | float | 1.0 | Anteil der Kalibrierungsbilder, die für die INT8-Quantisierung verwendet werden sollen. |
dynamic | bool | False | Ermöglicht dynamische Eingabegrößen, was die Flexibilität bei der Verarbeitung variierender Bilddimensionen erhöht. |
simplify | bool | True | Vereinfacht den Modellgraphen mit onnxslim, was die Leistung und Kompatibilität potenziell verbessert. |
opset | int | None | Gibt die ONNX-Opset-Version für die Kompatibilität mit verschiedenen ONNX-Parsern und Laufzeitumgebungen an. Wenn 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 Detektions-Nachbearbeitung unerlässlich ist. |
batch | int | 1 | Gibt die Batch-Größe für die Modellausführung oder die maximale Anzahl an Bildern an, die das exportierte Modell gleichzeitig im predict-Modus verarbeitet. |
device | str | None | Gibt das Gerät für den Export an: GPU (device=0), CPU (device=cpu), MPS für Apple Silicon (device=mps). |
Weitere Details zum Exportprozess findest du auf der Ultralytics-Dokumentationsseite zum Exportieren.
Link to this sectionBereitstellung 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. Für detaillierte Anweisungen zur Bereitstellung deiner ONNX-Modelle schau dir die folgenden Ressourcen an:
-
ONNX Runtime Python API-Dokumentation: Dieser Leitfaden bietet wesentliche Informationen zum Laden und Ausführen von ONNX-Modellen mit ONNX Runtime.
-
Bereitstellung auf Edge-Geräten: Besuche diese Dokumentationsseite für verschiedene Beispiele zur Bereitstellung von ONNX-Modellen auf Edge-Geräten.
-
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 NVIDIA Triton Inference Server für leistungsstarke, skalierbare Bereitstellungen einsetzt.
Link to this sectionZusammenfassung#
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. Du wurdest außerdem in die ONNX Runtime und die ONNX-Bereitstellungsoptionen eingeführt.
Der ONNX-Export ist nur eines von vielen Exportformaten, die von Ultralytics YOLO26 unterstützt werden, wodurch du deine Modelle in praktisch jeder Umgebung bereitstellen kannst. Abhängig von 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-Guide-Seite. Dort findest du viele nützliche Ressourcen und Einblicke.
Link to this sectionFAQ#
Link to this sectionWie 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 a 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.
Link to this sectionWas sind die Vorteile der 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: In gängigen Frameworks wie PyTorch oder TensorFlow trainierte Modelle 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.
Link to this sectionWelche Bereitstellungsoptionen gibt es für YOLO26-Modelle, die nach ONNX exportiert wurden?#
In 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 Inferenz in Echtzeit auf dem Gerät.
- Webbrowser: Direkte Ausführung von Modellen in Webbrowsern für interaktive, webbasierte Anwendungen.
- Cloud-Dienste: Bereitstellung auf Cloud-Plattformen, die das ONNX-Format für skalierbare Inferenz unterstützen.
Für weitere Informationen erkunde unseren Leitfaden zu Modell-Bereitstellungsoptionen.
Link to this sectionWarum 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 das nahtlose Übertragen 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, wodurch du dasselbe Modell ohne Modifikationen auf verschiedenen Plattformen verwenden kannst.
- Standardisierung: ONNX bietet ein standardisiertes Format, das branchenweit weitgehend unterstützt wird, und gewährleistet so eine langfristige Kompatibilität.
Siehe den umfassenden Leitfaden zum Exportieren von YOLO26-Modellen nach ONNX.
Link to this sectionWie kann ich Probleme beim Exportieren von YOLO26-Modellen nach ONNX beheben?#
Beim Exportieren von YOLO26-Modellen nach ONNX können häufige Probleme wie nicht übereinstimmende Abhängigkeiten oder nicht unterstützte Operationen auftreten. So behebst du diese Probleme:
- Ü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 ziehe den Ultralytics-Leitfaden zu häufigen Problemen hinzu.
- Versuche es mit anderen Export-Argumenten wie
simplify=Trueoder passe dieopset-Version an. - Bei Problemen mit dynamischer Eingabegröße setze beim Export
dynamic=True.
Sollten die Probleme weiterhin bestehen, kontaktiere den Ultralytics-Support für weitere Unterstützung.