Аннотация
Введение 4
1 Разработка прототипа системы 5
1.1 Цели и задачи 5
1.2 Технологические процессы 5
1.3 Функциональные и нефункциональные требования 6
1.4 Модель предметной области 8
1.5 Алгоритм анализа видео 9
1.6 Архитектура системы 12
1.7 Используемые технологии 14
1.8 Взаимодействие модулей 15
1.9 Реализация модулей 17
1.9.1 BarcodeDetector и PPEDetector 17
1.9.2 VideoReceiver 18
1.9.3 RestApi 22
1.9.4 TechnopoliceAnalyzer и PPEAnalyzer 26
1.9.5 TelegramBot 29
1.10 Результаты разработки прототипа системы 32
1.11 Проблемы выявленные при разработке прототипа системы 37
2 Разработка решения для компании Евраз 38
2.1 Цели и задачи 38
2.2 Технологические процессы 38
2.3 Функциональные и нефункциональные требования 39
2.4 Модель предметной области 41
2.5 Архитектура системы 42
2.6 Реализация модулей 46
2.6.1 DataRouter 46
2.6.2 CameraProcessor 51
2.6.3 Core 53
2.6.4 EvrazRestApi 54
2.7 Результаты второго этапа 57
Заключение 62
Список литературы 63
Приложение A: Листинги функционала модулей 64
1 Пример работы с Apache Thrift 64
2 Модуль VideoReceiver 65
3 Модуль RestApi 66
4 Модуль TechnopolisAnalyzer 67
5 Модуль TelegramBot 69
6 Модуль DataRouter 70
7 Модуль Core 72
8 Модуль EvrazRestApi 73
В нынешнее время, множество компаний используют видеокамеры. Цели могут быть разные, некоторые устанавливают камеры для предотвращения нарушений со стороны клиентов, некоторые для предотвращения нарушений со стороны работников. Но принцип работы с камерами практически всегда один - видеоданные просто сохраняются, и если появляется необходимость узнать подробности произошедших событий, ищется запись за этот период.
При таком подходе использования видеокамер зачастую наблюдается проблема неэффективности процесса - огромные объёмы видеоданных не используются, так как просто не возникает необходимости их просматривать, и даже если камеры зафиксируют какое-то важное событие, без фиксации этого события в каком-либо другом процессе, эти данные не могут быть использованы.
Иногда, конечно, видео с камер просматривается людьми в реальном времени, но этот процесс также является малоэффективным ввиду больших затрат человеческого времени и финансов. Камер обычно куда больше чем людей, которые их просматривают, к тому же возможности человеческого зрения довольно ограниченны.
Для решения этих проблем существуют системы видеоаналитики. Они позволяют автоматизировать технологические процессы компаний с помощью анализа видеоданных этих процессов.
Вариативность задач которые можно решить с помощью видеоаналитики огромна, но в то же время, с технической стороны, видеоналитика имеет большое количество элементов схожих для большинства задач.
Целями и задачами данной работы является разработка серверной части системы видеоаналитики, которая позволит решать набор задач по видеоаналитике, и будет способна на расширение этого набора со временем.
В рамках данной работы был выполнен спектр задач. Были разработаны функциональные требования и разработана серверная часть прототипа системы. По результатам разработки прототипа были выявлены направления в которых необходимо развивать систему. После презентации прототипа у проекта появился первый заказчик - компания «Евраз».
После анализа требований заказчика и модернизации архитектуры системы, решающей основные проблемы прототипа, была разработана вторая версия системы реализующая технологический процесс компании Евраз.
На данный момент система находится в тестовой эксплуатации компании «Евраз», в ближайшем будущем планируется расширение системы и автоматизация технологических процессов новых заказчиков.