Как работает сканер лица в современных смартфонах?

Где применяются технологии распознавания лиц?

Китай

#06

Во всем мире власти прикладывают усилия к повышению безопасности и жителей, ну то есть тотальной слежки. Например, в метрополитене Китайского Шэньчжэня запустили систему оплаты поездок при помощи такой технологии. Для ее реализации была запущена 5G-сеть. Теперь люди не предъявляют билет, а подходят к экрану у входа на станцию и сканируют свое лицо. Система узнает человека и автоматически списывает деньги с привязанного счета. К слову, после сканирования люди могут прочитать информацию о себе (пол, возраст, длительность пребывания в метро) и посмотреть фотографии.

#06 Китайский турникет. Конечно, для удобства придумал систему сканирования лиц. Они совсем, совсем не следят за вами. Честное китайское слово.

Россия

Подобная практика внедряется и в московском метро. В 2018 году начали тестировать систему биометрической идентификации. С помощью камер полиция уже задержала 9 человек, которые находились в розыске. Правда, она промолчала, сколько она таким образом отследила для своих «особенных» целей.

Британия

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

Япония

Японская компания NEC в феврале этого года запустила первые в мире банкоматы, которые выдают деньги посредством распознавания лиц.

Нидерланды

Технологии распознавания лиц также широко используются во внутренних и международных аэропортах. Например, аэропорт Амстердама Схипхол использует аппараты для распознавания лиц в процессе посадки пассажиров в самолет. Вместе с авиакомпанией Cathay Pacific технология пока применяется в тестовом режиме. То есть после прохождения регистрации на рейс человек сканирует паспорт, посадочный талон и лицо, а уже после этого проходит паспортный контроль. Перед посадкой лицо пассажира снова сканируется; если изображение соответствует фотографии из базы, система пропускает человека дальше. Такой алгоритм избавляет пассажиров от необходимости предъявлять паспорт и посадочный талон во время поездки, что ускоряет процедуру. 

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

Международная компания IBM в начале 2019 года выпустила базу данных, которая содержит 1 миллион фотографий лиц (взятых из сервиса Flickr). Это сделано для того, чтобы помочь разработчикам обучать биометрические системы. IBM посчитала, что использованные данные недостаточно разнообразные, поэтому снабдила фото метками с данными черепно-лицевых размеров, симметриями лица, обозначениями возраста и пола.

Во всём виноваты белые

Но даже у таких серьезных компаний случаются недочеты: используемая технология распознавания лиц лучше подходила для белых мужчин, нежели для женщин или людей других национальностей. По данным исследований Массачусетского технологического института, система IBM в 35% случаев не смогла распознать темнокожих женщин. В то же время доля ошибок при идентифицировании белых мужчин составляла не больше 1%.

Запрет на технологию

Оказывается, не все приветствуют использование технологии распознавания лиц. Например, Сан-Франциско уже стал первым городом в США, где полицейским запретили использовать такие системы (они применяли их, чтобы идентифицировать подозреваемых в толпе). Американцы считают, что это ограничивает их свободу передвижения и таким образом полиция вмешивается в их частную жизнь. В США технологию используют даже в некоторых торговых центрах, чтобы лучше понимать эмоции покупателей. Этот закон не распространяется только на международный аэропорт города и морской порт, так как они находятся под юрисдикцией федерального правительства. Но технологией распознавания лиц могут пользоваться частные лица (владельцы ресторанов, например).

Система распознавания пользователей в соц сети

Распознавание лиц на загруженном фото

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

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

Рисунок 1. Распознавание пользователей на фото

Перед тем, как запустить автоматические распознавание, нужно создать профиль каждого пользователя и заполнить базу.

Построение пользовательских профилей

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

Рисунок 2. Трудный профиль

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

Рисунок 3. Построение пользовательских профилей

Мы строили профиль пользователя следующим образом (Рис. 3):

1) Выбирали наиболее качественные фотографии пользователя

Если фотографий было слишком много, мы использовали не более ста лучших.
Качество фотографий определяли на основе:

  • наличия отметок пользователей на фото (фотопинов) ручным способом;
  • метаинформации фотографии (фото загружено с мобильного телефона, снято на фронтальную камеру, в отпуске, …);
  • фото было на аватарке

2) Искали на этих фотографиях лица

3) Вычисляли характеристический вектор лица

4) Производили кластеризацию векторов

Задача этой кластеризации – определить, какой именно набор векторов принадлежит владельцу аккаунта. Основная проблема – это наличие друзей и родственников на фотографиях. Для кластеризации мы используем алгоритм DBScan.

5) Определяли лидирующий кластер

Для каждого кластера мы считали вес на основании:

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

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

Чтобы кластер считался лидером, нужно чтобы его вес был больше ближайшего конкурента на константу, рассчитанную на обучающей выборке. Если лидер не найден, мы еще раз переходим к пункту 2, но используем большее число фотографий. Для некоторых пользователей мы сохраняли два кластера. Такое бывает для совместных профилей — некоторые семьи имеют общий профиль.

6) Получали эмбеддинги пользователя по его кластерам

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

Как и кластеров, эмбеддингов у пользователя может быть несколько.

За время итерации мы обработали восемь миллиардов фото, проитерировали 330 млн профилей и построили эмбеддинги для трехсот миллионов аккаунтов. В среднем, для построения одного профиля мы обрабатывали 26 фотографий. При этом для построения вектора достаточно даже одной фотографии, но чем больше фото, тем больше наша уверенность, что построенный профиль принадлежит именно владельцу аккаунта.

Процесс построения всех профилей на портале мы производили несколько раз, так как наличие информации о друзьях повышает качество выбора кластера.
Объем данных необходимый для хранения векторов ~300 GB.

Краткий экскурс в технологии и решения распознавания образов

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

рис 1. Структура библиотеки DLIB

  • Плюсы:
    — Open source решение, можно участвовать в развитии и смотреть текущие тренды.
    — Написана на С++. Имеет поддержку для iOS в виде cocoapods: pod ‘dlib’.
    — Можно также интегрировать в виде C++ библиотеки. Работает на Windows, Linux, MacOS. Работать можно и в swift приложениях, написав обертку на objective-c++.
  • Минусы:
    — Большой размер подключаемой библиотеки. 40 мегабайт в виде pod.
    — Высокий порог входа. Большое количество внутренних алгоритмов, под каждый из которых предстоит писать обертку на Objective-C.

рис 2. Структура библиотеки OpenCV

  • Плюсы:
    — Самое большое коммьюнити, регулярно участвующее в поддержке.
    — Написана на С++. Имеет поддержку для iOS в виде cocoapods: pod ‘OpenCV’.
  • Минусы:
    — Высокий порог входа.
    — Большой размер подключаемой библиотеки. 77 мегабайт в виде pod, 180 мегабайт в виде C++ библиотеки.

рис 3. Структура CoreML

  • Плюсы:
    — Простая интеграция в приложение.
    — Содержит удобный конвертер, который поддерживает несколько различных моделей других фреймворков (Keras, Caffe, scikit-learn).
    — Коробочное решение с малым размером.
    — Работает на GPU.
  • Минусы:
    — Является частью CoreML, поэтому поддерживает лимитированное количество типов моделей других существующих фреймворков.
    — Нет поддержки TensorFlow, одного из самых популярных решений машинного обучения. Придется потратить много времени на самописные конвертеры.
    — Является высокоуровневой абстракцией. Вся имплементация закрыта, отсюда невозможность контроля.
    — iOS 11+.

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

Теория распознавания лиц

Задача распознавания лиц — часть практического применения теории распознавания образов. Она состоит из двух подзадач: идентификации и классификации (тут подробно об отличиях). Идентификация личности активно используется в современных сервисах, таких как Facebook, iPhoto. Распознавание лица используется повсеместно, начиная от FaceID в iPhone X, заканчивая использованием при наведении целей в военной технике.

Человек распознает лица других людей благодаря зоне мозга на границе затылочной и височной долей — веретеновидной извилине. Мы распознаем разных людей с 4-х месяцев. Ключевые особенности, которые выделяет мозг для идентификации, — глаза, нос, рот и брови. Также человеческий мозг восстанавливает лицо целиком даже по половине и может определить человека лишь по части лица. Все увиденные лица мозг усредняет, а потом находит отличия от этого усредненного варианта. Поэтому людям европеоидной расы кажется, что все, кто принадлежит монголоидной расе, на одно лицо. А монголоидам трудно различать европейцев. Внутреннее распознавание настроено на спектральном диапазоне лиц в голове, поэтому, если какой-то части спектра не хватает данных, лицо считается за одно и тоже.

Задачи по распознаванию лиц решают уже более 40 лет. В них входит:

  • Поиск и распознавание нескольких лиц в видеопотоке.
  • Стойкость к изменениям лица, прически, бороды, очков, возраста и повороту лица.
  • Масштабируемость данных для идентификации человека.
  • Работа в реальном времени.

Один из оптимальных алгоритмов для нахождения лица на картинке и его выделения — гистограмма направленных градиентов.
Есть и иные алгоритмы. Здесь описывается подробно, как происходит поиск зоны с лицом по алгоритму Виолы-Джонса. Он менее точный и хуже работает с поворотами лица.

Где нужно распознавание лиц?

Разработкой ПО для распознавания и улучшением алгоритмов занимаются программисты и дата-сайентисты. Эта технология нужна в разных сферах:

  • Государство: видеоаналитика используется службами безопасности стран для пограничного контроля, а в Москве так находили нарушителей карантина. Службы безопасности организаций, имеющих дело с секретностью, также используют алгоритмы идентификации для контроля доступа сотрудников к секретным объектам.
  • IT-индустрия: Microsoft, Facebook, Google, Яндекс, ВКонтакте тоже разрабатывают собственные алгоритмы. Например, в есть функция распознавания лиц на фотографиях, которые выкладывают пользователи.
  • Медицина: технология помогает выявить болезни и отслеживать прогресс в лечении.
  • Банкинг: банки используют идентификацию по лицу, чтобы снять деньги в банкомате или получить кредит.
  • Образование: распознавание лица помогает поймать тех, кто списывает, — сервисы подключаются к камере на компьютере студента и отслеживают его поведение и движение глаз.
  • Персональные портативные устройства: на смартфонах помимо идентификации пользователя распознавание лица выполняет и развлекательную функцию — у приложений Samsung, Snapchat и Instagram оно лежит в основе AR-фильтров и масок для лица.

Как работает распознавание лиц?

Если вы хоть раз слышали о функции распознавания лица, то, наверняка задавались вопросом, как компьютер может «узнавать» нужного человека. Все это возможно благодаря искусственному интеллекту и машинному обучению.

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

Наша уникальность — нас выдает.

Определении уникальных метрик

Процесс «считывания» лица

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

Процесс распознавания работает следующим образом:

3D-моделирование внешних характеристик человека

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

Не сообщайте своего лица никому

Возможно, вы слышали об Anaface, сайте, который анализирует фотографию лица и оценивает уровень привлекательности. Главным критерием сайта является симметричность – сомнительный стандарт, не так ли? Но точность сервиса, это не единственная проблема.

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

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

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

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

Как работают системы распознавания лиц?

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

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

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

Система распознаёт человека по 80 узловым точкам, фиксируя ключевые и второстепенные характеристики лица. Затем программа переводит данные с изображения в числовой код, также называемый отпечатком лица (faceprint). На последнем этапе система сверяет результат с базой данных полиции, где может храниться дополнительная информация о гражданах: его Ф.И.О., адрес, телефон и не только. Другая крупная база данных – социальные сети, в частности Facebook.

Но и у 3D-моделирования есть недостатки, что стимулирует новые разработки. К примеру, компания Identix предложила технологию распознавания лиц по анализу текстуры кожи, будь то линии, поры, шрамы и другие характерные детали. Разработчики уверены, что их система сможет различить даже близнецов, и ей не помешают очки на лице или яркий макияж. Также существуют алгоритмы, способные определять личность даже в полной темноте или при плохом освещении. Инфракрасные камеры фиксируют тепловой след, который излучает человек.

Поисковые системы Google и Yandex для распознавания лиц

  1. Переходим в поиск картинок Google.
  2. В строке поиска находится значок фотоаппарата, после нажатия на который производятся действия с картинкой.
  3. Изображение можно перетащить (в т. ч. и сразу из интернета), загрузить файлом с компьютера, а также указать его URL.
  4. Запускается поиск и на полученных результатах мы видим найденное изображение (можно посмотреть в разных размерах) и похожие на него, а также сайты, на которых размещена искомая картинка.


Что ответил Google

Поиск по картинке Yandex работает по тому же принципу и результаты выдает в таком же стиле, как и Google.


Итоги поиска Yandex

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

Злоупотребления со стороны правоохранителей

Распознавание лиц не является непогрешимым. Известно, что люди, которые имеют с ним дело, иногда злоупотребляют системой. Например, в газета New York Times сообщала, что полиция в Сан-Диего собирает фотографии людей – виновных и невинных – без их согласия.

27-летний афроамериканец Аарон Харви, живущий в Сан-Диего, обвинил полицию в предубеждениях. Харви живет на территории, где показатель насилия является одним из самых высоких. Вероятно, поэтому полиция останавливала его более 50 раз, подозревая в членстве в банде. Когда он не согласился с этим, офицер сделал его снимок и сказал, что его воля не имеет отношения к делу.

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

Корпорации, которые шпионят за всеми

Организации имеют базы лиц, которые значительно больше, чем коллекция ФБР. На вершине списка находятся социальные сети: Facebook, Instagram (принадлежит Facebook), Google (со своим Google Plus) и многие другие сайты социальных сетей. Большинство этих компаний имеет собственные решения для распознавания лиц, которые постоянно развиваются и совершенствуются.

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

Система распознавания лиц Facebook относится к самым точным в мире. Компания молча запустила этот инструмент в 2012 году, включив его по умолчанию для большинства пользователей. Позже пришлось столкнуться с десятками исков – и это число продолжает расти; в свою очередь Google также имеет судебные проблемы за подобные действия. В результате этой ситуации Facebook пришлось отключить функцию распознавания лиц в некоторых регионах.

Даже если вы не используете социальной сети (или не выкладываете реальные фото), ваше лицо может и так находиться в базе данных социальных сетей. В прошлом году гражданин Чикаго подал в суд на Shutterfly, так как она добавила в свою базу данных его фото без его ведома. Кто-то (вероятно, знакомый) загрузил и подписал его фотографию на сайт Shutterfly.

Функционал

FindFaceSDK— открытая библиотека на C, позволяющая пользователям получить доступ к технологии поиска лиц с использованием нейронной сети. SDKможет решать следующие задачи:

  1. Находит лицо человека на фото и выделяет прямоугольник с главными точками: глазами, носом и ртом.
  2. Создает биометрический шаблон лица. В дальнейшем этот шаблон можно использовать для распознавания и сравнения с другими шаблонами.
  3. Верифицирует 2 шаблона. ПО дает ответ: совпадают или не совпадают сравниваемые шаблоны.
  4. Функция Liveness: определяет, принадлежит ли лицо живому человеку или это фотография.
  5. Поучение дополнительной информации об изображенном на фото человеке.

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

Преимущества FindfaceSecurity:

  • Liveness. Система анализирует несколько фотографий одновременно и определяет, живой ли человек или изображение.
  • Использование маски. Система может определить, есть ли на человеке маска и правильно ли она надета.
  • Поиск по отличительным чертам. Обеспечение безопасности за счет поиска человека по характерным признакам позволяет найти и отследить движение правонарушителя, а также найти его сообщников.
  • Персона. Действия одного человека записываются в одну «персону», что позволяет быстро найти определенного человека и отследить его действия.