Ultralytics YOLO NCNN Export
Die Bereitstellung von Computer Vision-Modellen auf Geräten mit begrenzter Rechenleistung, wie etwa Mobilgeräten oder eingebetteten Systemen, erfordert eine sorgfältige Formatauswahl. Die Verwendung eines optimierten Formats stellt sicher, dass selbst ressourcenbeschränkte Geräte anspruchsvolle Computer-Vision-Aufgaben effizient bewältigen können.
Der Export in das NCNN-Format ermöglicht es dir, deine Ultralytics YOLO26-Modelle für leichtgewichtige, gerätebasierte Anwendungen zu optimieren. Dieser Leitfaden behandelt, wie du deine Modelle für eine verbesserte Leistung auf Mobil- und eingebetteten Geräten in das NCNN-Format konvertierst.
Warum in NCNN exportieren?
Das von Tencent entwickelte NCNN-Framework ist ein hochleistungsfähiges Inferenz-Rechen-Framework für neuronale Netze, das speziell für mobile Plattformen optimiert wurde, einschließlich Mobiltelefonen, eingebetteten Geräten und IoT-Geräten. 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 rasche Bereitstellung von Deep Learning-Modellen auf mobilen Plattformen, was es zu einer exzellenten Wahl für die Erstellung KI-gestützter Anwendungen macht.
Hauptmerkmale von NCNN-Modellen
NCNN-Modelle bieten mehrere wichtige Funktionen, die Machine Learning direkt auf dem Gerät ermöglichen und Entwicklern dabei helfen, Modelle auf Mobilgeräten, eingebetteten Systemen und Edge-Geräten bereitzustellen:
-
Effizient und hochperformant: NCNN-Modelle sind leichtgewichtig und für mobile sowie eingebettete Geräte wie Raspberry Pi mit begrenzten Ressourcen optimiert, während sie gleichzeitig eine hohe Genauigkeit bei Computer-Vision-Aufgaben beibehalten.
-
Quantisierung: NCNN unterstützt Quantisierung, ein Verfahren, das die Präzision von Modellgewichten und Aktivierungen reduziert, um die Leistung zu steigern und den Speicherbedarf zu verringern.
-
Kompatibilität: NCNN-Modelle sind kompatibel mit gängigen Deep-Learning-Frameworks wie TensorFlow, Caffe und ONNX, was es Entwicklern ermöglicht, bestehende Modelle und Arbeitsabläufe zu nutzen.
-
Benutzerfreundlichkeit: NCNN stellt benutzerfreundliche Werkzeuge zur Konvertierung von Modellen zwischen Formaten bereit und sorgt so für eine reibungslose Interoperabilität in verschiedenen Entwicklungsumgebungen.
-
Vulkan GPU-Beschleunigung: NCNN unterstützt Vulkan für GPU-beschleunigte Inferenz bei mehreren Anbietern, einschließlich AMD, Intel und anderen Nicht-NVIDIA-GPUs, was eine leistungsstarke Bereitstellung auf einer breiteren Palette von Hardware ermöglicht.
Bereitstellungsoptionen mit NCNN
NCNN-Modelle sind mit einer Vielzahl von Bereitstellungsplattformen kompatibel:
-
Mobile Bereitstellung: Optimiert für Android und iOS, was eine nahtlose Integration in mobile Anwendungen für effiziente Inferenz direkt auf dem Gerät ermöglicht.
-
Eingebettete Systeme und IoT-Geräte: Ideal für ressourcenbeschränkte Geräte wie Raspberry Pi und NVIDIA Jetson. Wenn die Standard-Inferenz auf einem Raspberry Pi mit dem Ultralytics Guide nicht ausreicht, kann NCNN deutliche Leistungsverbesserungen erzielen.
-
Desktop- und Server-Bereitstellung: Unterstützt die Bereitstellung unter Linux, Windows und macOS für Entwicklungs-, Trainings- und Evaluierungs-Workflows.
Vulkan GPU-Beschleunigung
NCNN unterstützt GPU-Beschleunigung über Vulkan und ermöglicht so eine hochleistungsfähige Inferenz auf einer Vielzahl von GPUs, darunter AMD-, Intel- und andere Nicht-NVIDIA-Grafikkarten. Dies ist besonders nützlich für:
- GPU-Support für verschiedene Anbieter: Im Gegensatz zu CUDA, das auf NVIDIA-GPUs beschränkt ist, funktioniert Vulkan über mehrere GPU-Anbieter hinweg.
- Multi-GPU-Systeme: Wähle in Systemen mit mehreren GPUs ein spezifisches Vulkan-Gerät aus, indem du
device="vulkan:0",device="vulkan:1"usw. verwendest. - Edge- und Desktop-Bereitstellungen: Nutze die GPU-Beschleunigung auf Geräten, auf denen kein CUDA verfügbar ist.
Um die Vulkan-Beschleunigung zu nutzen, gib das Vulkan-Gerät beim Ausführen der Inferenz an:
from ultralytics import YOLO
# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")
# Run inference with Vulkan GPU acceleration (first Vulkan device)
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:0")
# Use second Vulkan device in multi-GPU systems
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:1")Stelle sicher, dass die Vulkan-Treiber für deine GPU installiert sind. Die meisten modernen GPU-Treiber enthalten standardmäßig Vulkan-Unterstützung. Du kannst die Verfügbarkeit von Vulkan mit Tools wie vulkaninfo unter Linux oder dem Vulkan SDK unter Windows überprüfen.
Export nach NCNN: Konvertierung deines YOLO26-Modells
Du kannst die Modellkompatibilität und die Flexibilität bei der Bereitstellung erweitern, indem du YOLO26-Modelle in das NCNN-Format konvertierst.
Installation
Um die erforderlichen Pakete zu installieren, führe Folgendes aus:
# Install the required package for YOLO26
pip install ultralyticsDetaillierte Anweisungen und bewährte Verfahren findest du im Ultralytics Installationshandbuch. Falls du auf Schwierigkeiten stößt, konsultiere unser Handbuch für häufige Probleme für Lösungen.
Verwendung
Alle Ultralytics YOLO26-Modelle sind so konzipiert, dass sie den Export direkt unterstützen, was eine einfache Integration in deinen bevorzugten Bereitstellungs-Workflow ermöglicht. Du kannst die vollständige Liste der unterstützten Exportformate und Konfigurationsoptionen ansehen, um die beste Einrichtung für deine Anwendung zu wählen.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo26n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")
# Run inference
results = ncnn_model("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 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. |
half | bool | False | Aktiviert die FP16-Quantisierung (Halbpräzision), was die Modellgröße reduziert und die Inferenz auf unterstützter Hardware potenziell beschleunigt. |
batch | int | 1 | Legt die Batch-Inferenzgröße für den Export fest oder die maximale Anzahl an Bildern, die das exportierte Modell gleichzeitig im predict Modus verarbeitet. |
device | str | None | Legt das Gerät für den Export fest: GPU (device=0), CPU (device=cpu), MPS für Apple Silicon (device=mps). |
Weitere Details zum Exportprozess findest du auf der Ultralytics-Dokumentationsseite zum Export.
Bereitstellung exportierter YOLO26 NCNN-Modelle
Nachdem du deine Ultralytics YOLO26-Modelle in das NCNN-Format exportiert hast, kannst du sie mit der Methode YOLO("yolo26n_ncnn_model/") bereitstellen, wie im obigen Anwendungsbeispiel gezeigt. Für plattformspezifische Anweisungen zur Bereitstellung siehe die folgenden Ressourcen:
-
Android: Baue und integriere NCNN-Modelle für Objekterkennung in Android-Anwendungen.
-
macOS: Bereitstellung von NCNN-Modellen auf macOS-Systemen.
-
Linux: Bereitstellung von NCNN-Modellen auf Linux-Geräten einschließlich Raspberry Pi und ähnlichen eingebetteten Systemen.
-
Windows x64: Bereitstellung von NCNN-Modellen auf Windows x64 unter Verwendung von Visual Studio.
Zusammenfassung
Dieser Leitfaden behandelte den Export von Ultralytics YOLO26-Modellen in das NCNN-Format für verbesserte Effizienz und Geschwindigkeit auf ressourcenbeschränkten Geräten.
Weitere Details findest du in der offiziellen NCNN-Dokumentation. Für weitere Exportoptionen besuche unsere Integrationshandbuch-Seite.
FAQ
Wie exportiere ich Ultralytics YOLO26-Modelle in das NCNN-Format?
So exportierst du dein Ultralytics YOLO26-Modell in das NCNN-Format:
-
Python: Verwende die
export-Methode der YOLO-Klasse.from ultralytics import YOLO # Load the YOLO26 model model = YOLO("yolo26n.pt") # Export to NCNN format model.export(format="ncnn") # creates '/yolo26n_ncnn_model' -
CLI: Verwende den
yolo export-Befehl.yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'
Detaillierte Exportoptionen findest du in der Export-Dokumentation.
Welche Vorteile hat der Export von YOLO26-Modellen nach NCNN?
Der Export deiner Ultralytics YOLO26-Modelle nach NCNN bietet mehrere Vorteile:
- Effizienz: NCNN-Modelle sind für mobile und eingebettete Geräte optimiert und gewährleisten eine hohe Leistung, selbst bei begrenzten Rechenressourcen.
- Quantisierung: NCNN unterstützt Verfahren wie Quantisierung, die die Modellgeschwindigkeit verbessern und den Speicherbedarf senken.
- Breite Kompatibilität: Du kannst NCNN-Modelle auf mehreren Plattformen bereitstellen, darunter Android, iOS, Linux und macOS.
- Vulkan GPU-Beschleunigung: Nutze die GPU-Beschleunigung auf AMD-, Intel- und anderen Nicht-NVIDIA-GPUs über Vulkan für eine schnellere Inferenz.
Weitere Details findest du im Abschnitt Warum in NCNN exportieren?.
Warum sollte ich NCNN für meine mobilen KI-Anwendungen verwenden?
NCNN, entwickelt von Tencent, ist speziell für mobile Plattformen optimiert. Hauptgründe für den Einsatz von NCNN sind:
- Hohe Leistung: Entwickelt für eine effiziente und schnelle Verarbeitung auf mobilen CPUs.
- Plattformübergreifend: Kompatibel mit gängigen Frameworks wie TensorFlow und ONNX, was es einfacher macht, Modelle für verschiedene Plattformen zu konvertieren und bereitzustellen.
- Community-Support: Aktive Unterstützung durch die Community stellt kontinuierliche Verbesserungen und Updates sicher.
Weitere Informationen findest du im Abschnitt Hauptmerkmale von NCNN-Modellen.
Welche Plattformen werden für die Modellbereitstellung mit NCNN 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.
- Desktop und Server: Linux, Windows und macOS.
Für eine verbesserte Leistung auf dem Raspberry Pi solltest du die Verwendung des NCNN-Formats in Betracht ziehen, wie in unserem Raspberry Pi-Handbuch beschrieben.
Wie kann ich Ultralytics YOLO26 NCNN-Modelle unter Android bereitstellen?
So stellst du deine YOLO26-Modelle unter Android bereit:
- Build für Android: Befolge das NCNN Build für Android-Handbuch.
- Integration in deine App: Verwende das NCNN Android SDK, um das exportierte Modell für eine effiziente Inferenz auf dem Gerät in deine Anwendung zu integrieren.
Detaillierte Anweisungen findest du unter Bereitstellung exportierter YOLO26 NCNN-Modelle.
Weitere fortgeschrittene Leitfäden und Anwendungsfälle findest du im Ultralytics Bereitstellungshandbuch.
Wie verwende ich die Vulkan GPU-Beschleunigung mit NCNN-Modellen?
NCNN unterstützt Vulkan für die GPU-Beschleunigung auf AMD-, Intel- und anderen Nicht-NVIDIA-GPUs. So verwendest du Vulkan:
from ultralytics import YOLO
# Load NCNN model and run with Vulkan GPU
model = YOLO("yolo26n_ncnn_model")
results = model("image.jpg", device="vulkan:0") # Use first Vulkan deviceGib bei Multi-GPU-Systemen den Geräteindex an (z. B. vulkan:1 für die zweite GPU). Stelle sicher, dass die Vulkan-Treiber für deine GPU installiert sind. Weitere Details findest du im Abschnitt Vulkan GPU-Beschleunigung.