Meet YOLO26: next-gen vision AI.

Link to this sectionExportação ONNX para modelos YOLO26#

~43% mais rápido na inferência.
  • 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.

Frequentemente, ao implementar modelos de visão computacional, você precisará de um formato de modelo que seja flexível e compatível com várias plataformas.

Exportar modelos Ultralytics YOLO26 para o formato ONNX simplifica a implementação e garante um desempenho ideal em diversos ambientes. Este guia mostrará como converter facilmente seus modelos YOLO26 para ONNX e aumentar 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 🚀

Link to this sectionONNX e ONNX Runtime#

ONNX, que significa Open Neural Network Exchange, é um projeto comunitário que o Facebook e a Microsoft desenvolveram inicialmente. 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 uma forma que permita que sejam usados em diferentes estruturas de IA e hardware.

Modelos ONNX podem ser usados para fazer a transição entre diferentes estruturas perfeitamente. Por exemplo, um modelo de aprendizado profundo treinado em PyTorch pode ser exportado para o formato ONNX e depois facilmente importado para 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 que é compatível com estruturas 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 sejam executados de forma eficiente e com 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 fornece uma solução flexível para implementação de modelos de aprendizado de máquina e compatibilidade.

Link to this sectionPrincipais 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 estrutura que suporte ONNX.

  • Controle de versão e compatibilidade com versões anteriores: O ONNX mantém um sistema de controle de versão para seus operadores. Isso garante que, mesmo à medida que o padrão evolui, os modelos criados em versões anteriores permaneçam utilizáveis. A compatibilidade com versões anteriores é um recurso crucial que impede 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 aprendizado de máquina, onde os nós representam operações ou computações, 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 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 estruturas de forma integrada.

Link to this sectionUso comum do ONNX#

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

Link to this sectionImplementação em CPU#

Modelos ONNX são frequentemente implementados em CPUs devido à sua compatibilidade com o ONNX Runtime. Este tempo de execução é 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.

Link to this sectionOpçõ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 de GPU: O ONNX suporta totalmente a aceleração de GPU, particularmente NVIDIA CUDA. Isso permite uma execução eficiente em GPUs NVIDIA para tarefas que exigem alto poder computacional.

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

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

Link to this sectionExportando modelos YOLO26 para ONNX#

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

Link to this sectionInstalaçã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 ao processo de instalação, verifique nosso guia de instalação do YOLO26. Ao instalar os pacotes necessários para o YOLO26, se encontrar dificuldades, consulte nosso guia de problemas comuns para soluções e dicas.

Link to this sectionUso#

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

O formato ONNX suporta os modos Export, Predict e Validate. Exporte seu modelo e, em seguida, carregue o modelo exportado para executar a inferência ou validar 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", int8=True, 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")

Link to this sectionArgumentos de exportação#

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

ArgumentoTipoPadrã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 uma tupla (height, width) para dimensões específicas.
halfboolFalseHabilita a quantização FP16 (precisão simples), reduzindo o tamanho do modelo e potencialmente acelerando a inferência em hardware suportado.
int8boolFalseHabilita a quantização estática INT8 com o ONNX Runtime usando imagens de calibração de data, produzindo um modelo _int8.onnx.
datastrNoneDataset YAML usado para calibração INT8. Se omitido com int8=True, a Ultralytics seleciona o dataset de calibração padrão para a tarefa do modelo.
fractionfloat1.0Fração de imagens de calibração para usar na quantização INT8.
dynamicboolFalsePermite tamanhos de entrada dinâmicos, aumentando a flexibilidade no manuseio de dimensões de imagem variadas.
simplifyboolTrueSimplifica o grafo do modelo com onnxslim, potencialmente melhorando 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 de Não-Máximos (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 Apple silicon (device=mps).

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

Link to this sectionImplementando 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:

  • Documentação da API Python do ONNX Runtime: Este guia fornece informações essenciais para carregar e executar modelos ONNX usando o ONNX Runtime.

  • Implementando em dispositivos Edge: Confira esta página de documentos para diferentes exemplos de implementação de modelos ONNX em dispositivos edge.

  • Tutoriais ONNX no GitHub: Uma coleção de tutoriais abrangentes que cobrem vários aspectos do uso e implementação de modelos ONNX em diferentes cenários.

  • Triton Inference Server: Saiba como implementar seus modelos ONNX com o Triton Inference Server da NVIDIA para implementações escaláveis e de alto desempenho.

Link to this sectionResumo#

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 do 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 das suas necessidades específicas, talvez você também queira explorar outras opções de exportação como TensorRT para desempenho máximo de GPU ou CoreML para dispositivos Apple.

Para 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 e insights úteis lá.

Link to this sectionFAQ#

Link to this sectionComo exporto modelos YOLO26 para o formato ONNX usando a Ultralytics?#

Para exportar seus modelos YOLO26 para o formato ONNX usando a 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, visite a documentação de exportação.

Link to this sectionQuais 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 funcionem 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 estrutura: Modelos treinados em estruturas 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 mais velocidade na CPU em comparação com modelos nativos PyTorch, 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.

Link to this sectionQuais 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 a NVIDIA CUDA para aceleração de GPU de alto desempenho.
  • Dispositivos Edge: Executando modelos leves em dispositivos edge e móveis para inferência no dispositivo em tempo real.
  • Navegadores da Web: Executando modelos diretamente em navegadores da 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 mais informações, explore nosso guia sobre opções de implementação de modelos.

Link to this sectionPor 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 estruturas de aprendizado de máquina 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 todo o setor, garantindo compatibilidade a longo prazo.

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

Link to this sectionComo 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. 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 da Ultralytics.
  4. Tente usar argumentos de exportação diferentes, 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