Ultralytics YOLO27:
Integrationen

Ultralytics YOLOv5 mit DeepSparse von Neural Magic für GPU-Leistung auf CPUs bereitstellen

Optimiere das Training und die Bereitstellung von Ultralytics-YOLOv5-Modellen mit DeepSparse von Neural Magic und erreiche GPU-Leistung auf CPUs. Erzielt schnellere, skalierbare Bereitstellungen von YOLOv5.

NUNuvola Ladi6 min read
Ultralytics YOLOv5 mit DeepSparse von Neural Magic auf CPUs bereitstellen

Möchtest du das Training und die Bereitstellung deiner YOLOv5-Modelle beschleunigen? Wir haben die passende Lösung! Lerne unseren neuesten Partner Neural Magic kennen. Da Neural Magic Softwaretools entwickelt, die höchste Modellleistung und einfache Arbeitsabläufe in den Mittelpunkt stellen, ist es nur logisch, dass wir gemeinsam eine Lösung anbieten, die den Bereitstellungsprozess für YOLOv5 noch besser macht.

DeepSparse ist die CPU-Inferenzlaufzeit von Neural Magic. Sie nutzt Sparsität und Arithmetik mit niedriger Genauigkeit in neuronalen Netzen, um außergewöhnliche Leistung auf handelsüblicher Hardware zu bieten. Im Vergleich zur ONNX Runtime als Referenz bietet DeepSparse beispielsweise auf demselben Rechner eine 5,8-fache Beschleunigung für YOLOv5s!

Durchsatzvergleich von Ultralytics YOLOv5 mit DeepSparse

Zum ersten Mal können deine Deep-Learning-Workloads die Leistungsanforderungen der Produktion erfüllen – ohne die Komplexität und Kosten von Hardwarebeschleunigern. Einfach gesagt bietet dir DeepSparse die Leistung von GPUs und die Einfachheit von Software:

  1. Flexible Bereitstellungen: Konsistent in der Cloud, im Rechenzentrum und am Edge mit Hardware von beliebigen Anbietern ausführen
  2. Unbegrenzte Skalierbarkeit: Mit standardmäßigem Kubernetes horizontal skalieren, vertikal auf Hunderte von Kernen erweitern oder vollständig abstrahiert mit Serverless ausführen
  3. Einfache Integration: Klare APIs verwenden, um dein Modell in eine Anwendung zu integrieren und es in der Produktion zu überwachen

GPU-Leistung auf handelsüblichen CPUs erreichen#

DeepSparse nutzt die Sparsität von Modellen, um seine Leistungssteigerung zu erzielen.

Sparsifizierung durch Pruning und Quantisierung ermöglicht eine Größenordnung an Reduktionen bei der Größe und den für die Ausführung eines Netzes erforderlichen Berechnungen, während eine hohe Genauigkeit erhalten bleibt. DeepSparse berücksichtigt die Sparsität, überspringt Multiplikationen und Additionen mit null und reduziert den Berechnungsaufwand bei einem Forward Pass. Da sparse Berechnungen speichergebunden sind, führt DeepSparse das Netz tiefenweise aus und zerlegt das Problem in Tensor-Spalten – vertikale Berechnungsstreifen, die in den Cache passen.

DeepSparse- und Ultralytics-YOLOv5-Netzwerk

Sparse Netzwerke mit komprimierten Berechnungen, die tiefenweise im Cache ausgeführt werden, ermöglichen es DeepSparse, GPU-Leistung auf CPUs zu liefern!

Eine sparse Version von Ultralytics YOLOv5 erstellen, die mit benutzerdefinierten Daten trainiert wurde#

Das Open-Source-Modellrepository SparseZoo von Neural Magic enthält vorab sparsifizierte Checkpoints für jedes YOLOv5-Modell. Mit SparseML, das in Ultralytics integriert ist, kannst du einen sparsifizierten Checkpoint mit einem einzigen CLI-Befehl anhand deiner Daten feinabstimmen.

Ultralytics YOLOv5 mit DeepSparse bereitstellen#

DeepSparse installieren#

Führe den folgenden Befehl aus, um DeepSparse zu installieren. Wir empfehlen, eine virtuelle Umgebung mit Python zu verwenden.

pip install deepsparse[server,yolo,onnxruntime]

Eine ONNX-Datei abrufen#

DeepSparse akzeptiert ein Modell im ONNX-Format, das entweder als Folgendes übergeben wird:

  • Ein lokaler Pfad zu einem ONNX-Modell
  • Ein SparseZoo-Stub, der ein Modell in SparseZoo identifiziert

Wir vergleichen das standardmäßige dichte YOLOv5s mit dem geprunten und quantisierten YOLOv5s, die durch die folgenden SparseZoo-Stubs identifiziert werden:

zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none
zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none

Ein Modell bereitstellen#

DeepSparse bietet praktische APIs, um dein Modell in eine Anwendung zu integrieren.

Um die folgenden Beispiele für die Bereitstellung auszuprobieren, lade ein Beispielbild herunter und speichere es mit dem folgenden Befehl als basilica.jpg:

wget -O basilica.jpg https://raw.githubusercontent.com/neuralmagic/deepsparse/main/src/deepsparse/yolo/sample_images/basilica.jpg

Python-API#

Pipelines kapseln die Vorverarbeitung und Nachverarbeitung der Ausgaben rund um die Laufzeitumgebung und bieten eine übersichtliche Schnittstelle, um DeepSparse zu einer Anwendung hinzuzufügen. Die DeepSparse-Ultralytics-Integration enthält eine sofort einsatzbereite Pipeline, die Rohbilder akzeptiert und die Begrenzungsrahmen ausgibt.

Erstelle eine Pipeline und führe die Inferenz aus:

from deepsparse import Pipeline

# list of images in local filesystem
images = ["basilica.jpg"]

# create Pipeline
model_stub = "zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none"
yolo_pipeline = Pipeline.create(
    task="yolo",
    model_path=model_stub,
)

# run inference on images, receive bounding boxes + classes
pipeline_outputs = yolo_pipeline(images=images, iou_thres=0.6, conf_thres=0.001)
print(pipeline_outputs)

Wenn du die Anwendung in der Cloud ausführst, kann ein Fehler auftreten, dass open-cv libGL.so.1 nicht finden kann. Mit dem folgenden Befehl installierst du die Bibliothek unter Ubuntu:

apt-get install libgl1-mesa-glx

HTTP-Server#

Der DeepSparse Server läuft auf dem beliebten FastAPI-Webframework und dem Uvicorn-Webserver. Mit nur einem CLI-Befehl kannst du ganz einfach einen Modellservice-Endpunkt mit DeepSparse einrichten. Der Server unterstützt jede Pipeline von DeepSparse, einschließlich der Objekterkennung mit Ultralytics YOLOv5. Dadurch kannst du Rohbilder an den Endpunkt senden und die Begrenzungsrahmen empfangen.

Starte den Server mit dem geprunten und quantisierten YOLOv5s:

deepsparse.server \
  --task yolo \
  --model_path zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none

Eine Beispielanfrage mit dem requests-Paket von Python:

import requests, json

# list of images for inference (local files on client side)
path = ['basilica.jpg']
files = [('request', open(img, 'rb')) for img in path]

# send request over HTTP to /predict/from_files endpoint
url = 'http://0.0.0.0:5543/predict/from_files'
resp = requests.post(url=url, files=files)

# response is returned in JSON
annotations = json.loads(resp.text)  # dictionary of annotation results
bounding_boxes = annotations["boxes"]
labels = annotations["labels"]

Annotate-CLI#

Du kannst auch den Befehl annotate verwenden, damit die Engine ein annotiertes Foto auf der Festplatte speichert. Verwende --source 0, um deinen Live-Webcam-Feed zu annotieren!

deepsparse.object_detection.annotate --model_filepath zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none --source basilica.jpg

Durch die Ausführung des obigen Befehls wird ein Ordner annotation-results erstellt und das annotierte Bild darin gespeichert.

Annotierte Basilika mit Ultralytics YOLOv5

Leistung benchmarken#

Mit dem Benchmarkskript von DeepSparse vergleichen wir den Durchsatz von DeepSparse mit dem Durchsatz der ONNX Runtime für YOLOv5s.

Die Benchmarks wurden auf einer AWS-c6i.8xlarge-Instanz mit 16 Kernen ausgeführt.

Leistungsvergleich bei Batchgröße 32#

Referenz der ONNX Runtime#

Bei einer Batchgröße von 32 erreicht die ONNX Runtime mit dem standardmäßigen dichten YOLOv5s 42 Bilder/s:

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 32 -nstreams 1 -e onnxruntime

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Size: 32 Scenario: sync Throughput (items/sec): 41.9025

Dichte Leistung mit DeepSparse#

DeepSparse erzielt zwar seine beste Leistung mit optimierten sparsifizierten Modellen, funktioniert aber auch gut mit dem standardmäßigen dichten YOLOv5s.

Bei einer Batchgröße von 32 erreicht DeepSparse mit dem standardmäßigen dichten YOLOv5s 70 Bilder/s – eine 1,7-fache Leistungssteigerung gegenüber ORT!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 32 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Size: 32 Scenario: sync Throughput (items/sec): 69.5546

Sparse Leistung mit DeepSparse#

Wenn das Modell sparsifiziert wird, fallen die Leistungsgewinne von DeepSparse gegenüber der ONNX Runtime noch deutlicher aus.

Bei einer Batchgröße von 32 erreicht DeepSparse mit dem geprunten und quantisierten YOLOv5s 241 Bilder/s – eine 5,8-fache Leistungssteigerung gegenüber ORT!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none -s sync -b 32 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none Batch Size: 32 Scenario: sync Throughput (items/sec): 241.2452

Leistungsvergleich bei Batchgröße 1#

DeepSparse kann auch im latenzsensitiven Szenario mit Batchgröße 1 eine Beschleunigung gegenüber der ONNX Runtime erzielen.

Referenz der ONNX Runtime#

Bei einer Batchgröße von 1 erreicht die ONNX Runtime mit dem standardmäßigen, dichten YOLOv5s 48 Bilder/s.

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 1 -nstreams 1 -e onnxruntime

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Size: 1 Scenario: sync Throughput (items/sec): 48.0921

Sparse Leistung mit DeepSparse#

Wenn das Modell sparsifiziert wird, fallen die Leistungsgewinne von DeepSparse gegenüber der ONNX Runtime noch deutlicher aus.

Bei einer Batchgröße von 1 erreicht DeepSparse mit dem geprunten und quantisierten YOLOv5s 135 Bilder/s – eine 2,8-fache Leistungssteigerung gegenüber der ONNX Runtime!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none -s sync -b 1 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none Batch Size: 1 Scenario: sync Throughput (items/sec): 134.9468

Da c6i.8xlarge-Instanzen VNNI-Anweisungen unterstützen, kann der Durchsatz von DeepSparse weiter gesteigert werden, wenn die Gewichte in Blöcken von 4 geprunt werden.

Bei einer Batchgröße von 1 erreicht DeepSparse mit einem in 4er-Blöcke geprunten und quantisierten YOLOv5s 180 Elemente/s – ein 3,7-facher Leistungsgewinn gegenüber der ONNX Runtime!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni -s sync -b 1 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni Batch Size: 1 Scenario: sync Throughput (items/sec): 179.7375

Und voilà! Du bist bereit, deine YOLOv5-Bereitstellung mit DeepSparse zu optimieren.

Mit Ultralytics YOLOv5 und DeepSparse loslegen#

Wenn du mit uns in Kontakt treten möchtest, tritt unserer Community bei und hinterlasse uns deine Fragen und Kommentare. Sieh dir das Ultralytics-YOLOv5-Repository und die vollständige Dokumentation von Neural Magic zur Bereitstellung von YOLOv5 an.

Bei Ultralytics arbeiten wir kommerziell mit anderen Start-ups zusammen, um die Forschung und Entwicklung unserer großartigen Open-Source-Tools wie YOLOv5 zu finanzieren und sie für alle kostenlos zu halten. Dieser Artikel kann Affiliate-Links zu diesen Partnern enthalten.

Explore solutions

Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeiterkenntnisse für Landwirtschaft, Aquakultur, Umweltüberwachung, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Bringe KI-gestützte Bildverarbeitung mit Ultralytics YOLO-Modellen in die Luftüberwachung. Unterstütze Drohnen, Luft- und Raumfahrt-Workflows, Umweltschutz und Geodatenbranchen mit Computer-Vision-Lösungen.
Mehr erfahren

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision AI unterstützt Perimeterüberwachung, Bedkennung, Kennzeichenerkennung und Arbeitssicherheit.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mache Maschinen mit Ultralytics YOLO-Modellen intelligenter. Vision AI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Computer Vision in der Logistik

Computer Vision in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketinspektion, Sortierung, Fahrzeugverfolgung und Überwachung der Lagersicherheit in Echtzeit.
Mehr erfahren
Computer Vision im Einzelhandel

Computer Vision im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung, Warteschlangenmanagement und aussagekräftigere Einblicke in das Kundenverhalten.
Mehr erfahren
Computer Vision im Gesundheitswesen

Computer Vision im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI im Gesundheitswesen ermöglicht eine schnellere medizinische Bildgebung, intelligentere Diagnosen und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Einhaltung von Vorgaben zur persönlichen Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilindustrie

Computer Vision in der Automobilindustrie

Setze Computer Vision mit Ultralytics YOLO-Modellen in der Automobilindustrie ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Bring Vision AI mit Ultralytics YOLO-Modellen in die intelligente Landwirtschaft. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und intelligentere Erträge.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeiterkenntnisse für Landwirtschaft, Aquakultur, Umweltüberwachung, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Bringe KI-gestützte Bildverarbeitung mit Ultralytics YOLO-Modellen in die Luftüberwachung. Unterstütze Drohnen, Luft- und Raumfahrt-Workflows, Umweltschutz und Geodatenbranchen mit Computer-Vision-Lösungen.
Mehr erfahren

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision AI unterstützt Perimeterüberwachung, Bedkennung, Kennzeichenerkennung und Arbeitssicherheit.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mache Maschinen mit Ultralytics YOLO-Modellen intelligenter. Vision AI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Computer Vision in der Logistik

Computer Vision in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketinspektion, Sortierung, Fahrzeugverfolgung und Überwachung der Lagersicherheit in Echtzeit.
Mehr erfahren
Computer Vision im Einzelhandel

Computer Vision im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung, Warteschlangenmanagement und aussagekräftigere Einblicke in das Kundenverhalten.
Mehr erfahren
Computer Vision im Gesundheitswesen

Computer Vision im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI im Gesundheitswesen ermöglicht eine schnellere medizinische Bildgebung, intelligentere Diagnosen und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Einhaltung von Vorgaben zur persönlichen Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilindustrie

Computer Vision in der Automobilindustrie

Setze Computer Vision mit Ultralytics YOLO-Modellen in der Automobilindustrie ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Bring Vision AI mit Ultralytics YOLO-Modellen in die intelligente Landwirtschaft. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und intelligentere Erträge.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeiterkenntnisse für Landwirtschaft, Aquakultur, Umweltüberwachung, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Bringe KI-gestützte Bildverarbeitung mit Ultralytics YOLO-Modellen in die Luftüberwachung. Unterstütze Drohnen, Luft- und Raumfahrt-Workflows, Umweltschutz und Geodatenbranchen mit Computer-Vision-Lösungen.
Mehr erfahren

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision AI unterstützt Perimeterüberwachung, Bedkennung, Kennzeichenerkennung und Arbeitssicherheit.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mache Maschinen mit Ultralytics YOLO-Modellen intelligenter. Vision AI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Computer Vision in der Logistik

Computer Vision in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketinspektion, Sortierung, Fahrzeugverfolgung und Überwachung der Lagersicherheit in Echtzeit.
Mehr erfahren
Computer Vision im Einzelhandel

Computer Vision im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung, Warteschlangenmanagement und aussagekräftigere Einblicke in das Kundenverhalten.
Mehr erfahren
Computer Vision im Gesundheitswesen

Computer Vision im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI im Gesundheitswesen ermöglicht eine schnellere medizinische Bildgebung, intelligentere Diagnosen und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Einhaltung von Vorgaben zur persönlichen Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilindustrie

Computer Vision in der Automobilindustrie

Setze Computer Vision mit Ultralytics YOLO-Modellen in der Automobilindustrie ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Bring Vision AI mit Ultralytics YOLO-Modellen in die intelligente Landwirtschaft. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und intelligentere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Beginne deine Reise in die Zukunft des maschinellen Lernens