Optimiser les inférences YOLOv8 avec le moteur DeepSparse de Neural Magic
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 YOLOv8avec le moteur DeepSparse de Neural Magicentre 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 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, comprenons 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.
- 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.
-
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.
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 :
É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
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
É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
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.
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.