Skip to content

Optimisation YOLOv8 Inférences avec Neural MagicMoteur DeepSparse de

Lorsque tu déploies des modèles de détection d'objets comme Ultralytics YOLOv8 sur différents matériels, tu peux te heurter à des problèmes uniques comme l'optimisation. C'est là que l'intégration de YOLOv8 avec le moteur DeepSparse de Neural Magic entre en jeu. 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 MagicPrésentation de DeepSparse

Neural Magicest un runtime d’inférence conçu pour optimiser l’exécution des réseaux neuronaux sur les processeurs. Il applique des techniques avancées telles que la parcimonie, 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 divers appareils.

Avantages de l’intégration Neural Magicavec YOLOv8

Avant de plonger dans le déploiement YOLOV8 en utilisant DeepSparse, comprenons les avantages de l’utilisation de DeepSparse. Voici quelques avantages clés :

  • 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 du site GPU sur les 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. Il adopte deux principes clés du cerveau comme suit :

  • 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 dĂ©composant 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 CPU. 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 CPU.

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é de niveau GPU et des techniques avancées d'espacement des réseaux neuronaux.

Pour plus d’informations et une utilisation avancée, visitez Neural Magic. Vérifiez également Neural Magicsur l’intégration avec YOLOv8 ici et regardez 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.

FAQ

Qu'est-ce que le moteur DeepSparse de Neural Magic et comment optimise-t-il les performances de YOLOv8 ?

Neural MagicDeepSparse Engine est un moteur d'exécution d'inférence conçu pour optimiser l'exécution des réseaux neuronaux sur les unités centrales grâce à des techniques avancées telles que l'éparpillement, l'élagage et la quantification. En intégrant DeepSparse à YOLOv8, tu peux obtenir des performances similaires à celles de GPU sur des CPU standard, en améliorant considérablement la vitesse d'inférence, l'efficacité du modèle et les performances globales tout en maintenant la précision. Pour plus de détails, consulte la section DeepSparse du siteNeural Magic.

Comment puis-je installer les paquets nécessaires pour déployer YOLOv8 en utilisant Neural Magic's DeepSparse ?

L'installation des paquets nécessaires pour déployer YOLOv8 avec Neural Magic's DeepSparse est simple. Tu peux facilement les installer en utilisant la commande CLI. Voici la commande que tu dois exécuter :

pip install deepsparse[yolov8]

Une fois installé, suis les étapes fournies dans la section Installation pour configurer ton environnement et commencer à utiliser DeepSparse avec YOLOv8.

Comment convertir les modèles YOLOv8 au format ONNX pour les utiliser avec DeepSparse ?

Pour convertir les modèles YOLOv8 au format ONNX , qui est nécessaire pour la compatibilité avec DeepSparse, tu peux utiliser la commande suivante CLI :

yolo task=detect mode=export model=yolov8n.pt format=onnx opset=13

Cette commande exportera ton modèle YOLOv8 (yolov8n.pt) à un format (yolov8n.onnx) qui peuvent être utilisés par le moteur DeepSparse. Tu trouveras plus d'informations sur l'exportation de modèles dans la rubrique Section Exportation de modèles.

Comment puis-je Ă©valuer les performances de YOLOv8 sur le moteur DeepSparse ?

L'analyse comparative des performances de YOLOv8 sur DeepSparse te permet d'analyser le débit et la latence pour t'assurer que ton modèle est optimisé. Tu peux utiliser la commande suivante CLI pour effectuer une analyse comparative :

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

Cette commande te fournira des mesures de performance essentielles. Pour plus de détails, voir la section Analyse comparative des performances.

Pourquoi devrais-je utiliser Neural Magic's DeepSparse avec YOLOv8 pour les tâches de détection d'objets ?

L'intégration de DeepSparse de Neural Magic à YOLOv8 offre plusieurs avantages :

  • Vitesse d'infĂ©rence amĂ©liorĂ©e : Atteint jusqu'Ă  525 FPS, ce qui accĂ©lère considĂ©rablement les capacitĂ©s de YOLOv8.
  • EfficacitĂ© optimisĂ©e du modèle : Utilise des techniques d'Ă©parpillement, d'Ă©lagage et de quantification pour rĂ©duire la taille du modèle et les besoins de calcul tout en maintenant la prĂ©cision.
  • Haute performance sur les unitĂ©s centrales standard : Offre des performances comparables Ă  celles de GPU sur du matĂ©riel CPU Ă©conomique.
  • IntĂ©gration simplifiĂ©e : Des outils conviviaux pour un dĂ©ploiement et une intĂ©gration faciles.
  • FlexibilitĂ© : Prend en charge Ă  la fois les modèles standard et les modèles optimisĂ©s en fonction de la densitĂ© YOLOv8 .
  • Rentable : RĂ©duit les dĂ©penses opĂ©rationnelles grâce Ă  une utilisation efficace des ressources.

Pour en savoir plus sur ces avantages, consulte la section Avantages de l'intégration de DeepSparse de Neural Magic à YOLOv8 .



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

Commentaires