Savant 0.2.7 lançado com correções e melhorias

E foi lançado o Savant 0.2.7 com correções e melhorias, e muito mais. Confira os detalhes dessa importante atualização.

Savant é um framework de análise de vídeo que facilita o uso do NVIDIA DeepStream para resolver problemas de aprendizado de máquina.

Ele cuida de todo o trabalho com GStreamer ou FFmpeg, permitindo que você se concentre na criação de pipelines de saída otimizados usando sintaxe declarativa (YAML) e funções Python.

O Savant oculta todos os componentes internos do Gstreamer do desenvolvedor e fornece ferramentas práticas para implementar aplicativos de IA de streaming na vida real.

Ele usa o modelo Nvidia PeopleNet padrão para detectar pessoas e seus rostos e, especialmente em locais onde se aplicam os regulamentos de privacidade, a estrutura permite rastrear e desfocar os rostos.

Agora, foi anunciado o lançamento do Savant 0.2.7.

Novidades do Savant 0.2.7

Savant 0.2.7 lançado com correções e melhorias
Savant 0.2.7 lançado com correções e melhorias

Savant 0.2.7 inclui diversas correções de bugs, quatro novas demos e outras melhorias, incluindo documentação e benchmarks.

Esta nova versão do Savant 0.2.7 introduz uma série de recursos importantes dos quais se destaca a integração do Prometheus, com a qual o pipeline e o adaptador de buffer agora podem exportar métricas de execução para Prometheus e Grafana, melhorando a observabilidade e o desempenho do monitoramento e um “Build Only” modo de execução no qual os módulos agora podem compilar modelos inferidos por TRT sem executar o pipeline, melhorando a previsibilidade na implantação do pipeline.

Também foi implementado um adaptador de buffer, que implementa um buffer transacional persistente em disco para dados que trafegam entre adaptadores e módulos, permitindo o desenvolvimento de pipelines robustos e resistentes a picos de tráfego.

Além disso, o Savant 0.2.7 agora oferece novas APIs, entre as quais se destaca um manipulador “Shutdown in PyFunc”, que é uma nova API que facilita o gerenciamento adequado das operações de fechamento de tubos para liberar recursos e notificar sistemas externos após o encerramento, e também a API de filas para PyFunc com a qual Savant permite adicionar filas entre PyFuncs para implementar processamento paralelo e gerenciamento de tráfego intermitente.

Por outro lado, Savant 0.2.7 também destaca a incorporação de quatro novas demos, que ampliam as possibilidades e versatilidade da plataforma:

  1. Modelo de detecção RT-DETR : Esta demonstração mostra a aplicação do modelo de detecção RT-DETR em tempo real com o Savant. Embora este modelo possa ser um pouco mais lento que o YOLOV8 padrão, ele abre novas possibilidades para visão computacional em tempo real, sendo baseado em transformador.
  2. Pós-processamento baseado em CuPy : Savant 0.2.7 introduz um atalho para tensores mapeados por GPU e funções aprimoradas que convertem esses tensores entre diferentes formatos, como OpenCV GpuMat, PyTorch e CuPy. Esta melhoria é especialmente útil para modelos que envolvem tensores grandes e pós-processamento complexo.
  3. Integração PyTorch – Savant agora demonstra a integração do PyTorch em seu pipeline, permitindo a execução de inferência acelerada por GPU e pós-processamento em Python puro sem transferências excessivas entre CPU e GPU.
  4. Caixas delimitadoras orientadas : a plataforma agora suporta caixas delimitadoras orientadas, facilitando o uso em aplicações que exigem detecção de objetos com ângulos de rotação.

Dos outros recursos que se destacam no Savant 0.2.7, temos:

  • Filtragem de quadros de entrada e saída: o Savant agora permite a filtragem de dados para evitar processamento desnecessário de quadros de vídeo.
  • Pós-processamento do modelo na GPU: Savant permite acesso direto aos tensores de saída do modelo da memória da GPU, melhorando a eficiência no processamento de tensores grandes.
  • Recursos de renderização de memória GPU: Recursos são fornecidos para conversão eficiente de buffers de memória entre diferentes formatos na GPU.
  • Operações avançadas de modificação de atributos de objetos: Novas operações foram implementadas que facilitam a modificação de atributos de objetos no Savant.

Por fim, vale a pena mencionar que o Savant 0.2.7 é o lançamento mais recente do ramo 0.2.X. As seguintes versões da ramificação 0.2.X serão versões de manutenção e correção de bugs.

O desenvolvimento de recursos passa para o ramo 0.3.X baseado no DeepStream 6.4 e é mencionado que não suportará a família Jetson Xavier porque a Nvidia não os suporta com DS 6.4.

Para saber mais sobre essa versão do Savant, acesse a nota de lançamento.

Como instalar ou atualizar o Savant

Em relação à implementação do projeto, você deve saber que tanto o Savant quanto seus adaptadores são entregues como imagens do Docker.

Portanto, para implementar o pipeline, você pega a imagem base, adiciona modelos de IA e código personalizado com dependências adicionais e, em seguida, cria a imagem resultante.

Alguns pipelines que não requerem dependências adicionais podem ser implementados simplesmente atribuindo diretórios com modelos e funções de usuário na imagem do docker.

Para a parte de configuração do ambiente Savant, é necessário ter algumas dependências e ferramentas já instaladas, pois é extremamente necessário que as dependências do DeepStream sejam atendidas.
As dependências são:

  • git
  • git-lfs
  • curl
  • docker
  • controladores nvidia
  • Nvidia Container Toolkit

Como o processo de implementação do ambiente exige muito, se você estiver interessado, convido você a consultar o manual do Savant no seguinte link.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.