Zum Inhalt springen

Wie man von YOLOv8 nach NCNN exportiert, um eine reibungslose Verteilung zu erreichen

Der Einsatz von Computer-Vision-Modellen auf GerĂ€ten mit begrenzter Rechenleistung, wie z. B. mobilen oder eingebetteten Systemen, kann schwierig sein. Du musst sicherstellen, dass du ein Format verwendest, das fĂŒr optimale Leistung optimiert ist. So wird sichergestellt, dass auch GerĂ€te mit begrenzter Rechenleistung fortgeschrittene Computer Vision Aufgaben gut bewĂ€ltigen können.

Die Funktion zum Export in das Format NCNN ermöglicht es dir, deine Ultralytics YOLOv8 Modelle fĂŒr leichtgewichtige gerĂ€tebasierte Anwendungen zu optimieren. In diesem Leitfaden zeigen wir dir, wie du deine Modelle in das Format NCNN konvertierst, damit sie auf verschiedenen mobilen und eingebetteten GerĂ€ten gut funktionieren.

Warum solltest du auf NCNN exportieren?

NCNN Übersicht

Das NCNN Framework, das von Tencent entwickelt wurde, ist ein hochleistungsfĂ€higes Framework fĂŒr neuronale Netzwerke, das speziell fĂŒr mobile Plattformen wie Mobiltelefone, eingebettete GerĂ€te und IoT-GerĂ€te optimiert wurde. NCNN ist mit einer Vielzahl von Plattformen kompatibel, darunter Linux, Android, iOS und macOS.

NCNN ist fĂŒr seine hohe Verarbeitungsgeschwindigkeit auf mobilen CPUs bekannt und ermöglicht eine schnelle Bereitstellung von Deep-Learning-Modellen auf mobilen Plattformen. Das macht es einfacher, intelligente Apps zu entwickeln und die Macht der KI direkt in deine HĂ€nde zu legen.

Die wichtigsten Merkmale der NCNN Modelle

NCNN Modelle bieten eine breite Palette an wichtigen Funktionen, die maschinelles Lernen auf GerĂ€ten ermöglichen, indem sie Entwicklern helfen, ihre Modelle auf mobilen, eingebetteten und Edge-GerĂ€ten auszufĂŒhren:

  • Effizient und leistungsfĂ€hig: Die Modelle von NCNN sind effizient und leichtgewichtig und fĂŒr den Betrieb auf mobilen und eingebetteten GerĂ€ten wie dem Raspberry Pi mit begrenzten Ressourcen optimiert. Außerdem können sie bei verschiedenen Bildverarbeitungsaufgaben eine hohe Leistung mit hoher Genauigkeit erzielen.

  • Quantisierung: NCNN Modelle unterstĂŒtzen oft die Quantisierung, eine Technik, die die Genauigkeit der Gewichte und Aktivierungen des Modells reduziert. Dies fĂŒhrt zu weiteren Leistungsverbesserungen und reduziert den Speicherbedarf.

  • KompatibilitĂ€t: Die Modelle von NCNN sind kompatibel mit gĂ€ngigen Deep-Learning-Frameworks wie TensorFlowCaffe, und ONNX. Diese KompatibilitĂ€t ermöglicht es Entwicklern, bestehende Modelle und ArbeitsablĂ€ufe einfach zu nutzen.

  • Einfache Nutzung: Die Modelle von NCNN lassen sich dank ihrer KompatibilitĂ€t mit gĂ€ngigen Deep-Learning-Frameworks leicht in verschiedene Anwendungen integrieren. DarĂŒber hinaus bietet NCNN benutzerfreundliche Tools fĂŒr die Konvertierung von Modellen zwischen verschiedenen Formaten, um eine reibungslose InteroperabilitĂ€t in der gesamten Entwicklungslandschaft zu gewĂ€hrleisten.

Einsatzoptionen mit NCNN

Bevor wir uns den Code fĂŒr den Export von YOLOv8 Modellen in das NCNN Format ansehen, wollen wir verstehen, wie NCNN Modelle normalerweise verwendet werden.

NCNN Modelle, die auf Effizienz und Leistung ausgelegt sind, sind mit einer Vielzahl von Einsatzplattformen kompatibel:

  • Mobiler Einsatz: Speziell fĂŒr Android und iOS optimiert, um eine nahtlose Integration in mobile Anwendungen fĂŒr effiziente Inferenzen auf dem GerĂ€t zu ermöglichen.

  • Eingebettete Systeme und IoT-GerĂ€te: Wenn du feststellst, dass die Inferenz auf einem Raspberry Pi mit dem Ultralytics Guide nicht schnell genug ist, kannst du zu einem NCNN exportierten Modell wechseln, um die Dinge zu beschleunigen. NCNN eignet sich hervorragend fĂŒr GerĂ€te wie Raspberry Pi und NVIDIA Jetson, vor allem in Situationen, in denen du eine schnelle Verarbeitung direkt auf dem GerĂ€t brauchst.

  • Desktop- und Server-Einsatz: Kann in Desktop- und Serverumgebungen unter Linux, Windows und macOS eingesetzt werden und unterstĂŒtzt Entwicklung, Schulung und Evaluierung mit höheren RechenkapazitĂ€ten.

Exportieren nach NCNN: Konvertiere dein YOLOv8 Modell

Du kannst die ModellkompatibilitÀt und die EinsatzflexibilitÀt erweitern, indem du die Modelle von YOLOv8 in das Format NCNN konvertierst.

Installation

Um die benötigten Pakete zu installieren, fĂŒhre sie aus:

Installation

# Install the required package for YOLOv8
pip install ultralytics

AusfĂŒhrliche Anweisungen und bewĂ€hrte Verfahren fĂŒr den Installationsprozess findest du in unserem Ultralytics Installationsleitfaden. Wenn du bei der Installation der erforderlichen Pakete fĂŒr YOLOv8 auf Schwierigkeiten stĂ¶ĂŸt, findest du in unserem Leitfaden fĂŒr hĂ€ufige Probleme Lösungen und Tipps.

Verwendung

Bevor du dich mit den Nutzungshinweisen beschĂ€ftigst, solltest du wissen, dass alle Modelle vonUltralytics YOLOv8 exportiert werden können. Hier kannst du sicherstellen, dass das von dir ausgewĂ€hlte Modell die Exportfunktion unterstĂŒtzt.

Verwendung

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to NCNN format
model.export(format='ncnn') # creates '/yolov8n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO('./yolov8n_ncnn_model')

# Run inference
results = ncnn_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to NCNN format
yolo export model=yolov8n.pt format=ncnn  # creates '/yolov8n_ncnn_model'

# Run inference with the exported model
yolo predict model='./yolov8n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

Weitere Details zu den unterstĂŒtzten Exportoptionen findest du auf der Ultralytics Dokumentationsseite zu den Bereitstellungsoptionen.

Einsatz von exportierten YOLOv8 NCNN Modellen

Nachdem du deine Ultralytics YOLOv8 Modelle erfolgreich in das NCNN Format exportiert hast, kannst du sie nun einsetzen. Der wichtigste und empfohlene erste Schritt zum AusfĂŒhren eines NCNN Modells ist die Verwendung der Methode YOLO("./model_ncnn_model"), wie im vorherigen Codeausschnitt beschrieben. AusfĂŒhrliche Anleitungen fĂŒr den Einsatz deiner NCNN Modelle in verschiedenen anderen Situationen findest du in den folgenden Ressourcen:

  • Android: Dieser Blog erklĂ€rt, wie man NCNN Modelle fĂŒr Aufgaben wie die Objekterkennung in Android-Anwendungen nutzt.

  • macOS: Verstehe, wie du NCNN Modelle fĂŒr die DurchfĂŒhrung von Aufgaben unter macOS nutzen kannst.

  • Linux: Auf dieser Seite erfĂ€hrst du, wie du NCNN Modelle auf GerĂ€ten mit begrenzten Ressourcen wie dem Raspberry Pi und anderen Ă€hnlichen GerĂ€ten einsetzen kannst.

  • Windows x64 mit VS2017: In diesem Blog erfĂ€hrst du, wie du NCNN Modelle unter Windows x64 mit Visual Studio Community 2017 einsetzen kannst.

Zusammenfassung

In diesem Leitfaden haben wir uns mit dem Export von Ultralytics YOLOv8 Modellen in das NCNN Format beschĂ€ftigt. Dieser Konvertierungsschritt ist wichtig, um die Effizienz und Geschwindigkeit der YOLOv8 Modelle zu verbessern und sie effektiver und fĂŒr Computerumgebungen mit begrenzten Ressourcen geeignet zu machen.

AusfĂŒhrliche Anweisungen zur Verwendung findest du in der offiziellen Dokumentation NCNN .

Wenn du dich auch fĂŒr andere Integrationsmöglichkeiten fĂŒr Ultralytics YOLOv8 interessierst, solltest du unseren Integrationsleitfaden besuchen, um weitere Einblicke und Informationen zu erhalten.



Erstellt am 2024-03-01, Aktualisiert am 2024-03-03
Autoren: glenn-jocher (1), abirami-vina (1)

Kommentare