Ultralytics YOLO27 :
Intégrations

Déploie Ultralytics YOLOv5 avec DeepSparse de Neural Magic pour des performances comparables à celles d’un GPU sur des CPU

Optimise l’entraînement et le déploiement de tes modèles Ultralytics YOLOv5 avec DeepSparse de Neural Magic, pour atteindre des performances comparables à celles d’un GPU sur des CPU. Accélère tes déploiements YOLOv5 et rends-les évolutifs.

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

Tu veux accélérer l'entraînement et le déploiement de tes modèles YOLOv5 ? Nous avons la solution qu'il te faut ! Découvre notre nouveau partenaire, Neural Magic. Neural Magic proposant des outils logiciels qui privilégient les performances maximales des modèles et la simplicité des workflows, il est tout naturel que nous nous soyons associés pour offrir une solution qui améliore encore le processus de déploiement de YOLOv5.

DeepSparse est le runtime d'inférence CPU de Neural Magic. Il exploite la parcimonie et l'arithmétique en faible précision au sein des réseaux neuronaux 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 avec YOLOv5s sur la même machine !

Comparaison du débit d'Ultralytics YOLOv5 avec DeepSparse

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

  1. Déploiements flexibles : exécute tes charges de travail de manière cohérente dans le cloud, les centres de données et l'edge, avec n'importe quel fournisseur de matériel
  2. Évolutivité infinie : augmente la capacité avec Kubernetes standard, passe à l'échelle verticalement jusqu'à des centaines de cœurs ou profite d'une abstraction complète avec le serverless
  3. Intégration facile : utilise des API claires pour intégrer ton modèle à une application et le superviser en production

Atteindre des performances dignes d'un GPU sur des CPU standard#

DeepSparse exploite la parcimonie des modèles pour accélérer les performances.

La sparsification par élagage 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 grande précision. DeepSparse tient compte de la parcimonie : il ignore les opérations multiply-add dont le résultat est nul et réduit la quantité de calcul lors d'une passe avant. Comme le calcul parcimonieux est limité par la mémoire, DeepSparse exécute le réseau en profondeur, en divisant le problème en Tensor Columns, des bandes verticales de calcul qui tiennent dans le cache.

Réseau DeepSparse et Ultralytics YOLOv5

Les réseaux parcimonieux avec calcul compressé, exécutés en profondeur dans le cache, permettent à DeepSparse d'offrir des performances dignes d'un GPU sur les CPU !

Créer une version parcimonieuse d'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 checkpoints préalablement sparsifiés pour chaque modèle YOLOv5. Avec SparseML, intégré à Ultralytics, tu peux affiner un checkpoint parcimonieux sur tes données à l'aide d'une seule commande CLI.

Déployer Ultralytics YOLOv5 avec DeepSparse#

Installer 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érer un fichier ONNX#

DeepSparse accepte un modèle au format ONNX, fourni sous l'une des formes suivantes :

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

Nous allons comparer le YOLOv5s dense standard au YOLOv5s élagué et quantifié, identifiés 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éployer un modèle#

DeepSparse fournit des API pratiques pour intégrer ton modèle à une application.

Pour essayer les exemples de déploiement ci-dessous, télécharge une image d'exemple 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 encapsulent le prétraitement et le post-traitement des sorties autour du runtime, fournissant une interface claire pour ajouter DeepSparse à une application. L'intégration DeepSparse-Ultralytics comprend un Pipeline prêt à l'emploi qui accepte des images brutes et renvoie les boîtes englobantes.

Crée un Pipeline et exécute 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 exécutes le programme dans le cloud, il est possible qu'une erreur indique que open-cv ne trouve pas libGL.so.1. L'exécution de la commande suivante sur Ubuntu l'installe :

apt-get install libgl1-mesa-glx

Serveur HTTP#

DeepSparse Server s'exécute au-dessus du framework web FastAPI et du serveur web Uvicorn, très répandus. Avec une seule commande CLI, tu peux facilement configurer un endpoint de service de modèle avec DeepSparse. Le Server prend en charge n'importe quel Pipeline de DeepSparse, notamment la détection d'objets avec Ultralytics YOLOv5, ce qui te permet d'envoyer des images brutes à l'endpoint et de recevoir les boîtes englobantes.

Lance le Server avec le YOLOv5s élagué et quantifié :

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

Voici un exemple de requête 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 également 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.

Basilique annotée avec Ultralytics YOLOv5

Évaluer les performances#

À l'aide du script d'évaluation de DeepSparse, nous comparerons le débit de DeepSparse à celui d'ONNX Runtime sur YOLOv5s.

Les évaluations ont été réalisées sur une instance AWS c6i.8xlarge (16 cœurs).

Comparaison des performances avec une taille de batch de 32#

Référence ONNX Runtime#

Avec une taille de batch de 32, ONNX Runtime atteint 42 images/s 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

Performances de DeepSparse en mode dense#

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

Avec une taille de batch de 32, DeepSparse atteint 70 images/s avec le YOLOv5s dense standard, soit une amélioration des performances 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

Performances de DeepSparse en mode parcimonieux#

Lorsque la parcimonie est appliquée au modèle, les gains de performances de DeepSparse par rapport à ONNX Runtime sont encore plus importants.

Avec une taille de batch de 32, DeepSparse atteint 241 images/s avec le YOLOv5s élagué et quantifié, soit une amélioration des performances 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 des performances avec une taille de batch de 1#

DeepSparse est également capable d'accélérer les performances par rapport à ONNX Runtime dans le cas sensible à la latence d'une taille de batch de 1.

Référence ONNX Runtime#

Avec une taille de batch de 1, ONNX Runtime atteint 48 images/s 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

Performances de DeepSparse en mode parcimonieux#

Lorsque la parcimonie est appliquée au modèle, les gains de performances de DeepSparse par rapport à ONNX Runtime sont encore plus importants.

Avec une taille de batch de 1, DeepSparse atteint 135 images/s avec le YOLOv5s élagué et quantifié, soit une amélioration des performances 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

Comme les instances c6i.8xlarge disposent d'instructions VNNI, le débit de DeepSparse peut être encore augmenté si les poids sont élagués par blocs de 4.

Avec une taille de batch de 1, DeepSparse atteint 180 éléments/s avec un YOLOv5s élagué et quantifié par blocs de 4, soit un gain de performances 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.

Pour commencer avec Ultralytics YOLOv5 et DeepSparse#

Pour nous contacter, rejoins notre communauté et partage tes questions et commentaires. Consulte le dépôt Ultralytics YOLOv5 ainsi que la documentation complète de Neural Magic pour déployer YOLOv5.

Chez Ultralytics, nous établissons des partenariats commerciaux avec d'autres startups afin de contribuer au financement de la recherche et du développement de nos formidables outils open source, comme YOLOv5, pour qu'ils restent gratuits pour tout le monde. Cet article peut contenir des liens d'affiliation vers ces partenaires.

Explore solutions

Vision par ordinateur pour l'imagerie aérienne

Vision par ordinateur pour l'imagerie aérienne

Transforme les images de drones et aériennes en informations en temps réel pour l'agriculture, l'aquaculture, la surveillance environnementale, la conservation et l'analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l'aérospatiale

Vision par ordinateur dans l'aérospatiale

Apporte l'IA de vision à la surveillance aérienne grâce aux modèles Ultralytics YOLO. Alimente les drones, les flux de travail aérospatiaux, la conservation de l'environnement et les industries géospatiales avec des solutions de vision par ordinateur.
En savoir plus

Protège chaque site avec les modèles Ultralytics YOLO. L'IA de vision alimente la surveillance du périmètre, la détection des menaces, la reconnaissance des plaques d'immatriculation et la sécurité au travail.
En savoir plus
Vision par ordinateur en robotique

Vision par ordinateur en robotique

Donne plus d’intelligence à tes machines avec les modèles Ultralytics YOLO. L’IA visuelle en robotique permet la navigation autonome, la perception, le suivi d’objets et le contrôle en temps réel.
En savoir plus
Vision par ordinateur en logistique

Vision par ordinateur en logistique

Optimise la logistique avec les modèles Ultralytics YOLO. L’IA visuelle 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
Vision par ordinateur dans le commerce de détail

Vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. L’IA visuelle permet le suivi des stocks, la surveillance des rayons, la gestion des files d’attente et l’obtention d’informations plus pertinentes sur les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Développe des solutions de santé avec les modèles Ultralytics YOLO. L'IA de vision dans le secteur de la santé accélère l'imagerie médicale, améliore les diagnostics et renforce la surveillance des patients.
En savoir plus
La vision par ordinateur dans l'industrie manufacturière

La vision par ordinateur dans l'industrie manufacturière

Optimise la production industrielle avec les modèles Ultralytics YOLO. L'IA de vision améliore le contrôle qualité, la détection des défauts, le respect des règles relatives aux EPI et l'automatisation des lignes d'assemblage.
En savoir plus
Vision par ordinateur dans l’automobile

Vision par ordinateur dans l’automobile

Applique la vision par ordinateur à l’automobile avec les modèles Ultralytics YOLO. L’IA de vision améliore la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Apporte 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
Vision par ordinateur pour l'imagerie aérienne

Vision par ordinateur pour l'imagerie aérienne

Transforme les images de drones et aériennes en informations en temps réel pour l'agriculture, l'aquaculture, la surveillance environnementale, la conservation et l'analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l'aérospatiale

Vision par ordinateur dans l'aérospatiale

Apporte l'IA de vision à la surveillance aérienne grâce aux modèles Ultralytics YOLO. Alimente les drones, les flux de travail aérospatiaux, la conservation de l'environnement et les industries géospatiales avec des solutions de vision par ordinateur.
En savoir plus

Protège chaque site avec les modèles Ultralytics YOLO. L'IA de vision alimente la surveillance du périmètre, la détection des menaces, la reconnaissance des plaques d'immatriculation et la sécurité au travail.
En savoir plus
Vision par ordinateur en robotique

Vision par ordinateur en robotique

Donne plus d’intelligence à tes machines avec les modèles Ultralytics YOLO. L’IA visuelle en robotique permet la navigation autonome, la perception, le suivi d’objets et le contrôle en temps réel.
En savoir plus
Vision par ordinateur en logistique

Vision par ordinateur en logistique

Optimise la logistique avec les modèles Ultralytics YOLO. L’IA visuelle 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
Vision par ordinateur dans le commerce de détail

Vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. L’IA visuelle permet le suivi des stocks, la surveillance des rayons, la gestion des files d’attente et l’obtention d’informations plus pertinentes sur les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Développe des solutions de santé avec les modèles Ultralytics YOLO. L'IA de vision dans le secteur de la santé accélère l'imagerie médicale, améliore les diagnostics et renforce la surveillance des patients.
En savoir plus
La vision par ordinateur dans l'industrie manufacturière

La vision par ordinateur dans l'industrie manufacturière

Optimise la production industrielle avec les modèles Ultralytics YOLO. L'IA de vision améliore le contrôle qualité, la détection des défauts, le respect des règles relatives aux EPI et l'automatisation des lignes d'assemblage.
En savoir plus
Vision par ordinateur dans l’automobile

Vision par ordinateur dans l’automobile

Applique la vision par ordinateur à l’automobile avec les modèles Ultralytics YOLO. L’IA de vision améliore la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Apporte 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
Vision par ordinateur pour l'imagerie aérienne

Vision par ordinateur pour l'imagerie aérienne

Transforme les images de drones et aériennes en informations en temps réel pour l'agriculture, l'aquaculture, la surveillance environnementale, la conservation et l'analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l'aérospatiale

Vision par ordinateur dans l'aérospatiale

Apporte l'IA de vision à la surveillance aérienne grâce aux modèles Ultralytics YOLO. Alimente les drones, les flux de travail aérospatiaux, la conservation de l'environnement et les industries géospatiales avec des solutions de vision par ordinateur.
En savoir plus

Protège chaque site avec les modèles Ultralytics YOLO. L'IA de vision alimente la surveillance du périmètre, la détection des menaces, la reconnaissance des plaques d'immatriculation et la sécurité au travail.
En savoir plus
Vision par ordinateur en robotique

Vision par ordinateur en robotique

Donne plus d’intelligence à tes machines avec les modèles Ultralytics YOLO. L’IA visuelle en robotique permet la navigation autonome, la perception, le suivi d’objets et le contrôle en temps réel.
En savoir plus
Vision par ordinateur en logistique

Vision par ordinateur en logistique

Optimise la logistique avec les modèles Ultralytics YOLO. L’IA visuelle 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
Vision par ordinateur dans le commerce de détail

Vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. L’IA visuelle permet le suivi des stocks, la surveillance des rayons, la gestion des files d’attente et l’obtention d’informations plus pertinentes sur les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Développe des solutions de santé avec les modèles Ultralytics YOLO. L'IA de vision dans le secteur de la santé accélère l'imagerie médicale, améliore les diagnostics et renforce la surveillance des patients.
En savoir plus
La vision par ordinateur dans l'industrie manufacturière

La vision par ordinateur dans l'industrie manufacturière

Optimise la production industrielle avec les modèles Ultralytics YOLO. L'IA de vision améliore le contrôle qualité, la détection des défauts, le respect des règles relatives aux EPI et l'automatisation des lignes d'assemblage.
En savoir plus
Vision par ordinateur dans l’automobile

Vision par ordinateur dans l’automobile

Applique la vision par ordinateur à l’automobile avec les modèles Ultralytics YOLO. L’IA de vision améliore la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Apporte 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 l'avenir de l'IA !

Commence ton parcours vers l'avenir de l'apprentissage automatique