Contrôle vert
Lien copié dans le presse-papiers

Utiliser l'intégration ONNX pour exporter les modèlesYOLO d'Ultralytics

Apprends à exporter les modèles Ultralytics YOLO11, tels que Ultralytics YOLO11, en utilisant l'intégration ONNX pour un déploiement multiplateforme sur différents matériels.

Lorsque les solutions d'IA ont commencé à attirer l'attention, la plupart des modèles étaient déployés sur des serveurs puissants dans des environnements contrôlés. Cependant, à mesure que la technologie a progressé, le déploiement s'est étendu bien au-delà du centre de données.

Aujourd'hui, les modèles d'IA s'exécutent sur tous les supports, des serveurs cloud et des ordinateurs de bureau aux smartphones et aux appareils périphériques. Ce changement prend en charge un traitement plus rapide, des fonctionnalités hors ligne et des systèmes plus intelligents qui fonctionnent plus près de l'endroit où les données sont générées.

Un domaine où cela est particulièrement clair est la vision par ordinateur - une branche de l'IA qui permet aux machines d'interpréter les données visuelles. Elle est utilisée pour piloter des applications telles que la reconnaissance faciale, la conduite autonome et l'analyse vidéo en temps réel. À mesure que ces cas d'utilisation se développent, il en va de même pour le besoin de modèles qui peuvent fonctionner sans problème sur divers matériels et plateformes.

Mais il n'est pas toujours simple de déployer des modèles de vision par ordinateur sur toute une gamme de cibles de déploiement. Les appareils diffèrent en termes de matériel, de systèmes d'exploitation et de cadres pris en charge, ce qui rend la flexibilité et la compatibilité essentielles.

C'est pourquoi le fait d'avoir la possibilité d'exporter des modèles de vision par ordinateur comme Ultralytics YOLO11 vers différents formats. Par exemple, l'intégration ONNX (Open Neural Network Exchange) prise en charge par Ultralytics offre un moyen pratique de combler le fossé entre la formation et le déploiement. ONNX est un format ouvert qui rend les modèles agnostiques et prêts à être déployés sur toutes les plateformes.

Fig 1. ONNX t'aide à prendre un modèle formé dans un cadre et à l'exécuter dans un autre facilement.

Dans cet article, nous allons examiner de plus près l'intégrationONNX prise en charge par Ultralytics et explorer comment tu peux exporter ton modèle YOLO11 pour un déploiement flexible et multiplateforme.

Qu'est-ce qu'ONNX et ONNX Runtime ?

L'Open Neural Network Exchange est un projet open-source qui définit un format standard pour les modèles d'apprentissage automatique. Développé à l'origine par Microsoft et Facebook, il permet aux développeurs d'entraîner un modèle dans un cadre, comme PyTorch, et de l'exécuter dans un autre, comme TensorFlow. Cela rend le développement de l'IA plus flexible, plus collaboratif et plus accessible, en particulier dans des domaines comme la vision par ordinateur.

ONNX fournit un ensemble commun d'opérateurs et un format de fichier unifié, ce qui facilite le transfert des modèles entre différents outils, cadres de travail, moteurs d'exécution et compilateurs. Normalement, un modèle formé dans un cadre n'est pas facilement compatible avec un autre - mais avec ONNX, tu peux exporter ton modèle une fois et le déployer presque partout : sur des CPU (Central Processing Units), des GPU (Graphics Processing Units), des appareils mobiles ou du matériel de périphérie.

De plus, ONNX Runtime est un moteur d'inférence haute performance développé spécifiquement pour exécuter des modèles au format ONNX . Il est conçu pour que les modèles ONNX s'exécutent plus rapidement et plus efficacement sur un large éventail de plateformes - y compris les serveurs, les appareils mobiles et le matériel de périphérie. ONNX Runtime est compatible avec des frameworks populaires tels que PyTorch, TensorFlow, TensorFlow Lite et scikit-learn, ce qui facilite son intégration dans différents flux de travail et le déploiement de modèles là où ils sont nécessaires.

Fig 2. ONNX et ONNX Runtime permettent un déploiement flexible de modèles multiplateformes.

Caractéristiques principales d'ONNX 

Avant de voir comment exporter YOLO11 au format ONNX , examinons quelques caractéristiques clés du format de modèle ONNX . 

Que tu passes d'un outil à l'autre, que tu déploies sur différents appareils ou que tu mettes à niveau des systèmes, ONNX t'aide à faire en sorte que tout se passe bien. Voici ce qui rend le format du modèle ONNX unique :

  • Un format standard: ONNX utilise une méthode commune pour décrire la façon dont les modèles sont construits, comme les couches et les opérations (considère-les comme des blocs de construction). Lorsqu'un modèle est converti en ONNX, il suit cette norme afin que tout système qui prend en charge ONNX puisse le comprendre et l'exécuter.
  • Compatibilité ascendante : Même si ONNX continue de s'améliorer, il s'assure que les anciens modèles fonctionnent toujours avec les nouvelles versions. Cela signifie que tu n'as pas besoin d'entraîner ou de reconstruire tes modèles à chaque fois qu'ONNX est mis à jour.
  • Conception de modèles basés sur des graphes : Les modèles ONNX sont structurés comme des graphes de calcul, où chaque nœud représente une opération (telle qu'une couche ou une fonction mathématique), et les arêtes indiquent le flux de données. Cette conception basée sur les graphes facilite l'intégration avec divers systèmes qui utilisent des structures de graphes de calcul similaires.
  • Outils conviviaux pour les développeurs : Il est livré avec une large gamme d'outils qui t'aident à convertir, valider et optimiser tes modèles. Ces outils simplifient le processus de déplacement des modèles entre différents cadres et peuvent accélérer le déploiement - en particulier pour les applications de vision par ordinateur.

Un aperçu de l'intégration d'ONNX

L'exportation des modèlesUltralytics YOLO11 comme Ultralytics YOLO11 au format ONNX est simple et peut se faire en quelques étapes. 

Pour commencer, installe le paquetUltralytics Python à l'aide d'un gestionnaire de paquets comme 'pip'. Cela peut se faire en exécutant la commande "pip install ultralytics" dans ton invite de commande ou ton terminal pour commencer.

Avec le pack Ultralytics , tu peux facilement former, tester, affiner, exporter et déployer des modèles pour diverses tâches de vision par ordinateur - ce qui rend l'ensemble du processus plus rapide et plus efficace. Lors de son installation, si tu rencontres des difficultés, tu peux te référer au guide des problèmes courants pour trouver des solutions et des conseils.

Une fois le package Ultralytics installé, tu peux charger et exporter le modèle YOLO11 au format ONNX à l'aide du code ci-dessous. Cet exemple charge un modèle YOLO11 pré-entraîné (yolo11n.pt) et l'exporte sous forme de fichier ONNX (yolo11nonnx), ce qui le rend prêt à être déployé sur différentes plateformes et différents appareils.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="onnx") 

Après avoir converti ton modèle au format ONNX , tu peux le déployer sur une variété de plateformes. 

L'exemple ci-dessous montre comment charger le modèle YOLO11 exporté (yolo11nonnx) et exécuter une inférence avec lui. L'inférence consiste simplement à utiliser le modèle entraîné pour faire des prédictions sur de nouvelles données. Dans ce cas, nous utiliserons l'URL d'une image d'un bus pour tester le modèle.

onnx_model = YOLO("yolo11n.onnx")

results = onnx_model("https://ultralytics.com/images/bus.jpg",save=True)

Lorsque tu exécutes ce code, l'image de sortie suivante sera enregistrée dans le dossier runs/detect/predict.

Fig 3. Exécution d'une inférence à l'aide du modèle YOLO11 exporté sur une image.

Quand devrais-tu choisir l'intégration d'ONNX ?

Le package Ultralytics Python prend en charge l'exportation des modèles vers plusieurs formats, notamment TorchScript, CoreML, TensorRT et ONNX. Alors, pourquoi choisir ONNX?

Ce qui distingue ONNX , c'est qu'il s'agit d'un format agnostique. Alors que de nombreux autres formats d'exportation sont liés à des outils ou à des environnements spécifiques, ONNX utilise un format standardisé et un ensemble partagé d'opérateurs. Cela le rend très portable, adapté au matériel et idéal pour un déploiement multiplateforme - que tu travailles avec des serveurs dans le nuage, des applications mobiles ou des appareils périphériques. 

Voici quelques raisons pour lesquelles l'intégration d'ONNX pourrait être le choix idéal pour tes projets YOLO11 :

  • Déploiement portable : Une fois exporté vers ONNX, ton modèle YOLO11 peut être déployé sur diverses plateformes sans modification du code ni recyclage.
  • Un soutien à l'échelle de l'industrie : ONNX est pris en charge par les principales entreprises et cadres d'IA, ce qui en fait un format fiable et largement accepté. Il garantit une compatibilité à long terme, à l'instar de la façon dont les PDF fonctionnent sur l'ensemble des appareils.
  • Un développement à l'épreuve du temps : L'utilisation d'ONNX aide à protéger les investissements de tes modèles. Au fur et à mesure que les outils évoluent, ONNX permet à tes modèles de rester pertinents et utilisables, même dans des environnements nouveaux ou différents.
  • Pas de dépendance à l'égard d'un fournisseur : Certains outils t'obligent à n'utiliser que leur système, ce qui peut limiter les possibilités de ton modèle. ONNX évite cela en te permettant de choisir la plateforme qui fonctionne le mieux pour tes besoins, sans être coincé avec une configuration unique.

Applications de YOLO11 et du format de modèle ONNX

Ensuite, explorons quelques applications du monde réel où YOLO11 peut être déployé avec l'aide de l'intégration ONNX .

Suivi des stocks dans les entrepôts à l'aide de YOLO11

Dans les entrepôts très fréquentés, il est difficile de garder un œil sur chaque produit et chaque emballage à tout moment. Les systèmes de vision par ordinateur peuvent aider les travailleurs à trouver les produits sur les étagères et à obtenir des informations telles que le nombre de produits, le type, etc. Ces systèmes peuvent aider les entreprises à gérer automatiquement leurs vastes stocks et à faire gagner beaucoup de temps aux magasiniers.

Plus précisément, dans les entrepôts intelligents, les modèles YOLO11 exportés vers ONNX peuvent être utilisés pour identifier et compter les articles en temps réel à l'aide de caméras et de périphériques. Le modèle exporté peut aider à scanner les étagères ou les palettes pour détecter les niveaux de stock, les articles manquants ou les endroits vides. Comme l'exportation vers ONNX rend le modèle léger et efficace, il peut fonctionner directement sur de petits appareils périphériques, tels que des caméras intelligentes, ce qui élimine le besoin de serveurs coûteux ou d'un accès constant au cloud.

Fig 4. Exemple d'utilisation de YOLO11 pour détecter et compter les paquets.

Gestion des déchets hospitaliers avec YOLO11

Les hôpitaux du monde entier créent chaque jour de grandes quantités de déchets, qu'il s'agisse de gants et de seringues usagés ou d'équipements utilisés pendant les opérations chirurgicales (comme les outils chirurgicaux à usage unique ou contaminés tels que les ciseaux et les scalpels). En fait, les recherches montrent que les hôpitaux produisent environ 5 millions de tonnes de déchets chaque année, ce qui représente 29 livres de déchets par lit et par jour. 

Trier correctement ces déchets est essentiel pour l'hygiène, la sécurité et le respect des réglementations. Grâce aux modèles YOLO11 exportés au format ONNX , les hôpitaux peuvent automatiser et contrôler l'élimination des déchets en temps réel.

Par exemple, les caméras placées près des poubelles dans des zones telles que les salles d'opération ou les couloirs peuvent surveiller les articles au fur et à mesure qu'ils sont jetés. Un modèle YOLO11 personnalisé, formé pour reconnaître les différents types de déchets médicaux, peut analyser les images et identifier ce qui est jeté. Si un article se retrouve dans la mauvaise poubelle, par exemple une seringue usagée dans une poubelle ordinaire, le système peut être configuré pour alerter immédiatement le personnel à l'aide d'une lumière ou d'un son, ce qui permet d'éviter la contamination et d'assurer la conformité.

Fig 5. Utilisation de YOLO11 pour détecter les instruments médicaux.

Surveillance des cultures YOLO11

Connaître le bon moment pour récolter les cultures peut avoir un impact important à la fois sur la qualité des produits et sur la productivité globale d'une exploitation agricole. Traditionnellement, les agriculteurs se fient à leur expérience et aux inspections manuelles - mais grâce aux récents progrès technologiques, cela commence à changer.

Désormais, grâce à des innovations en matière de vision par ordinateur comme YOLO11, exportées au format ONNX , les agriculteurs peuvent apporter l'automatisation et la précision dans les champs. En utilisant des drones ou des caméras montées sur des tracteurs ou des poteaux, les agriculteurs peuvent capturer des images de leurs cultures (comme les tomates, les pommes ou le blé). YOLO11 peut ensuite être utilisé pour détecter des indicateurs clés comme la couleur, la taille et la répartition des cultures. À partir de ces informations, les agriculteurs peuvent déterminer si les cultures sont prêtes à être récoltées, si elles sont encore en train de mûrir ou si elles ont déjà dépassé leur apogée.

Fig 6. YOLO11 peut être utilisé pour détecter les cultures dans les séquences aériennes de drone. 

Limitations ONNX à prendre en compte

Bien qu'ONNX offre de nombreux avantages, tels que la portabilité, la compatibilité multiplateforme et l'interopérabilité des cadres, il faut garder à l'esprit certaines limites.

  • Taille du modèle: La conversion des modèles au format ONNX peut parfois entraîner une augmentation de la taille des fichiers par rapport à leurs formats d'origine. Des techniques comme la quantification et l'élagage peuvent aider à atténuer ce problème en réduisant la taille du modèle sans avoir d'impact significatif sur les performances.
  • Compatibilité d'exécution : Bien que le Runtime ONNX soit conçu pour une compatibilité multiplateforme, les performances et le support peuvent varier en fonction du matériel et des systèmes d'exploitation. 
  • Défis en matière de débogage : Le débogage des modèles ONNX peut être plus complexe que dans les frameworks natifs comme PyTorch ou TensorFlow. Les messages d'erreur peuvent être moins descriptifs, ce qui rend plus difficile la localisation des problèmes. Cependant, des outils comme Netron pour la visualisation des modèles et les capacités de journalisation d'ONNX Runtime peuvent aider au dépannage.

Principaux enseignements

L'exportation d'Ultralytics YOLO11 vers ONNX permet de prendre facilement un modèle de vision par ordinateur entraîné et de le déployer presque partout - que ce soit sur un ordinateur portable, un appareil mobile ou même une caméra intelligente compacte. Avec l'intégration ONNX , tu n'es pas lié à un cadre ou à une plateforme unique, ce qui te donne la flexibilité d'exécuter ton modèle dans l'environnement qui convient le mieux à ton application. 

Cela rend la transition entre la formation et le déploiement dans le monde réel plus rapide et plus efficace. Qu'il s'agisse de suivre les stocks dans un entrepôt ou de s'assurer que les déchets hospitaliers sont éliminés correctement, cette configuration aide les systèmes à fonctionner plus facilement, réduit les erreurs et permet de gagner un temps précieux.

Tu veux en savoir plus sur la vision par ordinateur et l'IA ? Explore notre dépôt GitHub, connecte-toi avec notre communauté et consulte nos options de licence pour démarrer ton projet de vision par ordinateur. Si tu explores des innovations comme l'IA dans la fabrication et la vision par ordinateur dans l' industrie automobile, visite nos pages de solutions pour en découvrir davantage. 

Logo LinkedInLogo de TwitterLogo FacebookSymbole du lien de copie

Lire la suite dans cette catégorie

Construisons ensemble le futur
de l'IA !

Commence ton voyage avec le futur de l'apprentissage automatique.

OSZAR »