Indem Sie auf „Alle Cookies akzeptieren“ klicken, stimmen Sie der Speicherung von Cookies auf Ihrem Gerät zu, um die Website-Navigation zu verbessern, die Website-Nutzung zu analysieren und unsere Marketingbemühungen zu unterstützen. Mehr Infos
Cookie-Einstellungen
Indem Sie auf „Alle Cookies akzeptieren“ klicken, stimmen Sie der Speicherung von Cookies auf Ihrem Gerät zu, um die Website-Navigation zu verbessern, die Website-Nutzung zu analysieren und unsere Marketingbemühungen zu unterstützen. Mehr Infos
Erfahren Sie, wie Sie Ultralytics YOLO-Modelle mithilfe der TensorRT-Integration exportieren können, um eine schnellere und effizientere KI-Leistung auf NVIDIA-GPUs für Echtzeitanwendungen zu erzielen.
Stellen Sie sich ein selbstfahrendes Auto vor, das sich durch eine belebte Straße bewegt und nur Millisekunden Zeit hat, um einen Fußgänger zu erkennen, der vom Bordstein tritt. Gleichzeitig muss es möglicherweise ein Stoppschild erkennen, das teilweise von einem Baum verdeckt wird, oder schnell auf ein nahegelegenes Fahrzeug reagieren, das in seine Fahrspur gerät. In solchen Situationen sind Geschwindigkeit und Echtzeitreaktionen entscheidend.
Hier spielt die künstliche Intelligenz (KI) eine Schlüsselrolle, insbesondere die Computer Vision, ein Zweig der KI, der Maschinen hilft, visuelle Daten zu interpretieren. Damit Computer-Vision-Lösungen in realen Umgebungen zuverlässig funktionieren, müssen sie oft Informationen schnell verarbeiten, mehrere Aufgaben gleichzeitig bewältigen und Speicher effizient nutzen.
Eine Möglichkeit, dies zu erreichen, ist die Hardwarebeschleunigung, bei der spezielle Geräte wie Grafikprozessoren (GPUs) verwendet werden, um Modelle schneller auszuführen. NVIDIA-GPUs sind besonders bekannt für solche Aufgaben, da sie eine geringe Latenz und einen hohen Durchsatz bieten.
Allerdings garantiert die Ausführung eines Modells auf einer GPU im Ist-Zustand nicht immer eine optimale Leistung. Vision-KI-Modelle erfordern in der Regel eine Optimierung, um die Fähigkeiten von Hardwaregeräten voll auszuschöpfen. Um die volle Leistung mit spezifischer Hardware zu erzielen, müssen wir das Modell kompilieren, um den spezifischen Satz von Anweisungen für die Hardware zu verwenden.
TensorRT ist beispielsweise ein von NVIDIA entwickeltes Exportformat und eine Optimierungsbibliothek, um die Leistung auf High-End-Maschinen zu verbessern. Es verwendet fortschrittliche Techniken, um die Inferenzzeit deutlich zu reduzieren und gleichzeitig die Genauigkeit beizubehalten.
Abb. 1. NVIDIA TensorRT ermöglicht es Modellen, optimal auf verschiedenen NVIDIA-Geräten zu laufen.
In diesem Artikel werden wir die von Ultralytics unterstützte TensorRT-Integration untersuchen und Sie durch den Export Ihres YOLO11-Modells für eine schnellere und effizientere Bereitstellung auf NVIDIA-Hardware führen. Los geht's!
Ein Überblick über TensorRT
TensorRT ist ein von NVIDIA entwickeltes Toolkit, mit dem KI-Modelle auf NVIDIA-GPUs schneller und effizienter ausgeführt werden können. Es wurde für reale Anwendungen entwickelt, bei denen Geschwindigkeit und Leistung wirklich wichtig sind, wie z. B. selbstfahrende Autos und Qualitätskontrolle in der Fertigung und Pharmazie.
TensorRT umfasst Tools wie Compiler und Modelloptimierer, die im Hintergrund arbeiten können, um sicherzustellen, dass Ihre Modelle mit geringer Latenz laufen und einen höheren Durchsatz bewältigen können.
Die von Ultralytics unterstützte TensorRT-Integration optimiert Ihr YOLO-Modell für eine effizientere Ausführung auf GPUs, indem Methoden wie die Reduzierung der Präzision verwendet werden. Dies bezieht sich auf die Verwendung von Formaten mit niedrigerer Bitanzahl, wie z. B. 16-Bit-Gleitkommazahlen (FP16) oder 8-Bit-Integer (INT8), um Modelldaten darzustellen, was den Speicherbedarf reduziert und die Berechnungen beschleunigt, ohne die Genauigkeit wesentlich zu beeinträchtigen.
Außerdem werden kompatible neuronale Netzwerkschichten in optimierten TensorRT-Modellen zusammengeführt, um den Speicherbedarf zu reduzieren, was zu einer schnelleren und effizienteren Inferenz führt.
Abb. 2. Ein Blick auf die Layer-Fusionstechnik von TensorRT.
Hauptmerkmale des TensorRT-Exportformats
Bevor wir erörtern, wie Sie YOLO11 mithilfe der TensorRT-Integration exportieren können, werfen wir einen Blick auf einige Hauptmerkmale des TensorRT-Modellformats:
Einfache Framework-Integration: TensorRT unterstützt die direkte Integration mit gängigen KI-Frameworks wie PyTorch, Hugging Face und ONNX und bietet eine bis zu 6-fach höhere Leistung. Es unterstützt auch MATLAB und ermöglicht die Entwicklung von High-Speed-KI-Engines auf Plattformen wie Jetson, NVIDIA DRIVE und Rechenzentren.
Skalierbare Bereitstellung mit Triton: Im TensorRT-Format optimierte Modelle können mit dem NVIDIA Triton Inference Server skaliert bereitgestellt werden, was die Effizienz durch Funktionen wie Input Batching, gleichzeitige Modellausführung, Modell-Ensemble-Unterstützung und Echtzeit-Audio/Video-Streaming verbessert.
Flexibel auf verschiedenen Geräten: Von kleinen Edge-Geräten bis hin zu leistungsstarken Servern funktioniert TensorRT im gesamten NVIDIA-Ökosystem und unterstützt Tools wie DeepStream für Video, Riva für Sprach-KI und andere für Cybersicherheit, Empfehlungen und mehr.
Wie funktioniert die TensorRT-Integration?
Das Exportieren von Ultralytics YOLO-Modellen wie Ultralytics YOLO11 in das TensorRT-Modellformat ist einfach. Lassen Sie uns die einzelnen Schritte durchgehen.
Um zu beginnen, können Sie das Ultralytics Python-Paket mit einem Paketmanager wie ‘pip’ installieren. Dies kann durch Ausführen des Befehls “pip install ultralytics” in Ihrer Eingabeaufforderung oder Ihrem Terminal erfolgen.
Nachdem Sie das Ultralytics Python-Paket erfolgreich installiert haben, können Sie Modelle für verschiedene Computer-Vision-Aufgaben wie Objekterkennung, Klassifizierung und Instanzsegmentierung trainieren, testen, feinabstimmen, exportieren und bereitstellen. Wenn Sie bei der Installation des Pakets auf Schwierigkeiten stoßen, können Sie im Leitfaden zu häufigen Problemen nach Lösungen und Tipps suchen.
Für den nächsten Schritt benötigen Sie ein NVIDIA-Gerät. Verwenden Sie den folgenden Code-Schnipsel, um YOLOv11 zu laden und in das TensorRT-Modellformat zu exportieren. Er lädt eine vortrainierte Nano-Variante des YOLO11-Modells (yolo11n.pt) und exportiert sie als TensorRT-Engine-Datei (yolo11n.engine), wodurch sie für den Einsatz auf NVIDIA-Geräten vorbereitet wird.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="engine")
Nachdem Sie Ihr Modell in das TensorRT-Format konvertiert haben, können Sie es für verschiedene Anwendungen bereitstellen.
Das folgende Beispiel zeigt, wie Sie das exportierte YOLO11-Modell (yolo11n.engine) laden und eine Inferenz damit ausführen. Inferenz bedeutet, das trainierte Modell zu verwenden, um Vorhersagen über neue Daten zu treffen. In diesem Fall verwenden wir ein Eingabebild eines Hundes, um das Modell zu testen.
Wenn Sie diesen Code ausführen, wird das folgende Ausgabebild im Ordner runs/detect/predict gespeichert.
Abb. 3. Das Ergebnis der Ausführung einer Inferenz mit dem exportierten YOLO11-Modell im TensorRT-Format.
Wann sollte die TensorRT-Integration genutzt werden?
Das Ultralytics Python-Paket unterstützt verschiedene Integrationen, die das Exportieren von YOLO-Modellen in verschiedene Formate wie TorchScript, CoreML, ONNX und TensorRT ermöglichen. Wann sollten Sie also die TensorRT-Integration verwenden?
Hier sind einige Faktoren, die das TensorRT-Modellformat von anderen Export-Integrations-Optionen unterscheiden:
Kleinere Modellgröße: Das Exportieren eines YOLO-Modells in das TensorRT-Format mit INT8-Präzision kann die Modellgröße erheblich reduzieren. Die Quantisierung von FP32 auf INT8 kann zu einer 4-fachen Reduzierung der Modellgröße führen, was schnellere Downloadzeiten, geringere Speicheranforderungen und einen reduzierten Speicherbedarf während des Einsatzes ermöglicht.
Geringerer Stromverbrauch: Die INT8-Quantisierung reduziert nicht nur die Modellgröße, sondern senkt auch den Stromverbrauch. Operationen mit reduzierter Präzision für INT8-exportierte YOLO-Modelle können weniger Strom verbrauchen als FP32-Modelle, was besonders für batteriebetriebene Geräte wie Drohnen, Smartphones oder Edge-Geräte von Vorteil ist.
Schnellere Leistung: Die Kombination aus der effizienten Architektur von YOLO und der INT8-Optimierung von TensorRT kann die Inferenzgeschwindigkeit verbessern.
Anwendungen von YOLO11 und dem TensorRT-Modellformat
Ultralytics YOLO-Modelle, die in das TensorRT-Format exportiert wurden, können in einer Vielzahl von realen Szenarien eingesetzt werden. Diese optimierten Modelle sind besonders nützlich, wenn eine schnelle, effiziente KI-Leistung entscheidend ist. Lassen Sie uns einige interessante Beispiele für ihre Verwendung untersuchen.
Intelligente Kassen in Einzelhandelsgeschäften
Eine Vielzahl von Aufgaben in Einzelhandelsgeschäften, wie das Scannen von Barcodes, das Wiegen von Produkten oder das Verpacken von Artikeln, werden immer noch manuell von Mitarbeitern erledigt. Sich ausschließlich auf Mitarbeiter zu verlassen, kann jedoch den Betrieb verlangsamen und zu Frustration bei den Kunden führen, insbesondere an der Kasse. Lange Schlangen sind sowohl für Käufer als auch für Ladenbesitzer unpraktisch. Intelligente Self-Checkout-Kassen sind eine großartige Lösung für dieses Problem.
Diese Kassen verwenden Computer Vision und GPUs, um den Prozess zu beschleunigen und die Wartezeiten zu verkürzen. Computer Vision ermöglicht es diesen Systemen, ihre Umgebung durch Aufgaben wie Objekterkennung zu sehen und zu verstehen. Fortschrittliche Modelle wie YOLO11 können, wenn sie mit Tools wie TensorRT optimiert werden, auf GPU-Geräten viel schneller laufen.
Diese exportierten Modelle eignen sich gut für intelligente Einzelhandelskonfigurationen mit kompakten, aber leistungsstarken Hardwaregeräten wie dem NVIDIA Jetson Nano, das speziell für Edge-KI-Anwendungen entwickelt wurde.
Ein Computer Vision Modell wie YOLO11 kann kundenspezifisch trainiert werden, um fehlerhafte Produkte in der Fertigungsindustrie zu erkennen. Nach dem Training kann das Modell in das TensorRT-Format exportiert werden, um in Anlagen mit hochleistungsfähigen KI-Systemen eingesetzt zu werden.
Während sich Produkte auf Förderbändern bewegen, erfassen Kameras Bilder, und das im TensorRT-Format laufende YOLO11-Modell analysiert diese in Echtzeit, um Fehler zu erkennen. Dieses Setup ermöglicht es Unternehmen, Probleme schnell und genau zu erkennen, wodurch Fehler reduziert und die Effizienz verbessert wird.
In ähnlicher Weise verwenden Industrien wie die Pharmaindustrie diese Art von Systemen, um Defekte in medizinischen Verpackungen zu identifizieren. Tatsächlich wird der globale Markt für intelligente Fehlererkennungssysteme bis 2026 voraussichtlich auf 5 Milliarden Dollar anwachsen.
Abb. 5. Verwendung von YOLO zur Erkennung von Defekten in der Pharmaindustrie.
Überlegungen, die bei der Verwendung von TensorRT zu beachten sind
Während die TensorRT-Integration viele Vorteile mit sich bringt, wie z. B. schnellere Inferenzgeschwindigkeiten und reduzierte Latenz, sind hier einige Einschränkungen zu beachten:
Geringfügiger Genauigkeitsverlust: Wenn Sie Ihr Modell im TensorRT-Format exportieren, ist Ihr exportiertes Modell möglicherweise nicht so genau wie das Original. Leistungsmetriken wie Präzision, Rückruf und wie gut das Modell Objekte erkennt (mAP-Werte) könnten leicht sinken. Dies kann durch die Verwendung eines repräsentativen Datensatzes während der Quantisierung gemildert werden.
Erhöhte Komplexität beim Debuggen: Optimierungen, die von TensorRT durchgeführt werden, können es schwieriger machen, Fehler zu verfolgen oder unerwartetes Verhalten zu verstehen, insbesondere beim Vergleich von Ergebnissen mit dem Originalmodell.
Batch-Größen Sensitivität: Die Leistungsvorteile von TensorRT sind bei größeren Batch-Größen deutlicher. Bei Anwendungen, die einzelne Bilder oder kleine Batches verarbeiten, sind die Leistungsverbesserungen möglicherweise weniger signifikant.
Wesentliche Erkenntnisse
Das Exportieren von Ultralytics YOLO-Modellen in das TensorRT-Format führt dazu, dass sie deutlich schneller und effizienter laufen, was sie ideal für Echtzeitaufgaben wie die Erkennung von Defekten in Fabriken, die Unterstützung intelligenter Kassensysteme oder die Überwachung belebter Stadtgebiete macht.
Diese Optimierung hilft den Modellen, auf NVIDIA-GPUs besser zu funktionieren, indem sie Vorhersagen beschleunigt und den Speicher- und Stromverbrauch reduziert. Obwohl es ein paar Einschränkungen gibt, macht der Leistungsschub die TensorRT-Integration zu einer guten Wahl für alle, die Hochgeschwindigkeits-Computer-Vision-Systeme auf NVIDIA-Hardware entwickeln.