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 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 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-03-03
Autoren: glenn-jocher (2), abirami-vina (1)

Kommentare