Системы распознавания лицFacial recognition. Как работает технология распознавания лиц в смартфоне

Юбилейный iPhone X получил одну из самых неординарных фишек среди конкурентов. Флагман умеет распознавать лицо владельца, а вместо Touch ID и кнопки «Домой» инженеры интегрировали камеру TrueDepth и функцию Face ID.

Быстро, моментально и без необходимости вводить пароли. Так можно разблокировать iPhone X уже сегодня.

Apple известна тем, что всегда смотрит в технологическое будущее намного раньше, чем очередная функция становится стандартом. В случае с iPhone X и сканером лица компания уверена, что за распознаванием лиц будущее.

Разберемся, заблуждается ли Apple или наши лица – это верный пропуск в цифровое будущее.

😎 Рубрика «Технологии» выходит каждую неделю при поддержке re:Store .

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

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

Во-вторых, продуманная и натренированная нейросеть, которой скормили миллионы снимков с пометками. Обучают такие сети просто. Загружают снимок и представляют его системе: «Это Виктор Иванов», затем следующий.

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

В той же технологии FaceN, о которой мы поговорим ниже, используется около 80 различных числовых признаков-характеристик.

Почему про распознавание лиц внезапно заговорили?

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

Увидев человека на улице, вы могли сфотографировать его на смартфон, отправить фото в FindFace, и через несколько секунд найти его страничку во «ВКонтакте». Алгоритм совершенствовался, допиливался и все лучше и лучше распознавал лица.

А начиналось все с распознавания пород собак по фотографии. Автор технологии распознавания FaceN и приложения Magic Dog, Артем Кухаренко. Парень быстро смекнул, что за этой технологией будущее и приступил к разработке.

После успеха приложения FindFace, основатель компании-разработчика N-Tech.Lab Кухаренко в очередной раз убедился в том, что распознавание лиц интересно практически в любой отрасли:

  • пограничные службы
  • казино
  • аэропорты
  • любые места скопления людей
  • маркеты
  • парки развлечений
  • спецслужбы
  • В мае 2016 года N-Tech.Lab приступило к тестированию сервиса совместно с правительством Москвы. По всей территории столицы разместили десятки тысяч камер, которые в режиме реального времени опознавали прохожих.

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

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

    А как дела с распознаванием лиц в России

    Вы удивитесь, но с середины 2016 года градоначальники Москвы активно внедряют систему распознавания лиц по всей территории города.

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

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

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

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

    Изображение со стандартных камер видеонаблюдения поступает на обработку «умному» алгоритму и настоящая магия происходит уже там. По актуальным данным точность распознавания FindFace сегодня варьируется в пределах 73% – 75%. Разработчики уверены, что смогут добиться результата в 100% уже в ближайшее время.

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

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

    Типов биометрической аутентификации масса:

  • по ДНК
  • по радужной оболочке глаза
  • по ладони
  • по голосу
  • по отпечатку пальца
  • по лицу
  • И именно последняя технология особенно интересна, поскольку имеет сразу несколько преимуществ перед другими.

    Прообразом технологии распознавания лиц в XIX веке служили сперва «портреты по описанию», а позже – фотографии. Так полиция могла идентифицировать преступников. В 1965 году специально для правительства США была разработана полуавтоматическая система распознавания лиц. В 1971 к технологии вернутся, обозначив основные маркеры, необходимые для распознавания лиц, но ненадолго.

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

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

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

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

    В смартфонах

    Популяризация технологии распознавания лиц началась с флагмана Apple. iPhone X задал тренд на последующие годы и OEM-производители активно приступили к интеграции аналогов Face ID в свои устройства.

    В банках

    Биометрическое распознавание лиц уже не первый год используется в США. Теперь же технология добралась и до России. Только за 2017 год благодаря внедрению данной системы удалось предотвратить более 10 тысяч мошеннических сделок и сохранить сумму в размере 1,5 млрд рублей.

    Распознавание лиц используется для идентификации клиента и принятия решения по возможности выдачи кредита.

    В магазинах

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

    В жизни городов

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

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

    Google, Facebook, Apple и прочие IT-гиганты сейчас занимаются активной скупкой проектов от разработчиков, занимающихся распознаванием лиц. Все они видят в технологии огромный потенциал.

    Это лишь часть официально анонсированных сделок. На деле их намного больше. Помимо интеграции Face ID и аналогов технологии в смартфоны, у ведущих IT-компаний намного большие виды на использование распознавания лиц.

    Как будет выглядеть будущее с распознаванием лиц

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

    Доброе утро! Улыбочку, на вас смотрит система «умный» дом. Мда, хозяин, выпито вчера было немало – по лицу вижу, с трудом опознала. Так, рядом супруга, в прихожей доедает вечерний корм Барсик. Посторонних нет. Замечательно.

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

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

    Завидев вас издалека, 500-сильный электрокар автоматически подстроил вылет руля и подкорректировал положение кресла. Дверь открыта – присаживайтесь.

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

    Наконец, мы у здания офиса той самой компании, которая занимается внедрением технологии распознавания лиц в инфраструктуру городов России. Да, это ваша работа. Контроль жесткий, но вам не стоит переживать – пока вы парковали машину, камеры уже узнали вас.

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

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

    Тема этой статьи давным-давно наболела, но было всё как-то лень её писать. Много текста, который я уже раз двадцать повторял разным людям. Но, прочитав очередную пачку треша всё же решил что пора. Буду давать ссылку на эту статью.

    Итак. В статье я отвечу на несколько простых вопросов:

    Как вы думаете, откуда создатели алгоритмов взяли эти базы?

    Маленькая подсказка. Первый продукт NTech, который они сейчас - Find Face, поиск людей по вконтакту. Думаю пояснения не нужны. Конечно, вконтакт борется с ботами, которые выкачивают все открытые профили. Но, насколько я слышал, народ до сих пор качает. И одноклассников. И инстаграмм.

    Вроде как с Facebook - там всё сложнее. Но почти уверен, что что-то тоже придумали.
    Так что да, если ваш профиль открыт - то можете гордиться, он использовался для обучения алгоритмов;)

    Про решения и про компании

    Тут можно гордиться. Из 5 компаний-лидеров в мире сейчас два - Российские. Это N-Tech и VisionLabs. Пол года назад лидерами был NTech и Vocord, первые сильно лучше работали по повёрнутым лицам, вторые по фронтальным.

    Сейчас остальные лидеры - 1-2 китайских компании и 1 американская, Vocord что-то сдал в рейтингах.

    Еще российские в рейтинге itmo, 3divi, intellivision. Synesis - белорусская компания, хотя часть когда-то была в Москве, года 3 назад у них был блог на Хабре. Ещё про несколько решений знаю, что они принадлежат зарубежным компаниям, но офисы разработки тоже в России. Ещё есть несколько российских компаний которых нет в конкурсе, но у которых вроде неплохие решения. Например есть у ЦРТ. Очевидно, что у Одноклассников и Вконтакте тоже есть свои хорошие, но они для внутреннего пользования.

    Короче да, на лицах сдвинуты в основном мы и китайцы.

    NTech вообще первым в миру показал хорошие параметры нового уровня. Где-то в конце 2015 года . VisionLabs догнал NTech только только. В 2015 году они были лидерами рынка. Но их решение было прошлого поколения, а пробовать догнать NTech они стали лишь в конце 2016 года.

    Если честно, то мне не нравятся обе этих компании. Очень агрессивный маркетинг. Я видел людей которым было впарено явно неподходящее решение, которое не решало их проблем.

    С этой стороны Vocord мне нравился сильно больше. Консультировал как-то ребят кому Вокорд очень честно сказал «у вас проект не получится с такими камерами и точками установки». NTech и VisionLabs радостно попробовали продать. Но что-то Вокорд в последнее время пропал.

    Выводы

    В выводах хочется сказать следующее. Распознавание лиц это очень хороший и сильный инструмент. Он реально позволяет находить преступников сегодня. Но его внедрение требует очень точного анализа всех параметров. Есть где достаточно OpenSource решения. Есть применения (распознавание на стадионах в толпе), где надо ставить только VisionLabs|Ntech, а ещё держать команду обслуживания, анализа и принятия решения. И OpenSource вам тут не поможет.

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

    Добавить метки

    Биометрическую систему распознавания лиц планируется включить в стандарт «смарт-сити» для российских городов, который начал разрабатывать Минстрой. Об этом рассказал «Известиям» замглавы ведомства Андрей Чибис. Он отметил, что такую технологию было бы удобно использовать в общественном транспорте: пассажир заходит в автобус, программа его узнает и списывает за проезд деньги с банковского счета. Министерство намерено ознакомиться с опытом китайских городов и распространить подобные технологии в России.

    Министерство планирует привлечь китайские компании, в том числе Huawei, к внедрению совместно с «Ростелекомом» технологии биометрии и анализа событий в российских городах. Об этом сообщил «Известиям» заместитель министра строительства и ЖКХ Андрей Чибис. По его словам, в случае успеха эта система ляжет в основу стандарта «смарт-сити» - минимального набора решений для повышения комфортности городов. К разработке стандарта ведомство уже приступило.

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

    Насколько я знаю, сейчас идет дискуссия по поводу внедрения такой технологии в Москве. Очевидно, что из-за необходимости использовать карточки, время посадки пассажиров затягивается. А алгоритм распознавания лиц работает так: пассажир заходит в метро или автобус, программа его распознает и списывает за проезд деньги с банковского счета, - привел пример Андрей Чибис.

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

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

    В мире есть реальные примеры, и в России создание такого рода решений ожидается уже в скором времени, - подтвердили «Известиям» в компании.

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

    Генеральный директор компании VisionLabs, специализирующейся на компьютерном зрении, Александр Ханин отмечает, что процесс установки камер и серверов технически несложный, поэтому в ближайшем будущем подобные системы могут быть внедрены повсеместно. Их можно использовать в том числе для поиска пропавших, считает он. Стоимость подключения к каждой камере зависит от сценария использования и типа камеры: от 200 рублей до нескольких тысяч.

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

    Томограф в поликлинике генерирует гораздо больше информации, чем видеопоток из какого-нибудь автобуса. Вопрос в том, кто ее анализирует и в каких целях. Хотелось бы, чтобы законодательство защищало нас от тех сотрудников, которые используют персональные данные неправомочно, - сказал «Известиям» Александр Бахтин.

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

    В сентябре 2017 года о внедрении системы видеонаблюдения с функцией распознавания лиц объявили власти Москвы. Сообщалось, что столичная сеть включает в себя 160 тыс. видеокамер и охватывает 95% подъездов жилых домов. Лица на записях сканируются, чтобы при необходимости можно было сравнить данные с информацией в различных базах - например, правоохранительных органов, когда речь идет о поиске правонарушителя, указано на портале мэра Москвы. Система способна установить личность человека на видео, его пол и возраст.

    Госкорпорация «Ростех» применила технологию распознавания лиц во время ЧМ-2018. С ее помощью, например, удалось вычислить фаната, которому по решению суда запрещено посещать спортивные мероприятия. Алгоритм позволяет узнавать лица с точностью до 99%. В госкорпорации отмечали, что поиск конкретного человека среди миллиарда лиц занимает менее полусекунды.

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

    Если вы использовали в последние 10 лет какую-либо фотографию, то вы, вероятно, видели, как действует обнаружение лиц:

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

    Обнаружение лица стало господствующей тенденцией в начале 2000-х годов, когда Пол Виола и Майкл Джонс изобрели способ обнаруживать лица , который был достаточно быстрым, чтобы работать на дешёвых камерах. Однако сейчас существуют намного более надёжные решения. Мы собираемся использовать метод, открытый в 2005 году , - гистограмма направленных градиентов (коротко, HOG ).

    Для обнаружения лиц на изображении мы сделаем наше изображение чёрно-белым, т.к. данные о цвете не нужны для обнаружения лиц:

    Затем мы рассмотрим каждый отдельный пиксель на нашем изображении последовательно. Для каждого отдельного пикселя следует рассмотреть его непосредственное окружение:

    Нашей целью является выделить, насколько тёмным является текущий пиксель по сравнению с пикселями, прямо примыкающими к нему. Затем проведём стрелку, показывающую направление, в котором изображение становится темнее:


    При рассмотрении этого одного пикселя и его ближайших соседей видно, что изображение темнеет вверх вправо.

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

    Может показаться, что результатом является нечто случайное, но есть очень хорошая причина для замены пикселей градиентами. Когда мы анализируем пиксели непосредственно, то у тёмных и светлых изображений одного и того же человека будут сильно различающиеся значения интенсивности пикселей. Но если рассматривать только направление изменения яркости, то как тёмное, так и светлое изображения будут иметь совершенно одинаковое представление. Это значительно облегчает решение проблемы!

    Но сохранение градиента для каждого отдельного пикселя даёт нам способ, несущий слишком много подробностей. Мы, в конечном счёте, не видим леса из-за деревьев . Было бы лучше, если бы мы могли просто видеть основной поток светлого/тёмного на более высоком уровне, рассматривая таким образом базовую структуру изображения.

    Для этого разбиваем изображение на небольшие квадраты 16х16 пикселей в каждом. В каждом квадрате следует подсчитать, сколько градиентных стрелок показывает в каждом главном направлении (т.е. сколько стрелок направлено вверх, вверх-вправо, вправо и т.д.). Затем рассматриваемый квадрат на изображении заменяют стрелкой с направлением, преобладающим в этом квадрате.

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


    Исходное изображение преобразовано в HOG-представление, демонстрирующее основные характеристики изображения независимо от его яркости.

    Чтобы обнаружить лица на этом HOG-изображении, всё, что требуется от нас, это найти такой участок изображения, который наиболее похож на известную HOG-структуру, полученную из группы лиц, использованной для обучения:

    Используя этот метод, можно легко находить лица на любом изображении:

    Если есть желание выполнить этот этап самостоятельно, используя Python и dlib, то имеется программа , показывающая, как создавать и просматривать HOG-представления изображений.

    Шаг 2. Расположение и отображение лиц

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


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

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

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

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


    68 антропометрических точек мы располагаем на каждом лице

    Ниже показан результат расположения 68 антропометрических точек на нашем тестовом изображении:


    СОВЕТ ПРОФЕССИОНАЛА НОВИЧКУ: этот же метод можно использовать для ввода вашей собственной версии 3D-фильтров лица реального времени в Snapchat!

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

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

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

    Шаг 3. Кодирование лиц

    Теперь мы подошли к сути проблемы - само различение лиц. Здесь-то и начинается самое интересное!

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

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

    Нам требуется научиться извлекать некоторые базовые характеристики из каждого лица. Затем мы могли бы получить такие характеристики с неизвестного лица и сравнить с характеристиками известными лиц. Например, можно обмерить каждое ухо, определить расстояние между глазами, длину носа и т.д. Если вы когда-либо смотрели телесериал о работе сотрудников криминалистической лаборатории Лас-Вегаса («C.S.I.: место преступления»), то вы знаете, о чём идёт речь:


    Как в кино! Так похоже на правду!

    Самый надёжный метод обмерить лицо

    Хорошо, но какие характеристики надо получить с каждого лица, чтобы построить базу данных известных лиц? Размеры уха? Длина носа? Цвет глаз? Что-нибудь ещё?

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

    Решение состоит в том, чтобы обучить глубокую свёрточную нейронную сеть (именно это мы делали в выпуске 3). Но вместо обучения сети распознаванию графических объектов, как мы это делали последний раз, мы теперь собираемся научить её создавать 128 характеристик для каждого лица.

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

    1. Загрузите обучающее изображение лица известного человека

    2. Загрузите другое изображение лица того же человека

    3. Загрузите изображение лица какого-то другого человека

    Затем алгоритм рассматривает характеристики, которые он в данный момент создаёт для каждого из указанных трёх изображений. Он слегка корректирует нейронную сеть так, чтобы характеристики, созданные ею для изображений 1 и 2, оказались немного ближе друг к другу, а для изображений 2 и 3 - немного дальше.

    Единый «строенный» шаг обучения:

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

    Специалисты по обучению машин называют эти 128 характеристик каждого лица набором характеристик (признаков) . Идея сведения сложных исходных данных, таких как, например, изображение, к списку генерируемых компьютером чисел оказалась чрезвычайно перспективной в обучении машин (в частности, для переводов). Такой подход для лиц, который мы используем, был предложен в 2015 году исследователями из Гугл , но существует много аналогичных подходов.

    Кодировка нашего изображения лица

    Процесс обучения свёрточной нейронной сети с целью вывода наборов характеристик лица требует большого объёма данных и большой производительности компьютера. Даже на дорогой видеокарте NVidia Telsa требуется примерно 24 часа непрерывного обучения для получения хорошей точности.

    Но если сеть обучена, то можно создавать характеристики для любого лица, даже для того, которое ни разу не видели раньше! Таким образом, этот шаг требуется сделать лишь один раз. К счастью для нас, добрые люди на OpenFace уже сделали это и предоставили доступ к нескольким прошедшим обучение сетям , которые мы можем сразу же использовать. Спасибо Брендону Амосу и команде!

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

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

    Если есть желание попробовать выполнить этот шаг самостоятельно, то OpenFace предоставляет Lua-скрипт , создающий наборы характеристик всех изображений в папке и записывающий их в csv-файл. Можно запустить его так, как показано .

    Шаг 4. Нахождение имени человека после кодировки лица

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

    Это можно сделать, используя любой базовый алгоритм классификации обучения машин. Какие-либо особые приёмы глубинного обучения не требуются. Мы будем использовать простой линейный SVM-классификатор , но могут быть применены и многие другие алгоритмы классификации.

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

    Опробуем нашу систему. Прежде всего я обучил классификатор, используя наборы характеристики от примерно 20 изображений Уилла Феррелла, Чеда Смита и Джимми Фэлона:


    О, эти восхитительные картинки для обучения!

    Затем я прогнал классификатор на каждом кадре знаменитого видеоролика на Youtube, где на шоу Джимми Фэлона Уилл Феррелл и Чед Смит прикидываются друг другом :

    Сработало! И смотрите, как великолепно это сработало для лиц с самых разных направлений - даже в профиль!

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

    Рассмотрим требуемые шаги:

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

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

    3. Пропустите отцентрованное изображение лица через нейронную сеть, обученную определению характеристик лица. Сохраните полученные 128 характеристик.

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

    Теперь, когда вы знаете, как всё это работает, просмотрите инструкции с самого начала до конца, как провести весь процесс распознавания лица на вашем собственном компьютере, используя OpenFace :

    Прежде чем начать

    Убедитесь, что Python, OpenFace и dlib у вас установлены. Их можно установить вручную или использовать предварительно сконфигурированное контейнерное изображение, в котором это всё уже установлено:

    Docker pull bamos/openface docker run -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash cd /root/openface

    Совет профессионала новичку: если вы используете Docker на OSX, то можно сделать папку OSX/Users/ видимой внутри контейнерного изображения, как показано ниже:

    Docker run -v /Users:/host/Users -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash cd /root/openface

    Затем можно выйти на все ваши OSX-файлы внутри контейнерного изображения на /host/Users/…

    Ls /host/Users/

    Шаг 1

    Создайте папку с названием./training-images/ в папке openface.

    Mkdir training-images

    Шаг 2

    Создайте подпапку для каждого человека, которого надо распознать. Например:

    Mkdir ./training-images/will-ferrell/ mkdir ./training-images/chad-smith/ mkdir ./training-images/jimmy-fallon/

    Шаг 3

    Скопируйте все изображения каждого человека в соответствующие подпапки. Убедитесь, что на каждом изображении имеется только одно лицо. Не требуется обрезать изображение вокруг лица. OpenFace сделает это автоматически.

    Шаг 4

    Выполните скрипты openface из корневого директория openface:

    Сначала должны быть выполнены обнаружение положения и выравнивание:

    ./util/align-dlib.py ./training-images/ align outerEyesAndNose ./aligned-images/ --size 96

    В результате будет создана новая подпапка./aligned-images/ с обрезанной и выровненной версией каждого из ваших тестовых изображений.

    Затем создайте представления из выровненных изображений:

    ./batch-represent/main.lua -outDir ./generated-embeddings/ -data ./aligned-images/

    Подпапка./generated-embeddings/ будет содержать csv-файл с наборами характеристик для каждого изображения.

    Проведите обучение вашей модели обнаружения лица:

    ./demos/classifier.py train ./generated-embeddings/

    Будет создан новый файл с именем./generated-embeddings/classifier.pk . Этот файл содержит SVM-модель, которая будет использоваться для распознавания новых лиц.

    С этого момента у вас появляется работающий распознаватель лиц!

    Шаг 5. Распознаём лица!

    Возьмите новую картинку с неизвестным лицом. Пропустите её через скрипт классификатора, типа нижеследующего:

    ./demos/classifier.py infer ./generated-embeddings/classifier.pkl your_test_image.jpg

    Вы должны получить примерно такое предупреждение:

    === /test-images/will-ferrel-1.jpg === Predict will-ferrell with 0.73 confidence.

    Здесь, если пожелаете, можете настроить python-скрипт./demos/classifier.py .

    Важные замечания:

    Если результаты неудовлетворительные, то попытайтесь добавить ещё несколько изображений для каждого человека на шаге 3 (особенно изображения с разных направлений).

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

    Добавить метки

    В NtechLab в мае этого года вложился фонд Impulse, связанный с Романом Абрамовичем. А в VisionLabs инвестировал в 2016 г. венчурный фонд АФК «Система» Sistema VC.

    По данным исследовательской компании MarketsandMarkets, которые приводит Bloomberg, к 2021 г. объем рынка распознавания лиц достигнет $6,84 млрд. В 2016 г. он был вдвое меньше – $3,35 млрд.

    Мошенники не пройдут

    Григорий Бакунов, занимающий в «Яндексе» должность директора по распространению технологий, создал сервис, проектирующий уникальный случайный макияж, позволяющий избежать идентификации. Об этом он сообщал в своем telegram-канале. Проект команды основывался на алгоритме, который на основе оригинальной фотографии подбирал новый образ по принципу «антисходства». Затем на основе полученного результата визажист составлял план макияжа, после чего он наносился на лицо модели. Но затем разработчик решил свернуть проект. Объяснил он этот шаг соображениями совести: «Слишком уж велик шанс использовать продукт не для добра, а вовсе с другими целями». Алгоритмы, которые тестировали этот макияж, уже устарели, а современные алгоритмы распознают лицо даже с таким макияжем, уверяет представитель VisionLabs.

    Самое масштабное внедрение технологии распознавания лиц среди российских банков произошло у «Почта банка» (создан ВТБ и «Почтой России»), рассказывает генеральный директор компании VisionLabs Александр Ханин. Сейчас 50 000 рабочих мест сотрудников банка оборудованы специальными камерами, которые умеют распознавать лицо, рассказывает советник предправления «Почта банка» Павел Гурин. В банке есть три базы изображений – фотографии сотрудников, клиентов банка и мошенников. Каждая фотография хранится в зашифрованном виде, как набор символов. Перед началом работы с клиентами сотрудник должен войти в систему банка. Для подтверждения личности он не только вводит пароль, но и фотографирует себя. После этого специальная программа преобразует фотографию в код и сравнивает его с кодом, хранящимся в базе. Если они совпадают, сотрудник начинает работу. Систему распознавания лиц используют и для внутренней аттестации, чтобы один не проходил тесты за другого и чтобы никто не мог зайти под чужим паролем и провести незаконную транзакцию.

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

    Деньги по фотографии

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

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

    Распознавание в цифрах

    1,5 млрд руб.
    общая сумма кредитов, которую «Почта банк» не выдал мошенникам благодаря использованию технологии распознавания лиц
    70%
    правонарушений (включая нарушения на дорогах) раскрывается с помощью систем видеонаблюдения в Москве
    1 млрд фотографий из базы способен в режиме реального времени распознавать алгоритм российского стартапа NtechLab
    117 млн человек – их фотографии есть в полицейской базе распознавания лиц США, это примерно половина взрослых американцев

    Сбербанк в июле установил в Москве тестовый банкомат, где для совершения операций со счетом нужно только сфотографироваться, а не прикладывать пластиковую карту, рассказал представитель банка. Эксперимент продлится до конца 2017 г., после чего банк решит, внедрять ли технологию дальше. «Тинькофф банк» также сообщил о тестировании идентификации клиентов в банках.

    Сбербанк использует технологию распознавания лиц при выдаче кредитов с 2014 г.

    Прививка от очередей

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

    В «Дикси» тестировали распознавание лиц клиентов для определения гендерного состава клиентов и для таргетированной рекламы в кассовой зоне и торговом зале, говорит директор IT-департамента ГК «Дикси» Владимир Муравьев. В X5 Retail Group технологию распознавания лиц используют пока в тестовом режиме – чтобы уменьшать длину очередей на кассах и для оптимизации торгового пространства. Система распознавания лиц может определить, сколько человек стоит в очереди, и отправить сигнал о том, что необходимо открыть дополнительную кассу. Видеоаналитика помогает проследить, где в магазине проходит больше людей, на что они обращают внимание, чтобы потом правильно расположить товары и промоматериалы.

    Зона повышенной безопасности

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

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

    Компания Magic Ашота Габрелянова запустила игру, в которой для управления используется мимика пользователя, рассказал сам Габрелянов на своей странице в Facebook. В первой версии игры пользователю нужно уничтожать злых персонажей четырех разных цветов с помощью оружия, которое управляется мимикой – она распознается с помощью нейросетей. Например, для использования желтой пушки нужно изобразить радость, для красной – сделать рассерженное лицо.

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

    Большое будущее

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

    Благодаря технологии распознавания многие удивительные вещи станут реальными: человек только посмотрит на чайник – и он автоматически нагреет воду, говорит Иванов.