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
Saiba como exportar modelos YOLO do Ultralytics usando a integração do TensorRT para obter um desempenho de IA mais rápido e eficiente em GPUs NVIDIA para aplicações em tempo real.
Considere um carro autónomo a circular numa rua movimentada com apenas milissegundos para detetar um peão a sair do passeio. Ao mesmo tempo, poderá 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 de rodagem. 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, precisam 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, o 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. Utiliza técnicas avançadas para reduzir significativamente o tempo de inferência, mantendo a precisão.
Figura 1. O NVIDIA TensorRT permite que os modelos sejam executados de forma optimizada em vários dispositivos NVIDIA.
Neste artigo, vamos explorar a integração do TensorRT suportada pelo Ultralytics e explicar como pode exportar o seu modelo YOLO11 para uma implementação mais rápida e eficiente no hardware NVIDIA. Vamos começar!
Uma visão geral do TensorRT
O 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.
O TensorRT inclui ferramentas como compiladores e optimizadores de modelos que podem trabalhar nos bastidores para garantir que os seus modelos são executados com baixa latência e podem lidar com uma maior taxa de transferência.
A integração do TensorRT suportada pelo Ultralytics funciona optimizando o seu 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.
Fig. 2. Um olhar sobre a técnica de fusão de camadas do TensorRT.
Principais caraterísticas do formato de exportação do TensorRT
Antes de discutirmos a forma como pode exportar o YOLO11 utilizando a integração do TensorRT, vejamos algumas das principais caraterísticas do formato do modelo TensorRT:
Fácil integração de frameworks: O TensorRT suporta a integração direta com frameworks de AI populares como o PyTorch, Hugging Face e ONNX, oferecendo um desempenho até 6x mais rápido. Ele também oferece suporte ao MATLAB, permitindo o desenvolvimento de mecanismos de AI de alta velocidade em plataformas como Jetson, NVIDIA DRIVE e data centers.
Implantação escalável com o Triton: 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 em todos os dispositivos: De pequenos dispositivos de borda a servidores poderosos, o TensorRT funciona em todo o ecossistema NVIDIA, oferecendo suporte a 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 do TensorRT?
Exportar modelos Ultralytics YOLO como o Ultralytics YOLO11 para o formato de modelo TensorRT é fácil. Vamos percorrer as etapas envolvidas.
Para começar, pode instalar o pacote Ultralytics Python utilizando um gestor de pacotes como o 'pip'. Isso pode ser feito executando o comando "pip install ultralytics" no seu prompt de comando ou terminal.
Depois de instalar com êxito o Ultralytics Python Package, pode 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 encontrar alguma dificuldade, pode consultar o guia Problemas comuns para obter soluções e sugestões.
Para a próxima etapa, você precisará de um dispositivo NVIDIA. Use o trecho de código abaixo para carregar e exportar o YOLOv11 para o formato de modelo do TensorRT. Ele carrega uma variante nano pré-treinada do modelo YOLO11 (yolo11n.pt) e a exporta como um arquivo de mecanismo do 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 converter o seu modelo para o formato TensorRT, pode implementá-lo para 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 o uso do modelo treinado para fazer previsões em novos dados. Neste caso, vamos utilizar uma imagem de entrada de um cão para testar o modelo.
Quando este código é executado, a seguinte imagem de saída é guardada na pasta runs/detect/predict.
Fig. 3. Resultado da execução de uma inferência utilizando o modelo YOLO11 exportado no formato TensorRT.
Quando tirar partido da integração do 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 deve optar por utilizar a integração do TensorRT?
Eis alguns factores que distinguem o formato do modelo TensorRT de outras opções de integração de exportação:
Tamanho do modelo mais pequeno: A exportação de 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 eles podem ser usados.
Balcões de caixa inteligentes em lojas de retalho
Uma grande variedade 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 incómodas 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 visão por computador e 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 registadora 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 do YOLO para detetar defeitos na indústria farmacêutica.
Considerações a ter em conta ao utilizar o TensorRT
Embora a integração do 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:
Ligeira queda na precisão: Quando exporta o seu modelo no formato TensorRT, o modelo exportado pode não ser tão exato 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.
Aumento da complexidade de 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 do TensorRT 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 do TensorRT uma óptima escolha para qualquer pessoa que esteja a criar sistemas de visão computacional de alta velocidade em hardware NVIDIA.