Savant 0.2.4 lançado com melhorias e novos recursos

E foi lançado o Savant 0.2.4 com melhorias e novos recursos, 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.4, na qual novas funcionalidades foram integradas e os casos de uso deste grande framework foram ampliados.

Novidades do Savant 0.2.4

Savant 0.2.4 lançado com melhorias e novos recursos
Savant 0.2.4 lançado com melhorias e novos recursos

Savant 0.2.4 vem com novos recursos que expandiram os casos de uso da estrutura e dos quais é mencionado que, por exemplo, Savant agora pode ser usado na previsão de idade/sexo, o que demonstra o uso de YoloV5-Face, trabalhando com um modelo de atributo personalizado que prevê idade e sexo, e transformações afins de GPU com base em recursos faciais usando OpenCV-CUDA e Python.

Outro caso de uso é a codificação de vídeo condicional, que demonstra um pipeline baseado em quadro e codifica o fluxo de vídeo somente sob demanda (no exemplo, somente quando o modelo detecta objetos); mostra como evitar o desperdício de recursos de computação quando uma determinada condição externa requer quadros.

Agora também é possível usar o Savant para lidar com vários fluxos RTSP, demonstrando um pipeline simples que processa dois fluxos RTSP e o Savant é muito diferente do que os usuários esperam em termos de processamento dinâmico de threads, ele implementa um pipeline simples que processa vários threads ao mesmo tempo mesmo tempo para mostrar como funciona.

Novos recursos adicionados incluem renderização condicional e codificação para reduzir o tráfego e usar recursos de CPU/GPU com eficiência, bem como um novo adaptador de fonte RTSP baseado em FFmpeg que funciona muito melhor do que o GStreamer ao transmitir.

Eles incluem quadros B e um novo baseado em FFmpeg adaptador universal que pode funcionar com todas as entradas compatíveis com FFmpeg.

Além disso, vale ressaltar que foi identificado um erro na implementação da funcionalidade NVENC nos dispositivos Jetson:NVENC que gerava incorretamente uma sequência de quadros codificados caso a taxa de quadros real na transmissão não fosse igual à configurada, que geralmente ocorre ao trabalhar com fluxos RTSP ou quando os quadros são descartados devido a certas condições.

No Savant, o problema é resolvido por meio de uma solução alternativa, reordenando os quadros quando necessário. O bug aparece no DeepStream 6.2 e foi relatado à NVIDIA, que reconheceu o bug e o corrigirá no próximo lançamento do DeepStream.

Das outras mudanças que se destacam nesta nova versão:

  • Durante o desenvolvimento, foi introduzida a prática de rastrear possíveis regressões de desempenho mesclando cada ticket.
  • A migração dos componentes internos do Savant do Python para o Rust continuou: biblioteca de funções principais do Savant-rs implementada com código amplamente testado.
  • Os componentes baseados em Python estão sendo gradualmente substituídos por componentes baseados em Rust para garantir que o Savant funcione sem bloqueio global (GIL) sempre que possível e que o código seja de alta qualidade.
  • Adaptadores documentados para trabalhar com dados.
    Adicionados exemplos de uso de pré-processamento de imagem.
    Criei uma seção sobre como configurar um ambiente de desenvolvimento no VS Code.

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.

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.