O framework Savant 0.2.7 Python foi lanzado, o que facilita o uso de NVIDIA DeepStream para resolver problemas relacionados coa aprendizaxe automática. O marco encárgase de todo o traballo pesado con GStreamer ou FFmpeg, o que lle permite centrarse na construción de canalizacións de saída optimizadas mediante a sintaxe declarativa (YAML) e as funcións de Python. Savant permítelle crear canalizacións que funcionen por igual en aceleradores do centro de datos (NVIDIA Turing, Ampere, Hopper) e en dispositivos de borde (NVIDIA Jetson NX, AGX Xavier, Orin NX, AGX Orin, New Nano). Con Savant, pode procesar facilmente múltiples fluxos de vídeo á vez e crear rapidamente canalizacións de análise de vídeo listas para a produción mediante NVIDIA TensorRT. O código do proxecto distribúese baixo a licenza Apache 2.0.
Savant 0.2.7 é a última versión do cambio de funcións na rama 0.2.X. As futuras versións da rama 0.2.X só incluirán correccións de erros. O desenvolvemento de novas funcións levarase a cabo na rama 0.3.X, baseada en DeepStream 6.4. Esta rama non admitirá a familia de dispositivos Jetson Xavier xa que NVIDIA non os admite en DS 6.4.
Principais novidades:
- Novos casos de uso:
- Un exemplo de traballo cun modelo de detección baseado no transformador RT-DETR;
- Post-procesamento CUDA con CuPy para YOLOV8-Seg;
- Un exemplo de integración de PyTorch CUDA no gasoduto Savant;
- Demostración de traballo con obxectos orientados.
- Novas características:
- Integración con Prometheus. A canalización pode exportar métricas de execución a Prometheus e Grafana para o seguimento e o seguimento do rendemento. Os desenvolvedores poden declarar métricas personalizadas que se exportan xunto coas métricas do sistema.
- Adaptador de búfer: implementa un búfer transaccional persistente no disco para que os datos se movan entre adaptadores e módulos. Coa súa axuda, pode desenvolver conducións moi cargadas que consomen recursos de forma imprevisible e resistan ráfagas de tráfico. O adaptador exporta os seus datos de elementos e tamaños a Prometheus.
- Modo de compilación de modelos. Os módulos agora poden compilar os seus modelos en TensorRT sen executar unha canalización.
- Manexador de eventos de apagado de PyFunc. Esta nova API permite que as paradas de canalizacións se xestionen con gracia, liberando recursos e notificando aos sistemas de terceiros que se produciu o peche.
- Filtrado de cadros na entrada e na saída. De forma predeterminada, a canalización acepta todos os fotogramas que conteñan datos de vídeo. Co filtrado de entrada e saída, os desenvolvedores poden filtrar os datos para evitar o procesamento.
- Post-procesamento do modelo na GPU. Coa nova función, os desenvolvedores poden acceder aos tensores de saída do modelo directamente desde a memoria da GPU sen cargalos na memoria da CPU e procesalos mediante CuPy, TorchVision ou OpenCV CUDA.
- Funcións de representación da memoria da GPU. Nesta versión, proporcionamos funcións para converter búfers de memoria entre OpenCV GpuMat, tensores de GPU PyTorch e tensores CuPy.
- API para acceder a estatísticas sobre o uso de colas de canalización. Savant permítelle engadir filas entre PyFuncs para implementar o procesamento paralelo e o procesamento de almacenamento en búfer. A API engadida dálles aos desenvolvedores acceso ás filas despregadas na canalización e permítelles consultar o seu uso.
Na próxima versión (0.3.7) está previsto pasar a DeepStream 6.4 sen ampliar a funcionalidade. A idea é conseguir unha versión que sexa totalmente compatible coa 0.2.7, pero baseada en DeepStream 6.4 e tecnoloxía mellorada, pero sen romper a compatibilidade a nivel de API.
Fonte: opennet.ru