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 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:
- 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.
- 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.
- 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.
- 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.