Grüner Scheck
Link in die Zwischenablage kopiert

Verwendung der ONNX zum Export von Ultralytics YOLO

Lerne, wie du Ultralytics YOLO , wie Ultralytics YOLO11, mit der ONNX für den plattformübergreifenden Einsatz auf verschiedenen Geräten exportierst.

Als KI-Lösungen zum ersten Mal Aufmerksamkeit erregten, wurden die meisten Modelle auf leistungsstarken Servern in kontrollierten Umgebungen eingesetzt. Mit dem technologischen Fortschritt hat sich der Einsatz jedoch weit über das Rechenzentrum hinaus ausgedehnt.

Heute laufen KI-Modelle auf allen Geräten, von Cloud-Servern und Desktops bis hin zu Smartphones und Edge-Geräten. Dieser Wandel ermöglicht eine schnellere Verarbeitung, Offline-Funktionen und intelligentere Systeme, die näher am Ort der Datenerzeugung arbeiten.

Ein Bereich, in dem dies besonders deutlich wird, ist die Computer Vision - ein Zweig der KI, der es Maschinen ermöglicht, visuelle Daten zu interpretieren. Sie wird für Anwendungen wie Gesichtserkennung, autonomes Fahren und Videoanalyse in Echtzeit eingesetzt. In dem Maße, wie diese Anwendungsfälle zunehmen, steigt auch der Bedarf an Modellen, die reibungslos auf unterschiedlichen Hardware- und Plattformsystemen laufen.

Der Einsatz von Bildverarbeitungsmodellen für verschiedene Einsatzziele ist jedoch nicht immer einfach. Die Geräte unterscheiden sich in Bezug auf Hardware, Betriebssysteme und unterstützte Frameworks, was Flexibilität und Kompatibilität erforderlich macht.

Deshalb ist die Möglichkeit, Computer Vision Modelle wie Ultralytics YOLO11 in verschiedene Formate zu exportieren, von entscheidender Bedeutung. Die von Ultralytics unterstützte ONNX (Open Neural Network Exchange) ist eine praktische Möglichkeit, die Lücke zwischen Training und Einsatz zu schließen. ONNX ist ein offenes Format, das Modelle plattformunabhängig und einsatzbereit macht.

Abb. 1. Mit ONNX kannst du ein Modell, das in einem Framework trainiert wurde, problemlos in einem anderen ausführen.

In diesem Artikel werfen wir einen genaueren Blick auf die von Ultralytics unterstützte ONNX und erfahren, wie du dein YOLO11 für einen flexiblen, plattformübergreifenden Einsatz exportieren kannst.

Was ist ONNX und ONNX Runtime?

Der Open Neural Network Exchange ist ein Open-Source-Projekt, das ein Standardformat für Machine-Learning-Modelle definiert. Es wurde ursprünglich von Microsoft und Facebook entwickelt und ermöglicht es Entwicklern, ein Modell in einem Framework wie PyTorch zu trainieren und es in einem anderen wie TensorFlow auszuführen. Das macht die KI-Entwicklung flexibler, kollaborativer und zugänglicher, insbesondere in Bereichen wie Computer Vision.

ONNX bietet einen gemeinsamen Satz von Operatoren und ein einheitliches Dateiformat, das es einfacher macht, Modelle zwischen verschiedenen Tools, Frameworks, Laufzeiten und Compilern zu übertragen. Normalerweise ist ein Modell, das in einem Framework trainiert wurde, nicht ohne Weiteres mit einem anderen kompatibel - aber mit ONNX kannst du dein Modell einmal exportieren und es fast überall einsetzen: auf CPUs (Central Processing Units), GPUs (Graphics Processing Units), mobilen Geräten oder Edge-Hardware.

ONNX Runtime ist eine leistungsstarke Inferenzmaschine, die speziell für die Ausführung von Modellen im ONNX entwickelt wurde. Sie soll dafür sorgen, dass ONNX schneller und effizienter auf einer Vielzahl von Plattformen laufen - darunter Server, mobile Geräte und Edge-Hardware. ONNX Runtime ist mit beliebten Frameworks wie PyTorch, TensorFlow, TensorFlow Lite und scikit-learn kompatibel und lässt sich daher leicht in verschiedene Arbeitsabläufe integrieren und Modelle überall dort einsetzen, wo sie gebraucht werden.

Abb. 2. ONNX und ONNX Runtime ermöglichen eine flexible, plattformübergreifende Modellbereitstellung.

Die wichtigsten Merkmale von ONNX 

Bevor wir besprechen, wie du YOLO11 in das ONNX exportierst, schauen wir uns einige wichtige Merkmale des ONNX an. 

Egal, ob du zwischen verschiedenen Tools wechselst, auf verschiedenen Geräten einsetzt oder dein System aufrüstest, ONNX sorgt dafür, dass alles reibungslos läuft. Das macht das ONNX so einzigartig:

  • Ein Standardformat: ONNX verwendet eine einheitliche Methode, um zu beschreiben, wie Modelle aufgebaut sind, z. B. Ebenen und Operationen (stell dir das als Bausteine vor). Wenn ein Modell in ONNX konvertiert wird, folgt es diesem Standard, damit jedes System, das ONNX unterstützt, es verstehen und ausführen kann.
  • Rückwärtskompatibilität: Auch wenn ONNX immer weiter verbessert wird, stellt es sicher, dass ältere Modelle auch mit neueren Versionen funktionieren. Das bedeutet, dass du deine Modelle nicht jedes Mal neu trainieren oder erstellen musst, wenn ONNX ein Update erhält.
  • Graphenbasierte Modellgestaltung: ONNX sind als Berechnungsgraphen strukturiert, bei denen jeder Knoten eine Operation darstellt (z. B. eine Ebene oder eine mathematische Funktion) und die Kanten den Datenfluss anzeigen. Dieses graphenbasierte Design erleichtert die Integration mit verschiedenen Systemen, die ähnliche Berechnungsgraphenstrukturen verwenden.
  • Entwicklerfreundliche Tools: Es wird mit einer Vielzahl von Tools geliefert, die dir helfen, deine Modelle zu konvertieren, zu validieren und zu optimieren. Diese Werkzeuge vereinfachen das Verschieben von Modellen zwischen verschiedenen Frameworks und können die Bereitstellung beschleunigen - vor allem bei Computer Vision-Anwendungen.

Ein Überblick über die ONNX

Das Exportieren von Ultralytics YOLO wie Ultralytics YOLO11 im ONNX ist ganz einfach und kann in wenigen Schritten durchgeführt werden. 

Um loszulegen, installiere das Ultralytics Python mit einem Paketmanager wie "pip". Dazu kannst du den Befehl "pip install ultralytics" in deiner Eingabeaufforderung oder deinem Terminal ausführen.

Mit dem Ultralytics kannst du ganz einfach Modelle für verschiedene Computer-Vision-Aufgaben trainieren, testen, abstimmen, exportieren und einsetzen - das macht den gesamten Prozess schneller und effizienter. Wenn du bei der Installation auf Schwierigkeiten stößt, kannst du im Leitfaden für häufige Probleme Lösungen und Tipps nachlesen.

Sobald das Ultralytics installiert ist, kannst du das YOLO11 mit dem unten stehenden Code in das ONNX laden und exportieren. In diesem Beispiel wird ein vorab trainiertes YOLO11 (yolo11n.pt) geladen und als ONNX (yolo11nonnx) exportiert, sodass es auf verschiedenen Plattformen und Geräten eingesetzt werden kann.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="onnx") 

Nachdem du dein Modell in das ONNX konvertiert hast, kannst du es auf einer Vielzahl von Plattformen einsetzen. 

Das folgende Beispiel zeigt, wie du das exportierte YOLO11 (yolo11nonnx) lädst und eine Inferenz damit durchführst. Inferenz bedeutet einfach, dass das trainierte Modell verwendet wird, um Vorhersagen für neue Daten zu treffen. In diesem Fall verwenden wir die URL eines Bildes von einem Bus, um das Modell zu testen.

onnx_model = YOLO("yolo11n.onnx")

results = onnx_model("https://ultralytics.com/images/bus.jpg",save=True)

Wenn du diesen Code ausführst, wird das folgende Ausgabebild im Ordner runs/detect/predict gespeichert.

Abb. 3. Durchführung einer Inferenz mit dem exportierten YOLO11 auf einem Bild.

Wann solltest du dich für die ONNX entscheiden?

Das Ultralytics Python unterstützt den Export von Modellen in verschiedene Formate, darunter TorchScript, CoreML, TensorRT und ONNX. Warum also ONNX wählen?

Das Besondere an ONNX ist, dass es sich um ein Framework-unabhängiges Format handelt. Während viele andere Exportformate an bestimmte Tools oder Umgebungen gebunden sind, verwendet ONNX ein standardisiertes Format und einen gemeinsamen Satz von Operatoren. Dadurch ist es sehr portabel, hardwarefreundlich und ideal für den plattformübergreifenden Einsatz - egal ob du mit Cloud-Servern, mobilen Apps oder Edge-Geräten arbeitest. 

Hier sind einige Gründe, warum die ONNX die ideale Wahl für deine YOLO11 sein könnte:

  • Portabler Einsatz: Nach dem Export in ONNX kann dein YOLO11 auf verschiedenen Plattformen eingesetzt werden, ohne dass der Code geändert oder neu trainiert werden muss.
  • Branchenweite Unterstützung: ONNX wird von großen KI-Unternehmen und Frameworks unterstützt, was es zu einem zuverlässigen, weithin akzeptierten Format macht. Es gewährleistet langfristige Kompatibilität, ähnlich wie PDFs auf verschiedenen Geräten funktionieren.
  • Zukunftssichere Entwicklung: Der Einsatz von ONNX schützt deine Modellinvestitionen. ONNX sorgt dafür, dass deine Modelle auch in neuen oder veränderten Umgebungen relevant und nutzbar bleiben, wenn sich die Tools weiterentwickeln.
  • Keine Bindung an einen bestimmten Anbieter: Manche Tools binden dich nur an ihr System, was die Möglichkeiten deines Modells einschränken kann. ONNX vermeidet das, indem es dir die Wahl der Plattform überlässt, die für deine Bedürfnisse am besten geeignet ist, ohne dass du dich auf ein einziges System festlegen musst.

Anwendungen von YOLO11 und dem ONNX

Als Nächstes wollen wir uns einige reale Anwendungen ansehen, bei denen YOLO11 mit Hilfe der ONNX eingesetzt werden kann.

Bestandsverfolgung im Lager mit YOLO11

In geschäftigen Lagern ist es schwierig, jedes Produkt und jede Verpackung im Auge zu behalten. Bildverarbeitungssysteme können den Lagerarbeitern helfen, die Produkte in den Regalen zu finden und Einblicke zu erhalten, z. B. in die Anzahl der Produkte, den Typ usw. Solche Systeme können Unternehmen dabei helfen, ihren riesigen Bestand automatisch zu verwalten und den Lagerarbeitern eine Menge Zeit zu sparen.

In intelligenten Lagern können YOLO11 , die in ONNX exportiert werden, dazu verwendet werden, Artikel in Echtzeit mit Kameras und Edge Devices zu identifizieren und zu zählen. Das exportierte Modell kann helfen, Regale oder Paletten zu scannen, um Lagerbestände, fehlende Artikel oder leere Stellen zu erkennen. Da der Export nach ONNX das Modell leicht und effizient macht, kann es direkt auf kleinen Edge-Geräten wie Smart-Kameras ausgeführt werden, sodass keine teuren Server oder ständiger Cloud-Zugriff erforderlich sind.

Abb. 4. Ein Beispiel für die Verwendung von YOLO11 zum Erkennen und Zählen von Paketen.

Abfallmanagement im Krankenhaus mit YOLO11

Krankenhäuser auf der ganzen Welt produzieren jeden Tag große Mengen an Abfall, von gebrauchten Handschuhen und Spritzen bis hin zu chirurgischen Geräten (wie Einweg- oder kontaminierte chirurgische Werkzeuge wie Scheren und Skalpelle). Untersuchungen zeigen, dass Krankenhäuser jedes Jahr rund 5 Millionen Tonnen Abfall produzieren, das sind 29 Pfund Abfall pro Bett und Tag. 

Die richtige Sortierung solcher Abfälle ist für die Hygiene, die Sicherheit und die Einhaltung von Vorschriften unerlässlich. Mit YOLO11 , die im ONNX exportiert werden, können Krankenhäuser die Abfallentsorgung in Echtzeit automatisieren und überwachen.

So können Kameras, die in der Nähe von Abfallbehältern in Bereichen wie Operationssälen oder Fluren angebracht sind, die weggeworfenen Gegenstände überwachen. Ein spezielles YOLO11 , das darauf trainiert ist, verschiedene Arten von medizinischem Abfall zu erkennen, kann die Aufnahmen analysieren und erkennen, was weggeworfen wird. Wenn ein Gegenstand im falschen Behälter landet, wie z. B. eine gebrauchte Spritze im normalen Müll, kann das System so eingestellt werden, dass es das Personal sofort durch ein Licht oder einen Ton alarmiert, um Verunreinigungen zu vermeiden und die Einhaltung der Vorschriften sicherzustellen.

Abb. 5. Einsatz von YOLO11 zur Erkennung von medizinischen Instrumenten.

YOLO11 Ernteüberwachung

Den richtigen Zeitpunkt für die Ernte zu kennen, kann einen großen Einfluss auf die Qualität der Produkte und die Gesamtproduktivität eines Betriebs haben. Traditionell verlassen sich Landwirtinnen und Landwirte auf ihre Erfahrung und manuelle Kontrollen - aber mit den jüngsten Fortschritten in der Technologie beginnt sich das zu ändern.

Mit Bildverarbeitungsinnovationen wie YOLO11, die im ONNX exportiert werden, können Landwirte jetzt Automatisierung und Präzision auf das Feld bringen. Mit Hilfe von Drohnen oder Kameras, die an Traktoren oder Pfählen angebracht sind, können Landwirte Bilder ihrer Ernte (z. B. Tomaten, Äpfel oder Weizen) aufnehmen. Mit YOLO11 lassen sich dann wichtige Indikatoren wie Farbe, Größe und Verteilung der Pflanzen erkennen. Anhand dieser Informationen können die Landwirte feststellen, ob die Pflanzen erntereif sind, noch reifen oder ihren Höhepunkt bereits überschritten haben.

Abb. 6. YOLO11 kann verwendet werden, um Pflanzen in Drohnenaufnahmen zu erkennen. 

Zu beachtende ONNX

ONNX bietet zwar zahlreiche Vorteile wie Portabilität, plattformübergreifende Kompatibilität und Interoperabilität der Frameworks, aber es gibt auch einige Einschränkungen, die du beachten musst.

  • Modellgröße: Die Konvertierung von Modellen in das ONNX kann manchmal dazu führen, dass die Dateien größer werden als im Originalformat. Techniken wie Quantisierung und Pruning können dieses Problem mildern, indem sie die Modellgröße reduzieren, ohne die Leistung wesentlich zu beeinträchtigen.
  • Laufzeitkompatibilität: Obwohl ONNX Runtime auf plattformübergreifende Kompatibilität ausgelegt ist, können Leistung und Unterstützung je nach Hardware und Betriebssystem variieren. 
  • Herausforderungen bei der Fehlersuche: Das Debuggen von ONNX kann komplexer sein als bei nativen Frameworks wie PyTorch oder TensorFlow. Fehlermeldungen können weniger aussagekräftig sein, was es schwieriger macht, Probleme zu erkennen. Tools wie Netron zur Modellvisualisierung und die Logging-Funktionen von ONNX Runtime können jedoch bei der Fehlersuche helfen.

Die wichtigsten Erkenntnisse

Wenn du Ultralytics YOLO11 nach ONNX exportierst, kannst du ein trainiertes Computer Vision Modell fast überall einsetzen - egal ob auf einem Laptop, einem mobilen Gerät oder sogar einer kompakten Smart Kamera. Mit der ONNX bist du nicht an ein bestimmtes Framework oder eine Plattform gebunden und kannst dein Modell in der Umgebung einsetzen, die am besten zu deiner Anwendung passt. 

Das macht den Übergang von der Schulung zum Einsatz in der Praxis schneller und effizienter. Ganz gleich, ob du den Bestand in einem Lager nachverfolgst oder sicherstellst, dass Krankenhausabfälle richtig entsorgt werden, diese Einrichtung trägt dazu bei, dass die Systeme reibungsloser laufen, Fehler reduziert werden und wertvolle Zeit gespart wird.

Willst du mehr über Computer Vision und KI erfahren? Erkunde unser GitHub-Repository, tausche dich mit unserer Community aus und sieh dir unsere Lizenzierungsoptionen an, um dein Computer-Vision-Projekt zu starten. Wenn du dich für Innovationen wie KI in der Fertigung und Computer Vision in der Automobilindustrie interessierst, besuche unsere Lösungsseiten, um mehr zu erfahren. 

LinkedIn-LogoTwitter-LogoFacebook-LogoKopier-Link-Symbol

Lies mehr in dieser Kategorie

Lass uns gemeinsam die Zukunft
der KI gestalten!

Beginne deine Reise in die Zukunft des maschinellen Lernens

OSZAR »