C_3AXAPOB

<<< Back

Детектор лиц на PHP без использования OpenCV

Эксперимент

Дислеймер: это эксперимент!

Использованы материалы:
https://github.com/felixkoch/PHP-FaceDetector
https://www.ab-log.ru/smart-house/video_camera_sec...

Для определния лица используется метод Виолы—Джонса (англ. Viola–Jones object detection) — алгоритм, позволяющий обнаруживать объекты на изображениях в реальном времени. Подробней тут https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D... я так понял, что этот же метод использует OpenCV и файл haarcascade_frontalface_default.xml (о котором ниже) оттуда.

Сразу замечу, что метод не 100 процентный и работает по моим наблюдениям в ~80 процентах случаев.
У меня был случай когда за лицо был принят элемент обстановки.
Алгоритм может определять несколько лиц на снимке.

Нам понадобятся два файла:
FaceDetector.php - библиотека
haarcascade_frontalface_default.xml
скачать их можно тут:
https://github.com/felixkoch/PHP-FaceDetector
поместить их надо в папку var/www/lib/

Так как я использую камеры подключенные через простые устройства то покажу на их примере. У меня камера привязана к датчику движения и при движении в комнате вызывается метод takeSnapshot.

Есть камера в простых устройствах -объект Camera01 у объекта есть метод takeSnapshot.
В методе takeSnapshot пишем

include("FaceDetector.php");
$dir='http://192.168.2.13/cms/images/'; //тут соответственно под себя переписываем
$snap=$dir.gg('Camera01.snapshot');
$detector = new FaceDetector();
$detector->scan($snap);
$faces = $detector->getFaces();
if(count($faces) > 0) {
say("Вижу лицо!",2); //count($faces) говорит о том сколько лиц на фото определено. Таким образом, можно определить сколько человек в комнате.
} else {
//say("Нет лиц!",2);
}

Далее лицо можно идентифицировать-распознать используя библиотеку FANN о том как это сделать написано тут https://www.ab-log.ru/smart-house/video_camera_sec...
О том как установть FANN смотрите в моей предыдущей теме.

Discuss (2) (4)

See also:
2018-07-04 Создание и управление 3D сценой (Обновено!)
2018-05-29 Нейроуправление выключателем

Санкт-Петербург, Россия