Passer au contenu

Comment exporter vers NCNN depuis YOLO11 pour un déploiement fluide

Le déploiement de modèles de vision par ordinateur sur des appareils avec une puissance de calcul limitée, tels que les systèmes mobiles ou embarqués, peut être délicat. Vous devez vous assurer d'utiliser un format optimisé pour des performances optimales. Cela garantit que même les appareils avec une puissance de traitement limitée peuvent bien gérer les tâches avancées de vision par ordinateur.

La fonctionnalité d'exportation au format NCNN vous permet d'optimiser vos modèles Ultralytics YOLO11 pour les applications légères basées sur des appareils. Dans ce guide, nous vous expliquerons comment convertir vos modèles au format NCNN, ce qui facilitera les performances de vos modèles sur divers appareils mobiles et embarqués.

Pourquoi exporter vers NCNN ?

Présentation de NCNN

Le framework NCNN, 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, y compris les téléphones mobiles, les appareils embarqués et les appareils IoT. NCNN est compatible avec une large gamme de plateformes, y compris Linux, Android, iOS et macOS.

NCNN est reconnu pour sa vitesse de traitement rapide sur les CPU mobiles et permet un déploiement rapide des modèles de deep learning sur les plateformes mobiles. Cela facilite la création d'applications intelligentes, mettant la puissance de l'IA à portée de main.

Principales caractéristiques des modèles NCNN

Les modèles NCNN offrent un large éventail de fonctionnalités clés qui permettent le machine learning sur l'appareil en aidant les développeurs à exécuter leurs modèles sur des appareils mobiles, embarqués et périphériques :

  • Efficace 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 sur diverses tâches basées sur la vision par ordinateur.

  • Quantification : Les modèles NCNN prennent souvent en charge la quantification, qui est une technique qui réduit la précision des poids et des activations du modèle. Cela conduit à d’autres améliorations des performances et réduit l’empreinte mémoire.

  • Compatibilité : Les modèles NCNN sont compatibles avec les frameworks d’apprentissage profond populaires comme TensorFlow, Caffe 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 une intégration facile dans diverses applications, grâce à leur compatibilité avec les frameworks d'apprentissage profond populaires. De plus, NCNN offre des outils conviviaux pour convertir les modèles entre différents formats, assurant une interopérabilité fluide dans tout l'environnement de développement.

Options de déploiement avec NCNN

Avant d'examiner le code d'exportation des modèles YOLO11 au format NCNN, comprenons comment les modèles NCNN sont normalement utilisés.

Les modèles 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 vous constatez que l'exécution de l'inférence sur un Raspberry Pi avec le Guide Ultralytics n'est pas assez rapide, passer à un modèle exporté NCNN pourrait aider à accélérer les choses. NCNN est idéal pour les appareils tels que Raspberry Pi et NVIDIA Jetson, en particulier dans les situations où vous avez besoin d'un traitement rapide directement sur l'appareil.

  • Déploiement sur ordinateur et serveur : Capable d’être déployé dans des environnements d’ordinateurs de bureau et de serveurs sous Linux, Windows et macOS, prenant en charge le développement, l’entraînement et l’évaluation avec des capacités de calcul plus élevées.

Exporter vers NCNN : Conversion de votre modèle YOLO11

Vous pouvez étendre la compatibilité des modèles et la flexibilité du déploiement en convertissant les modèles YOLO11 au format NCNN.

Installation

Pour installer les packages requis, exécutez :

Installation

# Install the required package for YOLO11
pip install ultralytics

Pour des instructions détaillées et les meilleures pratiques relatives au processus d'installation, consultez notre guide d'installation Ultralytics. Si vous rencontrez des difficultés lors de l'installation des packages requis pour YOLO11, consultez notre guide des problèmes courants pour obtenir des solutions et des conseils.

Utilisation

Tous les modèles Ultralytics YOLO11 sont conçus pour prendre en charge l’exportation prête à l’emploi, ce qui facilite leur intégration à votre flux de travail de déploiement préféré. Vous pouvez consulter la liste complète des formats d’exportation et des options de configuration pris en charge pour choisir la meilleure configuration pour votre application.

Utilisation

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates '/yolo11n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("./yolo11n_ncnn_model")

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to NCNN format
yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'

# Run inference with the exported model
yolo predict model='./yolo11n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

Arguments d'exportation

Argument Type Par défaut Description
format str 'ncnn' Format cible pour le modèle exporté, définissant la compatibilité avec divers environnements de déploiement.
imgsz int ou tuple 640 Taille d'image souhaitée pour l'entrée du modèle. Peut être un entier pour les images carrées ou un tuple (height, width) pour des dimensions spécifiques.
half bool False Active la quantification FP16 (demi-précision), réduisant la taille du modèle et accélérant potentiellement l'inférence sur le matériel pris en charge.
batch int 1 Spécifie la taille du lot d'inférence du modèle d'exportation ou le nombre maximal d'images que le modèle exporté traitera simultanément en predict mode.
device str None Spécifie le dispositif pour l'exportation : GPU (device=0), CPU (device=cpu), MPS pour Apple Silicon (device=mps).

Pour plus de détails sur le processus d'exportation, consultez la page de la documentation Ultralytics sur l'exportation.

Déploiement de modèles YOLO11 NCNN exportés

Après avoir exporté avec succès vos modèles Ultralytics YOLO11 au format NCNN, vous pouvez maintenant les déployer. La première étape principale et recommandée pour exécuter un modèle NCNN est d'utiliser la méthode YOLO("yolo11n_ncnn_model/"), comme indiqué dans l'extrait de code d'utilisation précédent. Cependant, pour des instructions détaillées sur le déploiement de vos modèles NCNN dans divers autres contextes, consultez les ressources suivantes :

  • Android : Ce blog explique comment utiliser les modèles NCNN pour effectuer des tâches telles que la détection d'objets via des applications Android.

  • macOS : Découvrez comment utiliser les modèles NCNN pour effectuer des tâches sous macOS.

  • Linux : Consultez cette page pour apprendre à déployer des modèles NCNN sur des appareils à ressources limitées tels que Raspberry Pi et autres appareils similaires.

  • Windows x64 utilisant VS2017 : Explorez ce blog pour apprendre à déployer des modèles NCNN sur Windows x64 à l’aide de Visual Studio Community 2017.

Résumé

Dans ce guide, nous avons examiné l'exportation des modèles Ultralytics YOLO11 au format NCNN. Cette étape de conversion est essentielle pour améliorer l'efficacité et la vitesse des modèles YOLO11, les rendant plus efficaces et adaptés aux environnements informatiques à ressources limitées.

Pour des instructions d'utilisation détaillées, veuillez consulter la documentation officielle NCNN.

De plus, si vous souhaitez explorer d'autres options d'intégration pour Ultralytics YOLO11, n'oubliez pas de consulter notre page de guide d'intégration pour plus d'informations et d'idées.

FAQ

Comment exporter des modèles Ultralytics YOLO11 au format NCNN ?

Pour exporter votre modèle Ultralytics YOLO11 au format NCNN, suivez ces étapes :

  • Python: Utilisez le export fonction de la classe YOLO.

    from ultralytics import YOLO
    
    # Load the YOLO11 model
    model = YOLO("yolo11n.pt")
    
    # Export to NCNN format
    model.export(format="ncnn")  # creates '/yolo11n_ncnn_model'
    
  • CLI: Utilisez le yolo commande avec la export argument.

    yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'
    

Pour des options d'exportation détaillées, consultez la page Exportation dans la documentation.

Quels sont les avantages de l'exportation de modèles YOLO11 vers NCNN ?

L'exportation de vos modèles Ultralytics YOLO11 vers NCNN offre plusieurs avantages :

  • Efficacité : Les modèles NCNN sont optimisés pour les appareils mobiles et embarqués, assurant une haute performance même avec des ressources de calcul limitées.
  • Quantification : NCNN prend en charge des techniques telles que la quantification qui améliorent la vitesse du modèle et réduisent l’utilisation de la mémoire.
  • Large compatibilité : Vous pouvez déployer des modèles NCNN sur plusieurs plateformes, notamment Android, iOS, Linux et macOS.

Pour plus de détails, consultez la section Exporter vers NCNN dans la documentation.

Pourquoi devrais-je utiliser NCNN pour mes applications d'IA mobile ?

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 CPU mobiles.
  • Multiplateforme : Compatible avec les frameworks populaires tels que TensorFlow et ONNX, ce qui facilite la conversion et le déploiement de modèles sur différentes plateformes.
  • Support communautaire : Un support communautaire actif assure des améliorations et des mises à jour continues.

Pour en savoir plus, consultez la présentation de NCNN dans la documentation.

Quelles plateformes sont prises en charge pour le déploiement de modèles NCNN ?

NCNN est polyvalent et prend en charge diverses plateformes :

  • Mobile: Android, iOS.
  • Systèmes embarqués et appareils IoT : Appareils tels que Raspberry Pi et NVIDIA Jetson.
  • Ordinateurs de bureau et serveurs : Linux, Windows et macOS.

Si l'exécution de modèles sur un Raspberry Pi n'est pas assez rapide, la conversion au format NCNN pourrait accélérer les choses, comme indiqué dans notre Guide Raspberry Pi.

Comment puis-je déployer des modèles Ultralytics YOLO11 NCNN sur Android ?

Pour déployer vos modèles YOLO11 sur Android :

  1. Construire pour Android : Suivez le guide NCNN Build for Android.
  2. Intégrez-le à votre application : Utilisez le NCNN Android SDK pour intégrer le modèle exporté dans votre application pour une inférence efficace sur l’appareil.

Pour obtenir des instructions étape par étape, consultez notre guide sur le Déploiement de modèles YOLO11 NCNN.

Pour des guides plus avancés et des cas d'utilisation, consultez la page de documentation Ultralytics.



📅 Créé il y a 1 an ✏️ Mis à jour il y a 5 mois

Commentaires