Verificação verde
Link copiado para a área de transferência

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

Aprende a 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, à medida que a tecnologia avançou, 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 de ponta. 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 claro é 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, cresce 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 operacionais e estruturas suportadas, tornando a flexibilidade e a compatibilidade essenciais.

É por isso que ter a opção de exportar modelos de visão computacional como o Ultralytics YOLO11 para diferentes formatos é fundamental. 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. ONNX é um formato aberto que torna os modelos independentes da estrutura e prontos para serem implementados em várias plataformas.

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

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

O que é o ONNX e 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 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.

ONNX fornece um conjunto comum de operadores e um formato de arquivo unificado, facilitando a movimentação de modelos entre diferentes ferramentas, frameworks, tempos de execução e compiladores. Normalmente, um modelo treinado numa estrutura não é facilmente compatível com outra - mas com ONNX, podes exportar o teu modelo uma vez e implementá-lo em praticamente qualquer lugar: em CPUs (Central Processing Units), GPUs (Graphics Processing Units), dispositivos móveis ou hardware de ponta.

Além disso, 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. ONNX Runtime é compatível com frameworks populares como PyTorch, TensorFlow, TensorFlow Lite e scikit-learn, facilitando a integração em diferentes fluxos de trabalho e a implementação de modelos onde quer que sejam necessários.

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

Principais caraterísticas do ONNX 

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

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

  • Um formato padrão: ONNX utiliza uma forma comum de descrever como os modelos são construídos, como camadas e operações (pensa neles como blocos de construção). Quando um modelo é convertido para ONNX, segue este padrão para que qualquer sistema que suporte ONNX o possa compreender e executar.
  • Compatibilidade com versões anteriores: Mesmo que ONNX continue a melhorar, assegura 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 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 movimentaçã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 dos modelosUltralytics YOLO , como Ultralytics YOLO11 , para o formato ONNX é simples e pode ser efectuada em poucos passos. 

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

Com o pacote Ultralytics , podes 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. Durante a instalação, se tiveres alguma dificuldade, podes consultar o guia Problemas comuns para obteres soluções e dicas.

Assim que o pacote Ultralytics estiver instalado, podes 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 (yolo11nonnx), tornando-o pronto para ser implementado em diferentes plataformas e dispositivos.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="onnx") 

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

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

onnx_model = YOLO("yolo11n.onnx")

results = onnx_model("https://ultralytics.com/images/bus.jpg",save=True)

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

Fig. 3. Executa uma inferência utilizando o modelo YOLO11 exportado para uma imagem.

Quando deves 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 ONNX?

O que faz com que 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, ONNX utiliza um formato normalizado e um conjunto partilhado de operadores. Isto torna-o altamente portátil, compatível com hardware e ideal para a implementação multiplataforma - quer estejas 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 teus projectos YOLO11 :

  • Implementação portátil: Uma vez exportado para ONNX, o teu modelo YOLO11 pode ser implementado em várias plataformas sem alterações de código ou reciclagem.
  • Suporte a toda a indústria: 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, ONNX mantém os seus modelos relevantes e utilizáveis, mesmo em ambientes novos ou diferentes.
  • Não fica preso ao fornecedor: Algumas ferramentas obrigam-no a utilizar apenas o seu sistema, o que pode limitar as possibilidades do seu modelo. 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

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

Acompanha o inventário nos armazéns utilizando o YOLO11

Em armazéns movimentados, é difícil manter um olho em cada produto e embalagem o tempo todo. 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, 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 no 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 artigos à medida que são deitados fora. 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 um som, ajudando a evitar a contaminação e a garantir a conformidade.

Fig. 5. Utiliza YOLO11 para detetar instrumentos médicos.

Monitorização de culturas YOLO11

Saber a altura certa para fazer 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 automação e 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). 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. YOLO11 pode ser utilizado para detetar culturas em imagens aéreas de drones. 

Limitações ONNX a considerar

Embora 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 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ás preso a uma única estrutura ou plataforma, o que te dá a flexibilidade de executar o teu modelo no ambiente que melhor se adequa à tua aplicação. 

Isto torna a transição da formação para a implementação no mundo real mais rápida e eficiente. Quer estejas 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 funcionar melhor, reduz os erros e poupa tempo valioso.

Queres saber mais sobre visão computacional e IA? Explora o nosso repositório GitHub, liga-te à nossa comunidade e verifica as nossas opções de licenciamento para iniciares o teu projeto de visão computacional. Se estiveres a explorar inovações como a IA no fabrico e a visão por computador na indústria automóvel, visita as nossas páginas de soluções para saberes mais. 

Logótipo do LinkedInLogótipo do TwitterLogótipo do FacebookSímbolo de ligação de cópia

Ler mais nesta categoria

Vamos construir juntos o futuro
da IA!

Começa a tua viagem com o futuro da aprendizagem automática