YOLO Vision 2026:

Exportação ONNX para modelos YOLO26#

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

Muitas vezes, ao implantar modelos de computer vision, precisas de um formato de modelo que seja flexível e compatível com várias plataformas.

Exportar modelos do Ultralytics YOLO26 para o formato ONNX simplifica a implantação e garante um desempenho ideal em vários ambientes. Este guia mostrar-te-á como converter facilmente os teus modelos YOLO26 para ONNX e melhorar a 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 desenvolvido inicialmente 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 ficheiro aberto concebido para representar modelos de machine learning de uma forma que permita a sua utilização em diferentes frameworks de IA e hardware.

Os modelos ONNX podem ser utilizados para fazer a transição entre diferentes frameworks de forma integrada. Por exemplo, um modelo de deep learning treinado em PyTorch pode ser exportado para o formato ONNX e depois facilmente importado para o TensorFlow.

ONNX model portability across deep learning frameworks

Em alternativa, os modelos ONNX podem ser utilizados com o ONNX Runtime. O ONNX Runtime é um acelerador multiplataforma versátil para modelos de machine learning que é compatível com frameworks como PyTorch, TensorFlow, 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 sejam executados de forma eficiente e com alto desempenho em diversas plataformas de hardware, incluindo CPUs, GPUs e aceleradores especializados.

ONNX Runtime cross-platform inference acceleration

Quer seja utilizado de forma independente ou em conjunto com o ONNX Runtime, o ONNX fornece uma solução flexível para a model deployment e compatibilidade de machine learning.

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 comum de modelo: 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.

  • Versionamento 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 grafos: O ONNX representa modelos como grafos computacionais. Essa estrutura baseada em grafos é uma maneira universal de representar modelos de machine learning, onde os nós representam operações ou computações, 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 forma contínua.

Uso comum do ONNX#

Antes de entrarmos em como exportar modelos YOLO26 para o formato ONNX, vamos dar uma olhada em onde os modelos ONNX costumam ser 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 modelos ONNX sejam comumente usados em CPUs, eles também podem ser implementados nas seguintes plataformas:

  • Aceleração por GPU: O ONNX suporta totalmente a aceleração por GPU, particularmente NVIDIA CUDA. Para treino nativo e inferência em GPUs AMD, usa o PyTorch ROCm; um ficheiro ONNX ainda requer um runtime compatível com AMD.

  • Dispositivos Edge e Móveis: O ONNX estende-se a dispositivos edge e móveis, sendo perfeito para cenários de inferência no dispositivo e em tempo real. É leve e compatível com hardware edge, servindo de base para formatos NPU de fornecedores como Huawei Ascend, Qualcomm QNN para dispositivos Snapdragon e RKNN para NPU Rockchip.

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

Tarefas Suportadas#

A exportação para ONNX suporta todas as sete tarefas do Ultralytics. A segmentação semântica e a estimativa de profundidade estão disponíveis apenas com o YOLO26, a única família que possui essas camadas.

TarefaYOLOv8YOLO11YOLO26
Detectar
Segmentar
Semântica
Profundidade
Classificar
Pose
OBB

Exportando modelos YOLO26 para ONNX#

Podes expandir a compatibilidade do modelo e a flexibilidade de implantação convertendo os modelos YOLO26 para o formato ONNX. O Ultralytics YOLO26 fornece um processo de exportação direto que pode melhorar significativamente o desempenho do teu 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 melhores práticas relacionadas com o processo de instalação, consulta o nosso YOLO26 Installation guide. Ao instalar os pacotes necessários para o YOLO26, se encontrares alguma dificuldade, consulta o nosso Common Issues guide para obter soluções e dicas.

Uso#

Antes de mergulhares nas instruções de uso, certifica-te de explorar a gama de YOLO26 models offered by Ultralytics. Isto ajudar-te-á a escolher o modelo mais adequado para os requisitos do teu projeto.

O formato ONNX suporta os modos Export, Predict e Validate. Exporta o teu modelo e, em seguida, carrega o modelo exportado para executar a inferência ou validar a sua precisão.

Exportar
from ultralytics import YOLO

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

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

# Export an INT8-quantized ONNX model with calibration data
model.export(format="onnx", quantize=8, data="coco8.yaml")  # creates 'yolo26n_int8.onnx'
Prever
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validar
from ultralytics import YOLO

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

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

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 implementação.
imgszint ou tuple640Tamanho de imagem desejado para a entrada do modelo. Pode ser um número inteiro para imagens quadradas ou um tuplo (height, width) para dimensões específicas.
quantizeint ou strNonePrecisão de quantização: 16 (FP16) ou 8 (quantização estática INT8 com ONNX Runtime usando imagens de calibração de data, produzindo um modelo _int8.onnx); 32/não definido é FP32. Substitui as flags obsoletas half/int8.
datastrNoneYAML do conjunto de dados usado para calibração INT8; a classificação por sua vez utiliza um diretório de conjunto de dados ou um nome de conjunto de dados integrado. Se omitido com quantize=8, o Ultralytics seleciona o conjunto de dados de calibração padrão para a tarefa do modelo.
fractionfloat1.0Fração de imagens de calibração a serem usadas para a quantização INT8.
dynamicboolFalsePermite tamanhos de entrada dinâmicos, aumentando a flexibilidade no manuseio de dimensões variáveis de imagem.
simplifyboolTrueSimplifica o grafo do modelo com onnxslim, melhorando potencialmente o desempenho e a compatibilidade.
opsetintNoneEspecifica a versão do opset ONNX para compatibilidade com diferentes parsers e runtimes ONNX. Se não for definido, usa a versão suportada mais recente.
nmsboolFalseAdiciona a Supressão Não-Máxima (NMS), essencial para um pós-processamento de detecção preciso e eficiente.
batchint1Especifica o tamanho de inferência por lote do modelo de exportação ou o número máximo de imagens que o modelo exportado processará concorrentemente no modo predict.
devicestrNoneEspecifica o dispositivo para exportação: GPU (device=0), CPU (device=cpu), MPS para Apple silicon (device=mps).

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

Implementando modelos ONNX do YOLO26 exportados#

Uma vez que você tenha exportado com sucesso seus modelos Ultralytics YOLO26 para o formato ONNX, o próximo passo é implementar esses modelos em vários ambientes. Para obter instruções detalhadas sobre como implementar seus modelos ONNX, dê uma olhada nos seguintes recursos:

  • ONNX Runtime Python API Documentation: Este guia fornece informações essenciais para carregar e executar modelos ONNX utilizando o ONNX Runtime.

  • Deploying on Edge Devices: Consulta esta página de documentação para diferentes exemplos de implantação de modelos ONNX em edge.

  • ONNX Tutorials on GitHub: Uma coleção de tutoriais abrangentes que cobrem váriospetos da utilização e implementação de modelos ONNX em diferentes cenários.

  • Triton Inference Server: Aprende a implementar os teus modelos ONNX com o Triton Inference Server da NVIDIA para implantações de alto desempenho e escaláveis.

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 export formats suportados pelo Ultralytics YOLO26, permitindo-te implantar os teus modelos em praticamente qualquer ambiente. Dependendo das tuas necessidades específicas, também podes querer explorar outras opções de exportação como TensorRT para o máximo desempenho de GPU ou CoreML para dispositivos Apple.

Para mais detalhes sobre a utilização, visita a ONNX official documentation.

Além disso, se quiseres saber mais sobre outras integrações do Ultralytics YOLO26, visita a nossa integration guide page. Encontrará lá muitos recursos e conhecimentos úteis.

FAQ#

Como faço para exportar modelos YOLO26 para o formato ONNX usando o Ultralytics?#

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

Uso
from ultralytics import YOLO

# Load a 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, visita a export documentation.

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 sejam executados 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 proporcionar até 3x de aceleração na 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.

Sabe mais consultando a ONNX Runtime documentation.

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 no dispositivo em tempo real.
  • Navegadores web: Executando modelos diretamente nos navegadores 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 mais informações, explora o nosso guia sobre model deployment options.

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 os modelos sejam transferidos entre diferentes frameworks de machine learning perfeitamente.
  • 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ção.
  • Padronização: O ONNX fornece um formato padronizado que é amplamente suportado em toda a indústria, garantindo compatibilidade a longo prazo.

Consulta o guia abrangente sobre exporting YOLO26 models to 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 instalada.
  2. Consulta a documentação oficial do ONNX para operadores e funcionalidades suportados.
  3. Revê as mensagens de erro em busca de pistas e consulta o Ultralytics Common Issues guide.
  4. Tenta usar diferentes argumentos de exportação como simplify=True ou ajustar a versão opset.
  5. Para problemas de tamanho de entrada dinâmico, define 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