Exportation Ultralytics YOLO vers NCNN#
Déployer des modèles de computer vision sur des appareils dotés d'une puissance de calcul limitée, tels que les systèmes mobiles ou intégrés, nécessite une sélection rigoureuse du format. L'utilisation d'un format optimisé garantit que même les appareils aux ressources limitées peuvent gérer efficacement des tâches avancées de computer vision.
L'exportation au format NCNN te permet d'optimiser tes modèles Ultralytics YOLO26 pour des applications légères fonctionnant sur appareil. Ce guide explique comment convertir tes modèles au format NCNN pour améliorer les performances sur les appareils mobiles et intégrés.
Pourquoi exporter vers NCNN ?#
Le framework NCNN, développé par Tencent, est un framework de calcul d'inférence de neural network haute performance optimisé spécifiquement pour les plateformes mobiles, y compris les téléphones portables, les appareils intégré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 un 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 l'appareil, aidant les développeurs à déployer des modèles sur des appareils mobiles, intégrés et de périphérie :
-
Efficace et haute performance : Les modèles NCNN sont légers et optimisés pour les appareils mobiles et intégrés comme Raspberry Pi disposant de ressources limitées, tout en maintenant une haute accuracy sur les tâches de computer vision.
-
Quantization : NCNN prend en charge la quantization, une technique qui réduit la precision 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 les frameworks de deep learning populaires, notamment TensorFlow, Caffe et ONNX, ce qui permet aux développeurs de tirer parti des modèles et des flux de travail existants.
-
Facilité d'utilisation : NCNN fournit des outils conviviaux pour convertir les modèles entre les formats, garantissant 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 auprès de multiples fournisseurs, dont AMD, Intel et d'autres GPU non NVIDIA, permettant un déploiement haute performance sur une plus large gamme 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 appareil.
-
Systèmes intégrés et appareils IoT : Idéal pour les appareils aux ressources limitées comme Raspberry Pi et NVIDIA Jetson. Si l'inférence standard sur un Raspberry Pi avec le Ultralytics Guide est insuffisante, NCNN peut offrir des améliorations de performance significatives.
-
Déploiement sur bureau et serveur : Prend en charge le déploiement sur Linux, Windows et macOS pour les workflows de développement, d'entraînement et 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, y compris les cartes graphiques AMD, Intel et d'autres cartes non NVIDIA. C'est particulièrement utile pour :
- Support GPU multi-fournisseur : Contrairement à CUDA, qui est limité aux GPU NVIDIA, Vulkan fonctionne avec plusieurs fournisseurs de GPU.
- Systèmes multi-GPU : Sélectionne un appareil Vulkan spécifique dans les systèmes dotés de plusieurs GPU en utilisant
device="vulkan:0",device="vulkan:1", etc. - Déploiements en périphérie (edge) et sur bureau : Exploite l'accélération GPU sur les appareils où CUDA n'est pas disponible.
Pour utiliser l'accélération Vulkan, spécifie le périphérique 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 installé les pilotes Vulkan pour ton GPU. La plupart des pilotes de GPU modernes incluent le support de Vulkan par défaut. Tu peux vérifier la disponibilité de Vulkan à l'aide d'outils tels que vulkaninfo sur Linux ou le SDK Vulkan sur Windows.
Tâches prises en charge#
L'export NCNN prend en charge les sept tâches d'Ultralytics. La segmentation sémantique et l'estimation de la profondeur ne sont disponibles qu'avec YOLO26, la seule famille qui intègre ces têtes.
Exporter vers NCNN : Conversion de ton modèle YOLO26#
Tu peux étendre la compatibilité et la flexibilité de déploiement de tes modèles en convertissant les modèles YOLO26 au format NCNN.
Installation#
Pour installer les paquets requis, exécute :
# Install the required package for YOLO26
pip install ultralyticsPour des instructions détaillées et les meilleures pratiques, consulte le Ultralytics Installation guide. Si tu rencontres des difficultés, consulte notre Common Issues guide pour trouver des solutions.
Utilisation#
Tous les modèles Ultralytics YOLO26 sont conçus pour prendre en charge l'exportation dès leur sortie de la boîte, ce qui facilite leur intégration dans ton flux de travail de déploiement préféré. Tu peux consulter la liste complète des formats d'export pris en charge et des options de configuration pour choisir la meilleure configuration pour ton application.
Le format NCNN prend en charge les modes Export, Predict et Validate. Exporte ton modèle, puis charge le modèle exporté pour exécuter l'inférence ou valider sa précision.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo26n_ncnn_model'from ultralytics import YOLO
# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")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. |
quantize | int ou str | None | Précision de la quantization : 16 (FP16) réduit la taille du modèle et peut accélérer l'inférence ; 32/non défini correspond à FP32. Remplace l'indicateur obsolète half. |
batch | int | 1 | Spécifie la taille d'inférence par lots du modèle exporté ou le nombre maximal d'images que le modèle exporté traitera simultanément en mode predict. |
device | str | None | Spécifie le périphérique 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 d'Ultralytics sur l'exportation.
Déploiement des 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 indiqué dans l'exemple d'utilisation ci-dessus. Pour des instructions de déploiement spécifiques à une plateforme, consulte les ressources suivantes :
-
Android : Crée et intègre des modèles NCNN pour la object detection dans des applications Android.
-
macOS : Déploie des modèles NCNN sur des systèmes macOS.
-
Linux : Déploie des modèles NCNN sur des appareils Linux, y compris Raspberry Pi et des systèmes intégrés similaires.
-
Windows x64 : Déploie des modèles NCNN sur Windows x64 à l'aide de Visual Studio.
Résumé#
Ce guide a couvert l'exportation des modèles Ultralytics YOLO26 vers le format NCNN pour améliorer l'efficacité et la vitesse sur les appareils aux ressources limitées.
Pour plus de détails, reporte-toi à la official NCNN documentation. Pour d'autres options d'exportation, visite notre integration guide page.
FAQ#
L'exportation de 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, garantissant des performances élevées même avec des ressources de calcul 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.
- Compatibilité étendue : Tu peux déployer des modèles NCNN sur de multiples plateformes, incluant Android, iOS, Linux et macOS.
- Accélération GPU Vulkan : Exploite 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, consulte la section Why Export to NCNN?.
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 processeurs mobiles.
- Cross-Platform : Compatible avec les frameworks populaires tels que TensorFlow et ONNX, ce qui facilite la conversion et le déploiement des modèles sur différentes plateformes.
- Support de la communauté : Un support communautaire actif garantit des améliorations et des mises à jour constantes.
Pour plus d'informations, consulte la section Key Features of NCNN Models.
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.
- Ordinateur de bureau et serveurs : Linux, Windows et macOS.
Pour de meilleures performances sur Raspberry Pi, envisage d'utiliser le format NCNN comme détaillé dans notre Raspberry Pi Guide.
Pour déployer tes modèles YOLO26 sur Android :
- Build for Android : Suis le guide NCNN Build for Android.
- Intégration 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, consulte Deploying Exported YOLO26 NCNN Models.
Pour des guides plus avancés et des cas d'utilisation, visite le Ultralytics deployment guide.
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:1pour le deuxième GPU). Assure-toi que les pilotes Vulkan sont installés pour ton GPU. Consulte la section Vulkan GPU Acceleration pour plus de détails.
Pour exporter ton modèle Ultralytics YOLO26 au format NCNN :
Python : Utilise la méthode
exportde la classe YOLO.CLI : Utilise la commande
yolo export.Pour des options d'exportation détaillées, consulte la documentation Export.