Facial Recognition
Распознавание лиц идентифицирует или подтверждает личность людей, сравнивая эмбеддинги лиц. Как работает конвейер, чем проверка личности отличается от идентификации, предвзятость и приватность.
Распознавание лиц — биометрическая технология, которая идентифицирует или верифицирует человека, сравнивая изображение его лица с сохранёнными изображениями. Современные системы используют глубокое обучение, чтобы преобразовать каждое лицо в эмбеддинг — вектор чисел, который часто называют шаблоном лица, — и определяют, принадлежат ли два лица одному человеку, по сходству их эмбеддингов. Эта технология позволяет разблокировать телефоны, ускоряет проход пассажиров через аэропортовые турникеты и проверяет клиентов, открывающих банковские счета онлайн. Кроме того, это одно из наиболее регулируемых применений компьютерного зрения, поскольку лицо можно захватить без ведома человека.
Как работает распознавание лиц#
Система распознавания выполняет для каждого изображения четыре этапа:
- Детекция: детектор лиц находит каждое лицо и возвращает его ограничивающую рамку и несколько лицевых ориентиров.
- Выравнивание: лицо поворачивается, масштабируется и обрезается так, чтобы глаза, нос и рот располагались в фиксированных местах. Это устраняет большую часть вариаций, связанных с положением головы и расстоянием.
- Кодирование с помощью CNN: сеть преобразует выровненный фрагмент изображения в эмбеддинг фиксированной длины.
- Сопоставление по косинусному сходству: новый эмбеддинг сравнивается с зарегистрированными эмбеддингами, а пороговое значение определяет, совпадают ли они. В крупных системах зарегистрированные шаблоны лиц хранятся в векторной базе данных для быстрого поиска.
Детекция лиц — задача детекции объектов; модель Ultralytics YOLO26, дообученная на наборе данных лиц, например WIDER FACE, может выполнять её в реальном времени на периферийных камерах и передавать рамки лиц на следующие этапы. До глубокого обучения системы полагались на созданные вручную признаки — от расстояний между ориентирами лица до собственных лиц и локальных бинарных шаблонов. Их заменили обучаемые эмбеддинги, поскольку они намного устойчивее к освещению, выражению лица и возрасту. В 2015 году FaceNet напрямую обучала компактные 128-мерные эмбеддинги с помощью триплетной функции потерь, а функции потерь на основе отступа, например ArcFace, теперь сильнее раздвигают эмбеддинги разных людей. Этап сопоставления решает две разные задачи:
Верификация (1:1) определяет, принадлежит ли лицо заявленной личности, например когда телефон распознаёт владельца. Идентификация (1:N) выполняет поиск по всей галерее, например когда система контроля доступа сопоставляет лицо со всеми зарегистрированными сотрудниками. Модели из OpenCV Zoo выполняют весь конвейер всего в несколько строк кода. Этот код регистрирует лица на изображении, а затем идентифицирует лица на его зеркально отражённой копии по этой галерее.
import urllib.request
import cv2
# Download OpenCV Zoo's face detector (YuNet), face recognizer (SFace), and a test image
zoo = "https://github.com/opencv/opencv_zoo/raw/main/models"
urllib.request.urlretrieve(f"{zoo}/face_detection_yunet/face_detection_yunet_2023mar.onnx", "yunet.onnx")
urllib.request.urlretrieve(f"{zoo}/face_recognition_sface/face_recognition_sface_2021dec.onnx", "sface.onnx")
urllib.request.urlretrieve("https://ultralytics.com/images/bus.jpg", "bus.jpg")
img = cv2.imread("bus.jpg")
detector = cv2.FaceDetectorYN.create("yunet.onnx", "", (img.shape[1], img.shape[0]))
recognizer = cv2.FaceRecognizerSF.create("sface.onnx", "")
# Enroll each detected face as an aligned 128-D embedding
gallery = [recognizer.feature(recognizer.alignCrop(img, face)) for face in detector.detect(img)[1]]
# Identify the faces of a mirrored copy against the gallery (SFace match: cosine >= 0.363)
mirror = cv2.flip(img, 1)
for face in detector.detect(mirror)[1]:
probe = recognizer.feature(recognizer.alignCrop(mirror, face))
print([round(recognizer.match(probe, g, cv2.FaceRecognizerSF_FR_COSINE), 2) for g in gallery])Код выводит [0.87, 0.06] и [0.09, 0.89]: сходство каждого отражённого лица со своим зарегистрированным эмбеддингом намного выше порога 0,363, а с эмбеддингом другого человека — намного ниже.
Распознавание лиц и смежные понятия#
- Обнаружение лиц: определяет положение лиц на изображении, но не устанавливает, кому они принадлежат; это первый этап распознавания, а также основа автофокусировки камеры и размытия лиц.
- Анализ лиц и аффективные вычисления: Оценивают такие атрибуты, как выражение лица, положение головы или возраст, не устанавливая личность человека.
- Повторная идентификация объектов (Re-ID): Сопоставляет людей по всему телу, например по одежде, между камерами. Метод работает при съёмке со спины и низком разрешении, но только на коротких промежутках времени.
Примеры применения в реальных условиях#
- Разблокировка устройства: Телефоны распознают владельца за доли секунды; Face ID от Apple проецирует более 30 000 инфракрасных точек, чтобы построить карту глубины, которую нельзя имитировать распечатанной фотографией.
- Путешествия и пограничный контроль: Автоматические электронные турникеты сравнивают фотографию путешественника в реальном времени со снимком, хранящимся на чипе его электронного паспорта.
- Верификация личности: Банки и онлайн-сервисы при открытии счёта сравнивают селфи с фотографией в государственном удостоверении личности, дополняя проверку тестами на живое присутствие.
- Организация фотографий: Приложения для фотографий группируют лица в личной библиотеке, чтобы пользователи могли найти все снимки члена семьи.
Точность, предвзятость и подмена личности#
Каждая система представляет собой компромисс между двумя ошибками: ложное совпадение принимает за нужного не того человека, а ложное несовпадение отклоняет нужного человека. Баланс между ними задаёт порог сходства. Оценка технологий распознавания лиц NIST (FRTE), ранее называвшаяся FRVT, сравнивает коммерческие алгоритмы на миллионах изображений. Исследование 2019 года, охватившее 189 алгоритмов от 99 разработчиков, выявило у большинства из них различия между демографическими группами по частоте ложноположительных результатов. Это наглядный пример алгоритмической предвзятости. Распознавание можно обмануть фотографиями, воспроизведением изображения на экране и масками, поэтому в производственных системах применяют обнаружение атак с предъявлением, которое часто называют проверкой живого присутствия. Для этого используют датчики глубины, инфракрасные датчики или анализ малозаметных движений.
Конфиденциальность и регулирование#
Шаблоны лиц относятся к биометрическим данным, поэтому законы считают их крайне чувствительными персональными данными. Согласно GDPR, биометрические данные, используемые для идентификации человека, относятся к особой категории и требуют чёткого правового основания; закон штата Иллинойс о конфиденциальности биометрической информации требует письменного согласия до сбора компанией шаблона лица. Закон ЕС об искусственном интеллекте устанавливает ещё более строгие требования: с 2 февраля 2025 года он запрещает создавать базы данных распознавания лиц посредством неизбирательного сбора изображений из интернета или систем видеонаблюдения, а также использовать удалённую биометрическую идентификацию в реальном времени в общественных местах для правоохранительных целей, за исключением нескольких строго определённых случаев.










