Zum Inhalt springen

Ultralytics YOLO NCNN Export

Die Bereitstellung von Computer-Vision-Modellen auf Geräten mit begrenzter Rechenleistung, wie mobilen oder eingebetteten Systemen, erfordert eine sorgfältige Formatauswahl. Die Verwendung eines optimierten Formats stellt sicher, dass selbst ressourcenbeschränkte Geräte fortschrittliche Computer-Vision-Aufgaben effizient bewältigen können.

Der Export in das NCNN-Format ermöglicht es Ihnen, Ihre Ultralytics YOLO26-Modelle für schlanke, gerätebasierte Anwendungen zu optimieren. Dieser Leitfaden behandelt, wie Sie Ihre Modelle in das NCNN-Format konvertieren, um die Leistung auf mobilen und eingebetteten Geräten zu verbessern.

Warum nach NCNN exportieren?

NCNN -Framework für neuronale Netze

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, was es zu einer ausgezeichneten Wahl für die Entwicklung KI-gestützter Anwendungen macht.

Hauptmerkmale von NCNN-Modellen

NCNN-Modelle bieten mehrere Schlüsselmerkmale, die gerätebasiertes maschinelles Lernen ermöglichen und Entwicklern helfen, Modelle auf mobilen, eingebetteten und Edge-Geräten bereitzustellen:

  • Effizient und Hochleistungsfähig: NCNN-Modelle sind leichtgewichtig und für mobile und eingebettete Geräte wie Raspberry Pi mit begrenzten Ressourcen optimiert, während sie eine hohe Genauigkeit bei Computer-Vision-Aufgaben beibehalten.

  • 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 gängigen Deep-Learning-Frameworks wie TensorFlow, Caffe und ONNX kompatibel, was Entwicklern ermöglicht, bestehende Modelle und Workflows zu nutzen.

  • Benutzerfreundlichkeit: NCNN bietet benutzerfreundliche Tools zur Konvertierung von Modellen zwischen Formaten, was eine reibungslose Interoperabilität über verschiedene Entwicklungsumgebungen hinweg gewährleistet.

  • Vulkan GPU-Beschleunigung: NCNN unterstützt Vulkan für GPU-beschleunigte Inferenz über mehrere Anbieter hinweg, einschließlich AMD, Intel und anderer Nicht-NVIDIA GPUs, was eine Hochleistungsbereitstellung 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, ermöglicht eine nahtlose Integration in mobile Anwendungen für effiziente Inferenz auf dem Gerät.

  • 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 unzureichend ist, kann NCNN erhebliche Leistungsverbesserungen bieten.

  • 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 die GPU-Beschleunigung durch Vulkan, was eine Hochleistungs-Inferenz auf einer Vielzahl von GPUs, einschließlich AMD, Intel und anderen Nicht-NVIDIA Grafikkarten, ermöglicht. Dies ist besonders nützlich für:

  • GPU-Unterstützung über mehrere Anbieter hinweg: Im Gegensatz zu CUDA, das auf NVIDIA GPUs beschränkt ist, funktioniert Vulkan über mehrere GPU-Anbieter hinweg.
  • Multi-GPU-Systeme: Wählen Sie ein bestimmtes Vulkan-Gerät in Systemen mit mehreren GPUs aus, indem Sie device="vulkan:0", device="vulkan:1", etc.
  • Edge- und Desktop-Bereitstellungen: Nutzen Sie die GPU-Beschleunigung auf Geräten, auf denen CUDA nicht verfügbar ist.

Um die Vulkan-Beschleunigung zu nutzen, geben Sie das Vulkan-Gerät bei der Inferenz 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")
# Run inference with Vulkan GPU acceleration
yolo predict model='./yolo26n_ncnn_model' source='https://ultralytics.com/images/bus.jpg' device=vulkan:0

Vulkan-Anforderungen

Stellen Sie sicher, dass Sie Vulkan-Treiber für Ihre GPU installiert haben. Die meisten modernen GPU-Treiber enthalten standardmäßig Vulkan-Unterstützung. Sie können die Verfügbarkeit von Vulkan mit Tools wie vulkaninfo unter Linux oder dem Vulkan SDK unter Windows.

Export nach NCNN: Konvertierung Ihres YOLO26-Modells

Sie können die Modellkompatibilität und Bereitstellungsflexibilität erweitern, indem Sie YOLO26-Modelle in das NCNN-Format konvertieren.

Installation

Um die erforderlichen Pakete zu installieren, führen Sie Folgendes aus:

Installation

# Install the required package for YOLO26
pip install ultralytics

Für detaillierte Anweisungen und Best Practices siehe den Ultralytics Installationsleitfaden. Sollten Sie auf Schwierigkeiten stoßen, konsultieren Sie unseren Leitfaden für häufige Probleme für Lösungen.

Nutzung

Alle Ultralytics YOLO26-Modelle sind so konzipiert, dass sie den Export sofort unterstützen, was die Integration in Ihren bevorzugten Bereitstellungs-Workflow erleichtert. Sie können die vollständige Liste der unterstützten Exportformate und Konfigurationsoptionen einsehen, um die beste Einrichtung für Ihre Anwendung zu wählen.

Nutzung

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 a YOLO26n PyTorch model to NCNN format
yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'

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

Export-Argumente

ArgumentTypStandardBeschreibung
formatstr'ncnn'Zielformat für das exportierte Modell, das die Kompatibilität mit verschiedenen Deployment-Umgebungen definiert.
imgszint oder tuple640Gewü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.
halfboolFalseAktiviert die FP16-Quantisierung (halbe Präzision), wodurch die Modellgröße reduziert und potenziell die Inferenz auf unterstützter Hardware beschleunigt wird.
batchint1Gibt die Batch-Inferenzgröße des Exportmodells oder die maximale Anzahl von Bildern an, die das exportierte Modell gleichzeitig verarbeitet predict Modus.
devicestrNoneGibt 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 YOLO26 NCNN-Modelle

Nach dem Export Ihrer Ultralytics YOLO26-Modelle in das NCNN-Format können Sie diese mit der YOLO("yolo26n_ncnn_model/") Methode bereitstellen, wie im obigen Anwendungsbeispiel gezeigt. Für plattformspezifische Bereitstellungsanweisungen siehe die folgenden Ressourcen:

  • Android: Erstellen und integrieren Sie NCNN-Modelle für die Objekterkennung in Android-Anwendungen.

  • macOS: Stellen Sie NCNN-Modelle auf macOS-Systemen bereit.

  • Linux: Stellen Sie NCNN-Modelle auf Linux-Geräten bereit, einschließlich Raspberry Pi und ähnlichen eingebetteten Systemen.

  • Windows x64: Stellen Sie NCNN-Modelle auf Windows x64 mit Visual Studio bereit.

Zusammenfassung

Dieser Leitfaden behandelte den Export von Ultralytics YOLO26-Modellen in das NCNN-Format für eine verbesserte Effizienz und Geschwindigkeit auf ressourcenbeschränkten Geräten.

Für weitere Details siehe die offizielle NCNN-Dokumentation. Für andere Exportoptionen besuchen Sie unsere Integrationsleitfaden-Seite.

FAQ

Wie exportiere ich Ultralytics YOLO26-Modelle in das NCNN-Format?

Um Ihr Ultralytics YOLO26-Modell in das NCNN-Format zu exportieren:

  • Python: Verwenden Sie die export Methode aus 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: Verwenden Sie die yolo export Befehl ausführen.

    yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'
    

Für detaillierte Exportoptionen siehe die Export-Dokumentation.

Welche Vorteile bietet der Export von YOLO26-Modellen nach NCNN?

Der Export Ihrer 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 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.
  • Vulkan GPU-Beschleunigung: Nutzen Sie die GPU-Beschleunigung auf AMD-, Intel- und anderen Nicht-NVIDIA-GPUs über Vulkan für schnellere Inferenz.

Für weitere Details siehe den Abschnitt Warum nach NCNN exportieren?.

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.

Für weitere Informationen siehe den Abschnitt Hauptmerkmale von NCNN-Modellen.

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.

Für verbesserte Leistung auf dem Raspberry Pi ziehen Sie die Verwendung des NCNN-Formats in Betracht, wie in unserem Raspberry Pi Leitfaden beschrieben.

Wie kann ich Ultralytics YOLO26 NCNN-Modelle auf Android bereitstellen?

Um Ihre YOLO26-Modelle auf Android bereitzustellen:

  1. Build für Android: Folgen Sie der NCNN Build für Android-Anleitung.
  2. 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.

Detaillierte Anweisungen finden Sie unter Bereitstellung exportierter YOLO26 NCNN-Modelle.

Für fortgeschrittenere Leitfäden und Anwendungsfälle besuchen Sie den Ultralytics Bereitstellungsleitfaden.

Wie nutze ich die Vulkan GPU-Beschleunigung mit NCNN-Modellen?

NCNN unterstützt Vulkan zur GPU-Beschleunigung auf AMD-, Intel- und anderen Nicht-NVIDIA-GPUs. Zur Verwendung von 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

Für Multi-GPU-Systeme geben Sie den Geräteindex an (z. B. vulkan:1 für die zweite GPU). Stellen Sie sicher, dass Vulkan-Treiber für Ihre GPU installiert sind. Siehe die Vulkan GPU-Beschleunigung Abschnitt für weitere Details.



📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 5 Tagen
glenn-jocherlakshanthadRizwanMunawarFaerbitpderrengerlakshanthadUltralyticsAssistantMatthewNoyceabirami-vina

Kommentare