YOLO Vision 2026 :
Intégrations

Déploie Ultralytics YOLOv5 avec DeepSparse de Neural Magic pour des performances de classe GPU sur CPU

Booste l'entraînement et le déploiement de ton modèle Ultralytics YOLOv5 avec DeepSparse de Neural Magic pour obtenir des performances de classe GPU sur CPU. Réalise des déploiements YOLOv5 plus rapides et scalables.

NUNuvola Ladi5 min read
Déployer Ultralytics YOLOv5 avec DeepSparse de Neural Magic sur CPU

Tu veux accélérer l'entraînement et le déploiement de tes modèles YOLOv5 ? On s'occupe de tout ! Voici notre nouveau partenaire, Neural Magic. Comme Neural Magic fournit des outils logiciels qui mettent l'accent sur des performances de modèle optimales et la simplicité des flux de travail, il était tout naturel que nous nous unissions pour proposer une solution visant à améliorer encore le processus de déploiement de YOLOv5.

DeepSparse est le moteur d'inférence CPU de Neural Magic qui exploite la parcimonie et l'arithmétique basse précision au sein des réseaux de neurones pour offrir des performances exceptionnelles sur du matériel standard. Par exemple, par rapport à la référence ONNX Runtime, DeepSparse offre une accélération de 5,8x pour YOLOv5s exécuté sur la même machine !

Ultralytics YOLOv5 Throughput Comparison with DeepSparse

Pour la première fois, tes charges de travail de deep learning peuvent répondre aux exigences de performance de la production sans la complexité et les coûts des accélérateurs matériels. Pour faire simple, DeepSparse t'offre les performances des GPU et la simplicité du logiciel :

  1. Déploiements flexibles : Exécute tes modèles de manière cohérente sur le cloud, les centres de données et en périphérie (edge), quel que soit le fournisseur matériel.
  2. Évolutivité infinie : Monte en charge avec Kubernetes standard, verticalement jusqu'à des centaines de cœurs, ou via une abstraction totale avec le serverless.
  3. Intégration facile : Utilise des API propres pour intégrer ton modèle dans une application et le surveiller en production.

Atteins des performances de niveau GPU sur des CPU courants#

DeepSparse tire parti de la sparsité du modèle pour obtenir son gain de performance.

La sparsification par élagage (pruning) et quantification permet de réduire d'un ordre de grandeur la taille et la puissance de calcul nécessaires à l'exécution d'un réseau, tout en maintenant une précision élevée. DeepSparse est conscient de la sparsité, sautant les multiplications-additions par zéro et réduisant la quantité de calcul lors d'une passe avant (forward pass). Puisque le calcul creux est limité par la mémoire, DeepSparse exécute le réseau couche par couche, décomposant le problème en colonnes de tenseurs (Tensor Columns), qui sont des bandes de calcul verticales qui tiennent dans le cache.

DeepSparse and Ultralytics YOLOv5 Network

Les réseaux creux avec calcul compressé, exécutés couche par couche dans le cache, permettent à DeepSparse d'offrir des performances de niveau GPU sur CPU !

Crée une version creuse de Ultralytics YOLOv5 entraînée sur des données personnalisées#

Le dépôt de modèles open source de Neural Magic, SparseZoo, contient des points de contrôle (checkpoints) pré-sparsifiés pour chaque modèle YOLOv5. En utilisant SparseML, qui est intégré à Ultralytics, tu peux affiner un checkpoint creux sur tes données avec une seule commande CLI.

Déploie Ultralytics YOLOv5 avec DeepSparse#

Installe DeepSparse#

Exécute la commande suivante pour installer DeepSparse. Nous te recommandons d'utiliser un environnement virtuel avec Python.

pip install deepsparse[server,yolo,onnxruntime]

Récupère un fichier ONNX#

DeepSparse accepte un modèle au format ONNX, transmis soit sous la forme de :

  • Un chemin local vers un modèle ONNX
  • Un stub SparseZoo qui identifie un modèle dans le SparseZoo

Nous allons comparer le YOLOv5s dense standard au YOLOv5s élagué-quantifié, identifié par les stubs SparseZoo suivants :

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

Déploie un modèle#

DeepSparse propose des API pratiques pour intégrer ton modèle dans une application.

Pour essayer les exemples de déploiement ci-dessous, télécharge une image exemple pour l'essai et enregistre-la sous le nom basilica.jpg avec la commande suivante :

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

API Python#

Les pipelines enveloppent le prétraitement et le post-traitement de sortie autour du moteur d'exécution, offrant une interface propre pour ajouter DeepSparse à une application. L'intégration DeepSparse-Ultralytics inclut un pipeline prêt à l'emploi qui accepte des images brutes et produit les boîtes englobantes (bounding boxes).

Crée un pipeline et lance l'inférence :

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)

Si tu travailles dans le cloud, tu pourrais rencontrer une erreur indiquant qu'OpenCV ne trouve pas libGL.so.1. L'exécution de la commande suivante sur Ubuntu l'installera :

apt-get install libgl1-mesa-glx

Serveur HTTP#

DeepSparse Server fonctionne au-dessus du framework web populaire FastAPI et du serveur web Uvicorn. Avec une seule commande CLI, tu peux facilement configurer un point de terminaison de service de modèle avec DeepSparse. Le serveur prend en charge n'importe quel Pipeline de DeepSparse, y compris la détection d'objets avec Ultralytics YOLOv5, te permettant d'envoyer des images brutes au point de terminaison et de recevoir les boîtes englobantes.

Lance le serveur avec le YOLOv5s élagué-quantifié :

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

Une requête exemple, en utilisant le package requests de 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"]

CLI d'annotation#

Tu peux aussi utiliser la commande annotate pour que le moteur enregistre une photo annotée sur le disque. Essaie --source 0 pour annoter le flux de ta webcam en direct !

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

L'exécution de la commande ci-dessus créera un dossier annotation-results et y enregistrera l'image annotée.

Annotated Basilica with Ultralytics YOLOv5

Analyse de performance#

En utilisant le script de benchmarking de DeepSparse, nous allons comparer le débit de DeepSparse à celui d'ONNX Runtime sur YOLOv5s.

Les benchmarks ont été exécutés sur une instance AWS c6i.8xlarge (16 cœurs).

Comparaison de performance en lot (batch) 32#

Référence ONNX Runtime#

En lot 32, ONNX Runtime atteint 42 images/sec avec le YOLOv5s dense standard :

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

Performance DeepSparse Dense#

Bien que DeepSparse offre ses meilleures performances avec des modèles creux optimisés, il fonctionne également bien avec le YOLOv5s dense standard.

En lot 32, DeepSparse atteint 70 images/sec avec le YOLOv5s dense standard—une amélioration de performance de 1,7x par rapport à 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

Performance DeepSparse Creuse#

Lorsque la sparsité est appliquée au modèle, les gains de performance de DeepSparse par rapport à ONNX Runtime sont encore plus marqués.

En lot 32, DeepSparse atteint 241 images/sec avec le YOLOv5s élagué-quantifié—une amélioration de performance de 5,8x par rapport à 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

Comparaison de performance en lot (batch) 1#

DeepSparse est également capable d'obtenir une accélération par rapport à ONNX Runtime pour le scénario en lot 1, sensible à la latence.

Référence ONNX Runtime#

En lot 1, ONNX Runtime atteint 48 images/sec avec le YOLOv5s standard et dense.

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

Performance DeepSparse Creuse#

Lorsque la sparsité est appliquée au modèle, les gains de performance de DeepSparse par rapport à ONNX Runtime sont encore plus marqués.

En lot 1, DeepSparse atteint 135 images/sec avec le YOLOv5s élagué-quantifié—une amélioration de performance de 2,8x par rapport à 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

Puisque les instances c6i.8xlarge possèdent des instructions VNNI, le débit de DeepSparse peut être poussé davantage si les poids sont élagués par blocs de 4.

En lot 1, DeepSparse atteint 180 éléments/sec avec un YOLOv5s élagué-quantifié par bloc de 4—un gain de performance de 3,7x par rapport à 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

Et voilà ! Tu es prêt à optimiser ton déploiement de YOLOv5 avec DeepSparse.

Commence avec Ultralytics YOLOv5 et DeepSparse#

Pour entrer en contact avec nous, rejoins notre communauté et laisse-nous tes questions et commentaires. Consulte le dépôt Ultralytics YOLOv5 ainsi que la documentation complète de Neural Magic pour le déploiement de YOLOv5.

Chez Ultralytics, nous collaborons commercialement avec d'autres startups pour nous aider à financer la recherche et le développement de nos formidables outils open source, comme YOLOv5, afin de les maintenir gratuits pour tous. Cet article peut contenir des liens d'affiliation vers ces partenaires.

Explore solutions

Real-time AI that works with your team

IA dans la robotique

Équipe tes machines plus intelligentes avec les modèles Ultralytics YOLO. La vision par IA dans la robotique propulse la navigation autonome, la perception, le suivi d'objets et le contrôle en temps réel.
En savoir plus
Real-time AI that works with your team

IA dans la logistique

Simplifie la logistique avec les modèles Ultralytics YOLO. La vision par IA permet l'inspection des colis, le tri, le suivi des véhicules et la surveillance de la sécurité des entrepôts en temps réel.
En savoir plus
Real-time AI that works with your team

IA dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA alimente le suivi des stocks, la surveillance des étagères, la gestion des files d'attente et des informations plus intelligentes sur les clients.
En savoir plus
Real-time AI that works with your team

IA dans la santé

Construis des solutions de santé avec les modèles Ultralytics YOLO. L'IA de vision dans la santé permet une imagerie médicale plus rapide, des diagnostics plus intelligents et une surveillance des patients.
En savoir plus
Real-time AI that works with your team

IA dans la fabrication

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA favorise le contrôle qualité, la détection des défauts, la conformité aux EPI et l'automatisation des chaînes de montage.
En savoir plus
Real-time AI that works with your operation

IA dans l'automobile

Applique la vision par ordinateur dans l'automobile avec les modèles Ultralytics YOLO. L'IA de vision améliore la sécurité routière, l'assistance à la conduite et l'automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Real-time AI tailored to your operation

IA en agriculture

Intègre l'IA de vision à l'agriculture intelligente avec les modèles Ultralytics YOLO. Optimise la surveillance des cultures, le suivi du bétail et l'agriculture de précision pour des rendements plus élevés et plus intelligents.
En savoir plus
Real-time AI that works with your team

IA dans la robotique

Équipe tes machines plus intelligentes avec les modèles Ultralytics YOLO. La vision par IA dans la robotique propulse la navigation autonome, la perception, le suivi d'objets et le contrôle en temps réel.
En savoir plus
Real-time AI that works with your team

IA dans la logistique

Simplifie la logistique avec les modèles Ultralytics YOLO. La vision par IA permet l'inspection des colis, le tri, le suivi des véhicules et la surveillance de la sécurité des entrepôts en temps réel.
En savoir plus
Real-time AI that works with your team

IA dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA alimente le suivi des stocks, la surveillance des étagères, la gestion des files d'attente et des informations plus intelligentes sur les clients.
En savoir plus
Real-time AI that works with your team

IA dans la santé

Construis des solutions de santé avec les modèles Ultralytics YOLO. L'IA de vision dans la santé permet une imagerie médicale plus rapide, des diagnostics plus intelligents et une surveillance des patients.
En savoir plus
Real-time AI that works with your team

IA dans la fabrication

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA favorise le contrôle qualité, la détection des défauts, la conformité aux EPI et l'automatisation des chaînes de montage.
En savoir plus
Real-time AI that works with your operation

IA dans l'automobile

Applique la vision par ordinateur dans l'automobile avec les modèles Ultralytics YOLO. L'IA de vision améliore la sécurité routière, l'assistance à la conduite et l'automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Real-time AI tailored to your operation

IA en agriculture

Intègre l'IA de vision à l'agriculture intelligente avec les modèles Ultralytics YOLO. Optimise la surveillance des cultures, le suivi du bétail et l'agriculture de précision pour des rendements plus élevés et plus intelligents.
En savoir plus
Real-time AI that works with your team

IA dans la robotique

Équipe tes machines plus intelligentes avec les modèles Ultralytics YOLO. La vision par IA dans la robotique propulse la navigation autonome, la perception, le suivi d'objets et le contrôle en temps réel.
En savoir plus
Real-time AI that works with your team

IA dans la logistique

Simplifie la logistique avec les modèles Ultralytics YOLO. La vision par IA permet l'inspection des colis, le tri, le suivi des véhicules et la surveillance de la sécurité des entrepôts en temps réel.
En savoir plus
Real-time AI that works with your team

IA dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA alimente le suivi des stocks, la surveillance des étagères, la gestion des files d'attente et des informations plus intelligentes sur les clients.
En savoir plus
Real-time AI that works with your team

IA dans la santé

Construis des solutions de santé avec les modèles Ultralytics YOLO. L'IA de vision dans la santé permet une imagerie médicale plus rapide, des diagnostics plus intelligents et une surveillance des patients.
En savoir plus
Real-time AI that works with your team

IA dans la fabrication

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA favorise le contrôle qualité, la détection des défauts, la conformité aux EPI et l'automatisation des chaînes de montage.
En savoir plus
Real-time AI that works with your operation

IA dans l'automobile

Applique la vision par ordinateur dans l'automobile avec les modèles Ultralytics YOLO. L'IA de vision améliore la sécurité routière, l'assistance à la conduite et l'automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Real-time AI tailored to your operation

IA en agriculture

Intègre l'IA de vision à l'agriculture intelligente avec les modèles Ultralytics YOLO. Optimise la surveillance des cultures, le suivi du bétail et l'agriculture de précision pour des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble le futur de l'IA !

Commence ton aventure avec le futur de l'apprentissage automatique