воскресенье, 2 июля 2017 г.

Компьютерное зрение, распознавание (определение) лиц на Raspberry pi

Большинство задач связанных с компьютерным зрением и распознаванием образов являются весьма нетривиальными т.к. большинство архитектур современных компьютеров плохо подходят для решения таких задач. Однако живые существа имеющие, зрение напр. тараканы, отлично справляются с данными задачами. Увидев человека, таракану не надо много времени чтобы осознать угрозу и рассчитать по алгоритмам положение ближайшей щели в трёхмерном пространстве. Для решения задач связанных с компьютерным зрением используются сложные алгоритмы. Для решения некоторых их них, например распознавание лица на картинке, имеются специальные библиотеки например php-facedetection. Такие библиотеки очень помогают но не решают всех проблем. Чтобы использовать php-facedetection на Raspberry pi нужно сначала установить веб сервер Apache и PHP5 (если они ещё не установлены). Как всегда, сначала надо включить Raspberry PI подав на неё питание потом зайти в терминал кликнув по соответствующему значку или подключившись по SSH с другого компьютера.
После подключения к Raspberry PI нужно произвести обновление системы командами

sudo apt-get update

и

sudo apt-get upgrade

После успешного обновления системы нужно установить сервер (если он не установлен) программу командой:

sudo apt-get install apache2 -y

(о том как отправлять команды на Raspberry pi 3 смотрите на странице http://electe.blogspot.ru/2016/05/raspberry-pi-3-gpio-wifi.html). Установить PHP (если он не установлен):

sudo apt-get install php5 libapache2-mod-php5 -y

после Raspberry pi "превращается" в сервер

Теперь установим графическую библиотеку gd необходимую для работы библиотеки распознавания лица:

sudo apt-get install php5-gd

Перезагрузим сервер командой:

sudo etc/init.d/apache2/ restart

Теперь можно скачать библиотеку php-facedetection с примером и поместить в каталог (папку) html веб сервера apache. Сделать это можно например разархивировав библиотеку с примером на флешку, потом вставить флешку в Raspberry pi и скопировать библиотеку с примером командой:

sudo cp -a /media/pi/B7C6-0C31/php-facedetection-master /var/www/html/

где B7C6-0C31 -название флешки которое появляется в системе после того как эту флешку воткнули в usb порт Raspberry pi. Выяснить это название можно перейдя в соответствующий каталог командой cd /media/pi/ и введя ls после чего выведутся названия файлов и каталогов находящихся в каталоге pi.
Теперь если ввести в браузере (Raspberry pi при этом должен быть подключен к сети по Ethernet кабелю или wifi (лучше использовать Raspberry pi 3 http://ali.pub/1mayv8 т.к. у неё есть встроенный wifi что сильно упрощает жизнь)) IP адрес Raspberry pi то в нём появиться такая картинка на которой лицо будет выделено красным квадратиком.
Если вместо данной фотографии поставить другую с таким же названием то PHP скрипт обработает эту фотографию и выведет лицо красным квадратиком:
Данный скрипт находит только одно лицо.

скрипт из примера можно открыть командой:

sudo nano /var/www/html/index.php

и изменять, по разному, на своё усмотрение, например можно прописать другой путь до фотографии.
Далее можно подключить веб камеру к Raspberry pi, установить fswebcam командой:

sudo apt-get install fswebcam

После этого снимки с вебкамеры можно делать командой:

sudo fswebcam /var/www/html/cam.jpg

После выполнения данной команды фотография под названием cam в формате jpg появиться в каталоге html. Если в скрипте поменять название фотографии на cam.jpg по после перехода в браузере на raspberry pi в окне браузера появиться фотография обработанная скриптом:
Если фотография будет некачественной то скрипт не сможет найти лицо и выделить его квадратиком:
Команду фотографирования веб камерой можно прописать в планировщике задач crontab а скрипт переделать так чтобы он периодически доставал фотографию и обрабатывал её но ничего похожего на видео, таким образом, скорее всего не получиться т.к. скрипт работает медленно. Но тем не менее он хорошо находит лицо на фотографии т.е. успешно справляется со своей задачей.
Купить Raspberry pi 3 http://ali.pub/1mayv8
usb камера http://ali.pub/1mb7z2

КАРТА БЛОГА (содержание)