È stato pubblicato il rilascio del framework Python Savant 0.2.7, che semplifica l'uso di NVIDIA DeepStream per affrontare compiti di machine learning. Il framework si occupa di tutte le complesse operazioni con GStreamer o FFmpeg, permettendo di concentrarsi sulla costruzione di pipeline ottimizzate utilizzando una sintassi dichiarativa (YAML) e funzioni Python. Savant consente di creare pipeline che funzionano in modo equivalente sia su acceleratori nei data center (NVIDIA Turing, Ampere, Hopper) sia su dispositivi edge (NVIDIA Jetson NX, AGX Xavier, Orin NX, AGX Orin, New Nano). Con Savant, è possibile gestire facilmente più flussi video simultaneamente, creando rapidamente pipeline di analisi video pronte all'uso utilizzando NVIDIA TensorRT. Il codice del progetto è distribuito sotto licenza Apache 2.0.
Savant 0.2.7 è l'ultimo rilascio con cambiamenti di funzionalità nella branch 0.2.X. I prossimi rilasci nella branch 0.2.X includeranno solo correzioni di bug. Lo sviluppo di nuove funzionalità avverrà nella branch 0.3.X, basata su DeepStream 6.4. Questa branch non supporterà la famiglia di dispositivi Jetson Xavier, poiché NVIDIA non li supporta in DS 6.4.
Novità principali:
- Nuovi esempi di utilizzo:
- Esempio di utilizzo del modello di rilevamento basato su trasformatore RT-DETR;
- Post-elaborazione CUDA con CuPy per YOLOV8-Seg;
- Esempio di integrazione di PyTorch CUDA nel pipeline Savant;
- Dimostrazione di lavoro con oggetti orientati.

- Nuove funzionalità:
- Integrazione con Prometheus. Il pipeline può esportare metriche di esecuzione in Prometheus e Grafana per il monitoraggio e il tracciamento delle prestazioni. Gli sviluppatori possono dichiarare metriche personalizzate, esportate insieme alle metriche di sistema.
- Adattatore buffer — implementa un buffer transazionale permanente su disco per i dati che si spostano tra adattatori e moduli. Permette la creazione di pipeline ad alta carico, che consumano risorse in modo imprevedibile e gestiscono picchi di traffico. L'adattatore esporta in Prometheus i propri dati sugli elementi e sulle dimensioni.
- Modalità di compilazione dei modelli. I moduli possono ora compilare i propri modelli in TensorRT senza eseguire il pipeline.
- Gestore dell'evento di spegnimento in PyFunc. Questa nuova API consente di gestire correttamente le operazioni di arresto del pipeline, liberando risorse e notificando i sistemi esterni del completamento.
- Filtraggio dei frame in entrata e in uscita. Per impostazione predefinita, la pipeline accetta tutti i frame contenenti dati video. Con il filtraggio in entrata e in uscita, gli sviluppatori possono filtrare i dati per escludere il loro trattamento.
- Post-elaborazione del modello su GPU. Grazie alla nuova funzionalità, gli sviluppatori possono accedere ai tensori di uscita del modello direttamente dalla memoria della GPU, senza caricarli nella memoria della CPU, e trattarli con CuPy, TorchVision o OpenCV CUDA.
- Funzionalità di visualizzazione della memoria GPU. In questa versione, abbiamo fornito funzioni per convertire i buffer di memoria tra OpenCV GpuMat, tensori GPU di PyTorch e tensori CuPy.
- API di accesso alle statistiche di utilizzo delle code della pipeline. Savant consente di aggiungere code tra PyFunc per implementare l'elaborazione parallela e il buffering del lavoro. L'API aggiunta fornisce agli sviluppatori accesso alle code distribuite nella pipeline e consente di richiederne l'utilizzo.
La prossima versione (0.3.7) prevede il passaggio a DeepStream 6.4 senza ampliare le funzionalità. L'idea è di ottenere un rilascio completamente compatibile con 0.2.7, ma basato su DeepStream 6.4 e una tecnologia migliorata, senza compromettere la compatibilità a livello API.
Fonte: opennet.ru

