Сегодня мы постоянно слышим в новостях «запущен проект по распознаванию лиц на транспорте», «в кафе NN реализовано распознавание лиц для оплаты», «в компании ZZ организован проход в офис по лицу» и прочие «яркие» заголовки. Кроме того, многие люди привыкли к использованию FaceID на своих смартфонах. Но, как обычно, известное – не есть от того познанное. Начнём с основ, чтобы разобраться в предмете.

Факторы аутентификации

Аутентификация – подтверждение того, что «Я это Я». Все известные способы аутентификации субъекта (субъект – тот, кто действует) относятся к трем классам-факторам:

Фактор 1. То, что человек знает. Имеется в виду обладание уникальной или секретной, информацией: пароль, ответ на вопрос, дата рождения, номер паспорта и т.д.

Фактор 2. То, чем человек владеет. Речь идёт о владении каким-либо предметом, например, документом, ключом от автомобиля, пластиковой картой для прохода, брелоком и т.д.

Фактор 3. То, чем человек является. Под этим подразумеваются неотъемлемые естественные характеристики человека: лицо, отпечаток пальца, подпись (почерк) и многие другие

Мы будем говорить о последнем, третьем факторе аутентификации в применении к решению практических задач.

Что такое биометрия

Когда говорят «биометрия», то имеют в виду технологии, позволяющие измерять, классифицировать и сравнивать естественные, присущие каждому человеку, физические характеристики. В конечном итоге, всё это делается для распознавания человека среди множества других людей (идентификация) или дополнительное подтверждение того, что субъект является тем, кем он себя назвал (аутентификация). Короче говоря, биометрические технологии позволяют определить и подтвердить личность человека, основываясь на определённом наборе данных.

 Какие данные могут быть использованы для достижения этой цели? Перечислю основные требования:

  • Универсальность: данные могут быть получены, или сняты, с любого человека, вне зависимости от возраста, роста, пола, и т.д.

  • Уникальность: получаемый набор данных должен быть уникальным для каждого человека, т.е. необходимо свести к минимуму вероятность нахождения двух разных людей с одними и теми же или близкими данными

Приведу несколько примеров характеристик, или биометрических модальностей, присущих всем людям, но при этом являющихся уникальными для каждого человека:

  • Отпечаток пальца

  • Лицо

  • Голос

  • Рисунок вен ладони

  • Радужка глаза

  • Почерк

  • Походка

Список можно продолжить. При этом в практических задачах, например, для идентификации личности при выполнении платежа или при прохождении паспортного контроля, важны дополнительные требования к биометрическим технологиям:

  • Скорость и простота сбора и обработки: данные должны собираться и обрабатываться достаточно быстро, весь процесс должен занимать секунду. Если процесс занимает больше секунды, это приводит людей в невообразимое раздражение потому, что люди уже привыкли к быстрой работе бесконтактных платежей

  • Стоимость датчиков для снятия биометрических данных и системы их обработки

Характеристики первых трёх биометрических модальностей из списка выше могут быть сняты и обработаны достаточно быстро и относительно просто. Например, для снятия рисунка вен необходим специальный прибор, который сегодня нельзя установить на каждый недорогой смартфон. Несмотря на то, что прибор этот (обычная камера, которая видит чуть шире, чем видимый диапазон) очень прост, ставить его на устройства не принято.

Кроме этого, следует отметить, что для уверенной работы алгоритмов распознавания какого-либо признака человека необходимо, чтобы этот признак был мало подвержен изменениям как с течением времени, так и при наличии различных помех. Например, испачкав палец в краске, им уже нельзя разблокировать устройство при помощи датчика отпечатка пальца; если голос осип, т.е. поменял свой тембр при простуде, становится временно недоступным распознавание человека по голосу.

Некоторые признаки человека крайне мало подвержены изменениям, например, рисунок радужки глаза практически не меняется при жизни человека. Лицо человека меняется со временем, но этот процесс достаточно медленный, и, как правило, непрерывный. Кроме этого, два этих признака (радужка и лицо) мало подвержены случайным изменениям, например, травмам, царапинам и т.д. Таким образом, можно добавить ещё одно требование к биометрическим характеристикам:

  • Устойчивость: данные должны быть неизменны со временем или изменяться очень медленно

Наконец, биометрические технологии можно разделить на контактные и бесконтактные, по принципу снятия данных. Например, при снятии отпечатка пальца, предполагается контакт между частью тела человека и поверхностью прибора, что не всегда удобно. Напротив, для записи голоса или создания снимка (фотографии) лица непосредственного контакта не требуется. Поэтому – ещё одно требование:

  •  Удобство для пользователя: данные должны собираться простым и удобным для пользователя образом (желательно бесконтактно) и не требовать от

пользователя усилий для предоставления его биометрических данных

Таким образом, можно выделить шесть основных требований к биометрическим характеристикам: универсальность, уникальность, стоимость, простота сбора и обработки, устойчивость, удобство.

Остановлюсь на технологиях, позволяющих распознавать человека по лицу, т.е. лицевой биометрии, или facial recognition, поскольку данная биометрическая модальность удовлетворяет в достаточной степени всем выдвинутым нами требованиям.

Идентификация и аутентификация по биометрическим признакам

Важно понимать разницу между двумя понятиями: идентификацией и аутентификацией.

Под идентификацией понимают выделение или нахождение одного объекта среди множества похожих. Человек сталкивается с такой задачей регулярно, например, увидев на экране знакомое лицо актёра, человек сразу идентифицирует его, то есть узнаёт, находит его у себя в памяти, среди многих других знакомых лиц. Узнав актёра по лицу, мы сразу вспоминаем, например, список фильмов с этим актёром, возраст, имя и т.д. Иными словами:

  • Задача идентификации состоит в нахождении объекта по определённому признаку среди многих похожих между собой. Также такую задачу называют сравнением 1:N (один ко многим), где N – это общее количество объектов, по которым идёт поиск.

    Под аутентификацией понимают подтверждение факта сходства полученной характеристики объекта с характеристикой, записанной ранее. То есть, получение ответа на вопрос “действительно ли перед нами Х”? Подобная задача тоже часто встаёт перед человеком: например, увидев на экране телефона имя звонящего “Y”, мы заранее предполагаем, что будем беседовать с Y, однако только услышав знакомый голос, то есть сравнив услышанное с тем, что есть у нас в памяти, мы убеждаемся, что говорим действительно с Y. Иными словами:

  •  Задача аутентификации состоит в подтверждении достаточного сходства объекта со своим образом, записанным ранее. Также задачу называют сравнением 1:1 (один к одному).

    Необходимо отметить, что полное сходство при биометрической аутентификации не может быть достигнуто, так как каждый человек одновременно и равен, и не равен самому себе. Улыбнувшись для фотоснимка один раз, потом невозможно повторить точно такую же улыбку: мельчайшие детали лица всё равно будут другими. Однако, это обстоятельство не мешает успешно проводить надёжную аутентификацию человека по лицу: установив достаточно высокий порог сходства для вынесения решения, можно добиться очень высокой точности. 

Решение задачи распознавания и классификации изображений лица

 В основе современных способов распознавания лица лежат технологии машинного зрения, позволяющие компьютерной программе самостоятельно без помощи человека распознавать и классифицировать определённые детали изображения. Например, возможно выделить человеческое лицо среди многих деталей на снимке (распознавание) и сравнить с уже имеющимися образцами лиц для установления возможного сходства (классификация).

 Разработка отдельных алгоритмов распознавания объектов на изображениях началась ещё в 1960-х годах, но только ближе к концу 1980-х стало возможно использовать значительно возросшие вычислительные мощности для проверки идей, лежащих в основе алгоритмов, на практике. В XXI веке, а именно с середины 2010-х годов повсеместное распространение смартфонов, оснащённых камерами, сделало возможным резкое улучшение качества работы технологии в связи с огромным количеством исходных данных для алгоритмов (фотографий лиц) и устройств, способных выдавать результаты их работы. Согласно исследованиям компании Gemalto, с 2013 года было выпущено 500 моделей смартфонов, поддерживающих распознавание как минимум одной биометрической модальности, а общее количество платежей, произведённых с мобильных устройств достигло почти 2 миллиардов за 2017 год [1], т.е. можно говорить о повсеместном использовании устройств, поддерживающих биометрическую аутентификацию/идентификацию для платежей. 

Весь процесс применения технологий машинного зрения к задаче идентификации человека по лицу можно разделить на три этапа:

  1. Поиск лица на изображении (фотографии)

  2. Выделение черт и характеристик лица для получения биометрического образца

  3. Сравнение образца с хранящимися в базе, или поиск по базе образцов

Рассмотрим основные принципы алгоритмов, лежащих в основе каждого из этапов решения задачи.

Поиск лица на изображении

 Приведу классический алгоритм, лежащий в основе многих современных подходов к решению задача поиска лиц на изображениях; алгоритм, который хорошо описывает сам принцип поиска объектов на фотографиях -- метод Виолы-Джонса, опубликованный в 2001 году [2].

 Алгоритм обладает следующими достоинствами:

  • Устойчивость: большое количество истинно-положительных ответов и очень малое количество ложноположительных

  • Скорость работы

  • Возможность использования алгоритма только для решения задачи нахождения лица на фотографии, без идентификации/аутентификации пользователя

Работа алгоритма начинается с поиска определённых признаков на изображении: на рис.1 изображены 4 различных типа признаков. Значение, присваиваемое каждому из признаков, вычисляется следующим образом: берётся сумма величин всех пикселей светлой области и вычитается из суммы величин всех пикселей закрашенной области. Величиной пикселя может, например, выступать численное значение (номер) цвета, записанное в нём. Таким образом, значением, присвоенным признаку А, может быть разность между освещённостью (яркостью) правой и левой частями прямоугольника.

Пример прямоугольных шаблонов-признаков
Пример прямоугольных шаблонов-признаков

Каким образом может быть такой принцип использован для поиска лиц на изображении? Все человеческие лица имеют более или менее похожие свойства, или черты. Поиск по подобному признаку позволяет найти эти черты на снимках:

  • Область носа всегда светлее, чем область глаз

  • Область глаз всегда немного темнее, чем верхняя часть щёк

шаблон-признак, похожий на нос
шаблон-признак, похожий на нос
шаблон-признак, похожий на область глаз
шаблон-признак, похожий на область глаз

Используя другие прямоугольные шаблоны-признаки, а также шаблоны-признаки разного размера можно составить карту местоположений и размеров черт лица: глаз, рта, носа, границ лица.

Приведём пример работы алгоритма: предположим, мы ведём поиск четырёх признаков с рис. 1 по изображению размером 100 на 100 пикселей. Изображение делится на 25 сегментов, размером 20 на 20 пикселей, и поиск черт ведётся шаблонами такого же размера. Мы поочерёдно накладываем каждый из шаблонов на участок изображения, смотрим получаемое значение, а затем записываем результат в таблицу:

A, 40

B, 51

B, 29

B, 44

B, 23

B, -41

А, -4

B, 322

B, 40

B, -15

B, -5

А, 311

С, -283

А, -309

B, -4

B, -77

С, 5

В, -276

B, 103

C, 87

C, 49

B, 38

B, 40

B, 50

C, 3

На этой карте-таблице в ячейках записан тип шаблона, который получил наибольшее по модулю значение в данном сегменте, а также это значение. Видно, что в центральной части карты находятся сильно выраженные черты, соответствующие определённым шаблонам-признакам, например, весьма вероятно, что в центральной части изображения находится нос.

Вот таков базовый принцип составления карты черт лица на изображении. Можно заметить, что, во-первых, в нём не учитывается, что лица могут быть наклонены как в целом, так и частично, во-вторых, может потребоваться более, или наоборот, менее подробное разбиение изначального изображения, в-третьих элементы разбиения могут пересекаться, и т.д. Все эти замечания учитываются в современных подходах, например, используется большее число шаблонов, составляются более “сильные” классификаторы признаков, как линейные комбинации “простых, слабых” и т.д.

Получение биометрического образца из фотографии

После того, как лицо на фотографии найдено и выделено, можно говорить о переводе изображений лица в биометрический образец, т.е. в такую форму, в которой можно сравнивать её с другими по формальным критериям, автоматическим (машинным) образом. Очевидно, например, что простое попиксельное сравнение двух снимков вряд ли увенчается успехом – помимо различий в мельчайших деталях лица, обязательно будут иметь место различия в условиях съёмки. Поэтому необходимо выделять некий набор черт лица и сравнивать лица уже по этим чертам.

Приведу алгоритм, опубликованный в 1991 году [3], хорошо демонстрирующий основной принцип создания биометрического шаблона: “собственные лица” (по аналогии с собственными векторами).

Сначала формируется набор из изображений, которые используются для обучения, так называемый тренировочный набор. Изображения должны быть сняты в идентичных условиях: при одинаковом освещении, при одинаковом положении головы, и т.д. Также они должны иметь одинаковый размер, например, 100 на 100 пикселей.

Затем все изображения переписываются в векторном виде, то есть создаётся вектор-столбец, в котором записаны значения, взятые из пикселей (номера цветов); таким образом, векторы будут иметь 10 000 компонент каждый. Формируется матрица (таблица) T из вектор-столбцов. После этого необходимо вычислить “среднее” изображение и вычесть его из каждого из векторов-столбцов; можно сказать, что таким образом мы выделяем всё “общее” из каждого изображения и отбрасываем его, оставляя только отличительные черты.

Далее, составляется ковариационная матрица S (неформально говоря, отображающая зависимость изменения компоненты вектора от других компонент) и для неё вычисляются собственные значения и собственные вектора. На деле этот шаг – самый затратный с точки зрения вычислений, но он может быть упрощён поиском собственных векторов S без явного вычисления самой матрицы S.

Каждый полученный в нашем примере собственный вектор будет иметь 10 000 компонент, т.е. сам может быть “расшифрован” как изображение. Эти изображения и формируют базис “собственных лиц”. Т.е., каждое изображение из тренировочного набора, и вообще каждое изображение, удовлетворяющее изначальному формату, может быть теперь записано в форме:

Лицо N = 0.0007 Лица 1 + 0.0002 Лица 2 + 0.0005 Лица 3 + ...

Понятно, что 10 000 собственных значений – это слишком много, и их хранение и использование ничем не отличается от хранения 10 000 пикселей изначального изображения. Поэтому выбираются основные собственные значения и соответствующие им “собственные лица”. Выбор осуществляется сортировкой собственных значений по величине и установлением произвольного порогового значения t для их суммарной вариации, т.е.:

\frac{\lambda_1+\lambda_2 + \dots +\lambda_k}{\lambda_1 + \lambda_2 + \dots +\lambda_n }\geq t

Иными словами, мы выбираем набор собственных значений такой, что их сумма будет значительной частью суммы всех собственных значений (можно установить значение t, например, 0.85). Значение k на практике оказывается относительно небольшим, например, для изображений 100 на 100, оно часто близко к 30.

Теперь можно говорить об основном наборе “собственных лиц”, который содержит наиболее значимые признаки всех лиц из тренировочного набора, а любое изображение лица как из тренировочного набора, так и извне, может быть разложено на компоненты – в виде взвешенного набора (линейной комбинации) “собственных лиц”. Т.е., любое изображение лица может быть представлено в виде вектора из, например, 30 компонент (а1, а1, …, а30). В таком виде его уже можно хранить и сравнивать с другими по формальным критериям, это и будет биометрический образец.

Следует дополнительно отметить два момента: во-первых, не имея доступа к набору “собственных лиц”, нельзя воссоздать изображение лица по биометрическому образцу. Во-вторых, “собственные лица”, переведённые в изображение, не всегда даже и похожи на лица в обычном понимании:

пример “собственных лиц” от AT&T Laboratories
пример “собственных лиц” от AT&T Laboratories

Данный алгоритм, безусловно имеет свои недостатки, например, почти всегда главными собственным значениями становятся те, которые отвечают за освещённость, он плохо справляется с выражениями лица, очень зависит от условий съёмки. Однако, он хорошо показывает общий подход к формированию биометрических образцов по изображениям лица. 

В современных решениях по идентификации человека по лицу используются, в основном, подходы, основывающиеся на глубоком обучении (deep learning), в которых многие шаги выполняются неявно при помощи нейронных сетей, к примеру, составление набора черт лица, взвешенный набор которых и будет составлять биометрический образец. Поэтому алгоритмы в целом, и форматы образцов в частности, варьируются от решения к решению; многое определяется качеством (разнообразием, величиной) набора лиц, на котором обучается решение, архитектурой нейронной сети и другими параметрами.

Поиск и сравнения в базе биометрических образцов 

Как я уже писал, биометрический образец представляет собой вектор характеристик лица, на данный момент у многих известных решений он состоит из порядка 100 компонент (значений). Иными словами, биометрический образец являет собой точку в, допустим, 100-мерном пространстве. Теперь, каким образом, сделав снимок на камеру смартфона, можно определить, какой человек изображён на фотографии?

Сперва с фотографии выделяется изображение лица человека, затем изображение переводится в биометрический образец-вектор. Затем вектор пересылается на сервер распознавания, где хранятся записи образцов для разных пользователей. Если представить себе образец как точку в 100-мерном пространстве, то вопрос “какой человек изображён на снимке?” эквивалентен вопросу “какая точка является ближайшей к данной для сравнения?”. Близость между точками может определяться разными способами, в зависимости от алгоритма, например, это может быть обычное евклидово расстояние между точками. Таким образом, найдя ближайшую точку (ближайший вектор) к данной для сравнения, мы будем знать, на кого более всего похож человек, лицо которого изображено на фотографии.

Для каждого пользователя в базе может храниться несколько образцов для последующего сравнения, тогда можно говорить о попадании вектора в некую область 100-мерного пространства, отождествляемую с определённым пользователем. Таким образом, можно ответить на вопрос “является ли человек тем, за кого себя выдаёт?”, т.е. произвести аутентификацию. На нашем языке вопрос будет звучать как “попадет ли вектор-образец в нужную область?”.

Качество работы алгоритмов можно оценить, например, по количеству верных идентификаций. Установив высокий порог сходства -- уменьшив допустимую для вынесения решения “это один и тот же человек” дистанцию между сравниваемыми образцами, можно добиться очень малого количества ошибок первого рода, или ложных допусков. Однако, очевидно, это приведёт к значительному росту количества ошибок второго рода -- ложных отказов. Алгоритм тем лучше, чем более сбалансированы у него эти ошибки, иными словами он выдаёт допустимо малое количество ошибок и первого, и второго рода.

В следующей статье я рассмотрю способы оценки решений, а именно, как посчитать, какой алгоритм лучше справляется с задачей идентификации и аутентификации.

Никита Лукьянов

аналитик-разработчик Департамента Инноваций НСПК

Ссылки: 

[1] https://www.gemalto.com/biometrics

[2] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.10.6807

[3] https://www.cin.ufpe.br/~rps/Artigos/Face%20Recognition%20Using%20Eigenfaces.pdf

Комментарии (8)


  1. yoz
    08.10.2021 18:32

    Самый больной вопрос биометрии сегодня — безопасность. И хранения, и использования.


    1. africaunite
      09.10.2021 01:23

      Судя по фразе - Вы про аутентификацию ради авторизации. Т.е. тот вариант, где Вы используете лицо для оплаты в кафе, прохода через турникет и т.п. Там, где вы хотите быть уверены, что деньги спишутся с Вашей карты только при личной аутентификации, или в дом не проберется чужой.

      Тут нужно понимать, что ключ - это Ваше лицо. Система же создает и хранит у себя "замок-отпечаток". Причем каждая создает его по своему - процесс глубокого обучения не стандартизирован (и не может) - а значит и применяет, при визите, Ваш ключ к собственному нестандартному "замку", также, по особенному.

      Но допустим, что кто-то украл такой замок и вместе с ним и всю систему (иначе он бессмысленен).

      Что произойдет дальше? Злоумышленник повесит его на дверь, которая была для вас закрыта и теперь Вы сможете ее открыть? Может проще было и не закрывать?

      Есть другое применение - использовать "отпечатки" лиц для распознавания там, где нет дверей, чтобы найти человека в толпе, например.

      Но с изобретением фотографии, т.е уже давно, получить "лицо" не сложно, и предотвратить злоупотребление таким сценарием можно только договорившись (запретив законом). Сопоставлять каждое лицо в толпе миллионам отпечатков - также (пока) достаточно затратная задача без внятного применения (но надо признать, что теперь стенд "Их разыскивают" может иметь гигантские размеры, да).

      В любом случае, для такой системы не нужны непонятные ей замки сторонних производителей, проще, быстрее (миллисекунды) и надежнее создать свой вариант, имея обыкновенное фото в дополнение к интересующей создателей, по контексту, информации.

      Но безопасность хранения любых данных - вопрос архиважный, это бесспорно.


      1. MrBFan Автор
        11.10.2021 09:36

        Прошу Вас излагать свои мысли яснее. Что такое "аутентификация ради авторизации", "личная аутентификация", бывает неличная, безличная или ещё какая?

        Что такое "замок-отпечаток"? Это Вы так назвали биометрический шаблон, который хранится в системе для последующих сравнений?

        Что Вы вообще хотели сказать, я просто не понял Ваш посыл.


        1. africaunite
          11.10.2021 21:09

          Да, прошу прощения, личная аутентификация = личное присутствие.

          По поводу остального - прошу Вас не беспокоиться. Аллегории. Адресованные не Вашему вниманию.


  1. redneko
    09.10.2021 00:53
    +1

    Выражение "торговать лицом" (с примением более обсценной лексики, конечно) в 21 веке выходит на новый уровень.

    Один вопрос интересует - что мешает покупателю в магазине в момент оплаты быстро пригнуться или сместиться вбок от камеры, чтобы она сфокусировалась на следующем человеке в очереди? Или же есть какая-то защита в виде попытки изобразить какую-либо эмоцию по запросу?


    1. MrBFan Автор
      11.10.2021 09:42

      Это совсем просто -- покупатель должен находиться на определённом расстоянии от камеры. У нас в НСПК есть такой киоск самообслуживания, для того, чтобы начался процесс проверки лица, необходимо, чтобы расстояние от кончика носа до камеры было примерно 70 см. Если лицо находится ближе или дальше, киоск просит подойти/отойти; для определения расстояния даже дальномер не нужен: достаточно проверять размер лица в пикселях. Поэтому никак невозможно, что бы кто-то пригнулся, а камера сфокусировалась на другом человеке: этот второй всегда будет вне зоны проверки.


      1. redneko
        11.10.2021 09:43

        Спасибо большое за развёрнутый ответ!


  1. MrBFan Автор
    11.10.2021 09:48

    Добавлю: чуть позже я выпущу ещё одну статью, где более подробно рассмотрен вопрос проверки на живое присутствие. Без неё, разумеется, многие биометрические модальности легко компрометируются, т.е. взламываются, например, можно напечатать фото и предъявить его вместо себя.