Как работает распознавание лиц.
Вы знаете, что в толпе знакомое лицо вы можете распознать с точностью до 97, 53%? Ну, а с современными алгоритмами в последние несколько лет достигли практически совершенства! 100%.
Технологии машинного зрения и распознавания лиц развивались очень активно с середины прошлого века. Но только сейчас стали по-настоящему хорошо работать. Причин тому три:
- Появились действительно мощные компьютеры, способные справиться с задачей.
- Появились базы данных с нашими с вами фотографиями.
- Ну и конечно, произошел прорыв в области нейросетей.
Как работает система распознавания лиц?
1 обнаружение.
Для обнаружения лица используется очень простой метод виолы - Джонса, разработанный еще в 2001 году.
Этот алгоритм просто сканирует изображение при помощи вот таких прямоугольников, они называются примитивами хаара (см на фото. Задача этих объектов - находить более светлые и темные области на изображении, характерных конкретно для человеческих лиц.
2 антропометрические точки.
Получив область для анализа, дальше в дело вступает главный секрет каждой системы распознавания - биометрический алгоритм.
Он расставляет на лице антропометрические точки, по которым впоследствии и будут вычисляться индивидуальные характеристики человека: разрез глаз, форма носа, подбородка, расстояние между ними и прочее. Таких признаков может быть много, вплоть до нескольких тысяч. Но в целом, таких точек должно быть как минимум 68 (см на фото.
3 исправление искажений.
А дальше начинается настоящая магия. В идеале нам нужно лицо, которое смотрит анфас, то есть прямо в камеру. Но такая удача бывает редко, особенно если речь идет о распознавании человека в толпе.
Поэтому система производит дополнительное преобразование изображения: устранятся поворот и наклон головы. А также проводится 3D-реконструкция лица из 2D-изображения. Таким образом, даже если человек на изображении смотрел вбок, мы всё равно можем получить четкий фронтальный снимок, что существенно повышает качество распознавания (см на фото.
4 вектор лица.
Ну а дальше происходит самое главное. В бой вступает нейросеть, которая присваивает каждому лицу вектор признаков. Что это такое?
По сути, это просто какое-то число, которое складывается из суммы характеристик лица: расстояний между опорными точками, текстуры определенных областей на лице и прочее. Таких характеристик может быть множество. Основное правило: они должны описывать лицо независимо от посторонних факторов: макияжа, прически, возрастных изменений.
5 идентификация ну, а дальше остаётся сравнить полученный вектор с базой других векторов. И готово. Система идентифицировала вас.