Этот доклад — история пятилетней эволюции нашей платформы видеонаблюдения с использованием машинного зрения.
Начну с самых первых шагов: когда наш пайплайн обработки видео представлял собой набор скриптов на питоне, оборачивающих бинарник FFmpegа, и дойду до почти полностью нативного решения на Go. Поговорим о ключевых вызовах, с которыми мы сталкивались, и проблемах на каждом этапе жизненного цикла платформы.
Коротко разберём, из чего вообще состоит работа с видеопотоками в задаче real-time анализа изображения: протоколы, кодеки, инференс моделей машинного обучения. Рассмотрим, как проявил себя Go в не самой типичной для него области. Спойлер: весьма неплохо — хотя и не без нюансов)
Отдельно остановимся на важном вопросе: почему мы решили делать собственное нативное решение и почему было недостаточно просто ограничиться использованием многочисленных сишных библиотек через Сgo.