Exportation NCNN d'Ultralytics YOLO
Le déploiement de modèles de vision par ordinateur sur des appareils à puissance de calcul limitée, tels que les systèmes mobiles ou embarqués, nécessite une sélection minutieuse du format. L'utilisation d'un format optimisé garantit que même les appareils aux ressources restreintes peuvent gérer efficacement des tâches avancées de vision par ordinateur.
L'exportation au format NCNN te permet d'optimiser tes modèles Ultralytics YOLO26 pour des applications légères basées sur des appareils. Ce guide couvre la manière de convertir tes modèles au format NCNN pour améliorer les performances sur les appareils mobiles et embarqués.
Pourquoi exporter vers NCNN ?
Le framework NCNN, développé par Tencent, est un framework d'inférence de réseau de neurones haute performance optimisé spécifiquement pour les plateformes mobiles, incluant les téléphones portables, les appareils embarqués et les appareils IoT. NCNN est compatible avec une large gamme de plateformes, dont Linux, Android, iOS et macOS.
NCNN est reconnu pour sa vitesse de traitement rapide sur les CPU mobiles et permet le déploiement rapide de modèles de deep learning sur des plateformes mobiles, ce qui en fait un excellent choix pour créer des applications alimentées par l'IA.
Fonctionnalités clés des modèles NCNN
Les modèles NCNN offrent plusieurs fonctionnalités clés qui permettent le machine learning sur appareil, aidant les développeurs à déployer des modèles sur des appareils mobiles, embarqués et en périphérie (edge) :
-
Efficace et haute performance : Les modèles NCNN sont légers et optimisés pour les appareils mobiles et embarqués comme le Raspberry Pi disposant de ressources limitées, tout en maintenant une précision élevée sur les tâches de vision par ordinateur.
-
Quantification : NCNN prend en charge la quantification, une technique qui réduit la précision des poids et des activations du modèle pour améliorer les performances et réduire l'empreinte mémoire.
-
Compatibilité : Les modèles NCNN sont compatibles avec des frameworks de deep learning populaires, notamment TensorFlow, Caffe et ONNX, permettant aux développeurs de tirer parti des modèles et flux de travail existants.
-
Facilité d'utilisation : NCNN fournit des outils conviviaux pour convertir les modèles entre les formats, assurant une interopérabilité fluide à travers différents environnements de développement.
-
Accélération GPU Vulkan : NCNN prend en charge Vulkan pour une inférence accélérée par GPU sur plusieurs fournisseurs, incluant AMD, Intel et d'autres GPU non NVIDIA, permettant un déploiement haute performance sur une gamme plus large de matériel.
Options de déploiement avec NCNN
Les modèles NCNN sont compatibles avec une variété de plateformes de déploiement :
-
Déploiement mobile : 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 : Idéal pour les appareils aux ressources limitées comme le Raspberry Pi et NVIDIA Jetson. Si l'inférence standard sur un Raspberry Pi avec le Guide Ultralytics est insuffisante, NCNN peut fournir des améliorations de performance significatives.
-
Déploiement sur bureau et serveur : Prend en charge le déploiement sur Linux, Windows et macOS pour le développement, l'entraînement et les flux de travail d'évaluation.
Accélération GPU Vulkan
NCNN prend en charge l'accélération GPU via Vulkan, permettant une inférence haute performance sur une large gamme de GPU incluant AMD, Intel et d'autres cartes graphiques non NVIDIA. Ceci est particulièrement utile pour :
- Support GPU multi-fournisseur : Contrairement à CUDA, qui est limité aux GPU NVIDIA, Vulkan fonctionne sur plusieurs fournisseurs de GPU.
- Systèmes multi-GPU : Sélectionne un appareil Vulkan spécifique dans les systèmes avec plusieurs GPU en utilisant
device="vulkan:0",device="vulkan:1", etc. - Déploiements en périphérie (edge) et sur bureau : Tire parti de l'accélération GPU sur les appareils où CUDA n'est pas disponible.
Pour utiliser l'accélération Vulkan, spécifie l'appareil Vulkan lors de l'exécution de l'inférence :
from ultralytics import YOLO
# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")
# Run inference with Vulkan GPU acceleration (first Vulkan device)
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:0")
# Use second Vulkan device in multi-GPU systems
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:1")Assure-toi d'avoir les pilotes Vulkan installés pour ton GPU. La plupart des pilotes GPU modernes incluent le support Vulkan par défaut. Tu peux vérifier la disponibilité de Vulkan en utilisant des outils comme vulkaninfo sur Linux ou le Vulkan SDK sur Windows.
Exporter vers NCNN : Convertir ton modèle YOLO26
Tu peux étendre la compatibilité des modèles et la flexibilité de déploiement en convertissant les modèles YOLO26 au format NCNN.
Installation
Pour installer les packages requis, exécute :
# Install the required package for YOLO26
pip install ultralyticsPour des instructions détaillées et les meilleures pratiques, consulte le guide d'installation Ultralytics. Si tu rencontres des difficultés, consulte notre guide des problèmes courants pour obtenir des solutions.
Utilisation
Tous les modèles Ultralytics YOLO26 sont conçus pour prendre en charge l'exportation dès la sortie de la boîte, ce qui facilite leur intégration dans ton flux de déploiement préféré. Tu peux consulter la liste complète des formats d'exportation pris en charge et des options de configuration pour choisir la meilleure configuration pour ton application.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo26n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")Arguments d'exportation
| Argument | Type | 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 des 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 d'inférence par lot du modèle exporté ou le nombre maximal d'images que le modèle traitera simultanément en mode predict. |
device | str | None | Spécifie l'appareil 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, visite la page de documentation Ultralytics sur l'exportation.
Déployer les modèles YOLO26 NCNN exportés
Après avoir exporté tes modèles Ultralytics YOLO26 au format NCNN, tu peux les déployer en utilisant la méthode YOLO("yolo26n_ncnn_model/") comme montré dans l'exemple d'utilisation ci-dessus. Pour des instructions de déploiement spécifiques à la plateforme, consulte les ressources suivantes :
-
Android : Construis et intègre des modèles NCNN pour la détection d'objets dans les applications Android.
-
macOS : Déploie des modèles NCNN sur les systèmes macOS.
-
Linux : Déploie des modèles NCNN sur des appareils Linux incluant Raspberry Pi et des systèmes embarqués similaires.
-
Windows x64 : Déploie des modèles NCNN sur Windows x64 en utilisant Visual Studio.
Résumé
Ce guide a couvert l'exportation des modèles Ultralytics YOLO26 au format NCNN pour une efficacité et une vitesse améliorées sur les appareils aux ressources limitées.
Pour plus de détails, réfère-toi à la documentation officielle NCNN. Pour d'autres options d'exportation, visite notre page de guide d'intégration.
FAQ
Comment exporter les modèles Ultralytics YOLO26 au format NCNN ?
Pour exporter ton modèle Ultralytics YOLO26 au format NCNN :
-
Python : Utilise la méthode
exportde la classe YOLO.from ultralytics import YOLO # Load the YOLO26 model model = YOLO("yolo26n.pt") # Export to NCNN format model.export(format="ncnn") # creates '/yolo26n_ncnn_model' -
CLI : Utilise la commande
yolo export.yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'
Pour des options d'exportation détaillées, consulte la documentation Export.
Quels sont les avantages d'exporter les modèles YOLO26 vers NCNN ?
Exporter tes modèles Ultralytics YOLO26 vers NCNN offre plusieurs avantages :
- Efficacité : Les modèles NCNN sont optimisés pour les appareils mobiles et embarqués, assurant une performance élevée 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 des modèles NCNN sur plusieurs plateformes, incluant Android, iOS, Linux et macOS.
- Accélération GPU Vulkan : Tire parti de l'accélération GPU sur AMD, Intel et d'autres GPU non NVIDIA via Vulkan pour une inférence plus rapide.
Pour plus de détails, voir la section Pourquoi exporter vers NCNN ?.
Pourquoi devrais-je utiliser NCNN pour mes applications d'IA mobiles ?
NCNN, développé par Tencent, est spécifiquement optimisé pour les plateformes mobiles. Les raisons principales d'utiliser NCNN incluent :
- Haute performance : Conçu pour un traitement efficace et rapide sur les CPU mobiles.
- Multiplateforme : Compatible avec des frameworks populaires tels que TensorFlow et ONNX, facilitant la conversion et le déploiement de modèles à travers différentes plateformes.
- Support communautaire : Un support communautaire actif garantit des améliorations et des mises à jour continues.
Pour plus d'informations, voir la section Fonctionnalités clés des modèles NCNN.
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 comme Raspberry Pi et NVIDIA Jetson.
- Bureau et serveurs : Linux, Windows et macOS.
Pour une performance améliorée sur Raspberry Pi, considère l'utilisation du format NCNN comme détaillé dans notre Guide Raspberry Pi.
Comment puis-je déployer des modèles NCNN Ultralytics YOLO26 sur Android ?
Pour déployer tes modèles YOLO26 sur Android :
- Construire pour Android : Suis le guide NCNN Build for Android.
- Intégrer avec ton application : Utilise le SDK Android NCNN pour intégrer le modèle exporté dans ton application pour une inférence efficace sur l'appareil.
Pour des instructions détaillées, voir Déployer les modèles YOLO26 NCNN exportés.
Pour des guides plus avancés et des cas d'utilisation, visite le guide de déploiement Ultralytics.
Comment utiliser l'accélération GPU Vulkan avec les modèles NCNN ?
NCNN prend en charge Vulkan pour l'accélération GPU sur AMD, Intel et d'autres GPU non NVIDIA. Pour utiliser Vulkan :
from ultralytics import YOLO
# Load NCNN model and run with Vulkan GPU
model = YOLO("yolo26n_ncnn_model")
results = model("image.jpg", device="vulkan:0") # Use first Vulkan devicePour les systèmes multi-GPU, spécifie l'index de l'appareil (par exemple, vulkan:1 pour le deuxième GPU). Assure-toi que les pilotes Vulkan sont installés pour ton GPU. Voir la section Accélération GPU Vulkan pour plus de détails.