Zum Inhalt springen

Optimierend YOLOv8 Schlussfolgerungen mit Neural MagicDeepSparse-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 YOLOv8 mit der DeepSparse Engine von Neural Magic ins Spiel. Sie verändert die Art und Weise, wie YOLOv8 Modelle ausgeführt werden, und ermöglicht GPU-Level Performance 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 Neural Magic's DeepSparse mit YOLOv8

Bevor Sie sich mit der Bereitstellung befassen YOLOV8 Lassen Sie uns mit DeepSparse die Vorteile der Verwendung von DeepSparse verstehen. Einige wichtige 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 eine 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 von ist von der Effizienz des menschlichen Gehirns bei der Berechnung neuronaler Netze inspiriert. Es übernimmt zwei Schlüsselprinzipien aus dem Gehirn:

  • 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 Spalten aufgeteilt wird. Diese Spalten werden in der Tiefe ausgeführt und passen vollständig in den Cache von CPU. Dieser Ansatz ahmt die Effizienz des Gehirns nach, indem er die Datenbewegungen minimiert und die Nutzung des Caches von 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 Neural Magic's DeepSparse Engine untersucht. Er zeigt auf, wie diese Integration die Leistung von YOLOv8 auf CPU Plattformen verbessert und GPU Effizienz und fortschrittliche Sparsity-Techniken für neuronale Netzwerke bietet.

Ausführlichere Informationen und erweiterte Nutzungsmöglichkeiten findest du in der DeepSparse-Dokumentation unter Neural Magic. Schau dir auch die Dokumentation von Neural Magic zur 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.

FAQ

Was ist die DeepSparse Engine von Neural Magic und wie optimiert sie die Leistung von YOLOv8 ?

Neural MagicDie DeepSparse Engine ist eine Inferenz-Laufzeitumgebung, die die Ausführung neuronaler Netze auf CPUs durch fortschrittliche Techniken wie Sparsity, Pruning und Quantisierung optimiert. Durch die Integration von DeepSparse mit YOLOv8 erreichst du eine GPU-ähnliche Leistung auf Standard-CPUs, die die Inferenzgeschwindigkeit, Modelleffizienz und Gesamtleistung bei gleichbleibender Genauigkeit deutlich erhöht. Weitere Einzelheiten findest du unter Neural Magic im Abschnitt DeepSparse.

Wie kann ich die benötigten Pakete installieren, um YOLOv8 mit Neural Magic's DeepSparse einzusetzen?

Die Installation der Pakete, die du brauchst, um YOLOv8 mit DeepSparse von Neural Magic einzusetzen, ist ganz einfach. Du kannst sie ganz einfach mit dem CLI installieren. Hier ist der Befehl, den du ausführen musst:

pip install deepsparse[yolov8]

Nach der Installation folgst du den Schritten im Abschnitt Installation, um deine Umgebung einzurichten und DeepSparse mit YOLOv8 zu nutzen.

Wie konvertiere ich YOLOv8 Modelle in das Format ONNX für die Verwendung mit DeepSparse?

Um YOLOv8 Modelle in das ONNX Format zu konvertieren, das für die Kompatibilität mit DeepSparse erforderlich ist, kannst du den folgenden CLI Befehl verwenden:

yolo task=detect mode=export model=yolov8n.pt format=onnx opset=13

Dieser Befehl exportiert dein YOLOv8 Modell (yolov8n.pt) in ein Format (yolov8n.onnx), die von der DeepSparse Engine genutzt werden können. Weitere Informationen zum Modellexport findest du in der Abschnitt Modellexport.

Wie kann ich die Leistung von YOLOv8 auf der DeepSparse Engine messen?

Das Benchmarking der Leistung von YOLOv8 auf DeepSparse hilft dir, den Durchsatz und die Latenz zu analysieren, um sicherzustellen, dass dein Modell optimiert ist. Du kannst den folgenden CLI Befehl verwenden, um einen Benchmark durchzuführen:

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

Dieser Befehl liefert dir wichtige Leistungskennzahlen. Weitere Informationen findest du im Abschnitt Benchmarking der Leistung.

Warum sollte ich Neural Magic's DeepSparse mit YOLOv8 für Objekterkennungsaufgaben verwenden?

Die Integration von Neural Magic's DeepSparse mit YOLOv8 bietet mehrere Vorteile:

  • Verbesserte Inferenzgeschwindigkeit: Erreicht bis zu 525 FPS, was die Fähigkeiten von YOLOv8 erheblich beschleunigt.
  • Optimierte Modelleffizienz: Verwendet Sparsity-, Pruning- und Quantisierungstechniken, um die Modellgröße und den Rechenaufwand zu reduzieren und gleichzeitig die Genauigkeit zu erhalten.
  • Hohe Leistung auf Standard-CPUs: Bietet GPU-ähnliche Leistung auf kostengünstiger CPU Hardware.
  • Optimierte Integration: Benutzerfreundliche Tools für eine einfache Bereitstellung und Integration.
  • Flexibilität: Unterstützt sowohl Standard- als auch Sparsamkeits-optimierte YOLOv8 Modelle.
  • Kosteneffektiv: Reduziert die Betriebskosten durch effiziente Ressourcennutzung.

Einen tieferen Einblick in diese Vorteile erhältst du im Abschnitt Vorteile der Integration von Neural Magic's DeepSparse mit YOLOv8 .



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

Kommentare