Zum Inhalt springen

Optimierend YOLOv8 Schlussfolgerungen mit Neural MagicDeepSparse-Engine

When deploying object detection models like Ultralytics YOLOv8 on various hardware, you can bump into unique issues like optimization. This is where YOLOv8's integration with Neural Magic's DeepSparse Engine steps in. It transforms the way YOLOv8 models are executed and enables GPU-level performance directly on 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

  • High Performance on Standard CPUs: Delivers GPU-like performance on CPUs, providing a more accessible and cost-effective option for various applications.

  • 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.

  • Locality of Reference: DeepSparse uses a unique execution method, breaking the network into Tensor Columns. These columns are executed depth-wise, fitting entirely within the CPU's cache. This approach mimics the brain's efficiency, minimizing data movement and maximizing the CPU's cache use.

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 Magic's DeepSparse Engine is an inference runtime designed to optimize the execution of neural networks on CPUs through advanced techniques such as sparsity, pruning, and quantization. By integrating DeepSparse with YOLOv8, you can achieve GPU-like performance on standard CPUs, significantly enhancing inference speed, model efficiency, and overall performance while maintaining accuracy. For more details, check out the Neural Magic's DeepSparse section.

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.
  • High Performance on Standard CPUs: Offers GPU-like performance on cost-effective 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