Технологии
Как работает распознавание лиц: от пикселей до вектора
Камера видит человека за полсекунды до турникета. За это время система должна решить: пускать или нет. Внутри происходит не магия и не «сравнение фотографий» — там цепочка из четырёх-пяти отдельных шагов, и каждый можно сломать по-своему. Разберём, как работает распознавание лиц на самом деле, без формул и без маркетинговой пыли.
Лицо — это не фотография, это вектор чисел
Главное, что стоит уложить в голову сразу: система не хранит ваше фото и не «смотрит» на него глазами. Она превращает лицо в строку из чисел — биометрический шаблон, или вектор. Обычно это 128, 256 или 512 чисел. Грубо говоря, лицо ужимается до точки в пространстве с сотнями измерений.
Два снимка одного человека дают две очень близкие точки. Два разных человека — точки далеко друг от друга. Всё распознавание сводится к одному вопросу: насколько близки две точки? Дальше — детали, как мы до этой точки добираемся.
Шаг за шагом: что происходит между кадром и решением
Конвейер почти всегда одинаковый, меняется только начинка:
- Детекция. Сначала надо понять, есть ли в кадре лицо вообще и где оно. Детектор обводит лицо рамкой. На этом шаге система ещё не знает, кто это — только что это лицо.
- Выравнивание (alignment). Лицо в кадре повёрнуто, наклонено, снято снизу. Алгоритм находит опорные точки — углы глаз, кончик носа, уголки губ — и разворачивает картинку в «анфас». Без этого шага один и тот же человек с наклоном головы превратился бы в «другого».
- Извлечение шаблона. Нейросеть-энкодер прогоняет выровненное лицо и выдаёт тот самый вектор из сотен чисел. Это сердце системы.
- Сравнение. Полученный вектор сравнивается с теми, что уже лежат в базе. Считается расстояние между точками.
- Решение по порогу. Если расстояние меньше заданного порога — «свой», шлагбаум открывается. Больше — «чужой».
Сломаться может любой этап. Плохой свет губит детекцию. Сильный поворот головы — выравнивание. Грязная камера — извлечение. А неудачно выставленный порог превращает систему то в проходной двор, то в вышибалу, который не пускает своих.
Порог — это всегда компромисс
Порог — самая недооценённая настройка. Поставишь жёстко — система начнёт отшивать сотрудников, которые просто побрились или надели очки. Ослабишь — пустит похожего человека. Идеального значения не существует, потому что под капотом всегда живут две ошибки.
- FAR (False Acceptance Rate) — система пустила чужого, приняв его за своего. Ошибка про безопасность.
- FRR (False Rejection Rate) — система не узнала своего и не пустила. Ошибка про удобство.
Эти двое тянут одеяло в разные стороны. Закрутишь порог ради безопасности — вырастет число отказов своим. Ослабишь ради удобства — поползут ложные пропуски. Поэтому на банковском хранилище и на проходной фитнес-клуба пороги выставляют по-разному: цена ошибки не та.
Отдельная головная боль — двойники и близнецы. Однояйцевые близнецы дают почти одинаковые векторы, и тут честная биометрия упирается в физику: различить их по геометрии лица почти невозможно. Помогают только дополнительные факторы — карта, пин, второй признак.
Liveness: чтобы фото на телефоне не открыло дверь
Распознать лицо — полдела. Надо ещё убедиться, что перед камерой живой человек, а не его фото с чужого телефона, распечатка или видео с экрана. За это отвечает liveness detection — проверка «живости».
Подходы делятся на два лагеря:
- Активный liveness. Систему просят моргнуть, повернуть голову, проследить взглядом за точкой. Надёжно, но раздражает на потоке — на турникете в час пик никто не хочет «поморгать в камеру».
- Пассивный liveness. Человек ничего не делает, а алгоритм сам ловит признаки подделки: отблеск экрана, плоскую текстуру распечатки, неестественную глубину, муар от матрицы. Для пользователя это незаметно — он просто подходит и проходит.
Хорошие системы добавляют ещё инфракрасную или 3D-камеру: у плоской фотографии нет объёма, и глубинный сенсор это видит мгновенно. Маски — отдельный фронт борьбы: качественная силиконовая маска обманывает простой liveness, поэтому на серьёзных объектах ставят мультиспектральные камеры и проверку микродвижений кожи.
Точность: почему «99%» почти ничего не значит
Цифру «точность 99,9%» любят на слайдах, но в вакууме она пустая. Точность зависит от того, на ком и в каких условиях измеряли. На датасете из тысячи лиц при идеальном свете — одно. На уличной камере под дождём, против солнца, с потоком в сотни человек в час — совсем другое.
Что реально влияет:
- Свет. Враг номер один. Контровой свет в окне за спиной — и лицо превращается в чёрный силуэт.
- Ракурс камеры. Камеру вешают высоко, человек смотрит вниз — выравнивание работает на пределе.
- Размер базы. Чем больше людей в базе, тем выше шанс, что найдётся «случайно похожий» и порог придётся ужесточать.
Поэтому честный разговор о точности — это всегда «точность на вашем объекте с вашими камерами», а не цифра из брошюры. Тот же принцип работает и в других задачах видеоаналитики — например, в обнаружении дефектов условия съёмки решают не меньше, чем сама модель.
Приватность и 152-ФЗ: что именно хранится
Частый страх: «теперь моё лицо лежит в чужой базе». На практике хранится не фотография, а тот самый вектор — набор чисел. По нему нельзя восстановить узнаваемый портрет так, чтобы «распечатать и узнать». Это не делает его безобидным, но меняет картину: утечка шаблонов — не то же самое, что утечка альбома фотографий.
Важные вещи, которые стоит держать в голове:
- Биометрия в России — это персональные данные особой категории, и работа с ней регулируется 152-ФЗ. Нужно согласие человека, а сами шаблоны положено хранить защищённо и отдельно.
- Грамотная система держит шаблоны зашифрованными и не гоняет «сырые» фото по сети без нужды.
- У человека должно быть право отозвать согласие и потребовать удаления своих данных.
Хорошая инженерная привычка — собирать и хранить ровно столько, сколько нужно для задачи, и не превращать проходную в архив биографий.
Где это реально работает
Чаще всего распознавание лиц закрывает две приземлённые задачи:
- Доступ. Проход через турникет, на парковку, в серверную — без карт, которые теряют и передают друг другу. Подробнее — распознавание лиц для доступа и учёта.
- Учёт рабочего времени. Система фиксирует, когда человек реально пришёл и ушёл, и не даёт «отметиться за друга». Бонусом — табель собирается сам, без вахтёра с тетрадкой.
Рядом живут смежные технологии: распознавание номеров для въезда транспорта и другие сценарии видеоаналитики, где камера из «глаза охранника» превращается в источник данных. Лицо — лишь один из признаков, но самый удобный там, где человек и так идёт лицом к камере.
Если свести всё к одной мысли: распознавание лиц — это не «сравнение фоток», а аккуратный конвейер от пикселей к вектору и от вектора к решению по порогу. Понимаешь конвейер — понимаешь, где он сломается и сколько будет стоить ошибка.
// связанные услуги
Хотите так же на вашем объекте?
Покажем видеоаналитику на ваших камерах и рассчитаем окупаемость. Бесплатно.