Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

ONNX (Open Neural Network Exchange)

Découvrez le formatONNX(Open Neural Network Exchange). Apprenez à exporter Ultralytics vers ONNX un déploiement rapide et multiplateforme et une optimisation matérielle.

ONNX Open Neural Network Exchange) est un format open source conçu pour représenter les modèles d'apprentissage automatique et permettre l'interopérabilité entre divers frameworks et outils d'IA. Il sert de traducteur universel pour l' apprentissage profond, permettant aux développeurs de créer des modèles dans un seul framework, tel que PyTorch, TensorFlow ou Scikit-learn, et de les déployer de manière transparente dans un autre environnement optimisé pour l'inférence. En définissant un ensemble commun d'opérateurs et un format de fichier standard, ONNX le besoin de scripts de conversion complexes et personnalisés qui étaient historiquement nécessaires pour faire passer les modèles de la recherche à la production. Cette flexibilité est cruciale pour les flux de travail IA modernes, où l'entraînement peut se faire sur de puissants GPU cloud tandis que le déploiement cible divers matériels tels que des appareils périphériques, des téléphones mobiles ou des navigateurs web.

Le rôle de ONNX l'IA moderne

Dans le domaine en constante évolution de l' intelligence artificielle, les chercheurs et les ingénieurs utilisent souvent différents outils pour les différentes étapes du cycle de développement. Un data scientist peut préférer la flexibilité de PyTorch l'expérimentation et la formation, tandis qu'un ingénieur de production a besoin des performances optimisées de TensorRT ou OpenVINO le déploiement. Sans format d'échange standard, le transfert d'un modèle entre ces écosystèmes est difficile et source d'erreurs.

ONNX cette lacune en fournissant une définition commune du graphe de calcul. Lorsqu'un modèle est exporté vers ONNX, il est sérialisé dans un format qui capture la structure du réseau (couches, connexions) et les paramètres (poids, biais) d'une manière indépendante du framework. Cela permet aux moteurs d'inférence spécialement adaptés à l'accélération matérielle, tels que ONNX , d'exécuter le modèle efficacement sur plusieurs plateformes, notamment Linux, Windows, macOS, Android et iOS.

Principaux avantages de l'utilisation ONNX

L'adoption du format Open Neural Network Exchange offre plusieurs avantages stratégiques pour les projets d'IA :

  • Interopérabilité des frameworks : les développeurs peuvent passer d'un framework à l'autre sans être confinés à un écosystème unique. Vous pouvez entraîner un modèle à l'aide de Python conviviale Ultralytics et l'exporter pour l'utiliser dans une application C++ ou un environnement JavaScript basé sur le Web.
  • Optimisation matérielle : De nombreux fabricants de matériel fournissent des fournisseurs d'exécution spécialisés qui s'interfacent avec ONNX. Cela signifie qu'un seul .onnx Le fichier peut être accéléré sur NVIDIA , Intel ou les NPU (unités de traitement neuronal) mobiles à l'aide d'outils tels que OpenVINO ou CoreML.
  • Inférence plus rapide : ONNX applique des optimisations de graphes, telles que la fusion de nœuds et le pliage de constantes, qui peuvent réduire considérablement la latence d'inférence. Cela est essentiel pour les applications en temps réel telles que les véhicules autonomes ou les chaînes de fabrication à grande vitesse .
  • Déploiement simplifié : au lieu de maintenir des pipelines de déploiement distincts pour chaque infrastructure de formation, les équipes d'ingénieurs peuvent normaliser ONNX format de livraison, ce qui rationalise les processus ModelOps.

Applications concrètes

La polyvalence ONNX en ONNX un outil incontournable dans divers secteurs. Voici deux exemples concrets de son application :

1. L'IA en périphérie sur les appareils mobiles

Prenons l'exemple d'une application mobile conçue pour la surveillance en temps réel de la santé des cultures. Le modèle peut être entraîné sur un serveur cloud puissant à l'aide d'un vaste ensemble de données d'images de plantes. Cependant, l'application doit fonctionner hors ligne sur le smartphone d'un agriculteur. En exportant le modèle entraîné vers ONNX, les développeurs peuvent l'intégrer dans l' application mobile à l'aide ONNX Mobile. Cela permet au processeur du téléphone d'exécuter la détection d'objets localement, identifiant instantanément les parasites ou les maladies sans avoir besoin d'une connexion Internet.

2. Inférence Web multiplateforme

Dans le commerce électronique, une fonctionnalité d'« essayage virtuel » peut utiliser l' estimation de pose pour superposer des vêtements sur le flux de la webcam d'un utilisateur. La formation de ce modèle peut se faire en Python, mais la cible de déploiement est un navigateur web. À l'aide ONNX, le modèle peut être converti et exécuté directement dans le navigateur de l'utilisateur via ONNX Web. Cela utilise les capacités de l'appareil du client (WebGL ou WebAssembly) pour effectuer des tâches de vision par ordinateur, garantissant une expérience fluide et respectueuse de la vie privée, car les données vidéo ne quittent jamais l'ordinateur de l'utilisateur.

Comparaison avec les termes connexes

Il est utile de distinguer ONNX autres formats et outils de modèles :

  • vs. TensorRT: Alors ONNX un format d'échange, TensorRTONNX est un moteur d'inférence et un optimiseur spécifiquement conçu pour NVIDIA . Un workflow courant consiste à exporter ONNX un modèle vers ONNX , puis à analyser ce fichier ONNX dans TensorRT obtenir un débit maximal sur NVIDIA .
  • vs. TensorFlow SavedModel: SavedModel le format de sérialisation natif pour TensorFlow. Bien que robuste au sein de Google , il est moins universellement compatible ONNX. Il existe souvent des outils permettant de convertir les SavedModels en ONNX obtenir une prise en charge plus large des plateformes.
  • vs. CoreML: CoreML est le framework d'Apple pour l'apprentissage automatique sur appareil. Bien que distincts, les modèles sont souvent convertis de PyTorch ONNX, puis ONNX CoreML ou directement) afin de fonctionner efficacement sur les iPhone et les iPad.

Exportation vers ONNX Ultralytics

Ultralytics simplifie le processus de conversion de modèles de pointe tels que YOLO26 au ONNX . La fonctionnalité d'exportation est intégrée directement dans la bibliothèque, qui gère automatiquement le parcours complexe du graphe et le mappage des opérateurs.

L'exemple suivant montre comment exporter un modèle YOLO26 pré-entraîné au ONNX pour le déploiement :

from ultralytics import YOLO

# Load the YOLO26n model (Nano version recommended for edge deployment)
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
# The 'dynamic' argument enables variable input sizes
path = model.export(format="onnx", dynamic=True)

print(f"Model exported successfully to: {path}")

Une fois exporté, ce .onnx Le fichier peut être utilisé dans le Plate-forme Ultralytics pour la gestion ou déployé directement sur des périphériques à l'aide du ONNX , rendant ainsi la vision par ordinateur haute performance accessible dans pratiquement tous les environnements.

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant