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

Otimizar os modelosYOLO Ultralytics com a integração TensorRT

Aprende a exportar modelos Ultralytics YOLO utilizando a integração TensorRT para um desempenho de IA mais rápido e eficiente nas GPUs NVIDIA para aplicações em tempo real.

Considera um carro autónomo a circular numa rua movimentada com apenas milissegundos para detetar um peão a sair do passeio. Ao mesmo tempo, pode ter de reconhecer um sinal de stop parcialmente escondido por uma árvore ou reagir rapidamente a um veículo próximo que se desvie para a sua faixa. Nestas situações, a velocidade e as respostas em tempo real são fundamentais.

É aqui que a inteligência artificial (IA), especificamente a visão por computador, um ramo da IA que ajuda as máquinas a interpretar dados visuais, desempenha um papel fundamental. Para que as soluções de visão computacional funcionem de forma fiável em ambientes do mundo real, muitas vezes, necessitam de processar a informação rapidamente, lidar com várias tarefas ao mesmo tempo e utilizar a memória de forma eficiente.

Uma forma de o conseguir é através da aceleração de hardware, utilizando dispositivos especializados como unidades de processamento gráfico (GPUs) para executar modelos mais rapidamente. As GPUs NVIDIA são especialmente conhecidas por essas tarefas, graças à sua capacidade de fornecer baixa latência e alta taxa de transferência.

No entanto, a execução de um modelo numa GPU tal como está nem sempre garante um desempenho ótimo. Os modelos de IA de visão requerem normalmente otimização para tirar o máximo partido das capacidades dos dispositivos de hardware. Para atingir o desempenho total com um hardware específico, precisamos de compilar o modelo para utilizar o conjunto específico de instruções para o hardware.

Por exemplo, TensorRT é um formato de exportação e uma biblioteca de otimização desenvolvida pela NVIDIA para melhorar o desempenho em máquinas topo de gama. Usa técnicas avançadas para reduzir significativamente o tempo de inferência, mantendo a precisão.

Figura 1. NVIDIA TensorRT permite que os modelos sejam executados de forma optimizada em vários dispositivos NVIDIA .

Neste artigo, vamos explorar a integraçãoTensorRT suportada pelo Ultralytics e explicar como podes exportar o teu modelo YOLO11 para uma implementação mais rápida e eficiente no hardware NVIDIA . Toca a começar!

Uma visão geral do TensorRT

TensorRT é um kit de ferramentas desenvolvido pela NVIDIA para ajudar os modelos de IA a serem executados de forma mais rápida e eficiente nas GPUs NVIDIA . Foi concebido para aplicações do mundo real em que a velocidade e o desempenho são realmente importantes, como carros autónomos e controlo de qualidade no fabrico e na indústria farmacêutica. 

TensorRT inclui ferramentas como compiladores e optimizadores de modelos que podem trabalhar nos bastidores para garantir que os teus modelos funcionam com baixa latência e podem lidar com um maior rendimento.

A integração TensorRT suportada pelo Ultralytics funciona optimizando o teu modelo YOLO para ser executado de forma mais eficiente em GPUs utilizando métodos como a redução da precisão. Isto refere-se à utilização de formatos de bits inferiores, como o ponto flutuante de 16 bits (FP16) ou o inteiro de 8 bits (INT8), para representar os dados do modelo, o que reduz a utilização de memória e acelera o cálculo com um impacto mínimo na precisão. 

Além disso, as camadas de redes neurais compatíveis são fundidas em modelos TensorRT optimizados para reduzir a utilização de memória, resultando numa inferência mais rápida e eficiente.

Figura 2. Vê a técnica de fusão de camadas do TensorRT.

Principais caraterísticas do formato de exportação TensorRT

Antes de falarmos sobre como podes exportar YOLO11 utilizando a integração TensorRT , vamos ver algumas caraterísticas-chave do formato do modelo TensorRT :

  • Fácil integração de frameworks: TensorRT suporta a integração direta com frameworks populares de AI, como PyTorch, Hugging Face e ONNX, oferecendo um desempenho até 6 vezes mais rápido. Também suporta MATLAB, permitindo o desenvolvimento de mecanismos de AI de alta velocidade em plataformas como Jetson, NVIDIA DRIVE e centros de dados.
  • Implementação escalável com o Triton: Os modelos otimizados no formato TensorRT podem ser implantados em escala usando o NVIDIA Triton Inference Server, que aumenta a eficiência por meio de recursos como lotes de entrada, execução simultânea de modelos, suporte a conjuntos de modelos e streaming de áudio/vídeo em tempo real.
  • Flexível entre dispositivos: De pequenos dispositivos de borda a servidores poderosos, TensorRT funciona em todo o ecossistema NVIDIA , suportando ferramentas como DeepStream para vídeo, Riva para AI de fala e outras para segurança cibernética, recomendações e muito mais.

Como funciona a integração TensorRT ?

Exportar modelosUltralytics YOLO como o Ultralytics YOLO11 para o formato de modelo TensorRT é fácil. Vamos percorrer as etapas envolvidas.

Para começar, podes instalar o pacoteUltralytics Python utilizando um gestor de pacotes como o 'pip'. Isto pode ser feito executando o comando "pip install ultralytics" na tua linha de comandos ou terminal.

Depois de instalar com êxito o Ultralytics Python Package, podes treinar, testar, afinar, exportar e implementar modelos para várias tarefas de visão computacional, como a deteção de objectos, a classificação e a segmentação de instâncias. Durante a instalação do pacote, se tiveres alguma dificuldade, podes consultar o guia Problemas comuns para obteres soluções e sugestões.

Para o próximo passo, vais precisar de um dispositivo NVIDIA . Utiliza o fragmento de código abaixo para carregar e exportar o YOLOv11 para o formato de modelo TensorRT . Carrega uma variante nano pré-treinada do modelo YOLO11 (yolo11n.pt) e exporta-a como um arquivo de mecanismo TensorRT (yolo11n.engine), tornando-a pronta para implantação em dispositivos NVIDIA .

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="engine")

Depois de converteres o teu modelo para o formato TensorRT , podes implementá-lo em várias aplicações. 

O exemplo abaixo mostra como carregar o modelo YOLO11 exportado (yolo11n.engine) e executar uma inferência com ele. A inferência envolve a utilização do modelo treinado para fazer previsões sobre novos dados. Neste caso, vamos usar uma imagem de entrada de um cão para testar o modelo. 

tensorrt_model = YOLO("yolo11n.engine")

results = tensorrt_model("https://images.pexels.com/photos/1254140/pexels-photo-1254140.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2.jpg", save=True)

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

Figura 3. Resultado da execução de uma inferência utilizando o modelo YOLO11 exportado no formato TensorRT .

Quando tirar partido da integração TensorRT

O pacote Ultralytics Python suporta várias integrações que permitem exportar modelos YOLO para diferentes formatos, como TorchScript, CoreML, ONNX e TensorRT. Então, quando é que deves optar por utilizar a integração TensorRT ?

Eis alguns factores que distinguem o formato do modelo TensorRT de outras opções de integração de exportação:

  • Diminui o tamanho do modelo: Exportar um modelo YOLO para o formato TensorRT com precisão INT8 pode reduzir significativamente o tamanho do modelo. A quantização de FP32 para INT8 pode levar a uma redução de 4x no tamanho do modelo, o que permite tempos de download mais rápidos, menores requisitos de armazenamento e uma pegada de memória reduzida durante a implantação.
  • Menor consumo de energia: A quantização INT8 não só reduz o tamanho do modelo, mas também diminui o consumo de energia. As operações de precisão reduzida para modelos YOLO exportados INT8 podem consumir menos energia em comparação com modelos FP32, o que é especialmente benéfico para dispositivos alimentados por bateria, como drones, smartphones ou dispositivos de ponta.
  • Desempenho mais rápido: A combinação da arquitetura eficiente do YOLO com a otimização INT8 do TensorRT pode melhorar as velocidades de inferência.

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

Os modelos Ultralytics YOLO exportados para o formato TensorRT podem ser implementados numa vasta gama de cenários do mundo real. Estes modelos optimizados são especialmente úteis quando o desempenho rápido e eficiente da IA é fundamental. Vamos explorar alguns exemplos interessantes de como podem ser utilizados.

Balcões de caixa inteligentes em lojas de retalho

Uma vasta gama de tarefas nas lojas de retalho, como a leitura de códigos de barras, a pesagem de produtos ou o embalamento de artigos, ainda é feita manualmente pelo pessoal. No entanto, confiar apenas nos funcionários pode abrandar as operações e levar à frustração dos clientes, especialmente na caixa. As longas filas são inconvenientes tanto para os clientes como para os proprietários das lojas. As caixas automáticas inteligentes são uma óptima solução para este problema.

Estes contadores utilizam a visão por computador e as GPUs para acelerar o processo, ajudando a reduzir os tempos de espera. A visão por computador permite que estes sistemas vejam e compreendam o seu ambiente através de tarefas como a deteção de objectos. Modelos avançados como o YOLO11, quando optimizados com ferramentas como o TensorRT, podem ser executados muito mais rapidamente em dispositivos GPU .

Estes modelos exportados são adequados para configurações de retalho inteligentes que utilizam dispositivos de hardware compactos mas potentes, como o NVIDIA Jetson Nano, concebido especificamente para aplicações de IA de ponta.

Fig. 4. Um exemplo de uma caixa de pagamento inteligente.

Deteção automatizada de defeitos no fabrico

Um modelo de visão por computador como o YOLO11 pode ser treinado à medida para detetar produtos defeituosos na indústria transformadora. Uma vez treinado, o modelo pode ser exportado para o formato TensorRT para ser implementado em instalações equipadas com sistemas de IA de alto desempenho. 

À medida que os produtos se deslocam ao longo das correias transportadoras, as câmaras captam imagens e o modelo YOLO11 , executado no formato TensorRT , analisa-as em tempo real para detetar defeitos. Esta configuração permite às empresas detetar problemas de forma rápida e precisa, reduzindo os erros e melhorando a eficiência.

Do mesmo modo, indústrias como a farmacêutica estão a utilizar este tipo de sistemas para identificar defeitos em embalagens médicas. De facto, o mercado global de sistemas inteligentes de deteção de defeitos deverá crescer para 5 mil milhões de dólares até 2026.

Fig. 5. Utiliza o YOLO para detetar defeitos na indústria farmacêutica.

Considerações a ter em conta ao utilizar o TensorRT

Embora a integração TensorRT traga muitas vantagens, como velocidades de inferência mais rápidas e latência reduzida, aqui estão algumas limitações a ter em conta:

  • Diminui ligeiramente a precisão: Quando exportas o teu modelo no formato TensorRT , o teu modelo exportado pode não ser tão preciso como o original. As métricas de desempenho como a precisão, a recuperação e a forma como o modelo detecta objectos (pontuações mAP) podem diminuir ligeiramente. Isso pode ser atenuado usando um conjunto de dados representativo durante a quantização. 
  • Aumenta a complexidade da depuração: As optimizações efectuadas pelo TensorRT podem tornar mais complicado o rastreio de erros ou a compreensão de comportamentos inesperados, especialmente quando se comparam resultados com o modelo original.
  • Sensibilidade ao tamanho do lote: Os ganhos de desempenho doTensorRT são mais pronunciados com tamanhos de lote maiores. Para aplicações que processam imagens individuais ou pequenos lotes, as melhorias de desempenho podem ser menos significativas.

Principais conclusões

A exportação dos modelos Ultralytics YOLO para o formato TensorRT torna-os significativamente mais rápidos e eficientes, tornando-os ideais para tarefas em tempo real, como a deteção de defeitos em fábricas, a alimentação de sistemas de caixas inteligentes ou a monitorização de áreas urbanas movimentadas. 

Esta otimização ajuda os modelos a terem um melhor desempenho nas GPUs NVIDIA , acelerando as previsões e reduzindo a utilização de memória e energia. Embora existam algumas limitações, o aumento de desempenho torna a integração TensorRT uma óptima escolha para quem constrói sistemas de visão computacional de alta velocidade em hardware NVIDIA .

Queres saber mais sobre 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 por computador. Descobre mais sobre inovações como a IA no fabrico e a visão por computador na indústria logística nas nossas páginas de soluções.

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

OSZAR »