Система распознавания лиц
- Категория: Умный/безопасный город
- Цена: 300000 рублей без ограничений по количеству камер и лиц
- Доработки под задачу: По запросу
Обзор системы
Система распознавания лиц, построенная на базе алгоритмов компьютерного зрения позволяет автоматически сравнить входное лицо с лицами из базы данных и определить, есть ли этот человек в базе данных и если да, то что это за человек.
Процесс распознавания состоит из следующих этапов:
- Детекция лица: нахождение прямоугольников (боксов), в которых есть лица. Используется быстродействующая модель YOLOv8n. Также на этом же этапе детектор находит ключевые точки лица (точки носа и глаз).
- Выравнивание лица: найденные боксы с лицами нужно вырезать и каждое лицо выровнять так, чтобы голова не была повернута. Угол поворота головы определяется на основе найденных детектором ключевых точек лица.
- Выделение числовых признаков лица. Для этого используется легковесная модель-экстрактор вектора признаков лица: MobileFaceNet, обученная с помощью лосса ArcFace. На вход ей подается выровненное лицо, и она выдает вектор чисел ("слепок") лица. Такую операцию можно сделать для каждого лица, т.е. отобразить каждое лицо в вектор чисел.
- Поиск заданного лица в базе данных. Для этого возьмем "слепок" нашего текущего лица и будем сравнивать его со "слепками" из базы данных. Т.к. "слепок" лица — это вектор чисел, то простыми операциями сравнить лица нельзя. В итоге для сравнения используется косинусное расстояние, которое выдает одно число, показывающее насколько лица близки друг к другу. Если полученное число меньше заданного порога, то считается, что лица совпали.