Comment exporter vers NCNN à partir de YOLOv8 pour un déploiement en douceur ?
Déployer des modèles de vision par ordinateur sur des appareils dont la puissance de calcul est limitée, comme les systèmes mobiles ou embarqués, peut s'avérer délicat. Tu dois t'assurer d'utiliser un format optimisé pour des performances optimales. Cela permet de s'assurer que même les appareils dotés d'une puissance de traitement limitée peuvent bien gérer les tâches avancées de vision par ordinateur.
La fonction d'exportation vers le format NCNN te permet d'optimiser tes Ultralytics YOLOv8 modèles pour des applications légères basées sur des appareils. Dans ce guide, nous t'expliquons comment convertir tes modèles au format NCNN , ce qui te permettra d'obtenir plus facilement de bons résultats sur divers appareils mobiles et embarqués.
Pourquoi exporter vers NCNN?
Le NCNN framework, développé par Tencent, est un framework informatique d'inférence de réseau neuronal haute performance optimisé spécifiquement pour les plateformes mobiles, notamment les téléphones portables, les appareils embarqués et les appareils IoT. NCNN est compatible avec un large éventail de plateformes, notamment Linux, Android, iOS, et macOS.
NCNN est connu pour sa vitesse de traitement rapide sur les CPU mobiles et permet de déployer rapidement des modèles d'apprentissage profond sur les plateformes mobiles. Cela facilite la création d'applications intelligentes, en mettant la puissance de l'IA à portée de main.
Caractéristiques principales des modèles NCNN
NCNN offrent un large éventail de fonctionnalités clés qui permettent l'apprentissage automatique sur appareil en aidant les développeurs à exécuter leurs modèles sur des appareils mobiles, embarqués et périphériques :
-
Efficacité et haute performance: les modèles NCNN sont conçus pour être efficaces et légers, optimisés pour fonctionner sur des appareils mobiles et embarqués tels que Raspberry Pi avec des ressources limitées. Ils peuvent également atteindre des performances élevées avec une grande précision pour diverses tâches basées sur la vision par ordinateur.
-
Quantification: NCNN les modèles prennent souvent en charge la quantification, une technique qui réduit la précision des poids et des activations du modèle. Cela permet d'améliorer encore les performances et de réduire l'empreinte mémoire.
-
Compatibilité: les modèles NCNN sont compatibles avec les cadres d'apprentissage profond populaires tels que. TensorFlowCaffe, et ONNX. Cette compatibilité permet aux développeurs d'utiliser facilement les modèles et les flux de travail existants.
-
Facile à utiliser: les modèles NCNN sont conçus pour être facilement intégrés dans diverses applications, grâce à leur compatibilité avec les cadres d'apprentissage profond les plus répandus. En outre, NCNN propose des outils conviviaux pour convertir les modèles entre différents formats, ce qui garantit une interopérabilité fluide dans l'ensemble du paysage de développement.
Options de déploiement avec NCNN
Avant de regarder le code pour l’exportation YOLOv8 modèles à la NCNN format, comprenons comment NCNN sont normalement utilisés.
NCNN conçus pour l'efficacité et la performance, sont compatibles avec une variété de plateformes de déploiement :
-
Déploiement mobile: Spécifiquement optimisé pour Android et iOS, permettant une intégration transparente dans les applications mobiles pour une inférence efficace sur l'appareil.
-
Systèmes embarqués et appareils IoT: Si tu trouves que l'exécution de l'inférence sur un Raspberry Pi avec le guideUltralytics n'est pas assez rapide, le passage à un modèle exporté NCNN peut aider à accélérer les choses. NCNN est idéal pour les appareils comme le Raspberry Pi et NVIDIA Jetson, en particulier dans les situations où tu as besoin d'un traitement rapide directement sur l'appareil.
-
Déploiement sur ordinateur et serveur: Capable d'être déployé dans des environnements de bureau et de serveur à travers Linux, Windows et macOS, prenant en charge le développement, la formation et l'évaluation avec des capacités de calcul plus élevées.
Exporter vers NCNN: Conversion de ton modèle YOLOv8
Tu peux étendre la compatibilité des modèles et la flexibilité du déploiement en convertissant les modèles YOLOv8 au format NCNN .
Installation
Pour installer les paquets nécessaires, exécute :
Pour des instructions détaillées et les meilleures pratiques liées au processus d'installation, consulte notre guide d'installationUltralytics . Pendant l'installation des paquets requis pour YOLOv8, si tu rencontres des difficultés, consulte notre guide des problèmes courants pour trouver des solutions et des conseils.
Utilisation
Avant de plonger dans les instructions d'utilisation, il est important de noter que si tous les modèlesUltralytics YOLOv8 sont disponibles pour l'exportation, tu peux t'assurer que le modèle que tu as choisi prend en charge la fonctionnalité d'exportation ici.
Utilisation
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO("yolov8n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolov8n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("./yolov8n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
Pour plus de détails sur les options d'exportation prises en charge, visite la page de documentationUltralytics sur les options de déploiement.
Déploiement des modèles exportés YOLOv8 NCNN
Après avoir exporté avec succès tes modèles Ultralytics YOLOv8 au format NCNN , tu peux maintenant les déployer. La première étape recommandée pour exécuter un modèle NCNN est d'utiliser la méthode YOLO("./model_ncnn_model"), comme indiqué dans l'extrait de code précédent. Cependant, pour obtenir des instructions détaillées sur le déploiement de tes modèles NCNN dans d'autres contextes, jette un coup d'œil aux ressources suivantes :
-
Android: Ce blog explique comment utiliser les modèles NCNN pour effectuer des tâches telles que la détection d'objets à travers les applications Android .
-
macOS: Comprendre comment utiliser les modèles NCNN pour effectuer des tâches par le biais de macOS.
-
Linux: Explore cette page pour apprendre à déployer les modèles NCNN sur des appareils aux ressources limitées comme le Raspberry Pi et d'autres appareils similaires.
-
Windows x64 avec VS2017: Explore ce blog pour apprendre à déployer les modèles NCNN sur windows x64 à l'aide de Visual Studio Community 2017.
Résumé
Dans ce guide, nous avons étudié l'exportation des modèles Ultralytics YOLOv8 vers le format NCNN . Cette étape de conversion est cruciale pour améliorer l'efficacité et la rapidité des modèles YOLOv8 , ce qui les rend plus efficaces et adaptés aux environnements informatiques à ressources limitées.
Pour des instructions détaillées sur l'utilisation, tu peux te référer à la documentation officielle de NCNN .
De plus, si tu souhaites explorer d'autres options d'intégration pour Ultralytics YOLOv8 , ne manque pas de visiter notre page de guide d'intégration pour plus d'idées et d'informations.
FAQ
Comment exporter les modèles Ultralytics YOLOv8 au format NCNN ?
Pour exporter ton modèle Ultralytics YOLOv8 au format NCNN , suis les étapes suivantes :
-
Python: Utilise le
export
de la classe YOLO . -
CLI: Utilise le
yolo
avec la commandeexport
argument.
Pour des options d'exportation détaillées, consulte la page Exportation dans la documentation.
Quels sont les avantages de l'exportation des modèles YOLOv8 vers NCNN?
L'exportation de tes modèles Ultralytics YOLOv8 vers NCNN offre plusieurs avantages :
- Efficacité: les modèles NCNN sont optimisés pour les appareils mobiles et embarqués, ce qui garantit des performances élevées même avec des ressources informatiques limitées.
- Quantification: NCNN prend en charge des techniques comme la quantification qui améliorent la vitesse du modèle et réduisent l'utilisation de la mémoire.
- Large compatibilité: Tu peux déployer les modèles NCNN sur plusieurs plateformes, y compris Android, iOS, Linux et macOS.
Pour plus de détails, voir la section Exporter vers NCNN dans la documentation.
Pourquoi devrais-je utiliser NCNN pour mes applications mobiles d'IA ?
NCNN, développé par Tencent, est spécifiquement optimisé pour les plateformes mobiles. Les principales raisons d'utiliser NCNN sont les suivantes :
- Haute performance: Conçu pour un traitement efficace et rapide sur les unités centrales mobiles.
- Multiplateforme: Compatible avec des cadres populaires tels que TensorFlow et ONNX, ce qui facilite la conversion et le déploiement des modèles sur différentes plateformes.
- Soutien de la communauté: Le soutien actif de la communauté garantit des améliorations et des mises à jour continues.
Pour en savoir plus, consulte l'aperçu deNCNN dans la documentation.
Quelles sont les plateformes prises en charge pour le déploiement du modèle NCNN ?
NCNN est polyvalent et prend en charge diverses plateformes :
- Mobile: Android, iOS.
- Systèmes embarqués et appareils IoT: Des appareils comme Raspberry Pi et NVIDIA Jetson.
- Ordinateurs de bureau et serveurs: Linux, Windows et macOS.
Si l'exécution des modèles sur un Raspberry Pi n'est pas assez rapide, la conversion au format NCNN peut accélérer les choses, comme indiqué dans notre Guide Raspberry Pi.
Comment puis-je déployer les modèles Ultralytics YOLOv8 NCNN sur Android?
Pour déployer tes modèles YOLOv8 sur Android:
- Construire pour Android: Suis le guide NCNN Build for Android.
- Intégrer à ton application: Utilise le SDK NCNN Android pour intégrer le modèle exporté dans ton application pour une inférence efficace sur l'appareil.
Pour obtenir des instructions étape par étape, reporte-toi à notre guide sur le déploiement des modèles YOLOv8 NCNN .
Pour des guides plus avancés et des cas d'utilisation, visite la page de documentationUltralytics .