ONNX Exportação para YOLO11 Modelos
Muitas vezes, ao implementar modelos de visão por computador, é necessário um formato de modelo que seja flexível e compatível com várias plataformas.
A exportação de Ultralytics YOLO11 modelos para o formato ONNX simplifica a implementação e garante um desempenho ótimo em vários ambientes. Este guia mostra-lhe como converter facilmente os seus modelos YOLO11 para ONNX e melhorar a sua escalabilidade e eficácia em aplicações reais.
ONNX e ONNX Tempo de execução
ONNX, que significa Open Neural Network Exchange, é um projeto comunitário que o Facebook e o Microsoft desenvolveram inicialmente. O desenvolvimento contínuo de ONNX é um esforço de colaboração apoiado por várias organizações como a IBM, a Amazon (através da AWS) e Google. O projeto visa criar um formato de ficheiro aberto concebido para representar modelos de aprendizagem automática de uma forma que permita a sua utilização em diferentes estruturas e hardware de IA.
ONNX podem ser utilizados para fazer a transição entre diferentes estruturas sem problemas. Por exemplo, um modelo de aprendizagem profunda treinado em PyTorch pode ser exportado para o formato ONNX e depois facilmente importado para TensorFlow.
Em alternativa, os modelos ONNX podem ser utilizados com o ONNX Runtime. ONNX O Runtime é um acelerador multiplataforma versátil para modelos de aprendizagem automática, compatível com estruturas como PyTorch, TensorFlowTFLite, scikit-learn, etc.
ONNX O tempo de execução optimiza a execução dos modelos ONNX , tirando partido das capacidades específicas do hardware. Esta otimização permite que os modelos sejam executados de forma eficiente e com elevado desempenho em várias plataformas de hardware, incluindo CPUs, GPUs e aceleradores especializados.
Quer seja utilizado de forma independente ou em conjunto com o ONNX Runtime, o ONNX fornece uma solução flexível para a implementação e compatibilidade de modelos de aprendizagem automática.
Principais caraterísticas dos modelos ONNX
A capacidade do ONNX de lidar com vários formatos pode ser atribuída às seguintes caraterísticas principais:
-
Representação comum de modelos: 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 compreendido 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 aos programadores o trabalho com modelos ONNX e a conversão de modelos entre diferentes estruturas sem problemas.
Utilização comum de ONNX
Antes de falarmos sobre como exportar modelos YOLO11 para o formato ONNX , vejamos onde os modelos ONNX são normalmente utilizados.
CPU Implantação
ONNX são frequentemente implementados em CPUs devido à sua compatibilidade com o ONNX Runtime. Este tempo de execução é optimizado para a execução em 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 , em especial 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.
Exportação de modelos YOLO11 para ONNX
Pode expandir a compatibilidade de modelos e a flexibilidade de implementação convertendo os modelos YOLO11 para o formato ONNX .
Instalação
Para instalar o pacote necessário, execute:
Para obter instruções detalhadas e melhores práticas relacionadas com o processo de instalação, consulte o nosso guia de instalaçãoYOLO11 . Ao instalar os pacotes necessários para YOLO11, se encontrar alguma dificuldade, consulte o nosso guia de Problemas comuns para obter soluções e dicas.
Utilização
Antes de se debruçar sobre as instruções de utilização, não deixe de consultar a gama de modelosYOLO11 propostos por Ultralytics. Isto ajudá-lo-á a escolher o modelo mais adequado às necessidades do seu projeto.
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")
Para mais informações sobre o processo de exportação, visite a página de documentaçãoUltralytics sobre exportação.
Implantação de modelos exportados YOLO11 ONNX
Depois de exportar com êxito os modelos Ultralytics YOLO11 para o formato ONNX , a próxima etapa é implantar esses modelos em vários ambientes. Para obter instruções detalhadas sobre a implantação dos modelos ONNX , consulte os seguintes recursos:
-
ONNX Tempo de execução Python Documentação da API: Este guia fornece informações essenciais para carregar e executar modelos ONNX utilizando o tempo de execução ONNX .
-
Implantação em dispositivos de borda: Consulte esta página de documentos para ver diferentes exemplos de implantação de modelos ONNX no edge.
-
ONNX Tutoriais no GitHub: Uma coleção de tutoriais abrangentes que cobrem vários aspectos da utilização e implementação de modelos ONNX em diferentes cenários.
Resumo
Neste guia, você aprendeu a exportar modelos Ultralytics YOLO11 para o formato ONNX para aumentar sua interoperabilidade e desempenho em várias plataformas. Também foram apresentadas as opções de implantação ONNX Runtime e ONNX .
Para mais informações sobre a utilização, visite a documentação oficialONNX .
Além disso, se quiser saber mais sobre outras integrações de Ultralytics YOLO11 , visite a nossa página de guia de integração. Encontrará aí muitos recursos e informações úteis.
FAQ
Como é que exporto modelos YOLO11 para o formato ONNX utilizando Ultralytics?
Para exportar os seus modelos YOLO11 para o formato ONNX utilizando Ultralytics, siga estes passos:
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")
Para mais pormenores, consulte a documentação de exportação.
Quais são as vantagens de utilizar o ONNX Runtime para a implementação de modelos YOLO11 ?
A utilização do ONNX Runtime para a implementação de modelos YOLO11 oferece várias vantagens:
- Compatibilidade entre plataformas: ONNX O tempo de execução é compatível com várias plataformas, como Windows, macOS e Linux, garantindo que seus modelos sejam executados sem problemas em diferentes ambientes.
- Aceleração de hardware: ONNX O tempo de execução pode aproveitar optimizações específicas de hardware para CPUs, GPUs e aceleradores dedicados, proporcionando uma inferência de elevado desempenho.
- Interoperabilidade de estruturas: Os modelos treinados em estruturas populares como PyTorch ou TensorFlow podem ser facilmente convertidos para o formato ONNX e executados utilizando o tempo de execução ONNX .
Para saber mais, consulte a documentação do tempo de execuçãoONNX .
Que opções de implementação estão disponíveis para os modelos YOLO11 exportados para ONNX?
YOLO11 os modelos exportados para ONNX podem ser implementados em várias plataformas, incluindo:
- CPUs: Utilizando ONNX Runtime para otimizar a inferência CPU .
- GPUs: Tirar partido de NVIDIA CUDA para uma aceleração de alto desempenho de GPU .
- Dispositivos de ponta: Execução de modelos leves em dispositivos móveis e de ponta para inferência em tempo real no dispositivo.
- Navegadores Web: Execução de modelos diretamente nos navegadores Web para aplicações interactivas baseadas na Web.
Para mais informações, consulte o nosso guia sobre opções de implementação de modelos.
Por que razão devo utilizar o formato ONNX para os modelos Ultralytics YOLO11 ?
A utilização do formato ONNX para os modelos Ultralytics YOLO11 apresenta inúmeras vantagens:
- Interoperabilidade: ONNX permite que os modelos sejam transferidos entre diferentes estruturas de aprendizagem automática sem problemas.
- Otimização do 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-lhe utilizar o mesmo modelo em diferentes plataformas sem modificações.
Consultar o guia completo sobre a exportação dos modelos YOLO11 para ONNX.
Como posso resolver problemas ao exportar modelos de YOLO11 para ONNX?
Ao exportar modelos de YOLO11 para ONNX, poderá encontrar problemas comuns, como dependências incompatíveis ou operações não suportadas. Para solucionar esses problemas:
- Verifique se tem a versão correta das dependências necessárias instaladas.
- Consulte a documentação oficial ONNX para saber quais os operadores e funcionalidades suportados.
- Analise as mensagens de erro para obter pistas e consulte o guiaUltralytics Common Issues (Problemas comuns).
Se os problemas persistirem, contacte o suporte Ultralytics para obter mais assistência.