Обзор
Концепция обнаружения живого: метод, в результате применения которого объект «живое существо» (реальный человек) должен быть обнаружен непосредственно через камеру; изображение, видимое на экране, получаемое через фронтальную камеру, не является фотографией печатного объекта, фотографией, отображаемой на телефоне, или предварительно записанным видео. «Подделка» относится к несанкционированному отображению искусственных копий части биометрических данных, таких как лицо, отпечаток пальца или радужная оболочка, в биометрическую систему для получения незаконного доступа к этой системе (рис. 1) [1].
Рис. 1. Иллюстрация фотографии реального лица (live), изображение лица, напечатанного на бумаге (printed 1, 2), и изображение лица, отображенного на экране (display 1, 2)
«Сопоставлением лиц» называется сравнение лиц, изображения которых представлены в виде фотографий, и лиц, снятых непосредственно для проверки, является ли лицо на двух представленных изображениях лицом одного и того же человека или нет. Эта аутентификационная работа была проведена в рамках различных методов защиты от спуфинга.
Цель этой статьи – изучить решения, созданные для противодействия использованию фальшивых человеческих лиц. Данная статья также включает в себя содержание, посвященное оценке преимуществ и недостатков решений и предложению новых решений для применения 3D-камер. Предложения о методе, подходящем для каждого конкретного условия, также даются пользователям на выбор.
Метод проверки моргания глаз
Пользователь держит телефон и непрерывно около 10 секунд снимает себя на видео, система непрерывно проверяет, моргает он или нет. Если человек на видео моргает, это означает, что он реален, если этот человек не моргает, то будет сообщено об ошибке распознавания. Метод обнаружения моргания измеряет внутреннее движение лица. В конечном итоге фотография не может моргать. Решение проверки моргания глаз состоит в необходимости обнаружения лица с помощью библиотеки «face dlib», на лице будет 68 фокусных точек, с некоторыми точками вокруг глаз, расстояние между точками будет больше, когда глаза открыты, и меньше, когда глаза закрыты (рис. 2) [2, 3]. Для расчета используется следующая формула (eye aspect ratio – EAR):
Рис. 2. Вверху слева: Изображение маркеров глаз при открытых глазах. Вверху справа: Изображение глазных ориентиров при закрытых глазах. Внизу: График соотношения сторон глаз с течением времени. Уменьшение соотношения сторон глаза указывает на моргание
Рис. 3. Иллюстрация требований к пользователю
Рис. 4. Базовый пример оператора LBP8,1
Оценка преимуществ. Система проста, удобна в реализации, может быть установлена на мобильные устройства и не требует установки другого вспомогательного оборудования. С другой стороны, данные можно легко подделать с помощью предварительно записанного видео, если в видео есть мигающий момент, он все равно может быть принят системой, и таким образом тест будет пройден. Эти системы неудобны для пользователей, так как им требуется проведение большого количества попыток для непосредственного обнаружения живых объектов.
Аналогичная техника направлена на расширение зрачков глаза, заставляя экран темнеть, а затем внезапно мигать. Этот метод эффективен при обнаружении фальсификаций.
Метод обнаружения живого, основанный на запросе-ответе
М.Х. Алиа в [4] и Зун и др. в [5] придумали метод запроса пользователя на выполнение некоторой случайной инструкции, а затем проверенного ответа, чтобы подтвердить, были ли инструкции выполнены или нет.
Некоторые из этих проблем могут заключаться в том, чтобы повернуть голову, закрыть глаза, высунуть язык и т.д. Используя эти методы, можно проверить, поворачивает ли пользователь голову в направлении случайного вызова (рис. 3).
Эти вызовы могут повторяться несколько раз в зависимости от уровня безопасности администратора. Для определения направлений вращения лица используется распознавание лиц для проверки точек на лице [6] методом SVM classify [7] или методом CNN classify [8, 9].
Для практической реализации в реальном времени этим системам может потребоваться от пользователей выполнение дополнительных действий, таких как поворот влево при чтении случайных чисел, отображаемых на экране. Система будет иметь дополнительную обработку звука, чтобы подтвердить, соответствует ли он звучанию цифр на экране или нет {один, два, три, четыре,.. девять}.
Оценка. Этот метод легко реализовать на мобильных устройствах, поскольку не требуется никакого дополнительного оборудования. Случайная операция для высокоточной аутентификации. Однако этот метод также имеет проблемы, когда пользователь неправильно выполняет операции, запрашиваемые системой, или система распознает их с низкой точностью. Иногда пользователям приходится выполнять несколько действий, потому что обученная модель CNN использует слишком высокий порог точности. Эта проблема может быть неприятной для пользователей.
Система использует метод классификации объектов
1. Классификация использует LBP
Область изображения лица подразделяется на несколько областей. Для каждой области вычисляются параметры LBP по следующему методу [10]: Для области изображения 3×3 значение LBP8.1 вычисляется следующим образом. Пиксели определяются в центре с восемью окружающими ячейками. Двоичные значения вычисляются данным методом. Для области двоичного изображения, если какое-либо значение ячейки больше значения центральной ячейки, значение ячейки будет равно 1, и в любом другом случае оно будет равно 0. Затем двоичное строковое значение этих восьми ячеек преобразуется в десятичное. На следующем шаге система перепишет это значение с положением соответствующего центрального пикселя в изображении LBP (рис. 4).
После получения двух матриц изображений будет вычислена разница между исходной матрицей изображений и матрицей изображений LBP и получены значения, представляющие глубину изображения. Ожидается, что фотографии, сделанные непосредственно от реальных людей, будут иметь значение LBP, отличное от фотографий, сделанных с плоских фонов, таких как бумажные фотографии или фотографии, отображаемые на экране телефона, компьютера.
Оценка. Этот метод все еще может вводить в заблуждение, поскольку при различных условиях освещения результирующее изображение будет иметь различное значение (например, отсутствие света, избыток света, подсветка) или изображение, напечатанное с высоким качеством. Преимущество этого метода заключается в том, что он не требует дополнительного оборудования, легкий алгоритм может быть запущен даже на мобильных устройствах.
2. Метод использования сети CNN для классификации
Система захватывает несколько изображений лица и проверяет их на изменения и естественное движение. Движущиеся 3D-грани отличаются от 2D-изображений, и сложные алгоритмы в системах с моделями CNN [8, 9] могут обнаружить это различие [1]. Авторы обнаружили повторяющиеся видео и другие дубликаты, используя специальный алгоритм, основанный на текстурах, чтобы отличить записанную версию от реальных людей (рис. 5).
Рис. 5. (а) Образец живого лица и соответствующего ПА в базе данных ОУЛУ. (b) Карты объектов, выводимые первым слоем свертки в CNN с входным сигналом RGB face. (c) Карты признаков, выводимые предлагаемым адаптивным слоем слияния сверточных признаков после первого слоя свертки в CNN с изображениями лиц RGB и DNG в качестве входных данных
Оценка. Эта модель проста и легка в развертывании. Но склонна к чрезмерной подгонке, если идентификатор не берется из обученной базы данных. Также система изменяется при разных условиях освещения, либо другой угол камеры производит разные изображения; Или как иногда импортированное изображение, даже если оно взято с реальной фотографии, но при низком качестве будет определено как поддельное изображение, в то время как поддельное изображение, импортированное с высоким качеством, все еще может быть распознано как реальное изображение.
3. Метод антиспуфинга с использованием вспышки
Этот метод основан на разнице в отражении света между плоской поверхностью (2D) и выпуклой/вогнутой поверхностью (3D) при использовании вспышки для получения большего освещения. Следовательно, отражение этого света от мишени может быть использовано для идентификации реального лица. Белая область, покрывающая экран, создает соответствующее отражение на лице [11] (рис. 6) [12].
Рис. 6. Разница во вспышке между фальшивым лицом и реальным лицом
Рис. 7. (а) 8 успешных примеров антиспуфинга и их оценочные карты глубины и сигналы rPPG. (b) 4 примера неудач: первые два являются живыми, а два других – поддельными. Обратите внимание на нашу способность оценивать дискриминационные карты глубины и сигналы rPPG
Приведенный выше пример указывает на разницу необработанных пикселей. Таким искусственным способом настоящее лицо отличается от фальшивого из-за разницы в их поверхности. Кадры до и после мигания активности предоставляют шаблоны данных для обучения сети. Вспышка помогает отделить и классифицировать черты лица.
Оценка. При хорошем освещении точность довольно высока – 98,8 %, в шумных условиях все еще достигает 97,3 % [11]. Недостатком этого метода является то, что не все устройства обладают вспышкой. Например, на мобильных устройствах вспышка доступна только с задней камерой, а не с передней. А при ярком солнечном свете на открытом воздухе вспышка малоэффективна.
4. Метод создания 3D карты
Иаозие и др. [13] предложили метод: каждое входное изображение лица делится на два потока, которые являются реальными или поддельными изображениями. Они будут классифицировать, как описано выше, извлекать некоторые области лица, такие как глаза, нос и рот, для обучения модели классификации CNN давать истинную / ложную вероятность.
Реализация обученной модели автоматического эндкодера проходит таким образом, что реальное лицо генерирует матрицу 3D-карты соответствующей формы, а для поддельного лица значение 3D-карты остается другим (рис. 7).
После получения двух значений вероятности двух указанных выше периодов алгоритм суммирует их, чтобы дать общую вероятность того, что входное изображение лица является реальным или ложным изображением.
Оценка. Точное значение довольно высокое, нет необходимости в другом вспомогательном оборудовании. Недостатком является то, что модель пока не подходит для работы на мобильных платформах.
Предложение метода обнаружения фальшивых лиц с помощью специальной камеры
Согласно документу [14], при использовании 3D-камеры в то же самое время не менее двух камер расположено под разными углами. Таким образом, изображения, полученные с реального лица, будут иметь большую разницу (обладают различной глубиной) с поддельными изображениями лица, изображения с 3D-камер будут получены с незначительной разницей.
3D-камера с хорошим качеством обладает обычно четырьмя небольшими камерами. Отсюда полученное изображение будет иметь изображения с областями глубины (с реальными лицами) или нет (в случае с фальшивыми лицами).
Глубина изображения представляет собой различие расстояний между двумя камерами и пикселями на лице. Если фотография сделана с реального человека, то разница в расстоянии будет большой (или иметь выпуклую / вогнутую форму), если фотография поддельная, то эта разница невелика. Экспериментально мы вычислили глубину между пикселем носа и пикселем уха с наибольшей разницей.
Обладая высококачественными камерами, библиотеки SDK обеспечивают хорошую поддержку функций для определения значений разности глубин. Кроме того, эти камеры также имеют потоки для глубинных кадров или потоки для цветных кадров RGB. Поэтому использование этих камер очень удобно для программистов. Если человеческое лицо обнаружено в кадре потока RGB, то область изображения человеческого лица ссылается на область изображения в глубинном кадре. Если область лица совпадает с областью с соответствующей глубиной, изображение является реальным лицом (рис. 8).
Рис. 8. RGB изображение и изображение глубины 3D камеры
Алгоритм представлен следующим образом:
Вход: Изображение с 3D-камеры
Выход: поддельное лицо / реальное лицо
Алгоритм представлен на рис. 9.
Рис. 9. Алгоритм обнаружения реальных / поддельных лиц
Обнаружение человеческих лиц на изображении (линия 3) может использовать Харр каскадный метод [15] или MTCNN [16]; код, написанный на языке Python, библиотеки в формате OpenCV, dlib, процессор Intel SDK, используя следующие библиотеки или функции: imutils, face_utils, pyrealsense2, numpy, cv2, dlib, pipeline(), config(), stream.depth, stream.color, shape_predictor(), stream.color, align(), align.process(), get_depth_frame(), get_color_frame(), detect_face(), detect_mouth(), shape_to_np().
Результаты после эксперимента: при реальном человеческом лице значение шкалы ∈ составляет [2000, 3500] (рис. 10, а), при нанесении изображения с фальшивым лицом значение шкалы ∈ составляет [0, 300] (рис. 10, б).
Рис. 10. Экспериментальные результаты по обнаружению реальных человеческих (а – real) и поддельных (b – fake) лиц
Оценка. Преимущества: высокая точность, поддерживаемая датчиком глубины. Недостаток: большая стоимость устройства, а также возможность поддержки текущих функций библиотеки SDK только в операционных системах Windows или Linux и отсутствие их поддержки со стороны Mac OS.
Выводы
Эти методы имеют различные преимущества и недостатки. Благодаря их простоте нет необходимости в дополнительном оборудовании, поэтому метод ответа на запрос по-прежнему является наиболее часто используемым методом, хотя точность его невысока. Метод использования 3D-камер более выгоден из-за большой глубины изображения. Однако существуют ограничения, когда поддельный объект имеет 3D-вид. Предложенный метод применим к тепловизионным камерам [17], так как в тепловизионной камере имеется термодатчик (соответствующий датчику глубины в 3D-камере). Исследователи также могут обратиться к биометрическим методам радужной оболочки глаза [18], биометрии отпечатков пальцев [19], чтобы иметь возможность объединить функции верификации и создать метод, соответствующий их задачам и фактическим условиям.