После месяца напряженной работы мы выпустили новую версию 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. Для нас загадка как Nvidia тестирует DeepStream - объем ошибок, связанных с NVENC/NVDEC не стихает. В ходе подготовки релиза наша команда обнаружила ошибку в DeepStream 6.2. Она связана с функциональностью NVENC на устройствах Jetson: NVENC некорректно упорядочивает кодируемые кадры, если фактическая частота кадров в потоке не равна настроенной, что часто происходит при работе с потоками RTSP или при пропуске кадров по определенным условиям. В Savant реализован обходной путь: мы переупорядочиваем кадры, когда это необходимо. Nvidia подтвердила найденную ошибку. Надеемся, что Nvidia исправит это в ближайшем релизе DeepStream. В новый релиз будет интегрировано больше кода Rust, чтобы сделать конвейеры менее зависимыми от GIL. Больше функций, связанных с динамической конфигурацией конвейера и разработкой edge. Три-четыре новых примера, охватывающих базовые и расширенные функции. Присоединяйтесь к группе проекта в Discord.  Техдиректор в дикой природе