En cliquant sur "Accepter tous les cookies", vous acceptez que des cookies soient stockés sur votre appareil afin d'améliorer la navigation sur le site, d'analyser l'utilisation du site et de nous aider dans nos efforts de marketing. Plus d'informations
Paramètres des cookies
En cliquant sur "Accepter tous les cookies", vous acceptez que des cookies soient stockés sur votre appareil afin d'améliorer la navigation sur le site, d'analyser l'utilisation du site et de nous aider dans nos efforts de marketing. Plus d'informations
Apprenez à exporter des modèles Ultralytics YOLO, 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, avec l'évolution de la technologie, le déploiement s'est étendu bien au-delà du centre de données.
Aujourd'hui, les modèles d'IA fonctionnent sur tous les supports, des serveurs en nuage aux ordinateurs de bureau, en passant par les smartphones et les appareils périphériques. Cette évolution permet 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.
La vision artificielle, une branche de l'intelligence artificielle qui permet aux machines d'interpréter les données visuelles, est un domaine où cela est particulièrement évident. Elle est utilisée pour 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 multiplient, le besoin de modèles capables de fonctionner sans heurts sur différents matériels et plateformes se fait également sentir.
Mais il n'est pas toujours simple de déployer des modèles de vision par ordinateur sur toute une série de cibles. 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 il est essentiel d'avoir la possibilité d'exporter des modèles de vision artificielle 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 vous permet de prendre un modèle formé dans un cadre et de l'exécuter dans un autre facilement.
Dans cet article, nous allons examiner de plus près l'intégration ONNX supportée par Ultralytics et explorer comment vous pouvez exporter votre 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 tels que 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, vous pouvez exporter votre 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 une large gamme 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.
Principales caractéristiques de l'ONNX
Avant d'aborder la question de l'exportation de YOLO11 vers le format ONNX, examinons les principales caractéristiques du format de modèle ONNX.
Que vous passiez d'un outil à l'autre, que vous déployiez sur différents appareils ou que vous mettiez à jour vos systèmes, ONNX vous 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 (pensez-y comme des blocs de construction). Lorsqu'un modèle est converti en ONNX, il suit ce standard afin que tout système supportant ONNX puisse le comprendre et l'exécuter.
Compatibilité ascendante : Même si ONNX continue de s'améliorer, il garantit que les anciens modèles fonctionnent toujours avec les nouvelles versions. Cela signifie que vous n'avez pas besoin d'entraîner ou de reconstruire vos 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 vous aident à convertir, valider et optimiser vos modèles. Ces outils simplifient le processus de transfert des modèles entre différents cadres et peuvent accélérer le déploiement, en particulier pour les applications de vision par ordinateur.
Aperçu de l'intégration d'ONNX
L'exportation des modèles Ultralytics Y OLO comme Ultralytics YOLO11 au format ONNX est simple et peut être réalisée en quelques étapes.
Pour commencer, installez le paquetage Ultralytics Python à l'aide d'un gestionnaire de paquetage comme 'pip'. Pour ce faire, exécutez la commande "pip install ultralytics" dans votre invite de commande ou votre terminal.
Avec le package Ultralytics, vous pouvez facilement former, tester, affiner, exporter et déployer des modèles pour diverses tâches de vision par ordinateur - rendant l'ensemble du processus plus rapide et plus efficace. Lors de l'installation, si vous rencontrez des difficultés, vous pouvez vous référer au guide des problèmes courants pour obtenir des solutions et des conseils.
Une fois le package Ultralytics installé, vous pouvez charger et exporter le modèle YOLO11 au format ONNX en utilisant le code ci-dessous. Cet exemple charge un modèle YOLO11 pré-entraîné (yolo11n.pt) et l'exporte en tant que fichier ONNX (yolo11n.onnx), ce qui le rend prêt à être déployé sur différentes plateformes et appareils.
Après avoir converti votre modèle au format ONNX, vous pouvez le déployer sur une variété de plateformes.
L'exemple ci-dessous montre comment charger le modèle YOLO11 exporté (yolo11n.onnx) 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.
Lorsque vous exécutez ce code, l'image de sortie suivante est 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 choisir l'intégration d'ONNX ?
Le package Ultralytics Python permet d'exporter les modèles vers plusieurs formats, notamment TorchScript, CoreML, TensorRT et ONNX. 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 vous travailliez avec des serveurs en 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 vos projets YOLO11 :
Déploiement portable : Une fois exporté vers ONNX, votre modèle YOLO11 peut être déployé sur diverses plates-formes sans modification du code ni recyclage.
Soutien de l'ensemble de l'industrie : ONNX est pris en charge par les principales entreprises et structures d'IA, ce qui en fait un format fiable et largement accepté. Il garantit une compatibilité à long terme, à l'instar des PDF qui fonctionnent sur tous les appareils.
Un développement à l'épreuve du temps : L'utilisation d'ONNX permet de protéger vos investissements en matière de modèles. Au fur et à mesure que les outils évoluent, ONNX permet à vos 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 vous obligent à n'utiliser que leur système, ce qui peut limiter les possibilités de votre modèle. ONNX évite cela en vous permettant de choisir la plateforme qui répond le mieux à vos besoins, sans être bloqué par une configuration unique.
Applications de YOLO11 et du format de modèle ONNX
Ensuite, nous allons explorer 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 espaces 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 nuage.
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 produisent 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 en chirurgie (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 par an, soit 29 livres de déchets par lit et par jour.
Le tri de ces déchets est essentiel pour l'hygiène, la sécurité et le respect des réglementations. Avec les 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 de garantir la conformité.
Fig. 5. Utilisation de YOLO11 pour détecter des instruments médicaux.
Surveillance des cultures grâce à 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. Traditionnellement, les agriculteurs s'appuient sur leur expérience et sur des inspections manuelles, mais les progrès technologiques récents commencent à changer la donne.
Aujourd'hui, grâce à des innovations en matière de vision par ordinateur telles que YOLO11, exportées au format ONNX, les agriculteurs peuvent introduire 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 tels que la couleur, la taille et la répartition des cultures. Sur la base de ces informations, les agriculteurs peuvent déterminer si les cultures sont prêtes à être récoltées, si elles sont encore en cours de maturation ou si elles ont déjà atteint leur apogée.
Fig. 6. YOLO11 peut être utilisé pour détecter les cultures dans les images de drones.
Limitations de l'ONNX à prendre en compte
Bien qu'ONNX offre de nombreux avantages, tels que la portabilité, la compatibilité multiplateforme et l'interopérabilité des cadres de travail, il convient de 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 à leur format d'origine. Des techniques telles que la quantification et l'élagage peuvent aider à atténuer ce problème en réduisant la taille du modèle sans affecter de manière significative 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 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 l'identification 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, vous n'êtes pas lié à un cadre ou à une plateforme unique, ce qui vous donne la flexibilité d'exécuter votre modèle dans l'environnement qui convient le mieux à votre application.
Le passage de la formation au déploiement dans le monde réel est ainsi 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 permet aux systèmes de fonctionner plus facilement, de réduire les erreurs et de gagner un temps précieux.