Skip to content

Optimiser les inférences YOLOv8 avec le moteur DeepSparse de Neural Magic

Lorsque l'on déploie des modèles de détection d'objets tels que Ultralytics'YOLOv8 sur différents matériels, on peut se heurter à des problèmes uniques tels que l'optimisation. C'est là que l'intégration de YOLOv8avec le moteur DeepSparse de Neural Magicintervient. Elle transforme la façon dont les modèles YOLOv8 sont exécutés et permet d'obtenir des performances de niveau GPU directement sur les unités centrales.

Ce guide te montre comment déployer YOLOv8 à l'aide de Neural Magic's DeepSparse, comment exécuter des inférences, et aussi comment évaluer les performances pour s'assurer qu'elles sont optimisées.

Neural MagicDeepSparse de

Neural MagicAperçu de DeepSparse

Neural MagicDeepSparse est un temps d'exécution d'inférence conçu pour optimiser l'exécution des réseaux neuronaux sur les unités centrales. Il applique des techniques avancées telles que l'éparpillement, l'élagage et la quantification pour réduire considérablement les demandes de calcul tout en maintenant la précision. DeepSparse offre une solution agile pour une exécution efficace et évolutive des réseaux neuronaux sur différents appareils.

Avantages de l'intégration de Neural Magic's DeepSparse avec YOLOv8

Avant de voir comment déployer YOLOV8 à l'aide de DeepSparse, il faut comprendre les avantages de l'utilisation de DeepSparse. Voici quelques-uns des principaux avantages :

  • Vitesse d'infĂ©rence amĂ©liorĂ©e: Atteint jusqu'Ă  525 FPS (sur YOLOv8n), ce qui accĂ©lère considĂ©rablement les capacitĂ©s d'infĂ©rence de YOLOv8 par rapport aux mĂ©thodes traditionnelles.

Vitesse d'inférence améliorée

  • Optimisation de l'efficacitĂ© du modèle: Utilise l'Ă©lagage et la quantification pour amĂ©liorer l'efficacitĂ© de YOLOv8, en rĂ©duisant la taille du modèle et les besoins de calcul tout en maintenant la prĂ©cision.

Efficacité du modèle optimisé

  • Haute performance sur les unitĂ©s centrales standard: Offre des performances comparables Ă  celles d'un GPU sur des unitĂ©s centrales, ce qui constitue une option plus accessible et plus rentable pour diverses applications.

  • IntĂ©gration et dĂ©ploiement simplifiĂ©s: Offre des outils conviviaux pour faciliter l'intĂ©gration de YOLOv8 dans les applications, y compris des fonctions d'annotation d'images et de vidĂ©os.

  • Prise en charge de divers types de modèles: Compatible avec les modèles YOLOv8 standard et optimisĂ©s en termes d'espace, ce qui ajoute Ă  la flexibilitĂ© du dĂ©ploiement.

  • Solution rentable et Ă©volutive: RĂ©duit les dĂ©penses opĂ©rationnelles et offre un dĂ©ploiement Ă©volutif des modèles de dĂ©tection d'objets avancĂ©s.

Comment fonctionne la technologie DeepSparse de Neural Magic?

Neural MagicLa technologie Deep Sparse s'inspire de l'efficacité du cerveau humain dans le calcul des réseaux neuronaux. Elle adopte les deux principes clés suivants du cerveau :

  • SparsitĂ©: Le processus de sparsification consiste Ă  Ă©laguer les informations redondantes des rĂ©seaux d'apprentissage profond, ce qui permet d'obtenir des modèles plus petits et plus rapides sans compromettre la prĂ©cision. Cette technique permet de rĂ©duire considĂ©rablement la taille du rĂ©seau et les besoins en calcul.

  • LocalitĂ© de rĂ©fĂ©rence: DeepSparse utilise une mĂ©thode d'exĂ©cution unique, en divisant le rĂ©seau en Tensor Columns. Ces colonnes sont exĂ©cutĂ©es en profondeur et s'insèrent entièrement dans la mĂ©moire cache de l'unitĂ© centrale. Cette approche imite l'efficacitĂ© du cerveau, en minimisant le mouvement des donnĂ©es et en maximisant l'utilisation de la mĂ©moire cache de l'unitĂ© centrale.

Comment fonctionne la technologie DeepSparse de Neural Magic?

Pour plus de détails sur le fonctionnement de la technologie DeepSparse de Neural Magic, consulte leur article de blog.

Création d'une version éparse de YOLOv8 entraînée sur un ensemble de données personnalisé

SparseZoo, un dépôt de modèles open-source de Neural Magic, offre une collection de points de contrôle de modèles YOLOv8 pré-sparsifiés. Avec SparseML, parfaitement intégré à Ultralytics, les utilisateurs peuvent affiner sans effort ces points de contrôle épars sur leurs ensembles de données spécifiques à l'aide d'une interface de ligne de commande simple.

Consulte la documentation SparseML YOLOv8 deNeural Magic pour plus de détails.

Utilisation : DĂ©ploiement de YOLOV8 Ă  l'aide de DeepSparse

Le déploiement de YOLOv8 avec Neural Magic's DeepSparse comporte quelques étapes simples. Avant de te plonger dans les instructions d'utilisation, n'oublie pas de jeter un coup d'œil à la gamme de modèlesYOLOv8 proposés par Ultralytics. Cela t'aidera à choisir le modèle le plus approprié aux exigences de ton projet. Voici comment tu peux commencer.

Étape 1 : Installation

Pour installer les paquets nécessaires, exécute :

Installation

# Install the required packages
pip install deepsparse[yolov8]

Étape 2 : Exporter YOLOv8 au format ONNX

DeepSparse Engine requiert les modèles YOLOv8 au format ONNX . L'exportation de ton modèle dans ce format est essentielle pour la compatibilité avec DeepSparse. Utilise la commande suivante pour exporter les modèles YOLOv8 :

Modèle Export

# Export YOLOv8 model to ONNX format
yolo task=detect mode=export model=yolov8n.pt format=onnx opset=13

Cette commande permet d'enregistrer le yolov8n.onnx modèle sur ton disque.

Étape 3 : Déploiement et exécution des inférences

Avec ton modèle YOLOv8 au format ONNX , tu peux déployer et exécuter des inférences à l'aide de DeepSparse. Cela peut se faire facilement grâce à l'API intuitive Python :

Déployer et exécuter les inférences

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)

Étape 4 : Analyse comparative des performances

Il est important de vérifier que ton modèle YOLOv8 fonctionne de façon optimale sur DeepSparse. Tu peux comparer les performances de ton modèle pour analyser le débit et la latence :

Benchmarking

# Benchmark performance
deepsparse.benchmark model_path="path/to/yolov8n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"

Étape 5 : Fonctionnalités supplémentaires

DeepSparse offre des fonctions supplémentaires pour l'intégration pratique de YOLOv8 dans des applications, telles que l'annotation d'images et l'évaluation d'ensembles de données.

Caractéristiques supplémentaires

# 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"

En exécutant la commande annotate, tu traites l'image que tu as spécifiée, tu détectes les objets et tu enregistres l'image annotée avec les boîtes de délimitation et les classifications. L'image annotée sera stockée dans un dossier annotation-results. Cela permet de fournir une représentation visuelle des capacités de détection du modèle.

Fonction d'annotation d'image

Après avoir exécuté la commande eval, tu recevras des mesures de sortie détaillées telles que la précision, le rappel et la mAP (précision moyenne). Tu auras ainsi une vue d'ensemble des performances de ton modèle sur l'ensemble des données. Cette fonctionnalité est particulièrement utile pour affiner et optimiser tes modèles YOLOv8 pour des cas d'utilisation spécifiques, en garantissant une précision et une efficacité élevées.

Résumé

Ce guide a exploré l'intégration de Ultralytics'YOLOv8 avec Neural Magic's DeepSparse Engine. Il met en évidence la façon dont cette intégration améliore les performances de YOLOv8 sur les plateformes CPU, en offrant une efficacité au niveau du GPU et des techniques avancées de sparsité des réseaux neuronaux.

Pour des informations plus détaillées et une utilisation avancée, visite la documentation DeepSparse deNeural Magic. Tu peux aussi consulter la documentation de Neural Magicsur l'intégration avec YOLOv8 ici et regarder une excellente session à ce sujet ici.

De plus, pour mieux comprendre les différentes intégrations de YOLOv8 , visite la page du guide d'intégration deUltralytics , où tu pourras découvrir toute une série d'autres possibilités d'intégration passionnantes.



Créé le 2023-12-30, Mis à jour le 2024-01-05
Auteurs : glenn-jocher (1), abirami-vina (1)

Commentaires