Вышел Savant 0.2.4: компьютерное зрение на базе глубокого обучения для Nvidia Jetson и dGPU

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

После месяца напряженной работы мы выпустили новую версию 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.

Источник: https://habr.com/ru/articles/748438/


Интересные статьи

Интересные статьи

Привет, Хабр! Сегодня мы хотим рассказать о том, как машинное обучение помогает нам освободить время сотрудников в магазинах от длительного пересчета товаров в прямых поставках и сосредоточиться на ра...
Пройдя через несколько альфа- и бета-версий, наконец-то появился Bootstrap 5, на что у разработчиков ушло несколько месяцев. Новая версия претерпела серьезные изменения, включая отказ о...
Привет! В этой статье я хочу рассказать, как из модного микросервисного приложения можно сделать рабочую, управляемую систему с помощью трех проверенных годами методик: на примере про...
В современном понимании процесс обучения рассматривается как процесс взаимодействия между учителем и учениками с целью приобщения учащихся к определенным знаниям, навыкам, умениям...
Я очень люблю видеоуроки. Почему-то информацию с текста лично я воспринимаю весьма и весьма плохо. А есть вещи, в которых информации на бумаге не так много. Возьмём, к примеру, уроки игры на бала...