Выпуск Savant 0.2.5, фреймворка компьютерного зрения и глубокого обучения

Опубликован выпуск Python-фреймворка Savant 0.2.5, упрощающего использование NVIDIA DeepStream для решения задач, связанных с машинным обучением. Фреймворк берет на себя всю сложную работу с GStreamer или FFmpeg, позволяя сосредоточиться на построении оптимизированных конвейеров вывода с помощью декларативного синтаксиса (YAML) и функций Python. Savant позволяет создавать конвейеры (pipeline), которые одинаково работают как на ускорителях в датацентре (NVIDIA Turing, Ampere, Hopper), так и на edge-устройствах (NVIDIA Jetson NX, AGX Xavier, Orin NX, AGX Orin, New Nano). С помощью Savant можно легко обрабатывать несколько видеопотоков одновременно, быстро создавать готовые к рабочим применениям конвейеры видеоаналитики, использующие NVIDIA TensorRT. Код проекта распространяется под лицензией Apache 2.0.

Основные новшества:

  • Задействован NVIDIA DeepStream 6.3, с исправлением ошибок и улучшениями в части кодирования видео;

  • Улучшения в инструментах разработчика:
    • Поддержка OpenTelemetry для журналирования обработки каждого кадра;
    • Горячая перезагрузка изменённого кода Python в режиме разработки, что ускоряет процесс работы над конвейером;
    • Синхронный и асинхронный Client SDK для реализации тестов и собственных адаптеров доступа к данным;
    • Улучшенное логгирование с поддержкой выделения цветом.
  • Улучшения в адаптерах:
    • Адаптер для обработки данных с использованием Kafka/Redis, предназначенный для реализации конвейеров с высокой нагрузкой, работающих в режиме отложенной обработки;
    • Адаптер для тестирования производительности конвейера (Multi-Stream Source Test Adapter);
    • Python SDK для разработки собственных адаптеров;
    • В адаптере трансляции видео по RTSP реализована возможность одновременной обработки нескольких потоков;
    • В адаптере доступа к камерам GigE Vision появилась оддержка HEVC-кодирования.
  • Новый примеры и демонстрации:
    • Инстанс-сегментация в реальном времени (100+ FPS) на базе YOLOV8M-Seg;
    • Ре-идентификация по лицу с помощью YOLOV8-Face, AdaFace и HNSWlib;
    • Прогнозирование пола и возраста на базе YOLOV8-Face, MobileNet V2;
    • Улучшение примера Traffic Meter — добавлен детектор на базе YOLO8S, теперь можно выбрать один детектор из трёх — PeopleNet, YOLOV8S, YOLOV8M.
    • Вспомогательные примеры: использование OpenTelemetry; использование Client SDK; простой конвейер для определения совместимости RTSP-камеры с Savant; пример использования адаптеров Kafka/Redis.
  • Закрыто 14 отчётов об ошибках.
  • Выполнен переход с протокола передачи данных на базе Apache AVRO на протокол на базе Rust Rkyv (позволило уменьшить GIL contention, увеличить скорость сериализации и десериализации);
  • Добавлена поддержка групп элементов, позволяющих комбинировать вариации обработки данных в рамках одного конвейера;
  • Реализовано продвинутое конфигурирование логгирования с поддержкой разных уровней для различных компонентов;
  • Добавлен программный кодировщик H.264 для карт A100, V100, A40, Nvidia Jetson Orin Nano;
  • Добавлен детектор перегрузки конвейера.



Источник: http://www.opennet.ru/opennews/art.shtml? num=59819

© OpenNet