Введение [Текст]
В настоящее время процесс цифровизации продолжает привлекать все больше внимания, особенно в контексте развития технологий интернета вещей (IoT) и умного дома. Эти инновационные технологии предоставляют возможность удаленного управления и контроля различными устройствами и системами, находящимися в жилых помещениях, с использованием смартфонов, планшетов, компьютеров и других электронных устройств. Благодаря IoT и умным домам пользователи получают возможность не только контролировать устройства из любой точки мира через интернет, но и автоматизировать их работу в соответствии с заданными сценариями, управлять энергопотреблением, снижая расходы на электроэнергию, а также обеспечивать безопасность дома и его жильцов. Кроме того, в рамках цифровой трансформации бизнеса, количество подключаемых устройств будет расти с каждым годом. Так, начиная с 2015 года, когда общее количество используемых устройств в Интернете вещей превышало 6 миллиардов, оно возрастет до 27 миллиардов устройств к 2027 году. По оценке CAGR (англ. Compound annual growth rate) совокупный годовой темп роста оставит 16% [1].
Стоит отметить, что обычно выделяются три категории продуктов, разрабатываемых в концепции IOT. B2C, как массовый или потребительский сегмент. B2B, как устройства для использования с коммерческих компаниях. И B2G – поставки IOT-устройств в государственные учреждения и госкомпании. Самым крупным рынком считается B2B, что приводит к выводу о том, что для обычных граждан продукты не всегда являются доступными и приобретать их становится крайне невыгодно [2]. Исходя из этого в контексте российского рынка и стратегии импортозамещения развитие отечественных систем безопасности для умных домов, особенно в сегментах B2C и B2B, становится приоритетным направлением. Наиболее важными задачами являются оптимизация процессов производства, разработка собственных технологий и создание надежных, функциональных и доступных по цене продуктов. Российские компании должны стремиться к самостоятельному развитию систем безопасности, принимая во внимание местные особенности и потребности.
Одной из преград для широкого распространения отечественных систем безопасности, в контексте систем видеонаблюдения для умных домов является зависимость от зарубежного оборудования и программного обеспечения, которые могут быть дорогостоящими и ненадежными. Это делает такие системы недоступными для большинства потребителей из-за высокой стоимости импортных компонентов.
Ещё одной проблемой является использование встроенного программного обеспечения, приобретая комплекс видеонаблюдения, пользователь не всегда знает, где хранятся его данные и как они обрабатываются. Это вызывает опасения относительно конфиденциальности и безопасности информации, что может сдерживать потенциальных пользователей.
Высокая стоимость профессиональных камер с встроенными датчиками движения также ограничивает их доступность и применение для широкого круга потребителей. Это препятствие для распространения отечественных систем безопасности для умного дома, особенно среди бюджетных сегментов рынка.
Наконец, требование приобретения специального видеорегистратора для полноценной работы с системой видеонаблюдения также увеличивает стоимость и усложняет процесс внедрения системы безопасности для умного дома.
Исходя из вышеупомянутых недостатков существующих систем безопасности для умных домов, мы предлагаем нашу собственную разработку в области систем видеонаблюдения, которая будет доступной и легкой в эксплуатации среди всех сегментов рынка.
Цель исследования [Текст]
Целью данного исследования является разработка алгоритмов для подсистемы домашнего видеонаблюдения системы безопасности "Умный дом", которая способна в режиме реального времени отслеживать движение и предоставлять информацию пользователю в удобном для него формате. Данная система будет основываться на отечественном аппаратном обеспечении, а также открытом программном обеспечении.
Материал и методы исследования [Текст]
Модуль видеонаблюдения.
Обычно, в современных системах видеонаблюдения используются два типа устройств: камеры и видеорегистраторы [3]. Камеры выполняют функцию съемки и захвата видеоизображения, а видеорегистраторы – обрабатывают полученную запись и сохраняют ее базу данных, либо выполняют транслирование.
Так, существуют готовые решения, например устройство RealSens от компании Intel, которое использует облачный подход к хранению и обработке получаемых с камеры данных [4]. Но основной вопрос для потребителей – куда именно отправляется информация для обработки данных. RealSens — это удобное облачное решение, но гражданам России это может угрожать нарушением их конфиденциальности, так как сервера находятся не на территории России. Кроме того, при использовании RealSens за пределами города чревато плохим соединением с сетью, что может замедлить обработку видеоконтента и отправку оповещения. Кроме того, из-за дороговизны компонентов, цена надежного RealSens начинается от 500 долларов. В свою очередь наше решение подразумевает использование стационарного компьютера, работающего под управлением «открытой» операционной системы Linux. Благодаря возможностям Linux и программным решениям, основанным на этой ОС, такие компьютеры могут выполнять и функции видеорегистраторов, обеспечивая обработку, и хранение видеоизображений. Это позволяет снизить затраты на оборудование почти в 2 раза, сохраняя при этом необходимую функциональность системы и скорость обработки входящего контента.
Существуют иные решения, обрабатывающие информацию внутри российской интернет-системы, но c использованием иностранного ПО и комплектующих. Одно из решений предполагает установку модуля ESP32CAM с камерой OV2640 c дополнительным функционалом в виде устройств оповещения Security Alarm Ajax StarterKit и Security Alarm Xiaomi Smart Home Suite [5]. Существующие случаи утечки данных не позволяет доверять этой компании-разработчику полностью, не говоря уже, к примеру, о размещении таких устройств в домах у государственных служащих. Выбор камер для системы видеонаблюдения также является важным аспектом. Профессиональные камеры с встроенными датчиками движения, хотя и предлагают высокое качество съемки, часто являются импортными продуктами, что может повышать их стоимость и создавать зависимость от зарубежных поставщиков. Наше решение предполагает использование камеры российского производства Корнет IP-камера IPC19-2, которая подключается по протоколу IP. Такие камеры обладают широким углом обзора, от 180 градусов, что позволяет охватить большую площадь и значительно упрощает размещение камер в помещении, уменьшая их количество. Протокол IP позволяет передавать видеоизображение и данные по сети и исключает проведение работ по монтажу кабельных систем от камер до сервера.
Таким образом, комбинация стационарного компьютера под управлением операционной системы Linux в качестве видеорегистратора и использование отечественных камер с IP-подключением и широким углом обзора представляет собой нетривиальное и доступное решение для систем видеонаблюдения в домашней среде. Наше решение не использует внешние источники обработки видеоконтента, по этой причине является лучшим вариантом при обнаружении движения и реагировании на него. Также нет необходимости в покупке импортного оборудования, ведь наша реализация состоит из отечественных комплектующих и Open Source-решений.
Модуль обнаружения движения.
Для обнаружения движения в системе видеонаблюдения, состоящей из сервера и подключенных к нему IP-камер, необходимо использовать специализированное программное обеспечение, известное как MotionEye OS. Это операционная система, разработанная для работы с камерами видеонаблюдения и обеспечивающая функции обнаружения движения.
MotionEye OS позволяет дополнительно настраивать систему обнаружения движения. Одной из возможностей является определение области на изображении с камеры, в которой необходимо осуществлять мониторинг движения. При обнаружении движения в этой области, заданный скрипт с определенными действиями будет выполняться.
Работа MotionEye OS основана на анализе последовательности кадров с камеры. Она сравнивает каждый кадр с предыдущими и определяет изменения, которые могут указывать на наличие движения [6]. При обнаружении движения в заданной области система может выполнить такие действия, как отправка уведомления пользователю, запись видео, активация сигнализации или активация других программных модулей.
При необходимости доработки функциональности MotionEye OS предоставляет возможность пользователю настраивать различные параметры обнаружения движения и определять дополнительные действия. Это позволяет адаптировать систему под конкретные требования и потребности пользователей.
Для развертывания MotionEye OS на Linux-сервере необходимо использовать Docker и его механизм контейнеризации. Docker является платформой для автоматизации развертывания и управления приложениями в изолированных контейнерах.
Использование Docker позволяет создать контейнер, который содержит все необходимые компоненты и зависимости для MotionEye OS, включая операционную систему, библиотеки и само приложение.
После запуска требуется подключение IP-камер через встроенный web-интерфейс и выбор необходимых областей для отслеживания движений, как это показано на изображении ниже (рис. 1).
Рис. 1 – Выбор области MotionEye
Для проверки обнаружения движения перед камерой достаточно провести рукой. Если движение было обнаружено изображение будет подсвечено и начнет выполнение скрипт, указанный в настройках интерфейса.
По умолчанию, мониторинг доступен только по локальной сети, но для более полной реализации рекомендуется заказать у провайдера публичный IP-адрес для возможности удаленного мониторинга.
Модуль передачи информации
Для доставки информации об обнаружении движения перед камерой было разработано три варианта: СМС-оповещение, отправка сообщений по электронной почте и совершение телефонного звонка. Для каждого из этих вариантов предлагаем реализацию с использованием языка программирования Python.
Для реализации СМС-оповещений мы используем GSM-сервер на основе открытой технологии Kannel. Kannel является мощным сервером SMS-шлюза с открытым исходным кодом, который позволяет отправлять и получать SMS-сообщения. Для его настройки на нашем сервере Linux необходимо выполнить ряд конфигурационных шагов, включающих указание параметров соединения с GSM-сетью, установку модема, в нашем случае это российский TELEOFIS RX600-R2, и определение правил маршрутизации сообщений.
После успешной настройки Kannel мы можем взаимодействовать с сервером на Linux с помощью скрипта на языке Python. Скрипт обрабатывает событие обнаружения движения перед камерой и отправляет пользователю СМС-сообщение с оповещением и рекомендацией к принятию необходимых мер. В случае получения положительного ответа скрипт запускает дополнительные действия для уведомления службы безопасности. В случае отрицательного ответа программа завершает свою работу (рис 2).
Рис. 2 – Смс оповещение
Для реализации оповещения пользователя через отправку писем на почтовый ящик с использованием SMTP-сервера необходимо использование библиотек smtplib для отправки писем и imaplib для обработки ответа, которые создают соединение с почтовым сервером и отправляют информацию по указанному адресу, ожидая обратного письма с подтверждением к действию или завершению работы программы.
Для реализации оповещения пользователя через телефонный звонок с возможностью ожидания голосового ответа потребуется сделать шаги. Необходимо обеспечить доступ к телефонной сети через провайдера услуг. Для проигрывания записи и обработки голосовых ответов пользователя потребуется использование голосовой технологии, такой как Text-to-Speech (TTS) и Speech-to-Text (STT). Установка связи между сервером и провайдером телефонных услуг может осуществляться через протокол SIP (Session Initiation Protocol). Для управления телефонным звонком, проигрывания записи и обработки голосовых ответов пользователя, написан скрипт, который инициирует звонок на указанный номер пользователя, проигрывает голосовое сообщение об обнаружении движения и ожидает голосовой ответ "Да" или "Нет" для принятия соответствующих действий. В данном варианте также используем GSM-модем.
Такая интеграция между системой видеонаблюдения и GSM-сервером Kannel позволяет нам осуществлять эффективное оповещение пользователя о событиях обнаружения движения и предоставлять возможность принятия соответствующих мер для обеспечения безопасности.
Модуль реагирования
Основной функцией модуля реагирования является возможность вызова местной охранной службы или отправка уведомлений в отдел УВД местного управления при обнаружении движения перед камерой. Это важный механизм, который позволяет максимально оперативно привлечь специалистов для реагирования на потенциальную угрозу безопасности.
При получения положительного ответа от пользователя на активацию модуля реагирования система начинает выполнять соответствующий сценарий. Она имеет возможность автоматически выполнить звонок в местную охранную службу, предоставляя им полную информацию о произошедшем инциденте. В этом звонке могут быть упомянуты адрес места события, время обнаружения движения, а также любые другие дополнительные данные, которые могут быть полезными для охранной службы при выезде наряда. Но прежде, чем использовать эти варианты стоит убедиться в отсутствии ложных срабатываний системы.
Результаты исследования и их обсуждение
Цель данной работы заключается в создании системы видеонаблюдения в режиме реального времени с захватом движения, функционирующей в соответствии с определенным расписанием и способной отправлять уведомления различными вариантами при обнаружении движения в поле зрения камер.
Результаты тестирования подтвердили, что разработанная система оповещения эффективна в обнаружении движения и работает согласно заданным алгоритмам. Важно отметить, что в процессе тестирования не было обнаружено ложных срабатываний, что подтверждает правильность работы алгоритмов и соответствие системы поставленным требованиям.
Алгоритмы, определяющие наличие движения на видеозаписи с камеры, показали свою надежность и точность. Они способны обнаружить даже малейшие изменения в кадре, что позволяет своевременно реагировать на потенциальные угрозы и принимать соответствующие меры безопасности.
Выводы (или заключение)
После разработки и тестирования нашей системы домашнего видеонаблюдения, мы получили полностью функциональный модуль системы умный дом. Данный модуль включает в себя две важных функционала: удаленный мониторинг работы камер и отправку уведомления о движении перед ними с возможностью выбора способа.
Одним из направлений дальнейшей работы над системой является добавление доступа к ней по закрытому VPN-каналу, что обеспечит дополнительный уровень безопасности при использовании системы домашнего видеонаблюдения.