Рост количества видеоматериалов в совокупности с ограниченными биологическими возможностями человека сделали ПО для анализа видеоизображений незаменимым инструментом в процессе обработки больших объемов видеопотоков. Информация представляет наибольшую ценность в том случае, когда она является наиболее востребованной. Кроме того, ее ценность определяется количеством событий, которые можно оперативно фиксировать и отслеживать в режиме реального времени. Системы управления видеонаблюдением обеспечивают помощь персоналу служб безопасности, осуществляя круглосуточный мониторинг видеопотоков и предупреждая сотрудников о действиях, требующих их внимания.

Достижения в сфере хранения данных, разрешения видео и изображений повлияли на внедрение анализа видеоматериалов за последнее десятилетие. В 2017 году общемировой рынок решения для видеоаналитики был оценен в 2,77 млрд. долл. По оценкам, к 2023 году он вырастет до уровня 8,55 млрд. долл. Графические процессоры облегчают обработку видео на недорогих ускорителях, что позволяет использовать передовые средства анализа видео. Технологии стабилизации сигнала также повышают эффективность видеоаналитики, которая зависит от качества видеопотоков.

Видеоаналитика используется во многих отраслях промышленности. Вот несколько примеров:

  • розничная торговля — подсчет покупателей в магазине, отслеживание движения, оптимизация дизайна магазина и пополнение запасов товаров;
  • перевозки — идентификация багажа, оставленного в аэропортах;
  • здравоохранение — термическое формирование изображений для контроля повышенной температуры тела;
  • производство/промышленность/строительство — контроль качества, соблюдение требований охраны труда и техники безопасности;
  • пищевая промышленность — контроль качества;
  • сфера развлечений и спорта — подсчет посетителей для управления потоками людей;
  • городские службы — распознавание номерных знаков и подсчет транспортных средств для целей планировки городов;
  • правоохранительная деятельность — поиск видеоконтента для помощи в расследованиях.

Для удобства использования многочисленные видеопотоки часто объединяются друг с другом и комбинируются с данными датчиков IoT для всестороннего понимания ситуации. Системы управления видеонаблюдением также могут взаимодействовать с приложениями безопасности сторонних производителей, помогая организациям применять целостный подход к стратегии анализа видеонаблюдения.

Принципы работы видеоаналитики

Входящие видеопотоки — это компактные наборы графической информации и аудиоданных, представленные в виде ряда последовательных кадров. Отдельный кадр представляет собой не больше ценности для видеоанализа чем обычная фотография. Непрерывная последовательность чередующихся кадров обеспечивает динамику, необходимую для извлечения информации из видеоданных.

Видеоданные обрабатываются в два этапа: первый — это обнаружение и анализ движения, второй — распознавание образов. Во время обнаружения и анализа движения происходит мониторинг изменений содержания пикселей с целью идентификации движения. Затем система распознавания образов классифицирует объекты в движении и их траекторию. При этом учитываются и другие движущиеся объекты.

В камерах, оснащенных средствами анализа, используется математическая функция для обнаружения объектов в движении путем вычисления разницы между кадрами. Считается, что движение произошло, если разница не равна нулю. Это простая вычислительная задача. Сам же анализ движения требует более сложной расчетной схемы, в том числе и математических функций. Тут на помощь приходит ИИ. Движение рассматривается как траектория, полученная из начального кадра и отслеживаемая до положения объекта в последующих кадрах.

Рассмотрим этот механизм на примере отслеживания движения одного автомобиля в течение пяти секунд. Нашей задачей при этом является не путать его траекторию с траекторией движения других автомобилей в извлеченном видеопотоке. Алгоритм сегментации изображений фрагментирует транспортное средство в начальном кадре и связывает идентифицированное изображение в последующих кадрах, создавая траекторию. Решения в области машинного распознавания образов с приемлемой вычислительной мощностью поддерживают этот алгоритм благодаря ядрам ЦПУ и большому объему оперативной памяти. Если на видео присутствует 30 автомобилей, необходимо постоянно отслеживать 30 сегментированных изображений в 30 различных точках. При этом нельзя допустить ошибки, когда изображения накладываются друг на друга. Для того, чтобы решения для видеоаналитики приносили пользу, они должны обрабатывать множество объектов в кадре, а также их перемещение по кадрам при средней скорости 6 кадров в секунду. Представьте себе, что вы просматриваете по 60 фотографий за секунду, при этом полностью представляете, что изображено на каждой из них. Для оптимизации масштабирования в таких сценариях необходимы более продвинутые вычислительные мощности.

Инструменты и разработка

Методы глубинного обучения (DL), используемые в интеллектуальной видеоаналитике, разнообразны. Один из распространенных подходов — преобразование видеокадров в графические файлы и применение сверточных нейронных сетей (CNN) для обнаружения объектов в каждом кадре. Для анализа движения рекомендуется использовать гибридные модели на базе CNN и рекуррентных нейронных сетей (RNN). Описание всевозможных инструментов и сред, доступных для реализации приложений видеоаналитики, выходит за рамки данной статьи, однако я представлю вам некоторые ресурсы, на которых рассматриваются различные варианты инструментов и разработки:

  • Open Source Tools 33 продукта с открытым исходным кодом на GitHub, доступные для видеоаналитики. Основное различие между ними заключается в варианте применения;
  • VidSaga, глобальное сообщество видео-маркетологов, предлагает 10 лучших коммерческих инструментов видеоанализа 2020 года для бизнес-аналитики.

Ключевой ценностью таких инструментов и других популярных сред являются API, которые они предлагают для улучшения соответствия в процессе реализации алгоритмов. Решение Google Object Detection пользуется популярностью для быстрого создания моделей обнаружения объектов. Он предоставляет API, использующие более 330 000 классов COCO Data Set для классификации объектов. Оно также позволяет использовать библиотеки типа OpenCV для сегментирования и вводит специальную маркировку объектов для облегчения отслеживания. В этом блоге поэтапно рассматривается процесс разработки приложения для видеоаналитики на Python с использованием среды выполнения TensorFlow и библиотеки OpenCV, также применяемой посредством API Google Object Detection. В качестве финального примера реализации приведем анализ футбольного матча. Игроки (объекты) идентифицируются путем их сегментации в видеокадрах с помощью OpenCV. Каждому из них присваивается атрибут, например цвет футболки; затем они маркируются и отслеживаются с помощью API Google для обнаружения объектов.

Автор статьи — архитектор Dell Technologies по ИИ и аналитике Big Data.