Если задача пилить аттенданс или авторизацию по лицу прямо внутри Laravel-монолита, тащить Python-микросервис избыточно. Расширение php-dlib подгружает модели Dlib и отдаёт 128-мерные эмбеддинги без посредников.
Пайплайн на четыре шага
— ставим расширение из релизов mailmug/php-dlib и прописываем путь в php.ini;
— качаем три .dat-модели (детектор CNN, 5-point landmarks, ResNet recognition);
— на этапе enroll прогоняем фото через детектор → ландмарки → дескриптор, сериализуем в faces.db;
— на recognize считаем евклидово расстояние, порог 0.6 отсекает чужих.
Ядро энролла:
$faces = $fd->detect($img);
$landmarks = $fld->detect($img, $faces[0]);
$descriptor = $fr->computeDescriptor($img, $landmarks);
$database[$name] = $descriptor;
Ландмарки тут не для красоты: без выравнивания по глазам дескриптор плывёт, и матчинг ловит ложные срабатывания на похожих лицах.
📂 Скачать исходники
Библиотека пхпшника