Аннотация
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ 6
ВВЕДЕНИЕ 7
1 Обзор существующих решений 9
2 Требования к системе 14
2.1 Функциональные требования 14
2.1 Нефункциональные требования 15
3 Проектирование и разработка 16
3.1 Облачная платформа для разработки сервиса 16
3.2 Общая архитектура облачного сервиса 19
3.3 Модуль управления пользовательскими данными 30
3.4 Модуль оркестрации 42
3.5 Модуль синхронизации данных 57
3.6 Модуль агрегации данных 62
ЗАКЛЮЧЕНИЕ 77
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 78
Компьютерное зрение и искусственный интеллект - одни из востребованных направлений в современном мире информационных технологий. Компьютерное зрение (Computer Vision, CV), в том числе машинное зрение (Machine Vision, MV) - это автоматическая фиксация и обработка изображений, как неподвижных, так и движущихся объектов при помощи компьютерных средств.
Сегодня данные технологии широко применяются для многих компонентов цифровой экономики:
• «Умный город» (Smart City);
• Интеллектуальные транспортные системы ИТС (Intelligent Transportation System);
• Автономные автомобили (Driverless Car) и системы помощи водителю ADAS (Advanced driver-assistance systems);
• Беспилотные летательные аппараты (в т.ч. дроны);
• Высокотехнологичное сельское хозяйство (Smart Agriculture);
• Электронная медицина (eHealth);
• Системы военного применения;
• Аддитивное производство (3D-printing).
Всё чаще системы видеонаблюдения включают в себя методы интеллектуального анализа, основанные на использовании алгоритмов компьютерного зрения и принципов глубокого обучения. Использование данных методов позволяет автоматизировать задачи, которые обычно выполнимы только человеком. Существенная оптимизация технологических процессов и экономия ресурсов является мотивом для инвестиций в данную отрасль.
К задачам автоматизации относится локализация объектов в видеопотоке; определение особенностей и характеристик этих объектов; детектирование событий на видео; распознавание и идентификация лиц; анализ активности объектов; наблюдение за траекторией объекта, в том числе по данным нескольких камер, и многое другое [1].
Системы интеллектуального видеонаблюдения находят применение в охране, контроле проникновения в различные зоны, распознавании номерных знаков автомобилей. Например, детектор оставленных предметов генерирует событие, если в сцене камеры появляется и длительное время остается неподвижным какой-то предмет, а детектор пересечения линии генерирует событие при нарушении объектом указанной границы [2].
Современные научные разработки в области интеллектуального видеонаблюдения достигают высоких метрик качества работы алгоритмов. Сегодня с помощью различных моделей нейронных сетей успешно решаются задачи детектирования, трекинга объектов, распознавания лиц и многие другие [3]. Однако, далеко не все алгоритмы, показывающие высокие метрики качества, способны работать в режиме реального времени. Часто данные алгоритмы потребляют значительный объем ресурсов и служат для решения только узких задач видеоаналитики, что затрудняет создание многозадачных систем [4]. Учитывая все вышеизложенное, можно сделать вывод об актуальности задачи создания системы интеллектуального видеонаблюдения на основе глубокого обучения.
Целью выполнения данной НИР является проектирование и разработка облачной распределенной платформы для автоматического детектирования, трекинга и описания объектов (машин, пешеходов, велосипедистов) на кадрах видеопотока в режиме реального времени.
В результате проделанной работы была спроектирована и реализована архитектура облачной распределенной платформы для автоматического детектирования, трекинга и описания объектов (машин, пешеходов, велосипедистов) на кадрах видеопотока в режиме реального времени. Данная архитектура обладает преимуществами горизонтального масштабирования для распределения нагрузки между вычислительными узлами и позволяет динамически адаптироваться к её изменениям. Сам разработанный сервис представляет собой SaaS-решение, базирующееся на инфраструктуре Microsoft Azure и предоставляющее доступ пользователям к основным функциям разработанной платформы по требованию в полностью автоматическом режиме.
Были реализованы ключевые модули спроектированной системы:
• модуль управления пользовательскими данными (backend)
• модуль оркестрации (devops)
• модуль синхронизации данных (data processor azure function)
• модуль агрегации данных (data processor)
Модуль управления пользовательскими данными является центральным звеном, связывающим пользователей клиентского web-приложения и их данные с основным функционал платформы. Модуль оркестрации предназначен для динамического управления экземплярами модулей рестриминга и ядра, а также для контроля выполнения задач по анализ видеопотоков на этих модулях. Модули синхронизации и агрегации данных обеспечивают асинхронную запись временных данных-результатов в БД с последующей их агрегацией и отправкой модулю backend.