Важным элементом любой интеллектуальной системы, в задачи которой входит анализ биометрических данных, является работа с биометрическими данными человека [1]. Эти данные представляют собой идентификатор – признак, по которому можно однозначно определить личность посетителя или пользователя [2]. Для рассматриваемых систем таким идентификатором является лицо человека.
Геометрия лица является уникальным биометрическим идентификатором. В процессе анализа из биометрических данных (например, 2D-снимка) извлекаются значимые признаки (вектор признаков), которые в дальнейшем используются для сравнения эталона (изображения в базе данных) с детектируемым объектом (кадром с камеры видеонаблюдения). Для лица, как биометрического идентификатора, в зависимости от используемого алгоритма, может быть значимым выделение частей лица (характерных зон) и определение расстояний между этими зонами. В ходе анализа фрагмент с изображением лица, полученный в результате выполнения алгоритма детекции, декомпозируется на основные компоненты (например, глаза, нос, рот и зоны с характерным освещением).
Существует отдельное направление исследований, посвященное статистическому анализу значимости отдельных компонентов (зон) лица и построению математических моделей для определения весов (численных коэффициентов) для разных зон лица для последующего применения на этапе декомпозиции и выделения признаков [3].
Также в качестве ключевых признаков могут выступать расстояния между выделенными зонами лица. В таком случае, после декомпозиции для каждой зоны определятся «центр тяжести» - якорная точка элемента и затем между центрами тяжести всех сегментов вычисляются расстояния, используя уравнение расстояния между двумя координатами. В качестве итоговых параметров будет получен набор расстояний [4].
На основе извлеченных признаков формируется карта признаков (вектор признаков), который используется как входные данные для обучения модели или уже непосредственного выполнения задачи идентификации (если речь идет о предобученной модели или алгоритме).
Все изображения, на основе которых выполняется распознавание лиц в биометрической системе, можно условно разделить на две большие группы – плоскостные 2D-изображения и объемные 3D-модели. В первом случае в качестве эталона используется фотография из базы данных, в качестве изображения для сравнения – кадр из видеопотока с камеры. В случае 3D-модели производится реконструирование трехмерных признаков лица и создание математической объемной модели. Эталонным изображением является модель, полученная в результате 3D-сканирования, или восстановленная по нескольким изображениям лица с разных ракурсов (например, с нескольких камер), в качестве изображения для сравнения также может выступать результат сканирования или восстановленная по нескольким изображениям в разных ракурсах 3D-модель.
На настоящий момент 2D-распознавание лиц получило наибольшее распространение, так как существуют готовые базы данных эталонов и готовая техническая инфраструктура в виде камер видеонаблюдения. В свое время 3D-распознавание требует более сложных алгоритмов обработки и восстановления объемного изображения, а также специальных сканеров или несколько камер, размещенных специальным образом. Но при этом оно обладает меньшим значением коэффициентов ошибок FAR (False Acceptance Rate) и FRR (False Rejection Rate) [5] и более устойчиво к спуфинговым атакам.
Для работы любого алгоритма распознавания и детекции важным является этап извлечения признаков и формирования входного вектора для обработки выбранной моделью. Извлечение признаков и определение их значимости происходит на этапе обучения (тренировки модели) на наборе данных. Поэтому качество всей модели будет определяться не только выбранным перечнем и значением параметров, влияющих на ее структуру (например, глубина дерева решений, количество слоев в нейронной сети), но и данными, используемыми на этапе обучения.
Для обучения моделей распознавания лиц используются общедоступные наборы данных. Перечень всех открытых для использования в исследовательских целях датасетов можно найти в специальной базе данных «Datasets for face recognition», которая содержит название, описание набора данных и его лицензии [6].
Условно все существующие наборы, используемые для обучения моделей для детекции и распознавания лиц, можно разделить на несколько больших групп:
1) Наборы, содержащие фотографии и видео с размеченными лицами. Например, Flickr-Faces-HQ (FFHQ) [7], The Yale Face Database [8] и другие.
2) Крупномасштабные наборы, состоящие из изображений с разной модальностью (видимое, ближнее инфракрасное, тепловое, компьютеризированный эскиз, LYTRO, записанное видео, 3D-изображения и др.). К данному типу относится известный набор данных Tufts Face Dataset [9].
3) Наборы из реальных и сгенерированных изображений, целью которых является борьба с фальсификацией (спуфингом) биометрических данных (чаще всего используются для обучения состязательных нейронных сетей GAN). Примером такого датасета является Real and Fake Face Detection [10].
На результат распознавания значительно влияют характеристики физической среды, в которой получено изображение (уровень освещенности, разрешение камеры и другое), и наличие шумов и помех на самом изображении (кадре) – например, очки, медицинская маска. Необходимо учитывать эти факторы, снижающие качество распознавания, при выборе данных для обучения модели. Набор данных должен максимально охватывать все возможные случаи изображений лица, также желательно использование для обучения модели нескольких наборов данных.
Под специфические задачи интеллектуального анализа биометрических данных могут использоваться специальные наборы данных. Например, для повышения устойчивости к атакам на видеосистемы можно использовать датасеты, содержащие реальные и фейковые изображения лиц.
В процессе интеллектуального анализа биометрических данных из видеопотока можно выделить два последовательных этапа выделения и обработки объекта (лица человека). Это детектирование – выделение фрагмента с лицом на кадре, захваченном из непрерывного потока видео и непосредственно распознавание – сопоставление выделенной как лицо области с эталонным изображением и расчет меры соответствия (близости) двух изображений.
Процесс обработки видеопотока в биометрической системе проходит последовательно – сначала выделяются отдельные кадры из общего потока данных, затем для каждого кадра в сформированном массиве выделяются фрагменты, содержащие целевой объект – лицо человека. Формируется новый массив из фрагментов, которые затем подаются на вход модели распознавания.
Задача детектирования относится к этапу выделения фрагментов с лицами в массиве кадров и успешно решается базовыми алгоритмами библиотек OpenCV и Dlib. Рассмотрим несколько классических алгоритмов детектирования, реализованных в данных библиотеках.
Примером наиболее раннего алгоритма является каскадный классификатор Хаара. Каскадный классификатор можно отнести к группе ансамблевых алгоритмов бустинга. В основе работы каскада Хаара лежит метод Виолы-Джонса, позволяющих обнаруживать объекты на изображениях в реальном времени. Поэтапно алгоритм Виолы-Джонса проходит следующие шаги: вейвлет-преобразование Хаара, получение интегрального изображения, обучение классификатора AdaBoost и использование каскадных классификаторов [11]. На этапе вейвлет-преобразования Хаара происходит извлечение признаков с помощью функций Хаара: находится первая функция как разница интенсивностей темной и светлой областей фрагмента лица, затем найденный прямоугольник применяется в качестве сверточного ядра ко всему изображению. Для осуществления вейвлет-преобразования можно применять несколько разных типов прямоугольников в качестве функций.
Выбранные функции применяются к изображению с использованием классификатора AdaBoost. Далее вычисляется прямоугольная сумма на основе четырех значений используя интегральное изображение. На завершающем этапе для определения областей изображения, содержащих лицо, используются каскадные классификаторы – деревья решений, которые последовательно исключают окна, не содержащие пиксели с лицом. Данный алгоритм реализован в библиотеке OpenCV.
Вторым популярным алгоритмом детектирования объектов является Гистограмма направленных градиентов (Histogram of Oriented Gradients (HOG)). Алгоритм заключается в формировании вектора признаков, представляющих из себя распределения направленных градиентов. Градиенты позволяют определять граничные (переходные) области лица, содержащие различные зоны. Затем сформированный вектор передается на вход алгоритма классификации (например, SVM) [12].
Примером использования алгоритма глубокого обучения является использование сверточной нейронной сети (CNN). В процессе обработки происходит свертка исходного изображения с помощью набора заданных фильтров. На выходе мы получаем значение бинарной классификации – 0 или 1, что соответствует отсутствию или наличию лица на входном изображении.
Алгоритмы Каскад Хаара и HOG показывают более быстрые результаты вычислений, при этом CNN выдает более точные результаты классификации. Таким образом, выбор конкретного алгоритма зависит от требований к точности и скорости вычислений в ходе детектирования объектов.
Последним этапом в работе алгоритма биометрической системы является распознавание – сопоставление полученного фрагмента с лицом с эталонным изображением. Для решения задач распознавания уже существует большое количество как классических, так и нейросетевых алгоритмов. Рассмотрим несколько примеров наиболее современных из них.
Первым является специализированный фреймворк fViT framework на базе алгоритмов визуальных трансформеров (visual transformers). Модель состоит из облегченной нейронной сети и визуального трансформера. Нейронная сеть отвечает за выделение основных координат лица (нос, глаза и другие), а визуальный трансформер анализирует выделенные участки [14].
Выше были приведены примеры наиболее современных подходов к построению моделей распознавания лиц. При этом необходимо учитывать, что в этой области по-прежнему активно используются ставшие уже классическими сверточные (CNN) и рекуррентные нейронные сети (RNN). Для задач обработки видеопотока как правило они используются совместно.
Также активно развивается направление использования для идентификации личности данных разных модальностей, что повышает точность распознавания и повышает устойчивость системы к атакам. В качестве входных данных могут выступать как биометрические идентификаторы одной природы (например, изображения лица разной модальности), так и разные по природе данные (например, изображение лица и запись голоса). Обычно в таких системах разные типы данных обрабатываются отдельно, а затем результат суммируется в соответствии с заданным интегральным алгоритмом и делается общий вывод о совпадении эталона и полученных данных. Например, ниже представлена простая модель из двух сверточных нейронных сетей, обрабатывающих входные изображения разной модальности [16].
ArcFace является примером модели обучения подобия (similarity learning). В качестве результата вычисляется расстояние между изображениями. В качестве метрики расстояния используется коссинусное расстояние. Вместо Softmax Loss в качестве функции потерь используется Angular Margin Loss [16].
Любая интеллектуальная система распознавания лиц, несмотря на огромное количество различных алгоритмов детектирования и распознавания, будет содержать в себе базовые функциональные элементы, среди которых:
1) Входные данные в виде кадров видеопотока.
2) Классификатор для детектирования фрагментов, содержащих лица.
3) Блок распознавания.
4) Выходные данные: результат бинарной классификации (0 или 1) или значение метрики близости эталонного и входного изображения.
Аналогично можно унифицировать процесс распознавания и разделить его на этапы: определения лица, выравнивание контура лица, определение базовых параметров и сравнение параметров эталонного и входного изображения [18].
При проектировании интеллектуальной системы распознавания лиц важно учитывать необходимость реализации всех функциональных блоков и возможность их совмещения при использовании конкретных технологий для каждого функционального блока. Также важным параметром при разработке системы данного класса выступает ее быстродействие, поэтому уже на этапе проектирования недостаточно просто разрабатывать программную реализацию модели, но также необходимо учитывать аппаратные возможности как самой системы видеонаблюдения, так и серверной части для обработки данных и вычислений.
Среди биометрических систем наибольшее развитие в настоящий момент получили именно системы на основе распознавания лиц. Любая интеллектуальная система распознавания лиц содержит в себе базовые функциональные модули детекции и распознавания, а в качестве выходных данных выдает результат бинарной классификации или значение метрики близости.
При этом значительное влияние на результат распознавания оказывает не только архитектура выбранных моделей для функциональных блоков детекции и распознавания, но и качество данных, использованных для обучения модели. Модели распознавания чувствительны к внешним условиям среды, в которых получено изображение и к наличию шума и помех на самом входном изображении. Поэтому важно использование наиболее полного датасета (нескольких наборов данных) при обучении модели.
Другим важным параметром при проектировании интеллектуальной системы распознавания лиц является необходимость согласования работы всех блоков и учет быстродействия, так как предполагается работа системы в режиме реального времени. Именно это делает важным аппаратную реализацию системы.