Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

ONNX (Intercambio abierto de redes neuronales)

Explora el formato Open Neural Network Exchange (ONNX). Aprende a exportar Ultralytics a ONNX una implementación rápida y multiplataforma, y para la optimización del hardware.

ONNX Open Neural Network Exchange) es un formato de código abierto diseñado para representar modelos de aprendizaje automático , lo que permite la interoperabilidad entre diversos marcos y herramientas de IA. Sirve como traductor universal para el aprendizaje profundo, lo que permite a los desarrolladores crear modelos en un marco, como PyTorch, TensorFlow o Scikit-learn, y desplegarlos sin problemas en otro entorno optimizado para la inferencia. Al definir un conjunto común de operadores y un formato de archivo estándar, ONNX la necesidad de scripts de conversión complejos y personalizados que antes se requerían para trasladar los modelos de la investigación a la producción. Esta flexibilidad es crucial para los flujos de trabajo de IA modernos, en los que el entrenamiento puede realizarse en potentes GPU en la nube, mientras que la implementación se dirige a diversos tipos de hardware, como dispositivos periféricos, teléfonos móviles o navegadores web.

El papel de ONNX la IA moderna

En el panorama en rápida evolución de la inteligencia artificial, los investigadores e ingenieros suelen utilizar diferentes herramientas para las distintas etapas del ciclo de vida del desarrollo. Un científico de datos puede preferir la flexibilidad de PyTorch la experimentación y el entrenamiento, mientras que un ingeniero de producción necesita el rendimiento optimizado de TensorRT o OpenVINO la implementación. Sin un formato de intercambio estándar, mover un modelo entre estos ecosistemas es difícil y propenso a errores.

ONNX esta diferencia al proporcionar una definición compartida del gráfico de cálculo. Cuando se exporta un modelo a ONNX, se serializa en un formato que captura la estructura de la red (capas, conexiones) y los parámetros (ponderaciones, sesgos) de una manera independiente del marco. Esto permite que los motores de inferencia específicamente ajustados para la aceleración de hardware, como ONNX , ejecuten el modelo de manera eficiente en múltiples plataformas, incluidas Linux, Windows, macOS, Android e iOS.

Ventajas principales de utilizar ONNX

La adopción del formato Open Neural Network Exchange ofrece varias ventajas estratégicas para los proyectos de IA:

  • Interoperabilidad entre marcos: los desarrolladores pueden cambiar de marco sin quedar atrapados en un único ecosistema. Puede entrenar un modelo utilizando la intuitiva Python Ultralytics y exportarlo para utilizarlo en una aplicación C++ o en un entorno JavaScript basado en web.
  • Optimización del hardware: Muchos fabricantes de hardware proporcionan proveedores de ejecución especializados que se conectan con ONNX. Esto significa que un único .onnx El archivo se puede acelerar en NVIDIA , Intel o NPU (unidades de procesamiento neuronal) móviles utilizando herramientas como OpenVINO o CoreML.
  • Inferencia más rápida: ONNX aplica optimizaciones de grafos, como la fusión de nodos y el plegado de constantes, que pueden reducir significativamente la latencia de la inferencia. Esto es esencial para aplicaciones en tiempo real como vehículos autónomos o líneas de fabricación de alta velocidad .
  • Implementación simplificada: en lugar de mantener canales de implementación separados para cada marco de formación, los equipos de ingeniería pueden estandarizar ONNX formato de entrega, lo que agiliza los procesos de ModelOps.

Aplicaciones en el mundo real

La versatilidad de ONNX lo ONNX un elemento básico en diversas industrias. A continuación se presentan dos ejemplos concretos de su aplicación:

1. Inteligencia artificial periférica en dispositivos móviles

Consideremos una aplicación móvil diseñada para supervisar en tiempo real el estado de los cultivos. El modelo podría entrenarse en un potente servidor en la nube utilizando un gran conjunto de datos de imágenes de plantas. Sin embargo, la aplicación necesita funcionar sin conexión en el smartphone de un agricultor. Al exportar el modelo entrenado a ONNX, los desarrolladores pueden integrarlo en la aplicación móvil utilizando ONNX Mobile. Esto permite que el procesador del teléfono ejecute la detección de objetos localmente, identificando plagas o enfermedades al instante sin necesidad de conexión a Internet.

2. Inferencia web multiplataforma

En el comercio electrónico, una función de «prueba virtual» podría utilizar la estimación de la pose para superponer la ropa en la imagen de la cámara web del usuario. El entrenamiento de este modelo podría realizarse en Python, pero el objetivo de implementación es un navegador web. Mediante ONNX, el modelo se puede convertir y ejecutar directamente en el navegador del usuario a través de ONNX Web. Esto utiliza las capacidades del dispositivo del cliente (WebGL o WebAssembly) para realizar tareas de visión por ordenador, lo que garantiza una experiencia fluida y que preserva la privacidad, ya que los datos de vídeo nunca salen del ordenador del usuario.

Comparación con términos relacionados

Es útil distinguir ONNX otros formatos y herramientas de modelos:

  • vs. TensorRT: Mientras que ONNX un formato de intercambio, TensorRTONNX es un motor de inferencia y optimizador específico para NVIDIA . Un flujo de trabajo habitual consiste en exportar ONNX un modelo a ONNX y, a continuación, analizar ese archivo ONNX en TensorRT lograr el máximo rendimiento en NVIDIA .
  • vs. TensorFlow SavedModel: SavedModel el formato de serialización nativo para TensorFlow. Aunque es robusto dentro del Google , es menos compatible universalmente que ONNX. A menudo existen herramientas para convertir SavedModels a ONNX obtener un mayor soporte de plataformas.
  • vs. CoreML: CoreML es el marco de Apple para el aprendizaje automático en dispositivos. Aunque son distintos, los modelos se convierten con frecuencia de PyTorch ONNX y luego de ONNX CoreML o directamente) para que funcionen de manera eficiente en iPhones y iPads.

Exportación a ONNX Ultralytics

El Ultralytics simplifica el proceso de conversión de modelos de última generación como YOLO26 al ONNX . La funcionalidad de exportación está integrada directamente en la biblioteca, lo que permite gestionar automáticamente el complejo recorrido del gráfico y la asignación de operadores.

El siguiente ejemplo muestra cómo exportar un modelo YOLO26 preentrenado al ONNX para su implementación:

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}")

Una vez exportado, este .onnx El archivo se puede utilizar en el Plataforma Ultralytics para su gestión o se implementan directamente en dispositivos periféricos utilizando ONNX , lo que hace que la visión artificial de alto rendimiento sea accesible en prácticamente cualquier entorno.

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora