Ao clicar em “Aceitar todos os cookies”, concorda com o armazenamento de cookies no seu dispositivo para melhorar a navegação no site, analisar a utilização do site e ajudar nos nossos esforços de marketing. Mais informações
Definições de cookies
Ao clicar em “Aceitar todos os cookies”, concorda com o armazenamento de cookies no seu dispositivo para melhorar a navegação no site, analisar a utilização do site e ajudar nos nossos esforços de marketing. Mais informações
Exporte modelos de IA de visão com facilidade utilizando a Ultralytics . Descubra como preparar modelos com apenas alguns cliques para implementação em dispositivos periféricos, dispositivos móveis e na nuvem.
Pretende implementar um projeto de visão computacional?
No mês passado, lançámos Ultralytics , um espaço de trabalho unificado concebido para simplificar todo o fluxo de trabalho de visão computacional. Reúne as principais funcionalidades de IA de visão, incluindo gestão de conjuntos de dados, anotação, treino de modelos, testes, implementação e monitorização, numa única interface simplificada.
Como parte deste fluxo de trabalho completo, a implementação desempenha um papel crucial na transição dos modelos da fase experimental para a utilização no mundo real. Anteriormente, explorámos as diferentes opções de implementação disponíveis na plataforma, incluindo a inferência partilhada através de APIs, pontos de extremidade dedicados para implementações de produção escaláveis e a exportação de modelos para execução em dispositivos periféricos ou infraestruturas externas.
Agora, vamos analisar mais detalhadamente a exportação de modelos e como esta facilita a implementação em diferentes ambientes. Ao contrário da inferência partilhada e dos pontos finais dedicados, que executam modelos na infraestrutura Ultralytics , a exportação de modelos permite que os modelos sejam implementados e executados em ambientes externos, tais como dispositivos de perifeira, aplicações móveis e infraestruturas personalizadas.
Antes de os modelos poderem ser executados nestes ambientes, têm de ser convertidos para formatos compatíveis com o ambiente de execução de destino. Cada configuração de implementação tem os seus próprios requisitos, desde formatos leves para dispositivos móveis e de borda até formatos de alto desempenho para sistemas GPU nuvem e GPU.
Tradicionalmente, este processo pode ser demorado, envolvendo scripts, dependências e várias ferramentas. Com Ultralytics , a exportação é muito mais simples. Os modelos podem ser convertidos e otimizados com apenas alguns cliques, sem necessidade de configuração adicional.
Neste artigo, vamos explicar o que significa a exportação de modelos, os formatos suportados pela Ultralytics e como escolher o formato mais adequado para o seu caso de utilização. Vamos começar!
Uma visão geral da exportação de um modelo
A exportação de um modelo implica a conversão de um modelo pré-treinado ou treinado de forma personalizada para um formato que possa ser utilizado fora do seu framework original. YOLO Ultralytics são criados utilizando PyTorch armazenados no seu formato nativo, o que funciona bem para treino, avaliação e experimentação dentro do PyTorch .
No entanto, os ambientes de implementação apresentam frequentemente diferentes requisitos de tempo de execução e de hardware. Por esse motivo, o formato utilizado durante a formação nem sempre é adequado para a implementação.
Por exemplo, uma aplicação móvel pode exigir um formato leve, otimizado para um baixo consumo de energia, enquanto uma aplicação baseada em navegador necessita de um formato que funcione de forma eficiente em ambientes web.
Os dispositivos periféricos, como câmaras e sistemas incorporados, beneficiam de modelos compactos e rápidos, enquanto os sistemas na nuvem são concebidos para inferência de alto desempenho. Para dar resposta a estes diferentes cenários, os modelos têm de ser exportados para formatos compatíveis.
Por que a opção de exportar modelos é mais importante do que nunca
Atualmente, os modelos de visão computacional estão a ser implementados mais perto do local onde os dados são gerados, especialmente em dispositivos periféricos. Os smartphones executam aplicações de visão em tempo real, as câmaras de CCTV realizam monitorização no próprio dispositivo e os sistemas autónomos dependem da tomada de decisões instantânea.
No entanto, a implementação nestes ambientes acarreta um conjunto específico de desafios. Os dispositivos periféricos têm capacidade computacional limitada, requisitos rigorosos em termos de latência e restrições no que diz respeito à memória e ao consumo de energia. Um modelo que apresenta um bom desempenho durante o treino, com recursos suficientes, pode não funcionar de forma eficiente nestas condições restritas.
A exportação de um modelo para o formato adequado pode ajudar a superar estes desafios. Ao converter o modelo de forma adequada, é possível otimizá-lo em termos de velocidade, reduzir o seu tamanho e torná-lo compatível com hardware específico.
Ao mesmo tempo, a exportação oferece flexibilidade. O mesmo modelo pode ser adaptado a diferentes ambientes de implementação, convertendo-o em vários formatos de acordo com requisitos específicos.
Fig. 2. Alguns dos formatos de exportação disponíveis na Ultralytics (Fonte)
Por exemplo, o formatoNCNN está otimizado para dispositivos móveis e periféricos com baixo consumo de recursos. Por outro lado, o OpenVINO foi concebido para Intel e oferece um melhor desempenho em unidades de processamento central (CPUs), unidades de processamento gráfico (GPUs) e unidades de processamento neural (NPUs).
Na maioria dos casos, alcançar este nível de flexibilidade implicava lidar com conversões manuais, dependências e várias ferramentas, tornando o processo demorado e complexo. Ultralytics simplifica este fluxo de trabalho, tornando a exportação de modelos mais acessível e fácil de gerir.
Como Ultralytics simplifica a exportação de modelos
Normalmente, a exportação de um modelo é considerada uma etapa separada e complexa nos fluxos de trabalho de visão computacional. A Ultralytics muda esta situação ao integrar a opção de exportar um modelo diretamente num único espaço de trabalho que abrange tudo, desde o treino até à implementação.
Uma das suas principais vantagens é a experiência de exportação sem código. Não é necessário escrever scripts, gerir ambientes nem utilizar comandos específicos de frameworks. Os modelos podem ser exportados com apenas alguns cliques através de uma interface intuitiva.
Fig. 3. Um exemplo de exportação de um modelo Ultralytics (Fonte)
Nos bastidores, a plataforma encarrega-se do trabalho pesado. As tarefas que normalmente exigiriam várias ferramentas e configuração manual são simplificadas num único processo. Não é necessário instalar dependências adicionais nem lidar com problemas de compatibilidade, o que facilita muito a transição de um modelo treinado para uma solução pronta para produção.
Formatos de exportação de modelos suportados pela Ultralytics
Ultralytics suporta 17 formatos de exportação, facilitando a preparação de modelos para uma vasta gama de ambientes de implementação sem aumentar a complexidade.
Aqui está uma visão geral de alguns dos formatos de exportação mais comuns:
Multiplataforma e interoperabilidade: ONNX TorchScript amplamente utilizados para executar modelos em diferentes frameworks e ambientes. ONNX como uma ponte entre ecossistemas, facilitando a transferência de modelos entre ferramentas, enquanto TorchScript executar PyTorch em produção sem necessitar de um Python .
Inferência de alto desempenho em GPUs: TensorRT concebido para NVIDIA e centra-se na otimização de modelos para oferecer baixa latência e elevado rendimento. Suporta técnicas como a redução de precisão e a fusão de camadas para acelerar a inferência, tornando-o uma excelente opção para aplicações em tempo real e à escala de produção.
Implementação em dispositivos móveis e na periferia: CoreML, LiteRT (TensorFlow ) e NCNN otimizados para dispositivos com recursos de computação e memória limitados. Estes formatos reduzem o tamanho do modelo e melhoram a eficiência, permitindo um desempenho fluido em smartphones, sistemas incorporados e hardware de borda. CoreML normalmente utilizado nos ecossistemas da Apple, enquanto o LiteRT é comum no Android.
Execução otimizada para hardware: OpenVINO concebido para Intel , incluindo CPUs, GPUs e VPUs, e ajuda a melhorar a velocidade e a eficiência da inferência nesses dispositivos. Formatos específicos para hardware como este são úteis quando é necessário obter o melhor desempenho de um determinado sistema.
Runtimes específicos de frameworks e especializados: Formatos como PaddlePaddle o ExecuTorch suportam ecossistemas específicos e necessidades de implementação, incluindo a execução eficiente de modelos em dispositivos periféricos ou a integração com pilhas de aprendizagem profunda específicas.
Como exportar um modelo utilizando Ultralytics
A exportação de um modelo na Ultralytics é um processo simples, baseado na interface do utilizador. Todo o fluxo de trabalho é gerido através da interface, sem necessidade de scripts ou ferramentas de linha de comandos.
Veja como pode exportar um modelo utilizando a plataforma:
Inicie sessão e selecione o seu modelo: Aceda ao seu projeto e abra o modelo treinado que pretende exportar.
Vá para o separador «Exportar»: No painel do modelo, clique no separador «Exportar» para ver as opções de exportação disponíveis.
Selecione um formato de exportação: escolha um formato como ONNX, TensorRT ou CoreML com as suas necessidades de implementação.
Configure as definições de exportação (opcional): ajuste parâmetros como o tamanho da imagem, a precisão ou o tamanho do lote para otimizar o desempenho.
Inicie o processo de exportação: clique em «Iniciar exportação» para iniciar o processo. A plataforma trata da conversão automaticamente.
Baixe o modelo exportado: assim que a exportação estiver concluída, poderá baixar o modelo e utilizá-lo no seu pipeline de implementação.
Fig. 4. Uma visão geral da configuração das definições de exportação na Ultralytics
Escolher o formato de exportação adequado
Ao explorar os diferentes formatos de exportação suportados pela Ultralytics , poderá questionar-se sobre qual escolher. A resposta depende, na verdade, de onde e como pretende utilizar o seu modelo.
Eis alguns fatores a ter em conta:
Requisitos de latência: Para aplicações em tempo real, como análise de vídeo ou sistemas autónomos, uma baixa latência é fundamental. Formatos otimizados para inferência de alto desempenho, tais como TensorRT, são frequentemente mais adequados.
Limitações de hardware: Os dispositivos com memória e capacidade de processamento limitadas, como telemóveis ou sistemas incorporados, requerem formatos leves, como o LiteRT ou NCNN.
Tamanho do modelo e consumo de energia: Ao trabalhar com dispositivos periféricos, o tamanho do modelo e o consumo de energia tornam-se fatores importantes. Modelos mais pequenos e otimizados ajudam a garantir um desempenho consistente sem esgotar os recursos.
Ambiente de implementação: Se o seu modelo precisar de ser executado em diferentes plataformas, formatos como ONNX flexibilidade. Para casos de utilização específicos de uma plataforma, como iOS , CoreML frequentemente a melhor opção.
Não existe um formato único que sirva para todos os casos. No fundo, trata-se de encontrar o equilíbrio entre o desempenho, a compatibilidade e as limitações do seu ambiente de destino. Ultralytics facilita este processo, permitindo-lhe experimentar e comparar diferentes formatos sem esforço adicional.
Principais conclusões
A exportação é um passo essencial para preparar o seu modelo para utilização no mundo real em diferentes ambientes. Com Ultralytics , este processo torna-se muito mais simples, permitindo-lhe converter e otimizar modelos sem configurações adicionais nem complicações. Ao escolher o formato adequado ao seu caso de utilização, pode garantir que o seu modelo funciona de forma eficiente onde quer que o implemente.