Exportation d’Ultralytics YOLO vers NCNN#
Le déploiement de modèles de vision par ordinateur sur des appareils disposant d’une puissance de calcul limitée, tels que les systèmes mobiles ou embarqués, nécessite de sélectionner soigneusement le format. L’utilisation d’un format optimisé garantit que même les appareils aux ressources limitées peuvent exécuter 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 exécutées sur appareil. Ce guide explique comment convertir tes modèles au format NCNN afin d’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 de calcul d’inférence de réseaux neuronaux hautes performances, optimisé spécifiquement pour les plateformes mobiles, notamment les téléphones mobiles, 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 reconnu pour sa vitesse de traitement élevée sur les CPU mobiles et permet de déployer rapidement des modèles de deep learning sur les 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 l’apprentissage automatique sur appareil et aident les développeurs à déployer des modèles sur des appareils mobiles, embarqués et edge :
-
Efficacité et hautes performances : les modèles NCNN sont légers et optimisés pour les appareils mobiles et embarqués comme Raspberry Pi, qui disposent de ressources limitées, tout en maintenant une précision élevée pour 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 afin d’améliorer les performances et de 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 workflows existants.
-
Facilité d’utilisation : NCNN fournit des outils conviviaux pour convertir les modèles entre différents formats, garantissant une interopérabilité fluide entre divers environnements de développement.
-
Accélération GPU Vulkan : NCNN prend en charge Vulkan pour l’inférence accélérée par GPU auprès de plusieurs fabricants, notamment AMD, Intel et d’autres GPU non-NVIDIA, permettant un déploiement hautes performances sur une gamme de matériels plus étendue.
Options de déploiement avec NCNN#
Les modèles NCNN sont compatibles avec diverses plateformes de déploiement :
-
Déploiement mobile : optimisé pour Android et iOS, il permet une intégration fluide dans les applications mobiles pour une inférence efficace sur appareil.
-
Systèmes embarqué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 guide Ultralytics est insuffisante, NCNN peut apporter des améliorations significatives des performances.
-
Déploiement sur ordinateur et serveur : prend en charge le déploiement sous 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 hautes performances sur un large éventail de GPU, notamment AMD, Intel et d’autres cartes graphiques non-NVIDIA. Cette fonctionnalité est particulièrement utile pour :
- Prise en charge des GPU de différents fabricants : contrairement à CUDA, limité aux GPU NVIDIA, Vulkan fonctionne avec plusieurs fabricants de GPU.
- Systèmes multi-GPU : sélectionne un appareil Vulkan spécifique sur les systèmes équipés de plusieurs GPU à l’aide de
device="vulkan:0",device="vulkan:1", etc. - Déploiements edge et sur ordinateur : 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")Vérifie que les pilotes Vulkan sont installés pour ton GPU. La plupart des pilotes GPU modernes incluent la prise en charge de Vulkan par défaut. Tu peux vérifier la disponibilité de Vulkan à l’aide d’outils tels que vulkaninfo sous Linux ou du SDK Vulkan sous Windows.
Tâches prises en charge#
L’exportation NCNN prend en charge les sept tâches Ultralytics. La segmentation sémantique et l’estimation de profondeur sont disponibles uniquement avec YOLO26, la seule famille qui fournit ces têtes.
| Tâche | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Détection | ✅ | ✅ | ✅ |
| Segmentation | ✅ | ✅ | ✅ |
| Sémantique | ❌ | ❌ | ✅ |
| Profondeur | ❌ | ❌ | ✅ |
| Classification | ✅ | ✅ | ✅ |
| Pose | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
Exporter vers NCNN : convertir ton modèle YOLO26#
Tu peux étendre la compatibilité de tes modèles et la flexibilité de leur 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 obtenir des instructions détaillées et connaître les bonnes pratiques, consulte le guide d’installation Ultralytics. Si tu rencontres des difficultés, consulte notre guide des problèmes courants pour trouver des solutions.
Utilisation#
Tous les modèles Ultralytics YOLO26 sont conçus pour prendre en charge l’exportation directement, ce qui facilite leur intégration à ton workflow de déploiement préféré. Tu peux consulter la liste complète des formats d’exportation et des options de configuration pris en charge 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 | Valeur par défaut | Description |
|---|---|---|---|
format | str | 'ncnn' | Format cible du modèle exporté, définissant sa compatibilité avec différents 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. |
quantize | int ou str | None | Précision de quantification : 16 (FP16) réduit de moitié les poids exportés ; 32/non défini exporte des poids FP32, que le runtime CPU de NCNN calcule néanmoins par défaut en FP16 lorsque le matériel le prend en charge. Remplace l’option obsolète half. |
batch | int | 1 | Indique la taille du lot d'inférence du modèle exporté ou le nombre maximal d'images que le modèle exporté traitera simultanément en mode predict. |
device | str | None | Indique l’appareil utilisé 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, consulte la page de la documentation Ultralytics consacrée à 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 à l’aide de la méthode YOLO("yolo26n_ncnn_model/"), comme indiqué dans l’exemple d’utilisation ci-dessus. Pour obtenir des instructions de déploiement propres à chaque plateforme, consulte les ressources suivantes :
-
Android : crée 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 des systèmes macOS.
-
Linux : déploie des modèles NCNN sur des appareils Linux, notamment Raspberry Pi et des systèmes embarqués similaires.
-
Windows x64 : déploie des modèles NCNN sous Windows x64 à l’aide de Visual Studio.
Résumé#
Ce guide a présenté l’exportation des modèles Ultralytics YOLO26 au format NCNN afin d’améliorer leur efficacité et leur vitesse sur les appareils aux ressources limitées.
Pour plus de détails, consulte la documentation officielle de NCNN. Pour découvrir d’autres options d’exportation, consulte notre page du guide des intégrations.
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 de hautes performances même avec des ressources de calcul limitées.
- Quantification : NCNN prend en charge des techniques telles que la quantification, qui accélèrent les modèles et réduisent l’utilisation de la mémoire.
- Large compatibilité : tu peux déployer des modèles NCNN sur plusieurs plateformes, notamment Android, iOS, Linux et macOS.
- Accélération GPU Vulkan : tire parti de l’accélération GPU sur les GPU AMD, Intel et autres GPU non-NVIDIA via Vulkan pour accélérer l’inférence.
Pour plus de détails, consulte la section Pourquoi exporter vers NCNN ?.
NCNN, développé par Tencent, est spécialement optimisé pour les plateformes mobiles. Voici les principales raisons d’utiliser NCNN :
- Hautes performances : conçu pour assurer un traitement efficace et rapide sur les CPU mobiles.
- Multiplateforme : compatible avec des frameworks populaires tels que TensorFlow et ONNX, ce qui facilite la conversion et le déploiement des modèles sur différentes plateformes.
- Prise en charge par la communauté : une communauté active garantit des améliorations et des mises à jour continues.
Pour plus d’informations, consulte la section Fonctionnalités clés des modèles NCNN.
NCNN est polyvalent et prend en charge différentes 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.
Pour améliorer les performances sur Raspberry Pi, envisage d’utiliser le format NCNN, comme indiqué dans notre guide Raspberry Pi.
Pour déployer tes modèles YOLO26 sur Android :
- Créer pour Android : suis le guide de compilation de NCNN pour Android.
- Intégrer à ton application : utilise le SDK Android de NCNN pour intégrer le modèle exporté à ton application et exécuter efficacement l’inférence sur appareil.
Pour obtenir des instructions détaillées, consulte Déployer les modèles YOLO26 NCNN exportés.
Pour découvrir des guides et des cas d’utilisation plus avancés, consulte le guide de déploiement Ultralytics.
NCNN prend en charge Vulkan pour l’accélération GPU sur les GPU AMD, Intel et 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). Vérifie que les pilotes Vulkan sont installés pour ton GPU. Consulte la section Accélération GPU Vulkan 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 découvrir les options d’exportation détaillées, consulte la documentation Export.