Skip to content

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?

NCNN vue d'ensemble

Le NCNN framework, développé par Tencent, est un framework de calcul 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 d'examiner le code permettant d'exporter les modèles YOLOv8 au format NCNN , comprenons comment les modèles 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 le 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 :

Installation

# Install the required package for YOLOv8
pip install ultralytics

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")
# Export a YOLOv8n PyTorch model to NCNN format
yolo export model=yolov8n.pt format=ncnn  # creates '/yolov8n_ncnn_model'

# Run inference with the exported model
yolo predict model='./yolov8n_ncnn_model' source='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 par le biais d'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.



Créé le 2024-03-01, Mis à jour le 2024-05-18
Auteurs : glenn-jocher (2), abirami-vina (1)

Commentaires