Die Veröffentlichung des Python-Frameworks Savant 0.2.7 wurde veröffentlicht, das die Verwendung von NVIDIA DeepStream zur Lösung von Aufgaben im Zusammenhang mit maschinellem Lernen vereinfacht. Das Framework übernimmt die gesamte komplexe Arbeit mit GStreamer oder FFmpeg, sodass Sie sich auf den Aufbau optimierter Ausgaberöhren mit deklarativer Syntax (YAML) und Funktionen in Python konzentrieren können. Savant ermöglicht es, Pipelines zu erstellen, 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) gleichmäßig funktionieren. Mit Savant können mehrere Video-Streams gleichzeitig einfach verarbeitet und schnell betriebsbereite Pipelines für Videoanalytik erstellt werden, die NVIDIA TensorRT verwenden. Der Projektcode wird unter der Apache 2.0-Lizenz veröffentlicht.
Savant 0.2.7 ist die letzte Version mit Funktionsänderungen 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 erfolgen, die auf DeepStream 6.4 basiert. Diese Reihe unterstützt nicht die Geräteserie Jetson Xavier, da NVIDIA diese in DS 6.4 nicht unterstützt.
Hauptneuheiten:
- Neue Anwendungsbeispiele:
- Beispiel für die Arbeit mit einem auf Transformatoren basierenden Erkennungsmodell RT-DETR;
- CUDA-Nachbearbeitung mit CuPy für YOLOV8-Seg;
- Beispiel für die Integration von PyTorch CUDA in die Pipeline Savant;
- Demonstration der Arbeit mit orientierten Objekten.

- Neue Funktionen:
- Integration mit Prometheus. Die Pipeline kann Leistungsmetriken in Prometheus und Grafana für die Überwachung und Nachverfolgung der Leistung exportieren. Entwickler können benutzerdefinierte Metriken deklarieren, die zusammen mit den Systemmetriken exportiert werden.
- Buffer-Adapter — implementiert einen dauerhaften Transaktionsbuffer auf der Festplatte für Daten, die zwischen Adaptern und Modulen verschoben werden. Damit können hochbelastbare Pipelines entwickelt werden, die unvorhersehbar Ressourcen verbrauchen und Verkehrsspitzen standhalten. Der Adapter exportiert seine Daten zu Elementen und Größen in Prometheus.
- Modellkompilierungsmodus. Module können jetzt ihre Modelle in TensorRT kompilieren, ohne die Pipeline auszuführen.
- Shutdown-Ereignis-Handler in PyFunc. Diese neue API ermöglicht die ordnungsgemäße Verarbeitung von Pipeline-Beendigungsoperationen, um Ressourcen freizugeben und externe Systeme über den Abschluss zu informieren.
- Filterung von Bildern am Eingang und Ausgang. Standardmäßig akzeptiert die Pipeline alle Bilder, die Video-Daten enthalten. Mit Hilfe der Eingang- und Ausgangsfilterung können Entwickler Daten filtern, um deren Verarbeitung auszuschließen.
- Nachbearbeitung des Modells auf GPU. Mit der neuen Funktion können Entwickler direkt auf die Ausgangstensoren des Modells im GPU-Speicher zugreifen, ohne sie in den CPU-Speicher zu laden, und sie mit CuPy, TorchVision oder OpenCV CUDA verarbeiten.
- Funktionen zur Speicherverwaltung auf GPU. In dieser Version haben wir Funktionen bereitgestellt, um Speicherpuffer zwischen OpenCV GpuMat, GPU-Tensoren von PyTorch und Tensoren von CuPy zu konvertieren.
- API für den Zugriff auf die Nutzungstatistiken der Pipeline-Warteschlangen. Savant ermöglicht das Hinzufügen von Warteschlangen zwischen PyFunc zur Umsetzung der parallelen Verarbeitung und der Verarbeitungspuffern. Die hinzugefügte API bietet Entwicklern Zugriff auf die in der Pipeline implementierten Warteschlangen und ermöglicht das Abrufen ihrer Nutzung.
Im nächsten Release (0.3.7) ist geplant, auf DeepStream 6.4 zu wechseln, ohne zusätzliche Funktionen hinzuzufügen. Die Idee ist, ein Release zu erstellen, das vollständig mit 0.2.7 kompatibel ist, jedoch auf DeepStream 6.4 und verbesserter Technologie basiert, ohne Komplikationen auf API-Ebene.
Quelle: opennet.ru

