В статье автор анализирует сервисы, позволяющие осуществлять идентификацию пользователя по геометрии лица.
Ключевые слова: распознавание, идентификация, компьютерное зрение.
Компьютерное зрение является ответвлением компьютерной графики и ее развитием в прикладном использовании в различных областях обработки и анализа изображений. В качестве примеров задач, в решении которых используется компьютерное зрение, можно указать следящие и охранные системы, системы контроля качества изделий, распознавание объектов и текстовых документов, поиск изображений на основе содержания, медицинскую диагностику, получение и обработку спутниковых изображений, робототехнику, контроль на транспортных магистралях и другие [1].
Идентификация по геометрии лица – вторая по распространенности и популярности биометрическая технология. К основному преимуществу геометрии лица как идентификатора можно отнести бесконтактный способ получения сведений, необходимых для распознавания пользователей.
Получить такие сведения можно путём фотографирования пользователя или получения видеопотока. При этом количество идентификаторов намного меньше, чем при идентификации с помощью других биометрических технологий, так как каждый пользователь имеет только одно лицо.
VERILOOK SDK
Технология идентификации лиц VeriLook предназначена для разработчиков биометрических систем. Пакет для разработки позволяет разрабатывать как автономные, так и веб-решения на платформах Microsoft Windows, Linux, macOS, iOS и Android.
Особенности:
— одновременная обработка нескольких лиц. VeriLook выполняет быстрое и точное обнаружение нескольких лиц в потоковом видео в реальном времени, а также на неподвижных изображениях. Все лица в текущем кадре обнаруживаются за 0,01–0,86 секунды в зависимости от выбранных значений точности обнаружения лиц;
— распознавание частично закрытых лиц. Лица, носящие защитные маски опознаются без использования дополнительных изображений;
— способность различить фотографию от настоящего изображения;
— высокий допуск к положению лица. Наклон головы может составлять до 15 градусов в каждую сторону от фронтального положения. Угол поворота головы может составлять до 90 градусов в каждую сторону от фронтального положения;
— высокая скорость идентификации. Алгоритм позволяет сравнивать до 40000 лиц в секунду.
OpenCV
OpenCV — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом. OpenCV — самая популярная библиотека компьютерного зрения. Библиотека разрабатывается c 1998 г., сначала в компании Intel, затем в Itseez при активном участии сообщества [2].
Мною был разработан проект по предоставлению пользователю доступа к ресурсам компьютера по геометрии лица. В ходе работы были изучены практические особенности работы библиотеки. Рассмотрим процесс преобразования изображения. Последовательность преобразований изображения пользователя представлена на рис. 1.
Рис. 1. Последовательность преобразования изображения
На полученном входном изображении определяются контрольные точки. С помощью библиотеки OpenCV можно определить различные характерные точки на изображении. В данном случае определяются границы лица, нос, глаза и рот.
Полученное изображение выравнивается до одинакового размера. Затем изображение преобразуется таким образом, чтобы на нём отображались контрольные точки. Записываются 68 точек данных, которые представляют собой декартовы координаты. Полученные контрольные точки сохраняются для последующего сравнения с уже имеющейся базой данных других лиц.
Для последующего определения лица применяется модель OpenFace, в результате чего нет необходимости явного переобучения модели. Для более точного определения и идентификации человека на изображении с использованием модели OpenFace рекомендуется иметь в базе 10-20 изображений каждого человека.
После загрузки в базу данных необходимого количества изображений человека можно приступить к идентификации. Результат идентификации представлен на рис. 2.
Рис. 2. Результат идентификации пользователя
Azure Cognitive Services
Azure Cognitive Services – это облачные службы с REST API и пакетами SDK клиентской библиотеки, которые помогают интегрировать когнитивные средства искусственного интеллекта в свои приложения [3].
Для начала работы необходимо установить клиентскую библиотеку Microsoft.Azure.CognitiveServices.Vision.Face. Затем необходимо получить подписку Azure и создать ресурс распознавания лиц. Это необходимо для того, чтобы получить ключ и конечную точку для дальнейшей работы. Сервис позволяет делать до 30000 запросов в месяц бесплатно, чего вполне хватает для небольших пользовательских задач.
Узнать ключ и конечную точку можно на портале Azure в ресурсе Cognitive Services, выбрав пункт «Ключи и конечная точка» в разделе «Управление ресурсами».
В процессе работы над проектами ресурсы данной службы были также опробованы на практике. Были разработаны утилиты для регистрации пользователей и авторизации пользователя.
С помощью последовательно вызова функций создаётся идентификатор человека, которого мы хотим в дальнейшем распознавать, добавляется его фотография и происходит обучение модели.
Для тестирования регистрации был создан пользователь с логином Olga, а также получено изображение пользователя с веб-камеры. Результат представлен на рис. 3.
Рис. 3. Регистрация пользователя
Для распознавания необходимо сначала с помощью вызова функций библиотеки определить лицо на фотографии. Затем происходит сопоставление исходного лица со всеми лицами в группе, в результате чего выбирается наиболее подходящий вариант.
С помощью разработанной утилиты авторизации пользователя, которая выполняет описанные выше функции распознавания, был получен результат идентификации, представленный на рис. 4.
Рис. 4. Результат идентификации пользователя
В ходе дальнейшего тестирования была определена степень совпадения лиц пользователя при входном изображении с поворотом лица в 45 градусов. Результат составил 91%, что является довольно хорошим результатом.
Литература:
- Селянкин, В. В. Компьютерное зрение. Анализ и обработка изображений: учебное. Санкт-Петербург: Лань, 2019.
- Open Source Computer Vision. [Электронный ресурс]. Режим доступа: https://docs.opencv.org/4.1.2/.
- Документация по службам Cognitive Services. [Электронный ресурс]. Режим доступа: https://docs.microsoft.com/ru-ru/azure/cognitive-services/.