Большой Брат для новичков: как работают системы распознавания лиц

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

Какое-то время продолжим трудится на общее благо по адресу https://n-n-n.ru.
На новой платформе мы уделили особое внимание удобству поиска материалов.
Особенно рекомендуем познакомиться с работой рубрикатора.

Спасибо, ждём вас на N-N-N.ru

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

Где применяют распознавание лиц и что это такое

Под распознаванием лиц может пониматься одна из двух задач:

  • верификация — сравнение двух фотографий для определения, что на них один и тот же человек или нет;
  • идентификация — поиск человека в существующей базе или картотеке фотографий.

Объединяет эти задачи то, что их может выполнять одна и та же нейросеть.

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

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

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

Распознавание лиц может использоваться везде, где есть камеры: на улице, в помещении, на стадионах, в метро и общественном наземном транспорте, в аэропортах, на вокзалах, в магазинах, банках и других общественных местах. Соответствующие программы и алгоритмы можно устанавливать на стационарные компьютеры и на мобильные устройства, также они используются в системе «Умный город», в некоторых домофонах, в приложениях, банковских или других.

Распознавание лиц используется:

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

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

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

1. Детектор лиц. Обучается независимо от остальных частей пайплайна. Для обучения и тестирования детектора лиц необходим датасет, в котором есть размеченные прямоугольники лиц — bounding boxes — и, желательно, размеченные ключевые точки лица: глаза, нос, уголки рта. Если под рукой нет своего датасета, можно использовать публичный датасет WIDER face, в котором более 300 тысяч размеченных лиц.

Обычно никто не придумывает архитектуру детектора, и просто берут публичные, например, MTCNN, Retina Face, SCRFD, Yolov5Face. В зависимости от кейса применения детектор могут дополнительно дообучать на своих данных и ускорять.

2. Выравниватель. Эта часть пайплайна наименее важная, и обычно её нет нужды обучать. Сначала детектор лица предсказывает прямоугольник и ключевые точки лица, обычно пять точек. Затем выравниватель с помощью аффинного преобразования поворачивает и сдвигает ключевые точки, а вместе с ними и лицо, до эталонного положения.

3. Эмбеддер — распознаватель, извлекатель эмбеддингов и дескрипторов. Это самая важная часть программы: обученная модель больше всего весит и дольше всего работает по времени. Для него нужны три составляющие:

  • Хорошая архитектура нейросети. Архитектуру обычно берут из лидеров на Imagenet — одном из самых важных бенчмарков в компьютерном зрении, или ансамбль из нескольких архитектур в связке с дистиляцией знаний (knowledge distillation).
  • Объёмный датасет. Датасет обычно состоит из сотен тысяч фото реальных людей в разном ракурсе, разных возрастов, полов и рас. Датасет может быть опенсорны. Сейчас такие почти не найти, но перечислим популярные в прошлом MSCeleb1M, VGG2, UMD faces, MegaFace. Датасет можно собрать самостоятельно, купить у специализированных компаний или получить от клиентов.
  • Хорошая функция потерь (loss function). Функция потерь — обычно ArcFace или её улучшения. Обучение модели происходит как задача классификации

От обученной модели отрезают последний полносвязный слой, и получают эмбеддер.

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

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

Слабые места современного распознавания лиц

Системы распознавания лиц уже могут многое. Но есть нюансы.

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

Во-вторых, за последние годы люди неоднократно придумывали способы обхода распознавания лиц, осуществляя так называемые состязательные атаки — adversarial attacks. В 2017 году сотрудник Яндекса Григорий Бакунов придумал макияж, обманывавший алгоритмы искусственного интеллекта, и рассказал о нём в СМИ.

raspoznavanie.pngВ основе этого проекта лежал генетический алгоритм, подбиравший на основе исходной фотографии некий не схожий с оригиналом образ. Исходя из полученных данных, визажист придумывал макияж для конкретного человека и наносил его на лицо. Впоследствии Бакунов закрыл проект, руководствуясь этическими соображениями.

В 2019 году сотрудники компании Huawei Moscow предложили свой способ, так сказать, шапку-невидимку. Для этого на обычном цветном принтере распечатывали прямоугольные бумажные наклейки, которые приклеивались человеку на головной убор. Это позволило сильно ухудшить качество распознавания лиц, в основе которого был ArcFace.

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

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

Плюсы и минусы применения систем распознавания лиц

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

Но есть и обратная сторона: именно системы распознавания лиц неоднократно сыграли решающую роль при поиске и задержании участников акций протеста в Москве и Гонконге, а также во время карантинных мер из-за пандемии коронавируса. И что для одних людей станет удобным и облегчающим жизнь нововведением, для других может обернуться возможностью слежки и необоснованного контроля. Юристы и правозащитники не раз предупреждали о возможности возникновения такой опасности и сопутствующих нарушений прав человека — отрицательный пример Китая известен многим.

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

Пожалуйста, оцените статью:
Пока нет голосов
Источник(и):

Хабр