Exportação ONNX para modelos YOLO26

~43% de inferência mais rápida.
  • Exportar o modelo Ultralytics YOLO26 para ONNX pode oferecer um aumento de até 43% na velocidade de inferência, permitindo uma implementação mais rápida e eficiente.

Muitas vezes, ao implementar modelos de visão computacional, você precisará de um formato de modelo que seja flexível e compatível com múltiplas plataformas.

Exportar modelos Ultralytics YOLO26 para o formato ONNX simplifica a implementação e garante um desempenho ideal em vários ambientes. Este guia mostrará como converter facilmente seus modelos YOLO26 para ONNX e aprimorar sua escalabilidade e eficácia em aplicações do mundo real.



Watch: Ultralytics YOLO26 vs Ultralytics YOLO11 ONNX Inference Test | ~43% Faster Inference with YOLO26 🚀

ONNX e ONNX Runtime

ONNX, que significa Open Neural Network Exchange, é um projeto comunitário inicialmente desenvolvido pelo Facebook e pela Microsoft. O desenvolvimento contínuo do ONNX é um esforço colaborativo apoiado por várias organizações como IBM, Amazon (através da AWS) e Google. O projeto visa criar um formato de arquivo aberto projetado para representar modelos de aprendizado de máquina de forma que permita que sejam usados em diferentes frameworks de IA e hardware.

Modelos ONNX podem ser usados para fazer a transição entre diferentes frameworks de forma contínua. Por exemplo, um modelo de aprendizado profundo treinado em PyTorch pode ser exportado para o formato ONNX e depois facilmente importado para o TensorFlow.

ONNX model portability across deep learning frameworks

Alternativamente, modelos ONNX podem ser usados com o ONNX Runtime. O ONNX Runtime é um acelerador versátil e multiplataforma para modelos de aprendizado de máquina, compatível com frameworks como PyTorch, TensorFlow, TFLite, scikit-learn, etc.

O ONNX Runtime otimiza a execução de modelos ONNX aproveitando capacidades específicas de hardware. Essa otimização permite que os modelos rodem com eficiência e alto desempenho em várias plataformas de hardware, incluindo CPUs, GPUs e aceleradores especializados.

ONNX Runtime cross-platform inference acceleration

Seja usado de forma independente ou em conjunto com o ONNX Runtime, o ONNX oferece uma solução flexível para a implementação de modelos de aprendizado de máquina e compatibilidade.

Principais recursos dos modelos ONNX

A capacidade do ONNX de lidar com vários formatos pode ser atribuída aos seguintes recursos principais:

  • Representação de modelo comum: O 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, sua arquitetura e pesos são traduzidos para essa representação comum. Essa uniformidade garante que o modelo possa ser compreendido por qualquer framework que suporte ONNX.

  • Versão e compatibilidade com versões anteriores: O ONNX mantém um sistema de versionamento para seus operadores. Isso garante que, mesmo com a evolução do padrão, os modelos criados em versões anteriores permaneçam utilizáveis. A compatibilidade com versões anteriores é um recurso crucial que evita que os modelos se tornem obsoletos rapidamente.

  • Representação de modelo baseada em grafo: O ONNX representa modelos como grafos computacionais. Essa estrutura baseada em grafos é uma maneira universal de representar modelos de aprendizado de máquina, onde os nós representam operações ou cálculos, e as arestas representam os tensores que fluem entre eles. Esse formato é facilmente adaptável a vários frameworks que também representam modelos como grafos.

  • Ferramentas e ecossistema: Existe um rico ecossistema de ferramentas em torno do ONNX que auxiliam na conversão, visualização e otimização de modelos. Essas ferramentas facilitam o trabalho dos desenvolvedores com modelos ONNX e a conversão de modelos entre diferentes frameworks de maneira contínua.

Uso comum do ONNX

Antes de passarmos para como exportar modelos YOLO26 para o formato ONNX, vamos dar uma olhada em onde os modelos ONNX são normalmente usados.

Implementação em CPU

Modelos ONNX são frequentemente implementados em CPUs devido à sua compatibilidade com o ONNX Runtime. Este runtime é otimizado para execução em CPU. Ele melhora significativamente a velocidade de inferência e torna viáveis as implementações em CPU em tempo real.

Opções de implementação suportadas

Embora os modelos ONNX sejam comumente usados em CPUs, eles também podem ser implementados nas seguintes plataformas:

  • Aceleração por GPU: O ONNX oferece suporte total à aceleração por GPU, particularmente NVIDIA CUDA. Isso permite a execução eficiente em GPUs NVIDIA para tarefas que exigem alto poder computacional.

  • Dispositivos de borda (Edge) e móveis: O ONNX se estende a dispositivos de borda e móveis, sendo perfeito para cenários de inferência no dispositivo e em tempo real. Ele é leve e compatível com hardware de borda.

  • Navegadores web: O ONNX pode rodar diretamente em navegadores web, impulsionando aplicações de IA interativas e dinâmicas baseadas na web.

Exportando modelos YOLO26 para ONNX

Você pode expandir a compatibilidade do modelo e a flexibilidade de implementação convertendo modelos YOLO26 para o formato ONNX. O Ultralytics YOLO26 oferece um processo de exportação simples que pode aumentar significativamente o desempenho do seu modelo em diferentes plataformas.

Instalação

Para instalar o pacote necessário, execute:

Instalação
# Install the required package for YOLO26
pip install ultralytics

Para instruções detalhadas e práticas recomendadas relacionadas ao processo de instalação, consulte nosso guia de Instalação YOLO26. Ao instalar os pacotes necessários para o YOLO26, se você encontrar alguma dificuldade, consulte nosso guia de Problemas Comuns para soluções e dicas.

Utilização

Antes de mergulhar nas instruções de uso, não deixe de conferir a variedade de modelos YOLO26 oferecidos pela Ultralytics. Isso ajudará você a escolher o modelo mais apropriado para os requisitos do seu projeto.

Utilização
from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

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

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

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")

Argumentos de Exportação

Ao exportar seu modelo YOLO26 para o formato ONNX, você pode personalizar o processo usando vários argumentos para otimizar de acordo com suas necessidades específicas de implementação:

ArgumentoTipoPredefiniçãoDescrição
formatstr'onnx'Formato de destino para o modelo exportado, definindo a compatibilidade com vários ambientes de implantação.
imgszint ou tuple640Desired image size for the model input. Can be an integer for square images or a tuple (height, width) for specific dimensions.
halfboolFalseAtiva a quantização FP16 (precisão simples), reduzindo o tamanho do modelo e potencialmente acelerando a inferência em hardware suportado.
dynamicboolFalsePermite tamanhos de entrada dinâmicos, aumentando a flexibilidade no manuseio de dimensões de imagem variáveis.
simplifyboolTrueSimplifica o grafo do modelo com onnxslim, melhorando potencialmente o desempenho e a compatibilidade.
opsetintNoneEspecifica a versão do opset do ONNX para compatibilidade com diferentes parsers e runtimes ONNX. Se não for definido, usa a última versão suportada.
nmsboolFalseAdiciona Supressão Não Máxima (NMS), essencial para o pós-processamento de detecção preciso e eficiente.
batchint1Especifica o tamanho da inferência em lote do modelo de exportação ou o número máximo de imagens que o modelo exportado processará simultaneamente no modo predict.
devicestrNoneEspecifica o dispositivo para exportação: GPU (device=0), CPU (device=cpu), MPS para silício Apple (device=mps).

Para mais detalhes sobre o processo de exportação, visite a página de documentação da Ultralytics sobre exportação.

Implementando modelos YOLO26 ONNX exportados

Depois de exportar com sucesso seus modelos Ultralytics YOLO26 para o formato ONNX, o próximo passo é implementar esses modelos em vários ambientes. Para instruções detalhadas sobre a implementação de seus modelos ONNX, dê uma olhada nos seguintes recursos:

Resumo

Neste guia, você aprendeu como exportar modelos Ultralytics YOLO26 para o formato ONNX para aumentar sua interoperabilidade e desempenho em várias plataformas. Você também foi apresentado ao ONNX Runtime e às opções de implementação ONNX.

A exportação ONNX é apenas um dos muitos formatos de exportação suportados pelo Ultralytics YOLO26, permitindo que você implemente seus modelos em praticamente qualquer ambiente. Dependendo de suas necessidades específicas, você também pode querer explorar outras opções de exportação, como TensorRT para desempenho máximo de GPU ou CoreML para dispositivos Apple.

Para obter mais detalhes sobre o uso, visite a documentação oficial do ONNX.

Além disso, se você quiser saber mais sobre outras integrações do Ultralytics YOLO26, visite nossa página de guia de integração. Você encontrará muitos recursos úteis e insights lá.

FAQ

Como exporto modelos YOLO26 para o formato ONNX usando o Ultralytics?

Para exportar seus modelos YOLO26 para o formato ONNX usando o Ultralytics, siga estas etapas:

Utilização
from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

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

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

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")

Para mais detalhes, visite a documentação de exportação.

Quais são as vantagens de usar o ONNX Runtime para implementar modelos YOLO26?

Usar o ONNX Runtime para implementar modelos YOLO26 oferece várias vantagens:

  • Compatibilidade multiplataforma: O ONNX Runtime suporta várias plataformas, como Windows, macOS e Linux, garantindo que seus modelos rodem sem problemas em diferentes ambientes.
  • Aceleração de hardware: O ONNX Runtime pode aproveitar otimizações específicas de hardware para CPUs, GPUs e aceleradores dedicados, proporcionando inferência de alto desempenho.
  • Interoperabilidade de frameworks: Modelos treinados em frameworks populares como PyTorch ou TensorFlow podem ser facilmente convertidos para o formato ONNX e executados usando o ONNX Runtime.
  • Otimização de desempenho: O ONNX Runtime pode fornecer até 3x de aceleração de CPU em comparação com modelos PyTorch nativos, tornando-o ideal para cenários de implementação onde os recursos de GPU são limitados.

Saiba mais conferindo a documentação do ONNX Runtime.

Quais opções de implementação estão disponíveis para modelos YOLO26 exportados para ONNX?

Modelos YOLO26 exportados para ONNX podem ser implementados em várias plataformas, incluindo:

  • CPUs: Utilizando o ONNX Runtime para inferência de CPU otimizada.
  • GPUs: Aproveitando o NVIDIA CUDA para aceleração de GPU de alto desempenho.
  • Dispositivos de borda: Executando modelos leves em dispositivos de borda e móveis para inferência em tempo real no dispositivo.
  • Navegadores web: Executando modelos diretamente em navegadores web para aplicações interativas baseadas na web.
  • Serviços em nuvem: Implementando em plataformas de nuvem que suportam o formato ONNX para inferência escalável.

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

Por que devo usar o formato ONNX para modelos Ultralytics YOLO26?

Usar o formato ONNX para modelos Ultralytics YOLO26 oferece inúmeros benefícios:

  • Interoperabilidade: O ONNX permite que modelos sejam transferidos entre diferentes frameworks de aprendizado de máquina de forma contínua.
  • Otimização de desempenho: O ONNX Runtime pode melhorar o desempenho do modelo utilizando otimizações específicas de hardware.
  • Flexibilidade: O ONNX suporta vários ambientes de implementação, permitindo que você use o mesmo modelo em diferentes plataformas sem modificações.
  • Padronização: O ONNX fornece um formato padronizado que é amplamente suportado em toda a indústria, garantindo compatibilidade a longo prazo.

Consulte o guia abrangente sobre exportação de modelos YOLO26 para ONNX.

Como posso solucionar problemas ao exportar modelos YOLO26 para ONNX?

Ao exportar modelos YOLO26 para ONNX, você pode encontrar problemas comuns, como dependências incompatíveis ou operações não suportadas. Para solucionar esses problemas:

  1. Verifique se você tem a versão correta das dependências necessárias instaladas.
  2. Verifique a documentação oficial do ONNX para operadores e recursos suportados.
  3. Revise as mensagens de erro em busca de pistas e consulte o guia de problemas comuns do Ultralytics.
  4. Tente usar diferentes argumentos de exportação, como simplify=True ou ajustar a versão do opset.
  5. Para problemas de tamanho de entrada dinâmico, defina dynamic=True durante a exportação.

Se os problemas persistirem, entre em contato com o suporte da Ultralytics para obter mais assistência.

Comentários