Savant 0.2.4 llega con mejoras en funcionalidad, ampliación de casos de uso y mas

Savant

framework Savant

Hace pocas semanas compartimos aquí en el blog un poco de información sobre Savant el cual es framework de análisis de video que facilita el uso de NVIDIA DeepStream para resolver problemas de aprendizaje automático. El motivo de hablar de ello es que hace poco se dio a conocer el lanzamiento de la nueva versión de «Savant 0.2.4«, en la cual se han integrado nuevas características y se han ampliado los casos de uso de este estupendo framework.

Para quienes desconocen del marco, deben saber que este se encarga de todo el trabajo con GStreamer o FFmpeg, lo que permite concentrarse en crear canalizaciones de salida optimizadas mediante la sintaxis declarativa (YAML) y las funciones de Python.

Savant
Artículo relacionado:
Savant, un framework para el análisis de video

Savant oculta todos los aspectos internos de Gstreamer al desarrollador y proporciona herramientas prácticas para implementar aplicaciones de IA de transmisión en la vida real. Utiliza el modelo estándar de Nvidia PeopleNet para detectar personas y sus rostros y sobre todo en lugares donde se aplican normas de privacidad el framework permite el rastreo y desenfoque de los rostros.

¿Qué hay de nuevo en Savant 0.2.4?

Tal y como mencionamos al inicio, este nuevo lanzamiento llega con nuevas características las cuales han ampliado los casos de uso del framework y de los cuales se menciona que por ejemplo ahora Savant puede ser utilizado en predicción de edad/género, que demuestra el uso de YoloV5-Face, trabajando con un modelo de atributo personalizado que predice la edad y el sexo, y transformaciones afines a GPU basadas en rasgos faciales usando OpenCV-CUDA y Python.

Otro caso de uso es la codificación de video condicional, que demuestra una canalización que se basa en fotogramas y codifica la transmisión de video solo a pedido (en el ejemplo, solo cuando el modelo detecta objetos); muestra cómo evitar el gasto de recursos informáticos cuando una determinada condición externa requiere marcos.

Tambien ahora es posible utilizar Savant para manejar múltiples flujos RTSP, demostrando una canalización simple que procesa dos flujos RTSP y es que Savant es muy diferente de lo que los usuarios esperan en términos de procesamiento dinámico de subprocesos, se implementa una canalización simple que procesa varios subprocesos al mismo tiempo para mostrar cómo funciona.

Por la parte de las nuevas características añadidas se destaca la representación y codificación condicionales para reducir el tráfico y utilizar eficientemente los recursos de CPU/GPU, asi como tambien un nuevo adaptador de fuente RTSP basado en FFmpeg que funciona mucho mejor que GStreamer cuando las transmisiones incluyen fotogramas B y un nuevo adaptador universal basado en FFmpeg que puede funcionar con todas las entradas compatibles con FFmpeg.

Ademas de ello se destaca que se identificó un error en la implementación de la funcionalidad NVENC en los dispositivos Jetson:NVENC que generaba una secuencia incorrectamente los fotogramas codificados si la velocidad de fotogramas real en la transmisión no es igual a la configurada, lo que suele ocurrir cuando se trabaja con transmisiones RTSP o cuando los fotogramas se pierden debido a ciertas condiciones. En Savant, el problema se resuelve mediante una solución al reordenar los fotogramas cuando sea necesario. El error aparece en DeepStream 6.2 y se informó a NVIDIA, que reconoció el error y lo corregirá en la próxima versión de DeepStream.

De los demás cambios que se destacan de esta nueva versión:

  • Durante el desarrollo, se introdujo la práctica de rastrear posibles regresiones de rendimiento al fusionar cada ticket.
  • La migración de los componentes internos de Savant de Python a Rust continuó: la biblioteca de funciones principales de Savant-rs implementada con un código probado exhaustivamente.
  • Los componentes basados ​​en Python se están reemplazando gradualmente con componentes basados ​​en Rust para garantizar que Savant funcione sin un bloqueo global (GIL) siempre que sea posible y que el código sea de alta calidad.
  • Adaptadores documentados para trabajar con datos.
    Se agregaron ejemplos del uso del preprocesamiento de imágenes.
    Se creó una sección sobre cómo configurar un entorno de desarrollo en VS Code.

Finalmente, cabe mencionar que los desarrolladores planean en el próximo lanzamiento de Savant 0.2.5, integrar más código Rust para que las canalizaciones dependan menos de GIL. También está previsto ofrecer nuevas funciones relacionadas con la configuración dinámica de canalizaciones y el desarrollo perimetral, y agregar de tres a cuatro nuevos ejemplos que cubran funciones básicas y avanzadas.

Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.