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