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.
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.
A adoção do formato Open Neural Network Exchange oferece várias vantagens estratégicas para projetos de IA:
.onnx O ficheiro pode ser acelerado em NVIDIA , Intel ou
NPUs móveis (Unidades de Processamento Neural) usando ferramentas como
OpenVINO ou CoreML.
A versatilidade do ONNX um elemento essencial em diversos setores. Aqui estão dois exemplos concretos da sua aplicação:
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.
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.
É útil distinguir ONNX outros formatos e ferramentas de modelos:
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.