После месяца напряженной работы мы выпустили новую версию Savant (0.2.4), с новыми функциями и примерами использования.
Минутка маркетинга:
Savant - это высокоуровневый фреймворк компьютерного зрения с открытым исходным кодом для создания приложений компьютерного зрения на базе нейронных сетей, работающий на стеке Nvidia. Он упрощает разработку динамических, отказоустойчивых конвейеров видео-аналитики, использующих рекомендованные Nvidia инструменты для центров обработки данных и граничных ускорителей.
Savant построен на базе DeepStream и предоставляет высокоуровневый уровень абстракции для быстрой разработки конвейеров компьютерного зрения. Он отличается простотой использования, гибкостью и масштабируемостью.
Новые демонстрационные конвейеры
Мы считаем, что пример стоит тысячи слов, поэтому уделяем особое внимание не только написанию документации, но и наглядной демонстрации возможностей. В релиз включены следующие новые примеры:
Пример предсказания возраста/пола, демонстрирующий использование YoloV5-Face, работу с пользовательской атрибутивной моделью, предсказывающей возраст и пол, и аффинные преобразования в GPU на основе лицевых лэндмарок с помощью OpenCV-CUDA и Python;
Пример условного кодирования видео, демонстрирующий конвейер, который рисует на кадрах и кодирует видеопотоки по условию (в примере - только при обнаружении объектов моделью); показывает, как избежать нерационального использования вычислительных ресурсов, когда кадры требуются по определенному внешнему условию;
Пример обработки нескольких RTSP-потоков, демонстрирующий простой конвейер, обрабатывающий два RTSP-потока; поскольку Savant сильно отличается от того, что ожидают пользователи в отношении динамической обработки потоков, мы реализовали простой конвейер, обрабатывающий несколько потоков одновременно, чтобы показать, как это работает.
Новые возможности
Условная отрисовка и кодирование, позволяющие снизить трафик и рационально использовать ресурсы CPU/GPU;
Новый адаптер источника RTSP на базе FFmpeg, который работает гораздо лучше, чем использующий GStreamer, особенно в случае, когда потоки включают B-кадры;
Новый универсальный адаптер на базе FFmpeg, который может работать с любыми входными данными, поддерживаемыми FFmpeg.
Обеспечение качества
Теперь мы отслеживаем возможные регрессии производительности при объединении каждого тикета; наша идея состоит в том, чтобы сделать Savant быстрее, а не медленнее, поэтому мы хотим отслеживать, как новый влияет на производительность;
Продолжаем перенос внутренних компонентов Savant с Python на Rust: мы реализовали библиотеку основной функциональности на Rust, где тщательно тестируем код, и постепенно заменяем компоненты на основе Python на компоненты на основе Rust, чтобы обеспечить работу Savant без GIL, где это возможно, и высокое качество кода. Это долгий путь; в будущем 0.2.5 мы представим больше интеграций без GIL.
Документация
В данном релизе мы улучшили документацию на основании тех вопросов, которые задавали пользователи:
тщательно документировали адаптеры для работы с данными;
показали, как использовать препроцессинг изображений в общей документации и на полнофункциональном примере (предсказание возраста/пола);
создали новый раздел по настройке среды разработки в VS Code.
Устранение ошибки в DeepStream 6.2
Для нас загадка как Nvidia тестирует DeepStream - объем ошибок, связанных с NVENC/NVDEC не стихает. В ходе подготовки релиза наша команда обнаружила ошибку в DeepStream 6.2. Она связана с функциональностью NVENC на устройствах Jetson: NVENC некорректно упорядочивает кодируемые кадры, если фактическая частота кадров в потоке не равна настроенной, что часто происходит при работе с потоками RTSP или при пропуске кадров по определенным условиям.
В Savant реализован обходной путь: мы переупорядочиваем кадры, когда это необходимо. Nvidia подтвердила найденную ошибку. Надеемся, что Nvidia исправит это в ближайшем релизе DeepStream.
Что планируется в 0.2.5
В новый релиз будет интегрировано больше кода Rust, чтобы сделать конвейеры менее зависимыми от GIL. Больше функций, связанных с динамической конфигурацией конвейера и разработкой edge. Три-четыре новых примера, охватывающих базовые и расширенные функции.
Присоединяйтесь к группе проекта в Discord.
AcckiyGerman
Note: Savant does not support Jetson Nano (original device released at 2020) because Nvidia doesn't support newer JetPack versions for it.
https://github.com/insight-platform/Savant
Жаль
ivankudryavtsev Автор
Нам тоже жаль, однако Nvidia больше его не поддерживает.