Die Ausgabe des Python-Frameworks Savant 0.2.7 wurde veröffentlicht, das die Nutzung von NVIDIA DeepStream für maschinelles Lernen vereinfacht. Das Framework übernimmt die gesamte komplexe Arbeit mit GStreamer oder FFmpeg, sodass Sie sich auf den Aufbau optimierter Ausgabepipelines mit deklarativer Syntax (YAML) und Python-Funktionen konzentrieren können. Savant ermöglicht die Erstellung von Pipelines, die sowohl auf Beschleunigern im Rechenzentrum (NVIDIA Turing, Ampere, Hopper) als auch auf Edge-Geräten (NVIDIA Jetson NX, AGX Xavier, Orin NX, AGX Orin, New Nano) gleich gut funktionieren. Mit Savant können Sie mehrere Video-Streams gleichzeitig einfach verarbeiten und schnell einsatzbereite Pipelines für Videoanalytik erstellen, die NVIDIA TensorRT nutzen. Der Code des Projekts steht unter der Apache 2.0-Lizenz.
Savant 0.2.7 ist die neueste Version mit einer funktionalen Änderung in der Reihe 0.2.X. Die nächsten Releases in der Reihe 0.2.X werden nur Fehlerbehebungen enthalten. Die Entwicklung neuer Funktionen wird in der Reihe 0.3.X stattfinden, die auf DeepStream 6.4 basiert. Diese Reihe wird die Jetson Xavier-Gerätefamilie nicht unterstützen, da NVIDIA diese in DS 6.4 nicht unterstützt.
Hauptneuheiten:
- Neue Anwendungsbeispiele:
- Beispiel für die Arbeit mit dem RT-DETR-Transformermodell zur Objekterkennung;
- CUDA-Nachbearbeitung mit CuPy für YOLOV8-Seg;
- Beispiel für die Integration von PyTorch CUDA in die Savant-Pipeline;
- Demonstration der Arbeit mit orientierten Objekten.

- Neue Funktionen:
- Integration mit Prometheus. Die Pipeline kann Leistungsmetriken an Prometheus und Grafana exportieren, um die Leistung zu überwachen und zu verfolgen. Entwickler können benutzerdefinierte Metriken deklarieren, die zusammen mit den Systemmetriken exportiert werden.
- Pufferadapter — implementiert einen permanenten transaktionsorientierten Puffer auf der Festplatte für Daten, die zwischen Adaptern und Modulen verschoben werden. Dadurch können hochbelastete Pipelines entwickelt werden, die unvorhersehbar Ressourcen verbrauchen und Verkehrsspitzen standhalten. Der Adapter exportiert seine Daten zu Elementen und Größen an Prometheus.
- Modell-Kompilierungsmodus. Module können jetzt ihre Modelle in TensorRT kompilieren, ohne die Pipeline auszuführen.
- Shutdown-Ereignis-Handler in PyFunc. Diese neue API ermöglicht eine ordnungsgemäße Verarbeitung von Shutdown-Vorgängen der Pipeline, indem Ressourcen freigegeben und externe Systeme über das Ende des Betriebs informiert werden.
- Filtern von Eingangs- und Ausgangsbildern. Standardmäßig akzeptiert die Pipeline alle Bilder, die Videodaten enthalten. Durch die Filterung am Eingang und Ausgang können Entwickler Daten filtern, um deren Verarbeitung auszuschließen.
- Modellnachbearbeitung auf der GPU. Dank der neuen Funktion können Entwickler auf die Ausgabetensoren des Modells direkt aus dem GPU-Speicher zugreifen, ohne sie in den CPU-Speicher zu laden, und sie mit CuPy, TorchVision oder OpenCV CUDA verarbeiten.
- Funktionen zur Darstellung des GPU-Speichers. In dieser Version haben wir Funktionen zur Umwandlung von Speichermethoden zwischen OpenCV GpuMat, GPU-Tensoren von PyTorch und Tensoren von CuPy bereitgestellt.
- API zum Zugriff auf Statistiken zur Nutzung von Pipeline-Warteschlangen. Savant ermöglicht das Hinzufügen von Warteschlangen zwischen PyFunc, um parallele Verarbeitung und Pufferung zu realisieren. Die hinzugefügte API bietet Entwicklern Zugriff auf die im Pipeline implementierten Warteschlangen und ermöglicht es, deren Nutzung abzufragen.
In der nächsten Version (0.3.7) wird ein Wechsel zu DeepStream 6.4 ohne Erweiterungen der Funktionalität angestrebt. Ziel ist es, eine Version zu erhalten, die vollständig mit 0.2.7 kompatibel ist, aber auf DeepStream 6.4 und verbesserter Technologie basiert, ohne API-Kompatibilitätsstörungen.
Quelle: opennet.ru

