» » » Видеонаблюдение в подъезде своими силами

 

Видеонаблюдение в подъезде своими силами

Автор: admin от 1-12-2017, 23:15, посмотрело: 421

Видеонаблюдение в подъезде своими силами

Прочитал относительно недавнюю публикацию о видеонаблюдении и решил описать свой опыт. Считаю мое решение оптимальным по соотношению цена/функциональность, но с удовольствием выслушаю критику более опытных людей.

Итак, задача — минимальными материальными и временными ресурсами сделать видеонаблюдение в подъезде перед входной (в квартиру) дверью. Желательно не записывать круглые сутки “пустые” картинки, т.е. необходимо детектирование движения. Также хорошо бы иметь удаленный доступ к записям.
telebot. Поэтому для сложных скриптов использую Python. Рад, что изучил его, т.к. много других своих задач решил с помощью этого языка. Python нужен мне для отправки записанных файлов в Яндекс Диск.

«Гуглением» можно научиться собирать bash-скрипты из других решений и я использую их в упрощенных вариантах.

Ну и самое главное – программа Motion.

Motion


Я расскажу ниже о недостатках и проблемах этого решения, но все же оно бесплатное и простое. Motion позволяет решить задачу детектирования движения и записи видео в формате mjpeg, когда что-то происходит в подъезде.

Моя публикация – не инструкция по Motion. Я описываю только существенные моменты, хотя полный конфигурационных файл приведет внизу.

Кстати камера может сама детектировать движение. В этом случае она загружает набор картинок на FTP сервер. Я также использую этот режим на случай, если motion по какой-либо причине пропустит движение и не запишет видео, по сути дублирование.

Для тех, кто не знаком с Motion, сообщу, что это программа, цель которой — записывать видео в случаях, если она (программа) определяет, что картинка с камеры изменилась (перед камерой что-то двигается). Для этого она постоянно сравнивает картинки и определяет, что новая картинка не равна предыдущей в каком-то проценте (процент несовпадения задается в файле конфигурации). Запись останавливается после того, как картинка перестала меняться в течение заданного промежутка времени (также задается в конфигурации).

В подъезде Управляющая Компания поставила лампу с датчиками движения. Лампа постоянно включаются/выключаются даже без движения. Motion в этом случае начинает записывать видео, поэтому я использую его настройку LIGHTSWITCH = 1. В этом случае Motion пропускает 5 кадров на перестройку чувствительности камеры. К сожалению, это не всегда работает, но уверен это мой частный случай. Иногда я планирую отключить датчики движения на лампах в подъезде, но пусть все же экономится общая электроэнергия.

Важнейший параметр – количество кадров в секунду, которые принимает на анализ и записывает Motion (параметр FRAMERATE) Скажем, если параметр равен 5, как в примере, Motion «берет» 5 кадров в секунду – видео получается прерывистым, но вполне достаточным, чтобы понять, что происходит. Увеличение этого параметра сглаживает записываемое видео, снижает время реакции на движения, но увеличивает нагрузку на процессор. 5 кадров в секунду, мне показалось, наиболее оптимальным.

Motion сам записывает видео, но если хочется сделать запись со своими параметрами (например, с другим FRAMERATE) можно сконфигурировать простейшую запись:

on_event_start = vlc rtsp://admin:vova@192.168.0.100:554/Streaming/Channels/101 --sout=file/ps:/home/vova/Files/Camera/$(date +%m%d%H%M%S).mp4
on_event_end = pkill -f vlc

Используемая архитектура позволяет использовать Motion версии 3.2.12+git20140228, специально собранной под нее. Версия старая, не обновляется, но исправно работает. Ее основная проблема в том, что при работе с WiFI (а Odroid у меня подключен по WiFi к локальной сети) иногда Motion теряет связь с камерой и эта связь не восстанавливается сама. Приходится перезапускать Motion. Потеря связи проявляется в том, что Motion “зависает” на одной картинке. Для того, что перезапустить Motion, я написал специальный скрипт: он пишет несколько картинок с Web сервера Motion (Motion дает возможность посмотреть видео со встроенного Web сервера), сравнивает их между собой по размеру и если размер одинаковый, значит Motion «завис» на одной картинке. Почему по размеру? Я мог бы сравнить их по содержимому с помощью пакета Python Pillow, но это лишняя нагрузка на процессор – Pillow очень требователен к ресурсам, надо сравнивать все пиксели между собой.

Второй вариант решения – подключить odroid через Ethernet. В этом случае проблем нет.

Захотелось, чтобы в случае, если перед моей дверью есть движение, фотография приходила в Telegram-бот. Для этого в параметре задал исполнение простейшего bash скрипта. Но сначала надо задать область детектирования: area_detect = 89. Это означает, что Motion детектирует движение в квадратах 8 и 9.

1 2 3
4 5 6
7 8 9


Далее создаем скрипт для отправки фотографий в Telegram


Чтобы он сработал при детектировании в конфигурационном файле прописываем параметр

on_area_detected = /home/vova/Core/scrypts/send_pix

Получается, в Telegram вот так выглядит

Видеонаблюдение в подъезде своими силами

Вот мой весь конфигурационный файл


Motion можно настраивать и через web интерфейс. По умолчанию порт 8081

Удаленный доступ к записанному видео


Для удаленного доступа записанные фрагменты видео передаются в Яндекс Диск. Я сам написал на Python «легкую» программу для доступа к ЯДиску.

В cron создал расписание, которое каждые 10 минут запускает ее. Файлы распределяются по папкам в соответствии со временем записи, чтобы легче было их искать.

Хотел привести здесь код программы, тогда это уже будет тема про API Яндекс Диска на Python. Я сделаю это отдельной статьей.

Заключение


В итоге мы получили видеонаблюдение с минимальным вложением финансовых средств. Без «трудоемкого программирования», но с возможностью подстроить под себя. Файлы сохраняются в облачном хранилище и не потеряются. В случае, если есть активность около Вашей двери, придет фотография в Telegram.

Из задачи на будущее: при движении около двери картинка с камеры появляется на медиацентре Kodi, если в это время я смотрю что-либо на нем (иначе он сам включает телевизор и он работает пока вручную не выключить). Вроде видеодомофона.

На заглавной картинке сосед-квартиросъёмщик «отдыхает». Распечатал это фото и положил ему в почтовый ящик. Стал менее эксцентричным в общественных местах. Знает, что все записывается.

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

Источник: Хабрахабр

Категория: Компании » Яндекс

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *