Wie man von YOLO11 nach NCNN für eine reibungslose Bereitstellung exportiert
Die Bereitstellung von Computer-Vision-Modellen auf Geräten mit begrenzter Rechenleistung, wie z. B. Mobil- oder eingebetteten Systemen, kann schwierig sein. Sie müssen sicherstellen, dass Sie ein Format verwenden, das für optimale Leistung optimiert ist. Dadurch wird sichergestellt, dass auch Geräte mit begrenzter Rechenleistung fortschrittliche Computer-Vision-Aufgaben gut bewältigen können.
Die Funktion zum Exportieren in das NCNN-Format ermöglicht es Ihnen, Ihre Ultralytics YOLO11-Modelle für ressourcenschonende gerätebasierte Anwendungen zu optimieren. In diesem Leitfaden führen wir Sie durch die Konvertierung Ihrer Modelle in das NCNN-Format, wodurch Ihre Modelle auf verschiedenen Mobil- und Embedded-Geräten besser funktionieren können.
Warum sollten Sie nach NCNN exportieren?
Das von Tencent entwickelte NCNN-Framework ist ein hochleistungsfähiges neuronales Netzwerk-Inferenz-Computing-Framework, das speziell für mobile Plattformen optimiert wurde, einschließlich Mobiltelefone, eingebettete Geräte und IoT-Geräte. NCNN ist mit einer Vielzahl von Plattformen kompatibel, darunter Linux, Android, iOS und macOS.
NCNN ist bekannt für seine schnelle Verarbeitungsgeschwindigkeit auf mobilen CPUs und ermöglicht die schnelle Bereitstellung von Deep-Learning-Modellen auf mobilen Plattformen. Dies erleichtert die Entwicklung intelligenter Apps und bringt die Leistungsfähigkeit der KI direkt in Ihre Hände.
Hauptmerkmale von NCNN-Modellen
NCNN-Modelle bieten eine breite Palette von Schlüsselfunktionen, die On-Device Machine Learning ermöglichen, indem sie Entwicklern helfen, ihre Modelle auf mobilen, eingebetteten und Edge-Geräten auszuführen:
-
Effizient und leistungsstark: NCNN-Modelle sind auf Effizienz und geringes Gewicht ausgelegt und für die Ausführung auf mobilen und eingebetteten Geräten wie Raspberry Pi mit begrenzten Ressourcen optimiert. Sie können auch eine hohe Leistung mit hoher Genauigkeit bei verschiedenen computergestützten Bildverarbeitungsaufgaben erzielen.
-
Quantisierung: NCNN-Modelle unterstützen oft die Quantisierung, eine Technik, die die Präzision der Gewichte und Aktivierungen des Modells reduziert. Dies führt zu weiteren Leistungsverbesserungen und reduziert den Speicherbedarf.
-
Kompatibilität: NCNN-Modelle sind mit gängigen Deep-Learning-Frameworks wie TensorFlow, Caffe und ONNX kompatibel. Diese Kompatibilität ermöglicht es Entwicklern, vorhandene Modelle und Workflows problemlos zu nutzen.
-
Einfache Nutzung: NCNN-Modelle sind für die einfache Integration in verschiedene Anwendungen konzipiert, dank ihrer Kompatibilität mit gängigen Deep-Learning-Frameworks. Darüber hinaus bietet NCNN benutzerfreundliche Tools für die Konvertierung von Modellen zwischen verschiedenen Formaten, wodurch eine reibungslose Interoperabilität in der gesamten Entwicklungslandschaft gewährleistet wird.
Bereitstellungsoptionen mit NCNN
Bevor wir uns den Code zum Exportieren von YOLO11-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 Bereitstellungsplattformen kompatibel:
-
Mobile Bereitstellung: Speziell optimiert für Android und iOS, was eine nahtlose Integration in mobile Anwendungen für eine effiziente On-Device-Inferenz ermöglicht.
-
Eingebettete Systeme und IoT-Geräte: Wenn Sie feststellen, dass die Ausführung von Inferenz auf einem Raspberry Pi mit dem Ultralytics Guide nicht schnell genug ist, kann der Wechsel zu einem NCNN-exportierten Modell helfen, die Dinge zu beschleunigen. NCNN eignet sich hervorragend für Geräte wie Raspberry Pi und NVIDIA Jetson, insbesondere in Situationen, in denen Sie eine schnelle Verarbeitung direkt auf dem Gerät benötigen.
-
Desktop- und Server-Bereitstellung: Kann in Desktop- und Serverumgebungen unter Linux, Windows und macOS bereitgestellt werden und unterstützt Entwicklung, Training und Evaluierung mit höheren Rechenkapazitäten.
Exportieren zu NCNN: Konvertieren Ihres YOLO11-Modells
Sie können die Modellkompatibilität und Bereitstellungsflexibilität erweitern, indem Sie YOLO11-Modelle in das NCNN-Format konvertieren.
Installation
Um die erforderlichen Pakete zu installieren, führen Sie Folgendes aus:
Installation
# Install the required package for YOLO11
pip install ultralytics
Detaillierte Anweisungen und Best Practices zum Installationsprozess finden Sie in unserem Ultralytics Installationshandbuch. Wenn Sie bei der Installation der erforderlichen Pakete für YOLO11 auf Schwierigkeiten stoßen, konsultieren Sie unser Handbuch zu häufigen Problemen für Lösungen und Tipps.
Nutzung
Alle Ultralytics YOLO11 Modelle sind so konzipiert, dass sie den Export standardmäßig unterstützen, wodurch die Integration in Ihren bevorzugten Deployment-Workflow vereinfacht wird. Sie können die vollständige Liste der unterstützten Exportformate und Konfigurationsoptionen anzeigen, um das beste Setup für Ihre Anwendung auszuwählen.
Nutzung
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo11n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("./yolo11n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to NCNN format
yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'
# Run inference with the exported model
yolo predict model='./yolo11n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'
Export-Argumente
Argument | Typ | Standard | Beschreibung |
---|---|---|---|
format |
str |
'ncnn' |
Zielformat für das exportierte Modell, das die Kompatibilität mit verschiedenen Deployment-Umgebungen definiert. |
imgsz |
int oder tuple |
640 |
Gewünschte Bildgröße für die Modelleingabe. Kann eine ganze Zahl für quadratische Bilder oder ein Tupel (height, width) für bestimmte Abmessungen sein. |
half |
bool |
False |
Aktiviert die FP16-Quantisierung (halbe Präzision), wodurch die Modellgröße reduziert und potenziell die Inferenz auf unterstützter Hardware beschleunigt wird. |
batch |
int |
1 |
Gibt die Batch-Inferenzgröße des Exportmodells oder die maximale Anzahl von Bildern an, die das exportierte Modell gleichzeitig verarbeitet predict Modus. |
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 ), oder Auto-Modus mit angegebener Auslastungsfraktion ( |
Weitere Informationen zum Exportprozess finden Sie auf der Ultralytics-Dokumentationsseite zum Exportieren.
Bereitstellung exportierter YOLO11 NCNN-Modelle
Nachdem Sie Ihre Ultralytics YOLO11-Modelle erfolgreich in das NCNN-Format exportiert haben, können Sie sie jetzt bereitstellen. Der primäre und empfohlene erste Schritt zum Ausführen eines NCNN-Modells ist die Verwendung der YOLO("yolo11n_ncnn_model/")-Methode, wie im vorherigen Code-Snippet zur Verwendung beschrieben. Für detaillierte Anweisungen zur Bereitstellung Ihrer NCNN-Modelle in verschiedenen anderen Umgebungen werfen Sie einen Blick auf die folgenden Ressourcen:
-
Android: Dieser Blog erklärt, wie man NCNN-Modelle zur Durchführung von Aufgaben wie Objekterkennung über Android-Anwendungen verwendet.
-
macOS: Erfahren Sie, wie Sie NCNN-Modelle zur Ausführung von Aufgaben über macOS verwenden.
-
Linux: Auf dieser Seite erfahren Sie, wie Sie NCNN-Modelle auf Geräten mit begrenzten Ressourcen wie Raspberry Pi und ähnlichen Geräten bereitstellen.
-
Windows x64 mit VS2017: In diesem Blog erfahren Sie, wie Sie NCNN-Modelle unter Windows x64 mit Visual Studio Community 2017 bereitstellen.
Zusammenfassung
In dieser Anleitung haben wir das Exportieren von Ultralytics YOLO11-Modellen in das NCNN-Format behandelt. Dieser Konvertierungsschritt ist entscheidend, um die Effizienz und Geschwindigkeit von YOLO11-Modellen zu verbessern, wodurch sie effektiver und für Computerumgebungen mit begrenzten Ressourcen geeignet werden.
Detaillierte Anweisungen zur Verwendung finden Sie in der offiziellen NCNN-Dokumentation.
Wenn Sie daran interessiert sind, weitere Integrationsmöglichkeiten für Ultralytics YOLO11 zu erkunden, sollten Sie unbedingt unsere Seite mit dem Integrationsleitfaden besuchen, um weitere Einblicke und Informationen zu erhalten.
FAQ
Wie exportiere ich Ultralytics YOLO11-Modelle in das NCNN-Format?
Um Ihr Ultralytics YOLO11-Modell in das NCNN-Format zu exportieren, führen Sie die folgenden Schritte aus:
-
Python: Verwenden Sie die
export
Funktion aus der YOLO-Klasse.from ultralytics import YOLO # Load the YOLO11 model model = YOLO("yolo11n.pt") # Export to NCNN format model.export(format="ncnn") # creates '/yolo11n_ncnn_model'
-
CLI: Verwenden Sie die
yolo
Befehl mit demexport
Argument.yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'
Detaillierte Exportoptionen finden Sie auf der Seite Export in der Dokumentation.
Welche Vorteile bietet der Export von YOLO11-Modellen nach NCNN?
Das Exportieren Ihrer Ultralytics YOLO11-Modelle nach NCNN bietet mehrere Vorteile:
- Effizienz: NCNN-Modelle sind für mobile und eingebettete Geräte optimiert und gewährleisten eine hohe Leistung auch bei begrenzten Rechenressourcen.
- Quantisierung: NCNN unterstützt Techniken wie die Quantisierung, die die Modellgeschwindigkeit verbessern und den Speicherverbrauch reduzieren.
- Breite Kompatibilität: Sie können NCNN-Modelle auf mehreren Plattformen bereitstellen, darunter Android, iOS, Linux und macOS.
Weitere Informationen finden Sie im Abschnitt Export zu NCNN in der Dokumentation.
Warum sollte ich NCNN für meine mobilen KI-Anwendungen verwenden?
NCNN, entwickelt von Tencent, ist speziell für mobile Plattformen optimiert. Die wichtigsten Gründe für die Verwendung von NCNN sind:
- Hohe Leistung: Entwickelt für effiziente und schnelle Verarbeitung auf mobilen CPUs.
- Cross-Platform: Kompatibel mit gängigen Frameworks wie TensorFlow und ONNX, was die Konvertierung und Bereitstellung von Modellen auf verschiedenen Plattformen vereinfacht.
- Community Support: Aktiver Community-Support gewährleistet kontinuierliche Verbesserungen und Aktualisierungen.
Um mehr zu erfahren, besuchen Sie die NCNN-Übersicht in der Dokumentation.
Welche Plattformen werden für die NCNN Modellbereitstellung unterstützt?
NCNN ist vielseitig und unterstützt verschiedene Plattformen:
- Mobil: Android, iOS.
- Eingebettete Systeme und IoT-Geräte: Geräte wie Raspberry Pi und NVIDIA Jetson.
- Desktops und Server: Linux, Windows und macOS.
Wenn die Ausführung von Modellen auf einem Raspberry Pi nicht schnell genug ist, könnte die Konvertierung in das NCNN-Format die Dinge beschleunigen, wie in unserem Raspberry Pi-Leitfaden beschrieben.
Wie kann ich Ultralytics YOLO11 NCNN-Modelle auf Android bereitstellen?
So stellen Sie Ihre YOLO11-Modelle auf Android bereit:
- Build für Android: Folgen Sie der NCNN Build für Android-Anleitung.
- In Ihre App integrieren: Verwenden Sie das NCNN Android SDK, um das exportierte Modell zur effizienten Inferenz auf dem Gerät in Ihre Anwendung zu integrieren.
Eine Schritt-für-Schritt-Anleitung finden Sie in unserem Leitfaden zur Bereitstellung von YOLO11 NCNN-Modellen.
Für weitere Anleitungen und Anwendungsfälle besuchen Sie die Ultralytics Dokumentationsseite.