Zum Inhalt springen

Optimierung von YOLOv8 Inferenzen mit Neural Magic's DeepSparse Engine

Beim Einsatz von Objekterkennungsmodellen wie Ultralytics YOLOv8 auf unterschiedlicher Hardware eingesetzt werden, kann es zu besonderen Problemen bei der Optimierung kommen. Hier kommt die Integration von YOLOv8mit der DeepSparse Engine von Neural Magicins Spiel. Sie verändert die Art und Weise, wie YOLOv8 Modelle ausgeführt werden und ermöglicht eine Leistung auf GPU-Niveau direkt auf CPUs.

Dieser Leitfaden zeigt dir, wie du YOLOv8 mit DeepSparse von Neural Magic einsetzt, wie du Inferenzen durchführst und wie du einen Leistungsvergleich durchführst, um sicherzustellen, dass die Leistung optimiert ist.

Neural Magic's DeepSparse

Neural Magic's DeepSparse Übersicht

Neural MagicDeepSparse ist eine Inferenz-Laufzeit, die die Ausführung von neuronalen Netzen auf CPUs optimiert. Sie wendet fortschrittliche Techniken wie Sparsity, Pruning und Quantisierung an, um den Rechenaufwand drastisch zu reduzieren und gleichzeitig die Genauigkeit zu erhalten. DeepSparse bietet eine flexible Lösung für die effiziente und skalierbare Ausführung neuronaler Netze auf verschiedenen Geräten.

Vorteile der Integration von Neural Magic's DeepSparse mit YOLOv8

Bevor wir uns ansehen, wie man YOLOV8 mit DeepSparse einsetzt, sollten wir die Vorteile von DeepSparse verstehen. Einige der wichtigsten Vorteile sind:

  • Verbesserte Inferenzgeschwindigkeit: Erreicht bis zu 525 FPS (auf YOLOv8n) und beschleunigt damit die Schlussfolgerungen von YOLOv8 im Vergleich zu herkömmlichen Methoden erheblich.

Erhöhte Inferenzgeschwindigkeit

  • Optimierte Modelleffizienz: Mithilfe von Pruning und Quantisierung wird die Effizienz von YOLOv8 erhöht, indem die Modellgröße und der Rechenaufwand reduziert werden, während die Genauigkeit erhalten bleibt.

Optimierte Modell-Effizienz

  • Hohe Leistung auf Standard-CPUs: Bietet GPU-ähnliche Leistung auf CPUs und damit eine leichter zugängliche und kostengünstige Option für verschiedene Anwendungen.

  • Optimierte Integration und Bereitstellung: Bietet benutzerfreundliche Tools für die einfache Integration von YOLOv8 in Anwendungen, einschließlich Bild- und Videokommentarfunktionen.

  • Unterstützung für verschiedene Modelltypen: Kompatibel mit Standard- und sparsamkeitsoptimierten Modellen YOLOv8 , was die Flexibilität beim Einsatz erhöht.

  • Kosteneffiziente und skalierbare Lösung: Reduziert die Betriebskosten und bietet eine skalierbare Bereitstellung von fortschrittlichen Objekterkennungsmodellen.

Wie funktioniert die DeepSparse-Technologie von Neural Magic?

Neural MagicDie Deep Sparse-Technologie ist von der Effizienz des menschlichen Gehirns bei der Berechnung neuronaler Netze inspiriert. Sie macht sich zwei wichtige Prinzipien des Gehirns zu eigen:

  • Sparsamkeit: Bei der Sparsifizierung werden überflüssige Informationen aus Deep-Learning-Netzwerken entfernt, was zu kleineren und schnelleren Modellen führt, ohne die Genauigkeit zu beeinträchtigen. Diese Technik reduziert die Größe des Netzwerks und den Rechenbedarf erheblich.

  • Lokalität der Referenz: DeepSparse verwendet eine einzigartige Ausführungsmethode, bei der das Netzwerk in Tensor Columns unterteilt wird. Diese Spalten werden in der Tiefe ausgeführt und passen vollständig in den Cache der CPU. Dieser Ansatz ahmt die Effizienz des Gehirns nach, indem er die Datenbewegungen minimiert und die Nutzung des Cache der CPU maximiert.

So funktioniert Neural Magic's DeepSparse Technologie

Weitere Details zur Funktionsweise der DeepSparse-Technologie von Neural Magic findest du in ihrem Blogbeitrag.

Eine Sparse-Version von YOLOv8 erstellen, die auf einem benutzerdefinierten Datensatz trainiert wurde

SparseZoo, ein Open-Source-Modell-Repository von Neural Magic, bietet eine Sammlung von vorgesparsten YOLOv8 Modellprüfpunkten. Mit SparseML, das nahtlos in Ultralytics integriert ist, können Nutzer diese Sparse-Checkpoints mühelos über eine einfache Befehlszeilenschnittstelle auf ihre spezifischen Datensätze abstimmen.

Weitere Informationen findest du in der SparseML-Dokumentation unter Neural Magic YOLOv8 .

Verwendung: Einsatz von YOLOV8 mit DeepSparse

Der Einsatz von YOLOv8 mit Neural Magic's DeepSparse erfordert ein paar einfache Schritte. Bevor du dich mit den Anwendungshinweisen beschäftigst, solltest du dir die verschiedenen Modelle vonYOLOv8 ansehen, die von Ultralytics angeboten werden. Das wird dir helfen, das am besten geeignete Modell für deine Projektanforderungen auszuwählen. Hier erfährst du, wie du loslegen kannst.

Schritt 1: Installation

Um die benötigten Pakete zu installieren, führe sie aus:

Installation

# Install the required packages
pip install deepsparse[yolov8]

Schritt 2: Exportieren von YOLOv8 in das Format ONNX

Die DeepSparse Engine benötigt YOLOv8 Modelle im Format ONNX . Der Export deines Modells in dieses Format ist für die Kompatibilität mit DeepSparse unerlässlich. Benutze den folgenden Befehl, um YOLOv8 Modelle zu exportieren:

Modell Export

# Export YOLOv8 model to ONNX format
yolo task=detect mode=export model=yolov8n.pt format=onnx opset=13

Dieser Befehl speichert die yolov8n.onnx Modell auf deiner Festplatte.

Schritt 3: Einsetzen und Ausführen von Schlussfolgerungen

Wenn du dein YOLOv8 Modell im ONNX Format hast, kannst du mit DeepSparse Inferenzen erstellen und ausführen. Das geht ganz einfach über die intuitive Python API:

Einsetzen und Ausführen von Schlussfolgerungen

from deepsparse import Pipeline

# Specify the path to your YOLOv8 ONNX model
model_path = "path/to/yolov8n.onnx"

# Set up the DeepSparse Pipeline
yolo_pipeline = Pipeline.create(task="yolov8", model_path=model_path)

# Run the model on your images
images = ["path/to/image.jpg"]
pipeline_outputs = yolo_pipeline(images=images)

Schritt 4: Benchmarking der Leistung

Es ist wichtig zu überprüfen, ob dein YOLOv8 Modell auf DeepSparse optimal funktioniert. Du kannst die Leistung deines Modells messen, um Durchsatz und Latenz zu analysieren:

Benchmarking

# Benchmark performance
deepsparse.benchmark model_path="path/to/yolov8n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"

Schritt 5: Zusätzliche Funktionen

DeepSparse bietet zusätzliche Funktionen für die praktische Integration von YOLOv8 in Anwendungen, wie z.B. Bildannotation und Datensatzauswertung.

Zusätzliche Merkmale

# For image annotation
deepsparse.yolov8.annotate --source "path/to/image.jpg" --model_filepath "path/to/yolov8n.onnx"

# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolov8n.onnx"

Wenn du den Befehl annotate ausführst, wird dein angegebenes Bild verarbeitet, Objekte werden erkannt und das annotierte Bild mit Begrenzungsrahmen und Klassifizierungen gespeichert. Das mit Anmerkungen versehene Bild wird in einem Ordner mit den Ergebnissen der Anmerkungen gespeichert. So kannst du dir ein Bild von den Erkennungsfähigkeiten des Modells machen.

Bildkommentar-Funktion

Nachdem du den eval-Befehl ausgeführt hast, erhältst du detaillierte Ausgabemetriken wie Präzision, Recall und mAP (mittlere durchschnittliche Präzision). So erhältst du einen umfassenden Überblick über die Leistung deines Modells auf dem Datensatz. Diese Funktion ist besonders nützlich für die Feinabstimmung und Optimierung deiner YOLOv8 Modelle für bestimmte Anwendungsfälle, um eine hohe Genauigkeit und Effizienz zu gewährleisten.

Zusammenfassung

In diesem Leitfaden wurde die Integration von Ultralytics' YOLOv8 mit der DeepSparse Engine von Neural Magic untersucht. Er zeigt auf, wie diese Integration die Leistung von YOLOv8 auf CPU-Plattformen verbessert, indem sie Effizienz auf GPU-Niveau und fortschrittliche Sparsity-Techniken für neuronale Netze bietet.

Ausführlichere Informationen und erweiterte Nutzungsmöglichkeiten findest du in der DeepSparse-Dokumentation unter Neural Magic. Schau dir auch die Dokumentation von Neural Magiczur Integration mit YOLOv8 an und sieh dir hier eine tolle Session dazu an.

Wenn du mehr über die verschiedenen Integrationsmöglichkeiten von YOLOv8 erfahren möchtest, besuche den Integrationsleitfaden unterUltralytics . Dort findest du eine Reihe weiterer spannender Integrationsmöglichkeiten.



Erstellt 2023-12-30, Aktualisiert 2024-05-18
Autoren: glenn-jocher (4), abirami-vina (1)

Kommentare