Skip to content

Modèle d'exportation avec Ultralytics YOLO

Ultralytics YOLO écosystème et intégrations

Introduction

L'objectif ultime de la formation d'un modèle est de le déployer pour des applications réelles. Le mode d'exportation dans Ultralytics YOLO11 offre une gamme polyvalente d'options pour exporter votre modèle formé vers différents formats, ce qui permet de le déployer sur diverses plates-formes et appareils. Ce guide complet a pour but de vous guider à travers les nuances de l'exportation de modèles, en vous montrant comment obtenir une compatibilité et des performances maximales.



Regarder : Comment exporter un modèle Ultralytics YOLO personnalisé et exécuter une inférence en direct sur une webcam.

Pourquoi choisir le mode d'exportation de YOLO11?

  • Polyvalence : Exportation vers de nombreux formats, notamment ONNX, TensorRT, CoreML, et bien d'autres encore.
  • Performance : Gagnez jusqu'Ă  5 fois la vitesse de GPU avec TensorRT et 3 fois la vitesse de CPU avec ONNX ou OpenVINO.
  • CompatibilitĂ© : Rendez votre modèle universellement dĂ©ployable dans de nombreux environnements matĂ©riels et logiciels.
  • FacilitĂ© d'utilisation : CLI et Python API simples pour une exportation rapide et directe des modèles.

Principales caractéristiques du mode d'exportation

Voici quelques-unes des fonctionnalités les plus remarquables :

  • Exportation en un clic : Des commandes simples pour exporter vers diffĂ©rents formats.
  • Exportation par lots : Exporter des modèles capables d'effectuer une infĂ©rence par lots.
  • InfĂ©rence optimisĂ©e : Les modèles exportĂ©s sont optimisĂ©s pour une infĂ©rence plus rapide.
  • Tutoriels vidĂ©o : Des guides et des tutoriels approfondis pour une expĂ©rience d'exportation fluide.

Conseil

  • Exporter vers ONNX ou OpenVINO pour accĂ©lĂ©rer jusqu'Ă  3 fois CPU .
  • Exporter vers TensorRT pour accĂ©lĂ©rer jusqu'Ă  5 fois GPU .

Exemples d'utilisation

Exporter un modèle YOLO11n dans un format différent comme ONNX ou TensorRT. Voir la section Arguments ci-dessous pour une liste complète des arguments d'exportation.

Exemple

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo11n.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Arguments

Ce tableau détaille les configurations et les options disponibles pour exporter les modèles YOLO dans différents formats. Ces paramètres sont essentiels pour optimiser les performances, la taille et la compatibilité du modèle exporté sur différentes plates-formes et dans différents environnements. Une configuration correcte garantit que le modèle est prêt à être déployé dans l'application prévue avec une efficacité optimale.

Argument Type DĂ©faut Description
format str 'torchscript' Format cible pour le modèle exporté, tel que 'onnx', 'torchscript', 'tensorflow'ou d'autres, définissant la compatibilité avec divers environnements de déploiement.
imgsz int ou tuple 640 Taille de l'image souhaitée pour l'entrée du modèle. Il peut s'agir d'un entier pour les images carrées ou d'un tuple (height, width) pour les dimensions spécifiques.
keras bool False Permet l'exportation au format Keras pour TensorFlow SavedModel ce qui permet d'assurer la compatibilité avec les services et les API de TensorFlow .
optimize bool False Optimisation pour les appareils mobiles lors de l'exportation vers TorchScript, ce qui permet de réduire la taille du modèle et d'améliorer les performances.
half bool False Permet 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.
int8 bool False Active la quantification INT8, ce qui permet de comprimer davantage le modèle et d'accélérer l'inférence avec une perte de précision minimale, principalement pour les appareils périphériques.
dynamic bool False Permet des tailles d'entrée dynamiques pour les exportations ONNX, TensorRT et OpenVINO , améliorant ainsi la flexibilité dans la gestion de dimensions d'image variables.
simplify bool True Simplifie le graphique du modèle pour les exportations ONNX avec onnxslimce qui peut améliorer les performances et la compatibilité.
opset int None Spécifie la version de l'opset ONNX pour assurer la compatibilité avec les différents analyseurs et moteurs d'exécution de ONNX . Si elle n'est pas définie, la dernière version supportée est utilisée.
workspace float ou None None Définit la taille maximale de l'espace de travail en GiB pour les optimisations de TensorRT , en équilibrant l'utilisation de la mémoire et les performances ; utiliser None pour une auto-attribution par TensorRT jusqu'au maximum de l'appareil.
nms bool False Ajoute la suppression non maximale (NMS) à l'exportation CoreML , ce qui est essentiel pour un post-traitement précis et efficace de la détection.
batch int 1 Spécifie la taille du lot d'inférence du modèle exporté ou le nombre maximum d'images que le modèle exporté traitera simultanément en predict mode.
device str None Spécifie le dispositif à exporter : GPU (device=0), CPU (device=cpu), MPS pour le silicium d'Apple (device=mps) ou DLA pour NVIDIA Jetson (device=dla:0 ou device=dla:1).

L'ajustement de ces paramètres permet de personnaliser le processus d'exportation pour répondre à des exigences spécifiques, telles que l'environnement de déploiement, les contraintes matérielles et les objectifs de performance. La sélection du format et des paramètres appropriés est essentielle pour atteindre le meilleur équilibre entre la taille du modèle, la vitesse et la précision.

Formats d'exportation

Les formats d'exportation disponibles sur YOLO11 sont présentés dans le tableau ci-dessous. Vous pouvez exporter vers n'importe quel format à l'aide de la fonction format l'argument, c'est-à-dire format='onnx' ou format='engine'. Vous pouvez prédire ou valider directement les modèles exportés, c'est-à-dire yolo predict model=yolo11n.onnx. Des exemples d'utilisation sont présentés pour votre modèle une fois l'exportation terminée.

Format format Argument Modèle Métadonnées Arguments
PyTorch - yolo11n.pt âś… -
TorchScript torchscript yolo11n.torchscript âś… imgsz, optimize, batch
ONNX onnx yolo11n.onnx âś… imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolo11n_openvino_model/ âś… imgsz, half, int8, batch
TensorRT engine yolo11n.engine âś… imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolo11n.mlpackage âś… imgsz, half, int8, nms, batch
TF SavedModel saved_model yolo11n_saved_model/ âś… imgsz, keras, int8, batch
TF GraphDef pb yolo11n.pb ❌ imgsz, batch
TF Lite tflite yolo11n.tflite âś… imgsz, half, int8, batch
TF Bord TPU edgetpu yolo11n_edgetpu.tflite âś… imgsz
TF.js tfjs yolo11n_web_model/ âś… imgsz, half, int8, batch
PaddlePaddle paddle yolo11n_paddle_model/ âś… imgsz, batch
MNN mnn yolo11n.mnn âś… imgsz, batch, int8, half
NCNN ncnn yolo11n_ncnn_model/ âś… imgsz, half, batch
IMX500 imx yolov8n_imx_model/ âś… imgsz, int8

FAQ

Comment exporter un modèle YOLO11 au format ONNX ?

L'exportation d'un modèle YOLO11 au format ONNX est simple à réaliser avec Ultralytics qui propose les méthodes Python et CLI pour l'exportation des modèles.

Exemple

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo11n.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Pour plus de détails sur le processus, y compris les options avancées telles que la gestion de différentes tailles d'entrée, consultez la sectionONNX .

Quels sont les avantages de l'utilisation de TensorRT pour l'exportation de modèles ?

L'utilisation de TensorRT pour l'exportation de modèles offre des améliorations significatives en termes de performances. Les modèles YOLO11 exportés vers TensorRT peuvent atteindre une vitesse de 5x GPU , ce qui les rend idéaux pour les applications d'inférence en temps réel.

  • Polyvalence : Optimiser les modèles pour une configuration matĂ©rielle spĂ©cifique.
  • Vitesse : Obtenez une infĂ©rence plus rapide grâce Ă  des optimisations avancĂ©es.
  • CompatibilitĂ© : S'intègre parfaitement au matĂ©riel NVIDIA .

Pour en savoir plus sur l'intégration de TensorRT, consultez le guide d'intégration deTensorRT .

Comment activer la quantification INT8 lors de l'exportation de mon modèle YOLO11 ?

La quantification INT8 est un excellent moyen de compresser le modèle et d'accélérer l'inférence, en particulier sur les appareils périphériques. Voici comment activer la quantification INT8 :

Exemple

from ultralytics import YOLO

model = YOLO("yolo11n.pt")  # Load a model
model.export(format="engine", int8=True)
yolo export model=yolo11n.pt format=engine int8=True   # export TensorRT model with INT8 quantization

La quantification INT8 peut être appliquée à différents formats, tels que TensorRT et CoreML. Pour plus de détails, voir la section Exportation.

Pourquoi la taille des entrées dynamiques est-elle importante lors de l'exportation de modèles ?

La taille d'entrée dynamique permet au modèle exporté de gérer des dimensions d'image variables, ce qui apporte de la flexibilité et optimise l'efficacité du traitement pour différents cas d'utilisation. Lors de l'exportation vers des formats tels que ONNX ou TensorRT, l'activation de la taille d'entrée dynamique garantit que le modèle peut s'adapter à différentes formes d'entrée de manière transparente.

Pour activer cette fonction, utilisez la fonction dynamic=True lors de l'exportation :

Exemple

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="onnx", dynamic=True)
yolo export model=yolo11n.pt format=onnx dynamic=True

Pour plus de détails, voir la configuration de la taille de l'entrée dynamique.

Quels sont les principaux arguments d'exportation à prendre en compte pour optimiser la performance du modèle ?

La compréhension et la configuration des arguments d'exportation sont essentielles pour optimiser les performances du modèle :

  • format: Le format cible du modèle exportĂ© (par ex, onnx, torchscript, tensorflow).
  • imgsz: Taille de l'image souhaitĂ©e pour l'entrĂ©e du modèle (par ex, 640 ou (height, width)).
  • half: Permet la quantification FP16, rĂ©duisant la taille du modèle et accĂ©lĂ©rant potentiellement l'infĂ©rence.
  • optimize: Applique des optimisations spĂ©cifiques pour les environnements mobiles ou contraignants.
  • int8: Permet la quantification INT8, très utile pour les dĂ©ploiements en pĂ©riphĂ©rie.

Pour obtenir une liste détaillée et des explications sur tous les arguments d'exportation, consultez la section Arguments d'exportation.

📅C réé il y a 1 an ✏️ Mis à jour il y a 1 mois

Commentaires