Meet YOLO26: next-gen vision AI.

Link to this sectionExportaçã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 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 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#

O 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 arquivo aberto projetado para representar modelos de machine learning de uma forma que permita que sejam usados entre diferentes frameworks de IA e hardware.

Modelos ONNX podem ser usados para transição contínua entre diferentes frameworks. Por exemplo, um modelo de deep learning treinado em PyTorch pode ser exportado para o formato ONNX e, em seguida, 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 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

Seja usado de forma independente ou em conjunto com o ONNX Runtime, o ONNX oferece uma solução flexível para implementação de modelos de machine learning 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 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.

Link to this sectionUso 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.

Link to this sectionImplementaçã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.

Link to this sectionOpções de implementação suportadas#

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

  • Aceleração de GPU: O ONNX oferece suporte total à aceleração de GPU, particularmente NVIDIA CUDA. Isso permite uma 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, servindo como base para formatos NPU de fornecedores, como Qualcomm QNN para dispositivos Snapdragon e RKNN para NPUs Rockchip.

  • Navegadores web: O ONNX pode ser executado diretamente em navegadores web, potencializando 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, confere o nosso Guia de Instalação do YOLO26. Ao instalar os pacotes necessários para o YOLO26, caso encontres alguma dificuldade, consulta o nosso Guia de Problemas Comuns para soluções e dicas.

Link to this sectionUso#

Antes de mergulhar nas instruções de uso, certifique-se 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 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", 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")

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 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 uma tupla (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. 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, 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 Não-Máxima (NMS), essencial para um 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 do Ultralytics sobre exportação.

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

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 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 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 por lá.

Link to this sectionFAQ#

Link to this sectionComo 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, 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 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 framework: 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.

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 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, explore nosso guia sobre opções de implementação de modelo.

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 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.

Consulte o guia abrangente sobre como exportar 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 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