Optimisation des modèles Ultralytics YOLO avec l'intégration TensorRT
Apprends à exporter les modèles Ultralytics YOLO en utilisant l'intégration TensorRT pour des performances d'IA plus rapides et plus efficaces sur les GPU NVIDIA pour des applications en temps réel.

Imagine une voiture autonome circulant dans une rue animée avec seulement quelques millisecondes pour détecter un piéton quittant le trottoir. En même temps, elle pourrait devoir reconnaître un panneau stop partiellement caché par un arbre ou réagir rapidement à un véhicule à proximité se déportant sur sa voie. Dans de telles situations, la vitesse et les réponses en temps réel sont cruciales.
C'est là que l'intelligence artificielle (IA), plus précisément la vision par ordinateur, une branche de l'IA qui aide les machines à interpréter les données visuelles, joue un rôle clé. Pour que les solutions de vision par ordinateur fonctionnent de manière fiable dans des environnements réels, elles doivent souvent traiter les informations rapidement, gérer plusieurs tâches simultanément et utiliser la mémoire de manière efficace.
L'un des moyens d'y parvenir est l'accélération matérielle, en utilisant des dispositifs spécialisés tels que des unités de traitement graphique (GPU) pour exécuter les modèles plus rapidement. Les GPU NVIDIA sont particulièrement réputés pour ces tâches, grâce à leur capacité à offrir une faible latence et un débit élevé.
Cependant, exécuter un modèle sur un GPU tel quel ne garantit pas toujours des performances optimales. Les modèles de vision par IA nécessitent généralement une optimisation pour tirer pleinement parti des capacités du matériel. Afin d'obtenir des performances optimales avec un matériel spécifique, nous devons compiler le modèle pour utiliser le jeu d'instructions propre à ce matériel.
Par exemple, TensorRT est un format d'exportation et une bibliothèque d'optimisation développés par NVIDIA pour améliorer les performances sur les machines haut de gamme. Il utilise des techniques avancées pour réduire considérablement le temps d'inférence tout en maintenant la précision.

Fig 1. NVIDIA TensorRT permet aux modèles de fonctionner de manière optimale sur divers appareils NVIDIA.
Dans cet article, nous explorerons l'intégration TensorRT prise en charge par Ultralytics et nous verrons comment exporter ton modèle YOLO11 pour un déploiement plus rapide et plus efficace sur le matériel NVIDIA. Commençons !
Link to this sectionAperçu de TensorRT#
TensorRT est une boîte à outils développée par NVIDIA pour aider les modèles d'IA à s'exécuter plus rapidement et plus efficacement sur les GPU NVIDIA. Il est conçu pour les applications réelles où la vitesse et les performances comptent vraiment, comme les voitures autonomes et le contrôle qualité dans l'industrie manufacturière et pharmaceutique.
TensorRT inclut des outils comme des compilateurs et des optimiseurs de modèles qui travaillent en arrière-plan pour garantir que tes modèles s'exécutent avec une faible latence et puissent gérer un débit plus élevé.
L'intégration TensorRT prise en charge par Ultralytics fonctionne en optimisant ton modèle YOLO pour une exécution plus efficace sur les GPU, en utilisant des méthodes telles que la réduction de la précision. Cela consiste à utiliser des formats de bits inférieurs, tels que le virgule flottante 16 bits (FP16) ou l'entier 8 bits (INT8), pour représenter les données du modèle, ce qui réduit l'utilisation de la mémoire et accélère les calculs avec un impact minimal sur la précision.
De plus, les couches de réseaux neuronaux compatibles sont fusionnées dans les modèles TensorRT optimisés pour réduire l'utilisation de la mémoire, ce qui permet une inférence plus rapide et plus efficace.

Fig 2. Un aperçu de la technique de fusion de couches de TensorRT.
Link to this sectionFonctionnalités clés du format d'exportation TensorRT#
Avant de discuter de la manière d'exporter YOLO11 en utilisant l'intégration TensorRT, examinons certaines fonctionnalités clés du format de modèle TensorRT :
-
Intégration facile des frameworks : TensorRT prend en charge l'intégration directe avec des frameworks d'IA populaires comme PyTorch, Hugging Face et ONNX, offrant des performances jusqu'à 6 fois plus rapides. Il prend également en charge MATLAB, permettant le développement de moteurs d'IA à haute vitesse sur des plateformes telles que Jetson, NVIDIA DRIVE et les centres de données.
-
Déploiement évolutif avec Triton : Les modèles optimisés au format TensorRT peuvent être déployés à grande échelle en utilisant NVIDIA Triton Inference Server, ce qui améliore l'efficacité grâce à des fonctionnalités telles que le traitement par lots en entrée, l'exécution concurrente de modèles, la prise en charge d'ensembles de modèles et le streaming audio/vidéo en temps réel.
-
Flexible sur tous les appareils : Des petits appareils de périphérie (edge devices) aux serveurs puissants, TensorRT fonctionne sur tout l'écosystème NVIDIA, prenant en charge des outils comme DeepStream pour la vidéo, Riva pour l'IA vocale, et d'autres pour la cybersécurité, les recommandations, et bien plus encore.
Link to this sectionComment fonctionne l'intégration TensorRT ?#
Exporter des modèles Ultralytics YOLO tels qu'Ultralytics YOLO11 vers le format de modèle TensorRT est simple. Passons en revue les étapes nécessaires.
Pour commencer, tu peux installer le paquet Python Ultralytics à l'aide d'un gestionnaire de paquets comme « pip ». Tu peux le faire en exécutant la commande « pip install ultralytics » dans ton invite de commande ou ton terminal.
Après avoir installé le paquet Python Ultralytics, tu peux entraîner, tester, affiner, exporter et déployer des modèles pour diverses tâches de vision par ordinateur, comme la détection d'objets, la classification et la segmentation d'instances. Lors de l'installation du paquet, si tu rencontres des difficultés, tu peux consulter le guide des problèmes courants pour obtenir des solutions et des conseils.
Pour l'étape suivante, tu auras besoin d'un appareil NVIDIA. Utilise l'extrait de code ci-dessous pour charger et exporter YOLO11 au format de modèle TensorRT. Il charge une variante nano pré-entraînée du modèle YOLO11 (yolo11n.pt) et l'exporte en tant que fichier moteur TensorRT (yolo11n.engine), le rendant prêt à être déployé sur des appareils NVIDIA.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="engine")Après avoir converti ton modèle au format TensorRT, tu peux le déployer pour diverses applications.
L'exemple ci-dessous montre comment charger le modèle YOLO11 exporté (yolo11n.engine) et effectuer une inférence avec celui-ci. L'inférence consiste à utiliser le modèle entraîné pour effectuer des prédictions sur de nouvelles données. Dans ce cas, nous utiliserons une image d'entrée représentant un chien pour tester le modèle.
tensorrt_model = YOLO("yolo11n.engine")
results = tensorrt_model("https://images.pexels.com/photos/1254140/pexels-photo-1254140.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2.jpg", save=True)Lorsque tu exécuteras ce code, l'image de sortie suivante sera enregistrée dans le dossier runs/detect/predict.

Fig 3. Le résultat de l'exécution d'une inférence à l'aide du modèle YOLO11 exporté au format TensorRT.
Link to this sectionQuand utiliser l'intégration TensorRT#
Le paquet Python Ultralytics prend en charge diverses intégrations qui permettent d'exporter les modèles YOLO vers différents formats comme TorchScript, CoreML, ONNX et TensorRT. Alors, quand devrais-tu choisir d'utiliser l'intégration TensorRT ?
Voici quelques facteurs qui distinguent le format de modèle TensorRT des autres options d'intégration d'exportation :
-
Taille de modèle réduite : Exporter un modèle YOLO vers le format TensorRT avec une précision INT8 peut réduire considérablement la taille du modèle. La quantification de FP32 à INT8 peut entraîner une réduction de 4x de la taille du modèle, ce qui permet des temps de téléchargement plus rapides, des besoins en stockage plus faibles et une empreinte mémoire réduite lors du déploiement.
-
Consommation d'énergie réduite : La quantification INT8 non seulement réduit la taille du modèle, mais diminue également la consommation d'énergie. Les opérations en précision réduite pour les modèles YOLO exportés en INT8 peuvent consommer moins d'énergie par rapport aux modèles FP32, ce qui est particulièrement avantageux pour les appareils alimentés par batterie comme les drones, les smartphones ou les appareils de périphérie.
-
Performances plus rapides : Combiner l'architecture efficace de YOLO avec l'optimisation INT8 de TensorRT peut améliorer les vitesses d'inférence.
Link to this sectionApplications de YOLO11 et du format de modèle TensorRT#
Les modèles Ultralytics YOLO exportés au format TensorRT peuvent être déployés dans un large éventail de scénarios réels. Ces modèles optimisés sont particulièrement utiles là où des performances d'IA rapides et efficaces sont essentielles. Explorons quelques exemples intéressants de la manière dont ils peuvent être utilisés.
Link to this sectionCaisses de paiement intelligentes dans les magasins de détail#
Un large éventail de tâches dans les magasins de détail, comme scanner les codes-barres, peser les produits ou emballer les articles, est toujours effectué manuellement par le personnel. Cependant, dépendre uniquement des employés peut ralentir les opérations et entraîner la frustration des clients, surtout lors du passage en caisse. Les longues files d'attente sont gênantes tant pour les clients que pour les propriétaires de magasins. Les caisses de paiement en libre-service intelligentes sont une excellente solution à ce problème.
Ces caisses utilisent la vision par ordinateur et des GPU pour accélérer le processus, aidant à réduire les temps d'attente. La vision par ordinateur permet à ces systèmes de voir et de comprendre leur environnement grâce à des tâches telles que la détection d'objets. Des modèles avancés comme YOLO11, lorsqu'ils sont optimisés avec des outils comme TensorRT, peuvent fonctionner beaucoup plus rapidement sur des appareils GPU.
Ces modèles exportés sont bien adaptés aux configurations de vente au détail intelligentes utilisant des appareils matériels compacts mais puissants comme le NVIDIA Jetson Nano, conçu spécifiquement pour les applications d'IA de périphérie.

Fig 4. Un exemple de caisse de paiement intelligente.
Link to this sectionDétection automatisée des défauts dans l'industrie manufacturière#
Un modèle de vision par ordinateur comme YOLO11 peut être entraîné sur mesure pour détecter les produits défectueux dans l'industrie manufacturière. Une fois entraîné, le modèle peut être exporté au format TensorRT pour être déployé dans des installations équipées de systèmes d'IA haute performance.
À mesure que les produits se déplacent sur les tapis roulants, les caméras capturent des images, et le modèle YOLO11, fonctionnant au format TensorRT, les analyse en temps réel pour repérer les défauts. Cette configuration permet aux entreprises de détecter les problèmes rapidement et avec précision, réduisant les erreurs et améliorant l'efficacité.
De même, des industries telles que l'industrie pharmaceutique utilisent ces types de systèmes pour identifier les défauts dans les emballages médicaux. En fait, le marché mondial des systèmes de détection de défauts intelligents devrait atteindre 5 milliards de dollars d'ici 2026.

Fig 5. Utilisation de YOLO pour détecter les défauts dans l'industrie pharmaceutique.
Link to this sectionConsidérations à garder à l'esprit lors de l'utilisation de TensorRT#
Bien que l'intégration TensorRT apporte de nombreux avantages, comme des vitesses d'inférence plus rapides et une latence réduite, voici quelques limitations à garder à l'esprit :
-
Légère baisse de précision : Lorsque tu exportes ton modèle au format TensorRT, ton modèle exporté pourrait ne pas être aussi précis que l'original. Les métriques de performance comme la précision, le rappel et la capacité du modèle à détecter les objets (scores mAP) pourraient baisser légèrement. Cela peut être atténué en utilisant un jeu de données représentatif pendant la quantification.
-
Complexité de débogage accrue : Les optimisations effectuées par TensorRT peuvent rendre plus difficile le traçage des erreurs ou la compréhension d'un comportement inattendu, surtout lors de la comparaison des résultats avec le modèle original.
-
Sensibilité à la taille des lots (batch size) : Les gains de performance de TensorRT sont plus prononcés avec des tailles de lots plus grandes. Pour les applications traitant des images uniques ou de petits lots, les améliorations de performance pourraient être moins significatives.
Link to this sectionPoints clés#
Exporter les modèles Ultralytics YOLO vers le format TensorRT les rend beaucoup plus rapides et efficaces, ce qui les rend idéaux pour les tâches en temps réel comme la détection de défauts dans les usines, l'alimentation des systèmes de caisse intelligents ou la surveillance des zones urbaines très fréquentées.
Cette optimisation aide les modèles à être plus performants sur les GPU NVIDIA en accélérant les prédictions et en réduisant l'utilisation de la mémoire et de l'énergie. Bien qu'il existe quelques limitations, l'augmentation des performances fait de l'intégration TensorRT un excellent choix pour quiconque construit des systèmes de vision par ordinateur à haute vitesse sur du matériel NVIDIA.
Tu souhaites en savoir plus sur l'IA ? Explore notre dépôt GitHub, connecte-toi avec notre communauté et consulte nos options de licence pour lancer ton projet de vision par ordinateur. Découvre plus d'innovations comme l'IA dans l'industrie manufacturière et la vision par ordinateur dans l'industrie logistique sur nos pages de solutions.






