Эксперимент
Дислеймер: это эксперимент!
Использованы материалы:
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 смотрите в моей предыдущей теме.
Санкт-Петербург, Россия
На форуме: C_3AXAPOB