Il y a quelques semaines, nous avons partagé ici sur le blog des informations sur Savant, un framework d’analyse vidéo qui facilite l’utilisation de NVIDIA DeepStream pour résoudre les problèmes d’apprentissage automatique. La raison d’en parler est que la sortie de la nouvelle version de “Savant 0.2.4” a été récemment annoncée , dans laquelle de nouvelles fonctionnalités ont été intégrées et les cas d’utilisation de ce grand framework ont été élargis.
Pour ceux qui découvrent le framework, sachez qu’il prend en charge tout le travail avec GStreamer ou FFmpeg , ce qui vous permet de vous concentrer sur la création de pipelines de sortie optimisés à l’aide de la syntaxe déclarative (YAML) et des fonctions Python.
Savant cache tous les éléments internes de Gstreamer au développeur et fournit des outils pratiques pour implémenter des applications d’IA en streaming dans la vie réelle. Il utilise le modèle standard Nvidia PeopleNet pour détecter les personnes et leurs visages , et en particulier dans les endroits où des réglementations sur la confidentialité s’appliquent, le cadre permet le suivi et le floutage des visages.
Quoi de neuf dans Savant 0.2.4 ?
Comme nous l’avons mentionné au début, cette nouvelle version est livrée avec de nouvelles fonctionnalités qui ont élargi les cas d’utilisation du framework et dont il est mentionné que par exemple Savant peut maintenant être utilisé dans la prédiction d’âge/sexe, ce qui démontre l’utilisation de YoloV5- Visage, en travaillant avec un modèle d’attribut personnalisé qui prédit l’âge et le sexe, et des transformations affinées par GPU basées sur les traits du visage à l’aide d’OpenCV-CUDA et de Python.
Un autre cas d’utilisation est l’encodage vidéo conditionnel, qui illustre un pipeline basé sur des images et encode le flux vidéo uniquement à la demande (dans l’exemple, uniquement lorsque le modèle détecte des objets) ; montre comment éviter de gaspiller des ressources informatiques lorsqu’une certaine condition externe nécessite des trames.
Il est également désormais possible d’utiliser Savant pour gérer plusieurs flux RTSP, démontrant un pipeline simple qui traite deux flux RTSP et Savant est très différent de ce que les utilisateurs attendent en termes de traitement dynamique des threads, il implémente un pipeline simple qui traite plusieurs threads au en même temps pour montrer comment cela fonctionne.
Les nouvelles fonctionnalités ajoutées incluent le rendu et l’encodage conditionnels pour réduire le trafic et utiliser efficacement les ressources CPU/GPU, ainsi qu’un nouvel adaptateur source RTSP basé sur FFmpeg qui fonctionne bien mieux que GStreamer lors de la diffusion en continu. adaptateur universel pouvant fonctionner avec toutes les entrées compatibles FFmpeg.
En plus de cela, il convient de noter qu’une erreur a été identifiée dans la mise en œuvre de la fonctionnalité NVENC dans les appareils Jetson:NVENC qui ont généré de manière incorrecte une séquence de trames codées si la fréquence de trame réelle dans la transmission n’est pas égale à celle configurée. , ce qui se produit généralement lorsque vous travaillez avec des flux RTSP ou lorsque des trames sont supprimées en raison de certaines conditions. Dans Savant, le problème est résolu par une solution de contournement en réorganisant les cadres si nécessaire. Le bogue apparaît dans DeepStream 6.2 et a été signalé à NVIDIA, qui a reconnu le bogue et le corrigera dans la prochaine version de DeepStream.
Parmi les autres changements qui ressortent dans cette nouvelle version :
- Au cours du développement, la pratique consistant à suivre les éventuelles régressions de performances en fusionnant chaque ticket a été introduite.
- Suite de la migration des éléments internes de Savant de Python vers Rust : bibliothèque de fonctions principales de Savant-rs implémentée avec un code largement testé.
- Les composants basés sur Python sont progressivement remplacés par des composants basés sur Rust pour garantir que Savant fonctionne sans verrou global (GIL) dans la mesure du possible et que le code est de haute qualité.
- Adaptateurs documentés pour travailler avec des données.
Ajout d’exemples d’utilisation du prétraitement d’image.
Création d’une section sur la configuration d’un environnement de développement dans VS Code.
Enfin, il convient de mentionner que les développeurs prévoient dans la prochaine version de Savant 0.2.5 d’intégrer davantage de code Rust afin que les pipelines soient moins dépendants de GIL. Il est également prévu de fournir de nouvelles fonctionnalités liées à la configuration dynamique du pipeline et au développement de pointe, et d’ajouter trois à quatre nouveaux exemples couvrant les fonctionnalités de base et avancées.
Si vous souhaitez en savoir plus à ce sujet, vous pouvez consulter les détails dans le lien suivant.