Utilizar a integração ONNX para exportar modelos Ultralytics YOLO

Abirami Vina

4 min ler

2 de maio de 2025

Saiba como exportar modelos Ultralytics YOLO, como o Ultralytics YOLO11, utilizando a integração ONNX para a implementação multiplataforma em vários hardwares.

Quando as soluções de IA começaram a chamar a atenção, a maioria dos modelos era implementada em servidores potentes em ambientes controlados. No entanto, com o avanço da tecnologia, a implementação expandiu-se muito para além do centro de dados.

Atualmente, os modelos de IA são executados em tudo, desde servidores na nuvem e computadores de secretária a smartphones e dispositivos periféricos. Esta mudança permite um processamento mais rápido, funcionalidade offline e sistemas mais inteligentes que funcionam mais perto do local onde os dados são gerados.

Uma área em que isto é especialmente evidente é a visão por computador - um ramo da IA que permite às máquinas interpretar dados visuais. Está a ser utilizada para impulsionar aplicações como o reconhecimento facial, a condução autónoma e a análise de vídeo em tempo real. À medida que estes casos de utilização crescem, aumenta também a necessidade de modelos que possam funcionar sem problemas em diversos hardwares e plataformas.

Mas a implantação de modelos de visão computacional em uma variedade de alvos de implantação nem sempre é simples. Os dispositivos diferem em termos de hardware, sistemas operativos e estruturas suportadas, tornando a flexibilidade e a compatibilidade essenciais.

É por isso que é fundamental ter a opção de exportar modelos de visão por computador como o Ultralytics YOLO11 para diferentes formatos. Por exemplo, a integração ONNX (Open Neural Network Exchange) suportada pelo Ultralytics proporciona uma forma prática de colmatar a lacuna entre a formação e a implementação. O ONNX é um formato aberto que torna os modelos independentes da estrutura e prontos para serem implementados em várias plataformas.

Figura 1. O ONNX ajuda-o a pegar num modelo treinado numa estrutura e a executá-lo facilmente noutra.

Neste artigo, analisaremos mais detalhadamente a integração ONNX suportada pelo Ultralytics e exploraremos como pode exportar o seu modelo YOLO11 para uma implementação flexível e multiplataforma.

O que é o ONNX e o ONNX Runtime?

O Open Neural Network Exchange é um projeto de código aberto que define um formato padrão para modelos de aprendizagem automática. Originalmente desenvolvido pela Microsoft e pelo Facebook, permite que os programadores treinem um modelo numa estrutura, como o PyTorch, e o executem noutra, como o TensorFlow. Isto torna o desenvolvimento da IA mais flexível, colaborativo e acessível, especialmente em domínios como a visão por computador.

O ONNX fornece um conjunto comum de operadores e um formato de ficheiro unificado, facilitando a transferência de modelos entre diferentes ferramentas, estruturas, tempos de execução e compiladores. Normalmente, um modelo treinado numa estrutura não é facilmente compatível com outra - mas com o ONNX, pode exportar o seu modelo uma vez e implementá-lo em praticamente qualquer lugar: em CPUs (Unidades Centrais de Processamento), GPUs (Unidades de Processamento Gráfico), dispositivos móveis ou hardware de ponta.

Além disso, o ONNX Runtime é um mecanismo de inferência de alto desempenho desenvolvido especificamente para executar modelos no formato ONNX. Foi concebido para que os modelos ONNX sejam executados de forma mais rápida e eficiente numa vasta gama de plataformas, incluindo servidores, dispositivos móveis e hardware de ponta. O ONNX Runtime é compatível com estruturas populares como PyTorch, TensorFlow, TensorFlow Lite e scikit-learn, facilitando a integração em diferentes fluxos de trabalho e a implantação de modelos onde quer que sejam necessários.

Figura 2. O ONNX e o ONNX Runtime permitem a implementação flexível de modelos entre plataformas.

Principais caraterísticas do ONNX 

Antes de falarmos sobre como exportar o YOLO11 para o formato ONNX, vejamos algumas das principais caraterísticas do formato do modelo ONNX. 

Quer esteja a alternar entre ferramentas, a implementar em diferentes dispositivos ou a atualizar sistemas, o ONNX ajuda a manter tudo a funcionar sem problemas. Eis o que torna o formato do modelo ONNX único:

  • Um formato padrão: O ONNX utiliza uma forma comum de descrever a forma como os modelos são construídos, como camadas e operações (pense neles como blocos de construção). Quando um modelo é convertido em ONNX, segue esta norma para que qualquer sistema que suporte ONNX o possa compreender e executar.
  • Compatibilidade com versões anteriores: Mesmo que o ONNX continue a melhorar, garante que os modelos mais antigos continuam a funcionar com as versões mais recentes. Isto significa que não tem de voltar a treinar ou reconstruir os seus modelos sempre que o ONNX recebe uma atualização.
  • Conceção de modelos baseada em gráficos: Os modelos ONNX são estruturados como gráficos de computação, em que cada nó representa uma operação (como uma camada ou função matemática) e as arestas indicam o fluxo de dados. Esta conceção baseada em gráficos facilita a integração com vários sistemas que utilizam estruturas de gráficos computacionais semelhantes.
  • Ferramentas fáceis de utilizar pelo programador: É fornecido com uma vasta gama de ferramentas que o ajudam a converter, validar e otimizar os seus modelos. Estas ferramentas simplificam o processo de deslocação de modelos entre diferentes estruturas e podem acelerar a implementação - especialmente para aplicações de visão por computador.

Uma visão geral da integração ONNX

A exportação de modelos Ultralytics YOLO como o Ultralytics YOLO11 no formato ONNX é simples e pode ser efectuada em poucos passos. 

Para começar, instale o pacote Ultralytics Python utilizando um gestor de pacotes como o 'pip'. Isto pode ser feito executando o comando "pip install ultralytics" no seu prompt de comando ou terminal para começar.

Com o pacote Ultralytics, pode facilmente treinar, testar, afinar, exportar e implementar modelos para várias tarefas de visão por computador, tornando todo o processo mais rápido e eficiente. Ao instalá-lo, se encontrar alguma dificuldade, pode consultar o guia Problemas comuns para obter soluções e dicas.

Assim que o pacote Ultralytics estiver instalado, pode carregar e exportar o modelo YOLO11 para o formato ONNX utilizando o código abaixo. Este exemplo carrega um modelo YOLO11 pré-treinado (yolo11n.pt) e exporta-o como um ficheiro ONNX (yolo11n.onnx), tornando-o pronto para ser implementado em diferentes plataformas e dispositivos.

Depois de converter o seu modelo para o formato ONNX, pode implementá-lo numa variedade de plataformas. 

O exemplo abaixo mostra como carregar o modelo YOLO11 exportado (yolo11n.onnx) e executar uma inferência com ele. A inferência significa simplesmente usar o modelo treinado para fazer previsões em novos dados. Neste caso, usaremos o URL de uma imagem de um autocarro para testar o modelo.

Quando este código é executado, a seguinte imagem de saída é guardada na pasta runs/detect/predict.

Fig. 3. Execução de uma inferência utilizando o modelo YOLO11 exportado numa imagem.

Quando escolher a integração ONNX?

O pacote Ultralytics Python suporta a exportação de modelos para vários formatos, incluindo TorchScript, CoreML, TensorRT e ONNX. Então, por que escolher o ONNX?

O que faz com que o ONNX se destaque é o facto de ser um formato independente da estrutura. Enquanto muitos outros formatos de exportação estão ligados a ferramentas ou ambientes específicos, o ONNX utiliza um formato normalizado e um conjunto partilhado de operadores. Isto torna-o altamente portátil, compatível com o hardware e ideal para a implementação multiplataforma - quer esteja a trabalhar com servidores na nuvem, aplicações móveis ou dispositivos de ponta. 

Eis algumas razões pelas quais a integração ONNX pode ser a escolha ideal para os seus projectos YOLO11:

  • Implementação portátil: Uma vez exportado para ONNX, o seu modelo YOLO11 pode ser implementado em várias plataformas sem alterações de código ou reciclagem.
  • Apoio de todo o sector: O ONNX é suportado pelas principais empresas e estruturas de IA, o que o torna um formato fiável e amplamente aceite. Garante a compatibilidade a longo prazo, tal como os PDFs funcionam entre dispositivos.
  • Desenvolvimento à prova de futuro: A utilização do ONNX ajuda a proteger os seus investimentos em modelos. À medida que as ferramentas evoluem, o ONNX mantém os seus modelos relevantes e utilizáveis, mesmo em ambientes novos ou diferentes.
  • Sem dependência do fornecedor: Algumas ferramentas obrigam-no a utilizar apenas o seu sistema, o que pode limitar as possibilidades do seu modelo. O ONNX evita isso, permitindo-lhe escolher a plataforma que melhor se adapta às suas necessidades, sem ficar preso a uma única configuração.

Aplicações do YOLO11 e do formato do modelo ONNX

Em seguida, vamos explorar algumas aplicações do mundo real em que o YOLO11 pode ser implementado com a ajuda da integração ONNX.

Acompanhamento do inventário nos armazéns com YOLO11

Em armazéns movimentados, é difícil estar sempre atento a todos os produtos e embalagens. Os sistemas de visão por computador podem ajudar os trabalhadores a encontrar produtos nas prateleiras e a obter informações como o número de produtos, o tipo, etc. Estes sistemas podem ajudar as empresas a gerir automaticamente o seu vasto inventário e poupar muito tempo aos trabalhadores do armazém.

Especificamente, em armazéns inteligentes, os modelos YOLO11 exportados para ONNX podem ser utilizados para identificar e contar artigos em tempo real utilizando câmaras e dispositivos de ponta. O modelo exportado pode ajudar a analisar prateleiras ou paletes para detetar níveis de stock, artigos em falta ou pontos vazios. Uma vez que a exportação para ONNX torna o modelo leve e eficiente, este pode ser executado diretamente em pequenos dispositivos periféricos, como câmaras inteligentes, eliminando a necessidade de servidores dispendiosos ou de acesso constante à nuvem.

Fig. 4. Um exemplo de utilização do YOLO11 para detetar e contar pacotes.

Gestão de resíduos hospitalares com YOLO11

Os hospitais de todo o mundo produzem diariamente grandes quantidades de resíduos, desde luvas e seringas usadas até ao equipamento utilizado durante a cirurgia (como instrumentos cirúrgicos de utilização única ou contaminados, como tesouras e bisturis). De facto, a investigação mostra que os hospitais produzem cerca de 5 milhões de toneladas de resíduos todos os anos, o que corresponde a 29 libras de resíduos por cama e por dia. 

A seleção adequada destes resíduos é essencial para a higiene, segurança e cumprimento dos regulamentos. Com os modelos YOLO11 exportados em formato ONNX, os hospitais podem automatizar e monitorizar a eliminação de resíduos em tempo real.

Por exemplo, as câmaras colocadas perto de caixotes do lixo em áreas como salas de operações ou corredores podem monitorizar os itens à medida que são eliminados. Um modelo YOLO11 personalizado, treinado para reconhecer diferentes tipos de resíduos médicos, pode analisar as imagens e identificar o que está a ser deitado fora. Se um item for parar ao contentor errado, como uma seringa usada no lixo normal, o sistema pode ser configurado para alertar imediatamente o pessoal com uma luz ou som, ajudando a evitar a contaminação e a garantir a conformidade.

Fig. 5. Utilização do YOLO11 para detetar instrumentos médicos.

Monitorização de culturas com base no YOLO11

Saber a altura certa para efetuar a colheita pode ter um grande impacto tanto na qualidade dos produtos como na produtividade geral de uma exploração agrícola. Tradicionalmente, os agricultores confiam na experiência e nas inspecções manuais - mas com os recentes avanços na tecnologia, isso está a começar a mudar.

Agora, com inovações de visão computacional como o YOLO11, exportado no formato ONNX, os agricultores podem trazer a automação e a precisão para o campo. Utilizando drones ou câmaras montadas em tractores ou postes, os agricultores podem captar imagens das suas culturas (como tomates, maçãs ou trigo). O YOLO11 pode então ser utilizado para detetar indicadores-chave como a cor, o tamanho e a distribuição das culturas. Com base nesta informação, os agricultores podem determinar se as culturas estão prontas para a colheita, se ainda estão a amadurecer ou se já passaram o seu pico.

Fig. 6. O YOLO11 pode ser utilizado para detetar culturas em filmagens aéreas de drones. 

Limitações da ONNX a considerar

Embora o ONNX ofereça inúmeras vantagens, como a portabilidade, a compatibilidade entre plataformas e a interoperabilidade de estruturas, há algumas limitações a ter em conta.

  • Tamanho do modelo: A conversão de modelos para o formato ONNX pode, por vezes, resultar em ficheiros de maiores dimensões em comparação com os seus formatos originais. Técnicas como a quantização e a poda podem ajudar a mitigar este problema, reduzindo o tamanho do modelo sem afetar significativamente o desempenho.
  • Compatibilidade do tempo de execução: Embora o ONNX Runtime tenha sido concebido para ser compatível com várias plataformas, o desempenho e o suporte podem variar entre diferentes hardwares e sistemas operativos. 
  • Desafios de depuração: A depuração de modelos ONNX pode ser mais complexa do que em estruturas nativas como PyTorch ou TensorFlow. As mensagens de erro podem ser menos descritivas, dificultando a identificação de problemas. No entanto, ferramentas como o Netron para visualização de modelos e as capacidades de registo do ONNX Runtime podem ajudar na resolução de problemas.

Principais conclusões

A exportação do Ultralytics YOLO11 para o ONNX facilita a utilização de um modelo de visão por computador treinado e a sua implementação em praticamente qualquer lugar - quer seja num computador portátil, num dispositivo móvel ou mesmo numa câmara inteligente compacta. Com a integração ONNX, não está preso a uma única estrutura ou plataforma, o que lhe dá a flexibilidade de executar o seu modelo no ambiente que melhor se adequa à sua aplicação. 

Isto torna a transição da formação para a implementação no mundo real mais rápida e eficiente. Quer esteja a controlar o inventário num armazém ou a garantir que os resíduos hospitalares são eliminados corretamente, esta configuração ajuda os sistemas a funcionarem melhor, reduz os erros e poupa tempo valioso.

Quer saber mais sobre visão computacional e IA? Explore o nosso repositório GitHub, ligue-se à nossa comunidade e verifique as nossas opções de licenciamento para iniciar o seu projeto de visão computacional. Se estiver a explorar inovações como a IA no fabrico e a visão por computador na indústria automóvel, visite as nossas páginas de soluções para saber mais. 

Vamos construir juntos o futuro
da IA!

Comece a sua viagem com o futuro da aprendizagem automática

Comece gratuitamente
Ligação copiada para a área de transferência