Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

ONNX (Open Neural Network Exchange)

Explore o formato Open Neural Network Exchange (ONNX). Aprenda a exportar Ultralytics para ONNX uma implementação rápida e multiplataforma e otimização de hardware.

ONNX Open Neural Network Exchange) é um formato de código aberto projetado para representar modelos de aprendizagem automática, permitindo a interoperabilidade entre várias estruturas e ferramentas de IA. Ele funciona como um tradutor universal para aprendizagem profunda, permitindo que os programadores criem modelos em uma estrutura — como PyTorch, TensorFlow ou Scikit-learn — e implementá-los de forma integrada noutro ambiente otimizado para inferência. Ao definir um conjunto comum de operadores e um formato de ficheiro padrão, ONNX a necessidade de scripts de conversão complexos e personalizados que eram historicamente necessários para transferir modelos da investigação para a produção. Essa flexibilidade é crucial para os fluxos de trabalho modernos de IA, nos quais o treinamento pode ocorrer em poderosas GPUs na nuvem, enquanto a implementação tem como alvo diversos hardwares, como dispositivos de ponta, telemóveis ou navegadores da web.

O papel do ONNX IA moderna

No cenário em rápida evolução da inteligência artificial, pesquisadores e engenheiros costumam usar ferramentas diferentes para diferentes estágios do ciclo de vida do desenvolvimento. Um cientista de dados pode preferir a flexibilidade do PyTorch experimentação e treinamento, enquanto um engenheiro de produção precisa do desempenho otimizado do TensorRT ou OpenVINO a implementação. Sem um formato de troca padrão, mover um modelo entre esses ecossistemas é difícil e propenso a erros.

ONNX essa lacuna, fornecendo uma definição partilhada do gráfico de computação. Quando um modelo é exportado para ONNX, ele é serializado num formato que captura a estrutura da rede (camadas, ligações) e os parâmetros (pesos, vieses) de uma forma independente da estrutura. Isso permite que motores de inferência especificamente ajustados para aceleração de hardware — como o ONNX — executem o modelo de forma eficiente em várias plataformas, incluindo Linux, Windows, macOS, Android e iOS.

Principais benefícios da utilização ONNX

A adoção do formato Open Neural Network Exchange oferece várias vantagens estratégicas para projetos de IA:

  • Interoperabilidade de frameworks: os programadores podem alternar entre frameworks sem ficarem presos a um único ecossistema. É possível treinar um modelo usando a Python Ultralytics , fácil de usar, e exportá-lo para uso em uma aplicação C++ ou em um ambiente JavaScript baseado na web.
  • Otimização de hardware: Muitos fabricantes de hardware fornecem provedores de execução especializados que fazem interface com ONNX. Isso significa que um único .onnx O ficheiro pode ser acelerado em NVIDIA , Intel ou NPUs móveis (Unidades de Processamento Neural) usando ferramentas como OpenVINO ou CoreML.
  • Inferência mais rápida: O ONNX aplica otimizações de gráficos, como fusão de nós e constante dobramento, que podem reduzir significativamente a latência da inferência. Isso é essencial para aplicações em tempo real, como veículos autónomos ou linhas de produção de alta velocidade .
  • Implantação simplificada: em vez de manter pipelines de implantação separados para cada estrutura de treinamento, as equipas de engenharia podem padronizar o ONNX formato de entrega, simplificando os processos ModelOps.

Aplicações no Mundo Real

A versatilidade do ONNX um elemento essencial em diversos setores. Aqui estão dois exemplos concretos da sua aplicação:

1. IA de ponta em dispositivos móveis

Considere uma aplicação móvel projetada para monitorizar a saúde das culturas em tempo real. O modelo pode ser treinado em um servidor em nuvem potente usando um grande conjunto de dados de imagens de plantas. No entanto, o aplicativo precisa ser executado offline no smartphone do agricultor. Ao exportar o modelo treinado para ONNX, os desenvolvedores podem integrá-lo ao aplicativo móvel usando ONNX Mobile. Isso permite que o processador do telefone execute a detecção de objetos localmente, identificando pragas ou doenças instantaneamente, sem a necessidade de uma conexão com a Internet.

2. Inferência Web multiplataforma

No comércio eletrónico, um recurso de "experimentação virtual" pode usar a estimativa de pose para sobrepor roupas na imagem da webcam do utilizador. O treinamento desse modelo pode ser feito em Python, mas o destino da implementação é um navegador da web. Usando ONNX, o modelo pode ser convertido e executado diretamente no navegador do utilizador por meio ONNX Web. Isso utiliza os recursos do dispositivo do cliente (WebGL ou WebAssembly) para realizar tarefas de visão computacional, garantindo uma experiência suave e que preserva a privacidade, já que os dados de vídeo nunca saem do computador do utilizador.

Comparação com Termos Relacionados

É útil distinguir ONNX outros formatos e ferramentas de modelos:

  • vs. TensorRT: Enquanto ONNX um formato de troca, TensorRTONNX é um mecanismo de inferência e otimizador específico para NVIDIA . Um fluxo de trabalho comum envolve ONNX exportar um modelo para ONNX e, em seguida, analisar esse ficheiro ONNX no TensorRT obter o máximo rendimento no NVIDIA .
  • vs. TensorFlow SavedModel: SavedModel o formato de serialização nativo para TensorFlow. Embora seja robusto dentro do Google , ele é menos compatível universalmente do que ONNX. Geralmente, existem ferramentas para converter SavedModels em ONNX obter um suporte de plataforma mais amplo .
  • vs. CoreML: CoreML é a estrutura da Apple para aprendizagem automática no dispositivo. Embora distintos, os modelos são frequentemente convertidos do PyTorch ONNX e depois do ONNX CoreML ou diretamente) para funcionar de forma eficiente em iPhones e iPads.

Exportando para ONNX Ultralytics

O Ultralytics simplifica o processo de conversão de modelos de última geração, como o YOLO26, para o ONNX . A funcionalidade de exportação é incorporada diretamente na biblioteca, lidando automaticamente com a complexa travessia do gráfico e o mapeamento do operador.

O exemplo a seguir demonstra como exportar um modelo YOLO26 pré-treinado para ONNX para implementação:

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

Depois de exportado, este .onnx O ficheiro pode ser utilizado no Plataforma Ultralytics para gestão ou implementado diretamente em dispositivos periféricos usando o ONNX , tornando a visão computacional de alto desempenho acessível em praticamente qualquer ambiente.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Conecte-se, colabore e cresça com inovadores globais

Junte-se agora