Face recognition. Python, DLIB

Автор: | 02.01.2020

Tags:  Верификация лица dlib

Введение
Верификация лица с dlib
Полезные ссылки

Введение

В статье Распознавание лиц на основе OpenCV для C++  рассматривается подход к распознаванию на основе признаков, в качестве которых используются расстояния между характерными точками лица.

Альтернативный метод распознавания лиц. Изображение каждого лица обрабатывается уже обученной сверточной нейронной сетью (см. ссылку  или  ссылку), которая выдает на выходе матрицу из 80 чисел (признаков). В базе данных хранятся эти признаки для каждого лица вместе с их идентификатором (FaceId). При распознавании лицо сравнивается с лицами из базы данных по одному числу – дескриптору лица. Это число определяется через Евклидово расстояние. Предполагается, что если значение дескриптора больше 0.6, тогда люди разные. Если число меньше, тогда определяются наиболее вероятные претенденты на совпадение.

Верификация лица с dlib

Биометрическая верификация лица — подтверждение личности человека, когда системе заранее известно, кем представляется верифицируемый человек.

Пример программы верификации лица на основе уже обученной сверточной нейронной сети приводится здесь. Подробное описание программы изложено здесь.

Я работаю с  Python на Visual Studio 17.  Основная проблема возникла у меня с инсталляцией библиотеки dlib. Традиционное pip install dlib выдавало Error c комментарием, что еще не инсталлирован пакет Cmake. Попробовал инсталлировать pip install Cmake. Инсталляция Cmake прошла успешно, однако проблема с инсталляцией  библиотеки dlib осталась. Провел инсталляцию Cmake вне Visual Studio — по описанию, изложенному здесь. После такой Cmake инсталляции  pip install dlib прошло успешно.

Отличие библиотеки  dlib в том, что она написана на языке С++. Для того, чтобы dlib можно было использовать в Python, ее необходимо скомпоновать из исходного кода и выполнить компиляцию (Bilding). Для этого обычно используется система CMake.

Результаты запуска программы:

Brad Pitt (0.44 < 0.6)

Leonardo DiCaprio (0.52 < 0.6)

Brad Pitt and Leonardo DiCaprio (0.69 > 0.6)

Брат и сестра (0.741 >0.6)   Растр —  120*160 точек

Двойнята (сестра и брат) (0.723 >0.6) Растр —  300*400 точек

Братья близнецы (0.352 < 0.6)  Растр —  150*190 точек


Полезные ссылки: