Ultralytics YOLO27:

Ultralytics YOLO NCNN-Export#

Das Bereitstellen von Computer-Vision-Modellen auf Geräten mit begrenzter Rechenleistung, etwa auf Mobilgeräten oder eingebetteten Systemen, erfordert eine sorgfältige Auswahl des Formats. Ein optimiertes Format stellt sicher, dass selbst ressourcenbeschränkte Geräte fortgeschrittene Computer-Vision-Aufgaben effizient bewältigen können.

Der Export in das NCNN-Format ermöglicht es dir, deine Ultralytics YOLO26-Modelle für Anwendungen auf leichten Geräten zu optimieren. Diese Anleitung beschreibt, wie du deine Modelle für eine bessere Leistung auf Mobilgeräten und eingebetteten Geräten in das NCNN-Format konvertierst.

Warum in das NCNN-Format exportieren?#

NCNN high-performance neural network inference framework

Das von Tencent entwickelte NCNN-Framework ist ein leistungsstarkes Framework für die Inferenzberechnung mit neuronalen Netzen, das speziell für mobile Plattformen wie Mobiltelefone, eingebettete Geräte und IoT-Geräte optimiert wurde. NCNN ist mit zahlreichen Plattformen kompatibel, darunter Linux, Android, iOS und macOS.

NCNN ist für seine hohe Verarbeitungsgeschwindigkeit auf mobilen CPUs bekannt und ermöglicht die schnelle Bereitstellung von Deep-Learning-Modellen auf mobilen Plattformen. Dadurch eignet es sich hervorragend für die Entwicklung KI-gestützter Anwendungen.

Wichtige Merkmale von NCNN-Modellen#

NCNN-Modelle bieten mehrere wichtige Merkmale für maschinelles Lernen auf dem Gerät und unterstützen Entwickler dabei, Modelle auf mobilen, eingebetteten und Edge-Geräten bereitzustellen:

  • Effizient und leistungsstark: NCNN-Modelle sind leichtgewichtig und für mobile sowie eingebettete Geräte wie Raspberry Pi mit begrenzten Ressourcen optimiert. Dabei behalten sie eine hohe Genauigkeit bei Computer-Vision-Aufgaben bei.

  • Quantisierung: NCNN unterstützt die Quantisierung, eine Technik, die die Präzision von Modellgewichten und Aktivierungen reduziert, um die Leistung zu verbessern und den Speicherbedarf zu verringern.

  • Kompatibilität: NCNN-Modelle sind mit beliebten Deep-Learning-Frameworks wie TensorFlow, Caffe und ONNX kompatibel. Dadurch können Entwickler vorhandene Modelle und Workflows nutzen.

  • Einfache Nutzung: NCNN bietet benutzerfreundliche Werkzeuge zur Konvertierung von Modellen zwischen verschiedenen Formaten und gewährleistet so eine reibungslose Interoperabilität in unterschiedlichen Entwicklungsumgebungen.

  • Vulkan-GPU-Beschleunigung: NCNN unterstützt Vulkan für GPU-beschleunigte Inferenz mit GPUs verschiedener Hersteller, darunter AMD, Intel und andere GPUs ohne NVIDIA. Dadurch ist eine leistungsstarke Bereitstellung auf einer größeren Auswahl an Hardware möglich.

Bereitstellungsoptionen mit NCNN#

NCNN-Modelle sind mit verschiedenen Plattformen für die Bereitstellung kompatibel:

  • Bereitstellung auf Mobilgeräten: Für Android und iOS optimiert, sodass eine nahtlose Integration in mobile Anwendungen für effiziente Inferenz auf dem Gerät möglich ist.

  • Eingebettete Systeme und IoT-Geräte: Ideal für ressourcenbeschränkte Geräte wie Raspberry Pi und NVIDIA Jetson. Wenn die standardmäßige Inferenz auf einem Raspberry Pi mit dem Ultralytics-Leitfaden nicht ausreicht, kann NCNN deutliche Leistungsverbesserungen bieten.

  • Bereitstellung auf Desktop- und Serversystemen: Unterstützt die Bereitstellung unter Linux, Windows und macOS für Entwicklungs-, Trainings- und Evaluierungs-Workflows.

Vulkan-GPU-Beschleunigung#

NCNN unterstützt die GPU-Beschleunigung über Vulkan und ermöglicht dadurch eine leistungsstarke Inferenz auf einer großen Auswahl an GPUs, darunter AMD, Intel und andere Grafikkarten ohne NVIDIA. Das ist besonders nützlich für:

  • GPU-Unterstützung verschiedener Hersteller: Im Gegensatz zu CUDA, das auf NVIDIA-GPUs beschränkt ist, funktioniert Vulkan mit GPUs verschiedener Hersteller.
  • Systeme mit mehreren GPUs: Wähle in Systemen mit mehreren GPUs ein bestimmtes Vulkan-Gerät mit device="vulkan:0", device="vulkan:1" usw. aus.
  • Bereitstellung auf Edge- und Desktop-Geräten: Nutze die GPU-Beschleunigung auf Geräten, auf denen CUDA nicht verfügbar ist.

Um die Vulkan-Beschleunigung zu verwenden, gib bei der Inferenz das Vulkan-Gerät an:

Vulkan-Inferenz
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")
Vulkan-Anforderungen

Stelle sicher, dass die Vulkan-Treiber für deine GPU installiert sind. Die meisten modernen GPU-Treiber bieten standardmäßig Vulkan-Unterstützung. Unter Linux kannst du die Verfügbarkeit von Vulkan mit Werkzeugen wie vulkaninfo überprüfen, unter Windows mit dem Vulkan SDK.

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 Köpfe enthält.

AufgabeYOLOv8YOLO11YOLO26
Erkennen
Segmentieren
Semantisch
Tiefe
Klassifizieren
Pose
OBB

In das NCNN-Format exportieren: Dein YOLO26-Modell konvertieren#

Du kannst die Modellkompatibilität und Flexibilität bei der Bereitstellung erweitern, indem du YOLO26-Modelle in das NCNN-Format konvertierst.

Installation#

Führe zur Installation der erforderlichen Pakete Folgendes aus:

Installation
# Install the required package for YOLO26
pip install ultralytics

Ausführliche Anweisungen und bewährte Vorgehensweisen findest du im Ultralytics-Installationsleitfaden. Wenn du auf Schwierigkeiten stößt, findest du im Leitfaden zu häufigen Problemen Lösungen.

Verwendung#

Alle Ultralytics YOLO26-Modelle sind so konzipiert, dass sie standardmäßig den Export unterstützen, sodass du sie problemlos in deinen bevorzugten Bereitstellungsablauf integrieren kannst. Du kannst die vollständige Liste der unterstützten Exportformate und Konfigurationsoptionen anzeigen, um die beste Konfiguration für deine Anwendung auszuwählen.

Das NCNN-Format unterstützt die Modi Export, Predict und Validate. Exportiere dein Modell und lade das exportierte Modell anschließend, um Inferenz auszuführen oder seine Genauigkeit zu validieren.

Export
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'
Vorhersage
from ultralytics import YOLO

# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validieren
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")

Exportargumente#

ArgumentTypStandardwertBeschreibung
formatstr'ncnn'Zielformat für das exportierte Modell, das die Kompatibilität mit verschiedenen Bereitstellungsumgebungen festlegt.
imgszint oder tuple640Gewünschte Bildgröße für die Modelleingabe. Kann für quadratische Bilder eine Ganzzahl oder für bestimmte Abmessungen ein Tupel (height, width) sein.
quantizeint oder strNoneQuantisierungspräzision: 16 (FP16) halbiert die exportierten Gewichte; 32 bzw. ohne Angabe exportiert FP32-Gewichte, die NCNNs CPU-Laufzeit standardmäßig weiterhin in FP16 berechnet, sofern die Hardware dies unterstützt. Ersetzt das veraltete Flag half.
batchint1Legt die Batchgröße für die Inferenz des exportierten Modells oder die maximale Anzahl der Bilder fest, die das exportierte Modell im Modus predict gleichzeitig verarbeitet.
devicestrNoneGibt das Gerät für den Export an: GPU (device=0), CPU (device=cpu), MPS für Apple-Silizium (device=mps).

Weitere Informationen zum Exportvorgang findest du auf der Ultralytics-Dokumentationsseite zum Export.

Exportierte YOLO26-NCNN-Modelle bereitstellen#

Nach dem Export deiner Ultralytics YOLO26-Modelle in das NCNN-Format kannst du sie wie im obigen Nutzungsbeispiel mit der Methode YOLO("yolo26n_ncnn_model/") bereitstellen. Plattformbezogene Anweisungen zur Bereitstellung findest du in den folgenden Ressourcen:

  • Android: Erstelle NCNN-Modelle und integriere sie für die Objekterkennung in Android-Anwendungen.

  • macOS: Stelle NCNN-Modelle auf macOS-Systemen bereit.

  • Linux: Stelle NCNN-Modelle auf Linux-Geräten wie Raspberry Pi und ähnlichen eingebetteten Systemen bereit.

  • Windows x64: Stelle NCNN-Modelle unter Windows x64 mit Visual Studio bereit.

Zusammenfassung#

Diese Anleitung hat den Export von Ultralytics YOLO26-Modellen in das NCNN-Format behandelt, um die Effizienz und Geschwindigkeit auf ressourcenbeschränkten Geräten zu verbessern.

Weitere Informationen findest du in der offiziellen NCNN-Dokumentation. Weitere Exportoptionen findest du auf unserer Integrationsleitfadenseite.

FAQ#

  • So exportierst du dein Ultralytics YOLO26-Modell in das NCNN-Format:

    • Python: Verwende die Methode export aus 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'

    Ausführliche Exportoptionen findest du in der Dokumentation zu Export.

  • Der Export deiner Ultralytics YOLO26-Modelle in das NCNN-Format bietet mehrere Vorteile:

    • Effizienz: NCNN-Modelle sind für mobile und eingebettete Geräte optimiert und gewährleisten auch bei begrenzten Rechenressourcen eine hohe Leistung.
    • Quantisierung: NCNN unterstützt Techniken wie die Quantisierung, die die Modellgeschwindigkeit verbessern und den Speicherbedarf reduzieren.
    • Breite Kompatibilität: Du kannst NCNN-Modelle auf mehreren Plattformen bereitstellen, darunter Android, iOS, Linux und macOS.
    • Vulkan-GPU-Beschleunigung: Nutze die GPU-Beschleunigung über Vulkan auf AMD-, Intel- und anderen GPUs ohne NVIDIA für eine schnellere Inferenz.

    Weitere Informationen findest du im Abschnitt Warum in das NCNN-Format exportieren?.

  • NCNN wurde von Tencent entwickelt und speziell für mobile Plattformen optimiert. Zu den wichtigsten Gründen für die Verwendung von NCNN gehören:

    • Hohe Leistung: Für eine effiziente und schnelle Verarbeitung auf mobilen CPUs entwickelt.
    • Plattformübergreifend: Mit beliebten Frameworks wie TensorFlow und ONNX kompatibel, wodurch sich Modelle leichter plattformübergreifend konvertieren und bereitstellen lassen.
    • Unterstützung durch die Community: Eine aktive Community sorgt für kontinuierliche Verbesserungen und Aktualisierungen.

    Weitere Informationen findest du im Abschnitt Wichtige Merkmale von NCNN-Modellen.

  • NCNN ist vielseitig und unterstützt verschiedene Plattformen:

    • Mobilgeräte: 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 bessere Leistung auf Raspberry Pi solltest du das NCNN-Format in Betracht ziehen, wie in unserem Raspberry-Pi-Leitfaden beschrieben.

  • So stellst du deine YOLO26-Modelle auf Android bereit:

    1. Für Android erstellen: Befolge den Leitfaden NCNN für Android erstellen.
    2. In deine App integrieren: Verwende das NCNN Android SDK, um das exportierte Modell für eine effiziente Inferenz auf dem Gerät in deine Anwendung zu integrieren.

    Ausführliche Anweisungen findest du unter Exportierte YOLO26-NCNN-Modelle bereitstellen.

    Weitere fortgeschrittene Anleitungen und Anwendungsfälle findest du im Ultralytics-Leitfaden zur Bereitstellung.

  • NCNN unterstützt Vulkan für die GPU-Beschleunigung auf AMD-, Intel- und anderen GPUs ohne NVIDIA. 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 device

    Gib bei Systemen mit mehreren GPUs 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 Informationen findest du im Abschnitt Vulkan-GPU-Beschleunigung.

Kommentare