вторник, 5 ноября 2013 г.

[Из песочницы] Timelapse с элементами видеонаблюдения

Здравствуйте, хабрапользователи.

Начитавшись на Хабре о timelapse с Raspberry Pi (раз, два) и после того как трем машинам на стоянке пробили за одну ночь колеса, а за неделю до того одну машину вскрыли, я решил, что нужно организовать малобюджетное видеонаблюдение.


На супер-крутую HD IP камеру с wi-fi бюджета нет, да и, честно говоря, желания, так как люблю покопаться в конфигах, потыкать провода и всякое прочее.


В общем, кому интересно, прошу под кат.



Железная часть




• Центр вселенной процессинга — Raspberry Pi (43$ за плату с картой SD 8Gb + 16грн. за доставку Новой почтой из областного отделения DHL).



• Плата видео захвата – EasyCap на чипсете STK1160 (12$ из Китая).



• Связь с миром – Wi-fi dongle COMFAST (6$ из Китая).



• Резервное питание – NONAME PowerBank (6$ из Китая).



• Аналоговая камера вроде на CCD от Sony (была в наличии много лет).



• Дешевая NONAME вебкамера для примера (7$ из Китая).



• Зарядное устройство для PowerBank на 1А, блок питания для аналоговой камеры на 9В, пара проводов microUSB (всё добро было в наличии).

Программная часть




Операционная система



Устанавливаем на Raspberry Pi Debian Wheezy (взято тут). Я не стал заморачиваться с юниксовым dd и Windows утилитой Win32DiskImager и скачал Noobs Lite, с помощью которой и установил в последствии желанный Raspbian Wheezy.

При первом запуске нас приветствует raspi-config, где можно поменять локаль, пароль пользователя pi, разогнать процессор (советую делать только после установки радиаторов). Далее следует перезагрузка и вот мы в линуксе.


Сразу же советую сделать:



sudo apt-get update
sudo apt-get upgrade


Подключение к сети



Устанавливаем драйвера на wi-fi модуль:

sudo apt-get install firmware-ralink


Далее прописываемся в своей wi-fi сети



sudo nano /etc/network/interfaces



allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-ssid “ИМЯ_ВАШЕЙ_СЕТИ”
wpa-psk “ПАРОЛЬ_К_ВАШЕЙ_СЕТИ”


Сохраняем. Выполняем команду:



sudo /etc/init.d/networking restart


и отключаемся от проводного подключения.


Программа захвата



Долго искал что то подходящее, перебирал разные варианты представленные в том числе и на Хабре, но выбор пал на FSwebcam. Устанавливаем его:

sudo apt-get install fswebcam
cd /home/pi
touch fswebcam.conf
sudo nano /home/pi/fswebcam.conf


И в конфиге пишем:



device /dev/video0
pid 9990
input 0
loop 10
skip 20
resolution 720x576
top-banner
title "Stoyanka@RPi"
timestamp "%d-%m-%Y %H:%M:%S (%Z)"
palette YUYV
jpeg 100
save /home/pi/webcam/capture."%Y%m%d%H%M%S".jpg
save /usr/share/nginx/www/wc/capture.jpg


Сохраняем.


По конфигу надеюсь всё просто:

• device /dev/video0 – наше видео устройство

• loop 10 – захват картинки каждые 10 минут

• skip 20 – перед захватом картинки пропускать 20 кадров


Запускаем FSwebcam:



sudo fswebcam –c /home/pi/fswebcam.conf –b


И смотрим как обновляется картинка.

В дебри nginx лезть не буду и так в интернете есть много простых примеров. Всё добро выводиться на веб страничку с одной картинкой, которая в конфиге FSwebcam сохраняется в /usr/share/nginx/www/wc/capture.jpg.




Пример картинки с вебкамеры утром




Пример картинки с аналоговой камеры утром


По фото можно предположить что фото с вебкамеры лучше, «цветнее», но ночью всё меняется. При чем на вебкамере ночное качество максимум что можно вытянуть, а на аналоговой – дефолтные настройки, какие еще можно подергать.




Пример картинки с вебкамеры ночью




Пример картинки с аналоговой камеры ночью


Да и угол обзора у аналоговой больше. Идем дальше.


Так как мощности Raspberry Pi будет мало для компиляции видео, я решил, что лучше будет это делать на стареньком ноутбуке Toshiba Satellite A100.


Подключаемся к ноутбуку по sshfs (мне показалось так проще будет).

Устанавливается он просто:



sudo apt-get install sshfs




и наконец:

sudo echo 'ROOT_PASSWORD' | sshfs root@192.168.1.1:/usr/storage/primary/webcam /home/pi/webcam -o password_stdin


Я не стал мучиться каждый раз вводить пароль и забил эту команду в crontab при перезагрузке. Теперь все картинки с штампом времени в имени файла складируются на ноутбуке, где по крону в 8 утра запускается команда:



mv -a /usr/storage/primary/webcam/. /home/note/webcam


Далее переименовываем все фото по одному шаблону, чтобы их aconv скушал:



ls *.jpg| awk 'BEGIN{ a=0 }{ printf "mv %s cap_%04d.jpg\n", $0, a++ }' | bash




Склеиваем видео:

avconv -i cap_%04d.jpg -c:v libx264 -r 24 -crf 21 test.mkv


Очищаем папку от фото. После этого видео заливаем вручную или автоматически на YouTube и накладываем музыку, чтобы не скучно смотреть было.



Сорри за видео со старой вебкамеры, так как аналоговую только вчера подключил и не успел всё донастроить и склеить видео.




Рабочий вид системы


Примечания




Цены на товары из Китая приведены с сайта Aliexpress в момент покупки.

Raspberry Pi запитан от PowerBank, который подключен к зарядке, что позволяет системе автономно работать при пропадании питания до 4 часов. Правда питание на аналоговую камеру зарезервировано через ИБП.

Перечень ссылок




Скрипт загрузки видео на Youtube

Установка драйверов на wi-fi Ralink

Подключение к wi-fi сети

Монтирование удаленной папки

О FSwebcam

Почему нужно покупать EasyCap именно на чипсете STK1160

У меня всё. Буду рад если кому то будет полезно и интересно.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends:



Комментариев нет:

Отправить комментарий