Salta para o conteúdo

ONNX Export for YOLO11 Models

Often, when deploying computer vision models, you'll need a model format that's both flexible and compatible with multiple platforms.

Exporting Ultralytics YOLO11 models to ONNX format streamlines deployment and ensures optimal performance across various environments. This guide will show you how to easily convert your YOLO11 models to ONNX and enhance their scalability and effectiveness in real-world applications.

ONNX e ONNX Tempo de execução

ONNX, which stands for Open Neural Network Exchange, is a community project that Facebook and Microsoft initially developed. The ongoing development of ONNX is a collaborative effort supported by various organizations like IBM, Amazon (through AWS), and Google. The project aims to create an open file format designed to represent machine learning models in a way that allows them to be used across different AI frameworks and hardware.

ONNX models can be used to transition between different frameworks seamlessly. For instance, a deep learning model trained in PyTorch can be exported to ONNX format and then easily imported into TensorFlow.

ONNX

Alternatively, ONNX models can be used with ONNX Runtime. ONNX Runtime is a versatile cross-platform accelerator for machine learning models that is compatible with frameworks like PyTorch, TensorFlow, TFLite, scikit-learn, etc.

ONNX O tempo de execução optimiza a execução dos modelos ONNX , tirando partido das capacidades específicas do hardware. Essa otimização permite que os modelos sejam executados de forma eficiente e com alto desempenho em várias plataformas de hardware, incluindo CPUs, GPUs e aceleradores especializados.

ONNX com ONNX Tempo de execução

Whether used independently or in tandem with ONNX Runtime, ONNX provides a flexible solution for machine learning model deployment and compatibility.

Principais características dos modelos ONNX

A capacidade do ONNX para lidar com vários formatos pode ser atribuída às seguintes características principais:

  • Representação comum do modelo: ONNX define um conjunto comum de operadores (como convoluções, camadas, etc.) e um formato de dados padrão. Quando um modelo é convertido para o formato ONNX , a sua arquitetura e pesos são traduzidos para esta representação comum. Esta uniformidade garante que o modelo pode ser entendido por qualquer estrutura que suporte ONNX.

  • Controlo de versões e compatibilidade com versões anteriores: ONNX mantém um sistema de controlo de versões para os seus operadores. Isto garante que, mesmo com a evolução da norma, os modelos criados em versões mais antigas permanecem utilizáveis. A retrocompatibilidade é uma caraterística crucial que evita que os modelos se tornem obsoletos rapidamente.

  • Representação de modelos baseada em gráficos: ONNX representa modelos como gráficos computacionais. Esta estrutura baseada em gráficos é uma forma universal de representar modelos de aprendizagem automática, em que os nós representam operações ou cálculos e as arestas representam os tensores que fluem entre eles. Este formato é facilmente adaptável a várias estruturas que também representam modelos como gráficos.

  • Ferramentas e ecossistema: Existe um rico ecossistema de ferramentas em torno do ONNX que ajudam na conversão, visualização e otimização de modelos. Estas ferramentas facilitam o trabalho dos programadores com modelos ONNX e a conversão de modelos entre diferentes estruturas sem problemas.

Utilização comum de ONNX

Before we jump into how to export YOLO11 models to the ONNX format, let's take a look at where ONNX models are usually used.

CPU Implantação

ONNX são frequentemente implementados em CPUs devido à sua compatibilidade com o ONNX Runtime. Esse tempo de execução é otimizado para a execução do CPU . Melhora significativamente a velocidade de inferência e torna viável a implementação em tempo real do CPU .

Opções de implementação suportadas

Embora os modelos ONNX sejam normalmente utilizados em CPUs, também podem ser implementados nas seguintes plataformas:

  • GPU Aceleração: ONNX suporta totalmente a aceleração GPU , particularmente NVIDIA CUDA . Isto permite uma execução eficiente em NVIDIA GPUs para tarefas que exigem um elevado poder computacional.

  • Dispositivos móveis e de ponta: ONNX estende-se a dispositivos móveis e de ponta, perfeito para cenários de inferência no dispositivo e em tempo real. É leve e compatível com hardware de ponta.

  • Navegadores Web: ONNX pode ser executado diretamente em navegadores Web, alimentando aplicações de IA interactivas e dinâmicas baseadas na Web.

Exporting YOLO11 Models to ONNX

You can expand model compatibility and deployment flexibility by converting YOLO11 models to ONNX format.

Instalação

Para instalar o pacote necessário, executa:

Instalação

# Install the required package for YOLO11
pip install ultralytics

For detailed instructions and best practices related to the installation process, check our YOLO11 Installation guide. While installing the required packages for YOLO11, if you encounter any difficulties, consult our Common Issues guide for solutions and tips.

Utilização

Before diving into the usage instructions, be sure to check out the range of YOLO11 models offered by Ultralytics. This will help you choose the most appropriate model for your project requirements.

Utilização

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo11n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolo11n.onnx")

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to ONNX format
yolo export model=yolo11n.pt format=onnx  # creates 'yolo11n.onnx'

# Run inference with the exported model
yolo predict model=yolo11n.onnx source='https://ultralytics.com/images/bus.jpg'

Para obter mais detalhes sobre o processo de exportação, visita a página de documentaçãoUltralytics sobre exportação.

Deploying Exported YOLO11 ONNX Models

Once you've successfully exported your Ultralytics YOLO11 models to ONNX format, the next step is deploying these models in various environments. For detailed instructions on deploying your ONNX models, take a look at the following resources:

Resumo

In this guide, you've learned how to export Ultralytics YOLO11 models to ONNX format to increase their interoperability and performance across various platforms. You were also introduced to the ONNX Runtime and ONNX deployment options.

Para mais informações sobre a utilização, visita a documentação oficialONNX .

Also, if you'd like to know more about other Ultralytics YOLO11 integrations, visit our integration guide page. You'll find plenty of useful resources and insights there.

FAQ

How do I export YOLO11 models to ONNX format using Ultralytics?

To export your YOLO11 models to ONNX format using Ultralytics, follow these steps:

Utilização

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo11n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolo11n.onnx")

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to ONNX format
yolo export model=yolo11n.pt format=onnx  # creates 'yolo11n.onnx'

# Run inference with the exported model
yolo predict model=yolo11n.onnx source='https://ultralytics.com/images/bus.jpg'

Para mais informações, consulta a documentação de exportação.

What are the advantages of using ONNX Runtime for deploying YOLO11 models?

Using ONNX Runtime for deploying YOLO11 models offers several advantages:

  • Compatibilidade entre plataformas: ONNX O tempo de execução suporta várias plataformas, como Windows, macOS e Linux, garantindo que os teus modelos funcionam sem problemas em diferentes ambientes.
  • Aceleração de hardware: ONNX O tempo de execução pode aproveitar otimizações específicas de hardware para CPUs, GPUs e aceleradores dedicados, fornecendo inferência de alto desempenho.
  • Framework interoperability: Models trained in popular frameworks like PyTorch or TensorFlow can be easily converted to ONNX format and run using ONNX Runtime.

Para saber mais, consulta a documentação do tempo de execuçãoONNX .

What deployment options are available for YOLO11 models exported to ONNX?

YOLO11 models exported to ONNX can be deployed on various platforms including:

  • CPUs: Utiliza o ONNX Runtime para otimizar a inferência CPU .
  • GPUs: Aproveitando NVIDIA CUDA para aceleração de alto desempenho de GPU .
  • Dispositivos de ponta: Executa modelos leves em dispositivos móveis e de ponta para inferência em tempo real no dispositivo.
  • Navegadores Web: Executa modelos diretamente nos navegadores Web para aplicações interactivas baseadas na Web.

Para mais informações, explora o nosso guia sobre opções de implementação de modelos.

Why should I use ONNX format for Ultralytics YOLO11 models?

Using ONNX format for Ultralytics YOLO11 models provides numerous benefits:

  • Interoperabilidade: ONNX permite que os modelos sejam transferidos entre diferentes estruturas de aprendizagem automática sem problemas.
  • Otimização de desempenho: ONNX O tempo de execução pode melhorar o desempenho do modelo utilizando optimizações específicas do hardware.
  • Flexibilidade: ONNX suporta vários ambientes de implementação, permitindo-te utilizar o mesmo modelo em diferentes plataformas sem modificações.

Refer to the comprehensive guide on exporting YOLO11 models to ONNX.

How can I troubleshoot issues when exporting YOLO11 models to ONNX?

When exporting YOLO11 models to ONNX, you might encounter common issues such as mismatched dependencies or unsupported operations. To troubleshoot these problems:

  1. Verifica se tens a versão correcta das dependências necessárias instaladas.
  2. Consulta a documentação oficial ONNX para conheceres os operadores e as funcionalidades suportadas.
  3. Analisa as mensagens de erro para obter pistas e consulta o guiaUltralytics Common Issues (Problemas comuns).

Se os problemas persistirem, contacta o suporte Ultralytics para obter mais assistência.

📅 Created 9 months ago ✏️ Updated 22 days ago

Comentários