Ultralytics YOLO NCNN Export#
Das Bereitstellen von computer vision-Modellen auf Geräten mit begrenzter Rechenleistung, wie Mobilgeräten oder eingebetteten Systemen, erfordert eine sorgfältige Formatauswahl. Die Verwendung eines optimierten Formats stellt sicher, dass selbst ressourcenbeschränkte Geräte komplexe Aufgaben der Computer Vision effizient bewältigen können.
Das Exportieren 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 in das NCNN-Format konvertierst, um die Leistung auf mobilen und eingebetteten Geräten zu verbessern.
Warum in NCNN exportieren?#
Das von Tencent entwickelte NCNN-Framework ist ein hochleistungsfähiges neural network-Inferenz-Rechen-Framework, das speziell für mobile Plattformen einschließlich Mobiltelefonen, eingebetteten Geräten und IoT-Geräten optimiert wurde. 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, was es zu einer ausgezeichneten Wahl für die Erstellung KI-gestützter Anwendungen macht.
Hauptmerkmale von NCNN-Modellen#
NCNN-Modelle bieten mehrere Schlüsselmerkmale, die machine learning direkt auf dem Gerät ermöglichen und Entwicklern helfen, Modelle auf Mobil-, Embedded- und Edge-Geräten bereitzustellen:
-
Effizient und leistungsstark: NCNN-Modelle sind leichtzig und für mobile sowie eingebettete Geräte wie Raspberry Pi mit begrenzten Ressourcen optimiert, während sie eine hohe accuracy bei Computer-Vision-Aufgaben beibehalten.
-
Quantisierung: NCNN unterstützt die Quantisierung, eine Technik, die die precision von Modellgewichten und -aktivierungen reduziert, um die Leistung zu verbessern und den Speicherbedarf zu verringern.
-
Kompatibilität: NCNN-Modelle sind mit gängigen Deep-Learning-Frameworks einschließlich TensorFlow, Caffe und ONNX kompatibel, sodass Entwickler bestehende Modelle und Workflows nutzen können.
-
Benutzerfreundlichkeit: NCNN bietet benutzerfreundliche Werkzeuge für die Konvertierung von Modellen zwischen verschiedenen Formaten und sorgt so für eine reibungslose Interoperabilität in unterschiedlichen Entwicklungsumgebungen.
-
Vulkan GPU-Beschleunigung: NCNN unterstützt Vulkan für GPU-beschleunigte Inferenz bei verschiedenen 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 eine effiziente Inferenz 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 Standardinferenz auf einem Raspberry Pi mit dem Ultralytics Guide nicht ausreicht, kann NCNN signifikante Leistungssteigerungen bieten.
-
Desktop- und Server-Bereitstellung: Unterstützt die Bereitstellung auf Linux, Windows und macOS für Entwicklungs-, Trainings- und Evaluierungs-Workflows.
Vulkan GPU-Beschleunigung#
NCNN unterstützt GPU-Beschleunigung über Vulkan, was eine leistungsstarke Inferenz auf einer breiten Palette von GPUs ermöglicht, einschließlich AMD, Intel und anderen Nicht-NVIDIA-Grafikkarten. Dies ist besonders nützlich für:
- Anbieterübergreifende GPU-Unterstützung: Im Gegensatz zu CUDA, das auf NVIDIA-GPUs beschränkt ist, funktioniert Vulkan über mehrere GPU-Anbieter hinweg.
- Multi-GPU-Systeme: Wähle ein spezifisches Vulkan-Gerät in Systemen mit mehreren GPUs über
device="vulkan:0",device="vulkan:1"usw. - Edge- und Desktop-Bereitstellungen: Nutze die GPU-Beschleunigung auf Geräten, auf denen CUDA nicht verfügbar ist.
Um die Vulkan-Beschleunigung zu nutzen, gib das Vulkan-Gerät bei der Ausführung 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 Vulkan-Treiber für deine GPU installiert sind. Die meisten modernen GPU-Treiber enthalten Vulkan-Unterstützung standardmäßig. Du kannst die Verfügbarkeit von Vulkan mit Tools wie vulkaninfo unter Linux oder dem Vulkan SDK unter Windows überprüfen.
Unterstützte Aufgaben#
Der NCNN-Export unterstützt alle sieben Ultralytics-Aufgaben. Semantische Segmentierung und Tiefenschätzung sind nur mit YOLO26 verfügbar, der einzigen Familie, die diese Heads enthält.
Export in NCNN: Konvertierung deines YOLO26-Modells#
Du kannst die Modellkompatibilität und Bereitstellungsflexibilität erweitern, indem du YOLO26-Modelle in das NCNN-Format konvertierst.
Installation#
Um die erforderlichen Pakete zu installieren, führe aus:
# Install the required package for YOLO26
pip install ultralyticsDetaillierte Anweisungen und Best Practices findest du im Ultralytics Installation guide. Wenn du auf Schwierigkeiten stößt, ziehe unseren Common Issues guide für Lösungen zu Rate.
Verwendung#
Alle Ultralytics YOLO26 models sind so konzipiert, dass sie den Export von Haus aus unterstützen, sodass du sie mühelos in deinen bevorzugten Bereitstellungsworkflow integrieren kannst. Du kannst the full list of supported export formats and configuration options einsehen, um das beste Setup für deine Anwendung auszuwählen.
Das NCNN-Format unterstützt die Modi Export, Predict und Validate. Exportiere dein Modell und lade es anschließend, um Inferenz auszuführen oder dessen Genauigkeit zu validieren.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo26n_ncnn_model'from ultralytics import YOLO
# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")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 die Modelleingabe. Kann eine Ganzzahl für quadratische Bilder oder ein Tupel (height, width) für bestimmte Abmessungen sein. |
quantize | int oder str | None | Quantisierungsgenauigkeit: 16 (FP16) reduziert die Modellgröße und kann die Inferenz beschleunigen; 32/nicht gesetzt ist FP32. Ersetzt das veraltete Flag half. |
batch | int | 1 | Legt die Batch-Inferenzgröße des exportierten Modells fest oder die maximale Anzahl an Bildern, die das exportierte Modell im Modus predict gleichzeitig verarbeitet. |
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). |
Weitere Details zum Exportprozess findest du auf der Ultralytics-Dokumentationsseite zum Exportieren.
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 Nutzungsbeispiel gezeigt. Plattformspezifische Anweisungen zur Bereitstellung findest du in den folgenden Ressourcen:
-
Android: Erstelle und integriere NCNN-Modelle für die object detection in Android-Anwendungen.
-
macOS: Stelle NCNN-Modelle auf macOS-Systemen bereit.
-
Linux: Stelle NCNN-Modelle auf Linux-Geräten einschließlich Raspberry Pi und ähnlichen eingebetteten Systemen bereit.
-
Windows x64: Stelle NCNN-Modelle unter Windows x64 mit Visual Studio bereit.
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 andere Exportoptionen besuche unsere integration guide page.
FAQ#
Um dein Ultralytics YOLO26-Modell in das NCNN-Format zu exportieren:
-
Python: Verwende die Methode
exportaus der YOLO-Klasse.from ultralytics import YOLO # Load a YOLO26 model model = YOLO("yolo26n.pt") # Export to NCNN format model.export(format="ncnn") # creates '/yolo26n_ncnn_model' -
CLI: Verwende den Befehl
yolo export.yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'
Detaillierte Exportoptionen findest du in der Export-Dokumentation.
-
Der Export deiner Ultralytics YOLO26-Modelle in 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 Techniken wie die Quantisierung, die die Modellgeschwindigkeit verbessern und den Speicherverbrauch reduzieren.
- Umfassende 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 via Vulkan für eine schnellere Inferenz.
Weitere Details findest du im Abschnitt Why Export to NCNN?.
NCNN, entwickelt von Tencent, ist speziell für mobile Plattformen optimiert. Hauptgründe für die Verwendung 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 das Konvertieren und Bereitstellen von Modellen über verschiedene Plattformen hinweg erleichtert.
- Community-Support: Aktiver Community-Support stellt kontinuierliche Verbesserungen und Updates sicher.
Weitere Informationen findest du im Abschnitt Key Features of NCNN Models.
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 Guide beschrieben.
Um deine YOLO26-Modelle auf Android bereitzustellen:
- Für Android erstellen: Folge dem Leitfaden NCNN Build for Android.
- Integration in deine App: Verwende das NCNN Android SDK, um das exportierte Modell in deine Anwendung für eine effiziente Inferenz auf dem Gerät zu integrieren.
Detaillierte Anweisungen findest du unter Deploying Exported YOLO26 NCNN Models.
Fortgeschrittenere Anleitungen und Anwendungsfälle findest du im Ultralytics deployment guide.
NCNN unterstützt Vulkan für GPU-Beschleunigung auf AMD-, Intel- und anderen Nicht-NVIDIA-GPUs. Um Vulkan zu verwenden:
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:1für die zweite GPU). Stelle sicher, dass Vulkan-Treiber für deine GPU installiert sind. Weitere Details findest du im Abschnitt Vulkan GPU Acceleration.