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.
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.
L'adoption du format Open Neural Network Exchange offre plusieurs avantages stratégiques pour les projets d'IA :
.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.
La polyvalence ONNX en ONNX un outil incontournable dans divers secteurs. Voici deux exemples concrets de son application :
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.
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.
Il est utile de distinguer ONNX autres formats et outils de modèles :
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.