Что видят роботы, когда смотрят на наши лица. Система распознавания лиц при помощи систем видеонаблюдения

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

Если вы использовали в последние 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 (особенно изображения с разных направлений).

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

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

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

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

Общий процесс обработки изображения лица при распознавании

На первом этапе производится детектирование и локализация лица на изображении. На этапе распознавания производится выравнивание изображения лица (геометрическое и яркостное), вычисление признаков и непосредственно распознавание – сравнение вычисленных признаков с заложенными в базу данных эталонами. Основным отличием всех представленных алгоритмов будет вычисление признаков и сравнение их совокупностей между собой.

1. Метод гибкого сравнения на графах (Elastic graph matching) .

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

А)

Б)

Пример структуры графа для распознавания лиц: а) регулярная решетка б) граф на основе антропометрических точек лица.

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


Набор (банк, jet) фильтров Габора


Пример свертки изображения лица с двумя фильтрами Габора

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


Пример деформации графа в виде регулярной решетки

В отдельных публикациях указывается 95-97%-ая эффективность распознавания даже при наличии различных эмоциональных выражениях и изменении ракурса лица до 15 градусов. Однако разработчики систем эластичного сравнения на графах ссылаются на высокую вычислительную стоимость данного подхода. Например, для сравнения входного изображения лица с 87 эталонными тратилось приблизительно 25 секунд при работе на параллельной ЭВМ с 23 транспьютерами (Примечание: публикация датирована 1993 годом). В других публикациях по данной тематике время либо не указывается, либо говорится, что оно велико.

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

2. Нейронные сети

В настоящее время существует около десятка разновидности нейронных сетей (НС). Одним из самых широко используемых вариантов являться сеть, построенная на многослойном перцептроне, которая позволяет классифицировать поданное на вход изображение/сигнал в соответствии с предварительной настройкой/обучением сети.
Обучаются нейронные сети на наборе обучающих примеров. Суть обучения сводится к настройке весов межнейронных связей в процессе решения оптимизационной задачи методом градиентного спуска. В процессе обучения НС происходит автоматическое извлечение ключевых признаков, определение их важности и построение взаимосвязей между ними. Предполагается, что обученная НС сможет применить опыт, полученный в процессе обучения, на неизвестные образы за счет обобщающих способностей.
Наилучшие результаты в области распознавания лиц (по результатам анализа публикаций) показала Convolutional Neural Network или сверточная нейронная сеть (далее – СНС) , которая является логическим развитием идей таких архитектур НС как когнитрона и неокогнитрона. Успех обусловлен возможностью учета двумерной топологии изображения, в отличие от многослойного перцептрона.
Отличительными особенностями СНС являются локальные рецепторные поля (обеспечивают локальную двумерную связность нейронов), общие веса (обеспечивают детектирование некоторых черт в любом месте изображения) и иерархическая организация с пространственными сэмплингом (spatial subsampling). Благодаря этим нововведениям СНС обеспечивает частичную устойчивость к изменениям масштаба, смещениям, поворотам, смене ракурса и прочим искажениям.


Схематичное изображение архитектуры сверточной нейронной сети

Тестирование СНС на базе данных ORL, содержащей изображения лиц с небольшими изменениями освещения, масштаба, пространственных поворотов, положения и различными эмоциями, показало 96% точность распознавания.
Свое развитие СНС получили в разработке DeepFace , которую приобрел
Facebook для распознавания лиц пользователей своей соцсети. Все особенности архитектуры носят закрытый характер.


Принцип работы DeepFace

Недостатки нейронных сетей: добавление нового эталонного лица в базу данных требует полного переобучения сети на всем имеющемся наборе (достаточно длительная процедура, в зависимости от размера выборки от 1 часа до нескольких дней). Проблемы математического характера, связанные с обучением: попадание в локальный оптимум, выбор оптимального шага оптимизации, переобучение и т. д. Трудно формализуемый этап выбора архитектуры сети (количество нейронов, слоев, характер связей). Обобщая все вышесказанное, можно заключить, что НС – «черный ящик» с трудно интерпретируемыми результатами работы.

3. Скрытые Марковские модели (СММ, HMM)

Одним из статистических методов распознавания лиц являются скрытые Марковские модели (СММ) с дискретным временем . СММ используют статистические свойства сигналов и учитывают непосредственно их пространственные характеристики. Элементами модели являются: множество скрытых состояний, множество наблюдаемых состояний, матрица переходных вероятностей, начальная вероятность состояний. Каждому соответствует своя Марковская модель. При распознавании объекта проверяются сгенерированные для заданной базы объектов Марковские модели и ищется максимальная из наблюдаемых вероятность того, что последовательность наблюдений для данного объекта сгенерирована соответствующей моделью.
На сегодняшний день не удалось найти примера коммерческого применения СММ для распознавания лиц.

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

4. Метод главных компонент или principal component analysis (PCA)

Одним из наиболее известных и проработанных является метод главных компонент (principal component analysis, PCA), основанный на преобразовании Карунена-Лоева.
Первоначально метод главных компонент начал применяться в статистике для снижения пространства признаков без существенной потери информации. В задаче распознавания лиц его применяют главным образом для представления изображения лица вектором малой размерности (главных компонент), который сравнивается затем с эталонными векторами, заложенными в базу данных.
Главной целью метода главных компонент является значительное уменьшение размерности пространства признаков таким образом, чтобы оно как можно лучше описывало «типичные» образы, принадлежащие множеству лиц. Используя этот метод можно выявить различные изменчивости в обучающей выборке изображений лиц и описать эту изменчивость в базисе нескольких ортогональных векторов, которые называются собственными (eigenface).

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

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


Преобразования обучающего набора лиц в одну общую матрицу X

Затем производится нормировка данных и приведение строк к 0-му среднему и 1-й дисперсии, вычисляется матрица ковариации. Для полученной матрицы ковариации решается задача определения собственных значений и соответствующих им собственных векторов (собственные лица). Далее производится сортировка собственных векторов в порядке убывания собственных значений и оставляют только первые k векторов по правилу:




Алгоритм РСА


Пример первых десяти собственных векторов (собственных лиц), полученных на обучаемом наборе лиц

= 0.956*-1.842*+0.046

Пример построения (синтеза) человеческого лица с помощью комбинации собственных лиц и главных компонент


Принцип выбора базиса из первых лучших собственных векторов


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

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

В было предложено решение этой проблемы с использование линейного дискриминанта Фишера (в литературе встречается название “Eigen-Fisher”, “Fisherface”, LDA). LDA выбирает линейное подпространство, которое максимизирует отношение:

Где

Матрица межклассового разброса, и

Матрица внутриклассового разброса; m – число классов в базе данных.

LDA ищет проекцию данных, при которой классы являются максимально линейно сепарабельны (см. рисунок ниже). Для сравнения PCA ищет такую проекцию данных, при которой будет максимизирован разброс по всей базе данных лиц (без учета классов). По результатам экспериментов в условиях сильного бакового и нижнего затенения изображений лиц Fisherface показал 95% эффективность по сравнению с 53% Eigenface.


Принципиальное отличие формирования проекций PCA и LDA

Отличие PCA от LDA

5. Active Appearance Models (AAM) и Active Shape Models (ASM) ()
Active Appearance Models (AAM)
Активные модели внешнего вида (Active Appearance Models, AAM) - это статистические модели изображений, которые путем разного рода деформаций могут быть подогнаны под реальное изображение. Данный тип моделей в двумерном варианте был предложен Тимом Кутсом и Крисом Тейлором в 1998 году . Первоначально активные модели внешнего вида применялись для оценки параметров изображений лиц.
Активная модель внешнего вида содержит два типа параметров: параметры, связанные с формой (параметры формы), и параметры, связанные со статистической моделью пикселей изображения или текстурой (параметры внешнего вида). Перед использованием модель должна быть обучена на множестве заранее размеченных изображений. Разметка изображений производится вручную. Каждая метка имеет свой номер и определяет характерную точку, которую должна будет находить модель во время адаптации к новому изображению.


Пример разметки изображения лица из 68 точек, образующих форму AAM.

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


Координаты точек формы лица до и после нормализации

Из всего множества нормированных точек затем выделяются главные компоненты с использованием метода PCA.


Модель формы AAM состоит из триангуляционной решетки s0 и линейной комбинации смещений si относительно s0

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

Модель внешнего вида AAM состоит из базового вида A0, определенного пикселями внутри базовой решетки s0 и линейной комбинации смещений Ai относительно A0

Пример конкретизации AAM. Вектор параметров формы
p=(p_1,p_2,〖…,p〗_m)^T=(-54,10,-9.1,…)^T используется для синтеза модели формы s, а вектор параметров λ=(λ_1,λ_2,〖…,λ〗_m)^T=(3559,351,-256,…)^Tдля синтеза внешнего вида модели. Итоговая модель лица 〖M(W(x;p))〗^ получается как комбинация двух моделей – формы и внешнего вида.

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

Методом градиентного спуска. Найденные при этом параметры модели и будут отражать положение модели на конкретном изображении.




Пример подгонки модели на конкретное изображение за 20 итераций процедуры градиентного спуска.

С помощью AAM можно моделировать изображения объектов, подверженных как жесткой, так и нежесткой деформации. ААМ состоит из набора параметров, часть которых представляют форму лица, остальные задают его текстуру. Под деформации обычно понимают геометрическое преобразование в виде композиции переноса, поворота и масштабирования. При решении задачи локализации лица на изображении выполняется поиск параметров (расположение, форма, текстура) ААМ, которые представляют синтезируемое изображение, наиболее близкое к наблюдаемому. По степени близости AAM подгоняемому изображению принимается решение – есть лицо или нет.

Active Shape Models (ASM)

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




Пример представления формы лица с использованием 68 точек

Для того чтобы привести координаты на всех изображениях к единой системе обычно выполняется т.н. обобщенный прокрустов анализ, в результате которого все точки приводятся к одному масштабу и центрируются. Далее для всего набора образов вычисляется средняя форма и матрица ковариации. На основе матрицы ковариации вычисляются собственные вектора, которые затем сортируются в порядке убывания соответствующих им собственных значений. Модель ASM определяется матрицей Φ и вектором средней формы s ̅.
Тогда любая форма может быть описана с помощью модели и параметров:

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


а) б) в) г)
Иллюстрация процесса локализации модели ASM на конкретном изображении: а) начальное положение б) после 5 итераций в) после 10 итераций г) модель сошлась

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

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

Модели AAM и ASM как раз и предназначены для того чтобы точно локализовать эти антропометрические точки на изображении лица.

6. Основные проблемы, связанные с разработкой систем распознавания лиц

Проблема освещенности

Проблема положения головы (лицо – это, все же, 3D объект).

С целью оценки эффективности предложенных алгоритмов распознавания лиц агентство DARPA и исследовательская лаборатория армии США разработали программу FERET (face recognition technology).

В масштабных тестах программы FERET принимали участие алгоритмы, основанные на гибком сравнении на графах и всевозможные модификации метода главных компонент (PCA). Эффективность всех алгоритмов была примерно одинаковой. В этой связи трудно или даже невозможно провести четкие различия между ними (особенно если согласовать даты тестирования). Для фронтальных изображений, сделанных в один и тот же день, приемлемая точность распознавания, как правило, составляет 95%. Для изображений, сделанных разными аппаратами и при разном освещении, точность, как правило, падает до 80%. Для изображений, сделанных с разницей в год, точность распознавания составило примерно 50%. При этом стоит заметить, что даже 50 процентов - это более чем приемлемая точность работы системы подобного рода.

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

Список литературы (гуглится по первой ссылке)
1. Image-based Face Recognition - Issues and Methods
2. Face Detection A Survey.pdf
3. Face Recognition A Literature Survey
4. A survey of face recognition techniques
5. A survey of face detection, extraction and recognition
6. Обзор методов идентификации людей на основе изображений лиц
7. Методы распознавания человека по изображению лица
8. Сравнительный анализ алгоритмов распознавания лиц
9. Face Recognition Techniques
10. Об одном подходе к локализации антропометрических точек.
11. Распознавание лиц на групповых фотографиях с использованием алгоритмов сегментации
12. Отчет о НИР 2-й этап по распознаванию лиц
13. Face Recognition by Elastic Bunch Graph Matching
14. Алгоритмы идентификации человека по фотопортрету на основе геометриче-ских преобразований. Диссертация.
15. Distortion Invariant Object Recognition in the Dynamic Link Architecture
16. Facial Recognition Using Active Shape Models, Local Patches and Support Vector Machines
17. Face Recognition Using Active Appearance Models
18. Active Appearance Models for Face Recognition
19. Face Alignment Using Active Shape Model And Support Vector Machine
20. Active Shape Models - Their Training and Application
21. Fisher Vector Faces in the Wild
22. Eigenfaces vs. Fisherfaces Recognition Using Class Specific Linear Projection
23. Eigenfaces and fisherfaces
24. Dimensionality Reduction
25. ICCV 2011 Tutorial on Parts Based Deformable Registration
26. Constrained Local Model for Face Alignment, a Tutorial
27. Who are you – Learning person specific classifiers from video
28. Распознавание человека по изображению лица нейросетевыми методами
29. Face Recognition A Convolutional Neural Network Approach
30. Face Recognition using Convolutional Neural Network and Simple Logistic Classifier
31. Face Image Analysis With Convolutional Neural Networks
32. Методы распознавания лиц на основе скрытых марковских процессов. Авторе-ферат
33. Применение скрытых марковских моделей для распознавания лиц
34. Face Detection and Recognition Using Hidden Markovs Models
35. Face Recognition with GNU Octave-MATLAB
36. Face Recognition with Python
37. Anthropometric 3D Face Recognition
38. 3D Face Recognition
39. Face Recognition Based on Fitting a 3D Morphable Model
40. Face Recognition
41. Robust Face Recognition via Sparse Representation
42. The FERET Evaluation Methodology For Face-Recognition Algorithms
43. Поиск лиц в электронных коллекциях исторических фотографий
44. Design, Implementation and Evaluation of Hardware Vision Systems dedicated to Real-Time Face Recognition
45. An Introduction to the Good, the Bad, & the Ugly Face Recognition Challenge Prob-lem
46. Исследование и разработка методов обнаружения человеческого лица на циф-ровых изображениях. Диплом
47. DeepFace Closing the Gap to Human-Level Performance in Face Verification
48. Taking the bite out of automated naming of characters in TV video
49. Towards a Practical Face Recognition System Robust Alignment and Illumination by Sparse Representation
50. Алгоритмы обнаружения лица человека для решения прикладных задач анализа и обработки изображений
51. Обнаружение и локализация лица на изображении
52. Модифицированный мотод Виолы-Джонса
53. Разработка и анализ алгоритмов детектирования и классификации объектов на основе методов машинного обучения
54. Overview of the Face Recognition Grand Challenge
55. Face Recognition Vendor Test (FRVT)
56. Об эффективности применения алгоритма SURF в задаче идентификации лиц

В 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-аватар прямо в телефоне.

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

Юбилейный 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-сильный электрокар автоматически подстроил вылет руля и подкорректировал положение кресла. Дверь открыта – присаживайтесь.

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

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

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

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

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

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

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

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

    Мы готовим такое же приложение для сервиса знакомств: люди при первом контакте часто не хотят раскрываться, - рассказывает Юля, пиарщик компании VisionLabs, разработавшей LUNA. - Некоторые надевают маски, чтобы добавить в романтическое общение элемент игры.

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

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

    Главные клиенты VisionLabs - банки. Например, в "Почта Банке" системой LUNA оборудованы 50 тысяч рабочих мест - это самое большое внедрение биометрии в мире. Важно распознавать и лица клиентов, чтобы сравнивать фотографии в паспортах с фото в базе данных. Ведь самое распространенное мошенничество в этой сфере - вклейка своего фото в чужой паспорт для получения кредита.

    Как видят машины

    К нам подходит Александр Ханин, директор VisionLabs.

    Расскажите о компьютерном зрении?

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

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

    Задача распознавания лиц решена?

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

    Зато человек анализирует не отдельные параметры, а лицо и даже ситуацию в целом. Мы понимаем контекст, в котором лицо собеседника принимает то или иное выражение. Как машина со всем этим справляется?

    Александр Ханин: Сочетая лучшие методики компьютерного зрения и машинного обучения. Взять, например, метод глубокого обучения - его особенность в том, что человек не задает параметры лица для распознавания.

    Нейросеть программирует сама себя?

    Александр Ханин: Нейросети появились еще в 1970-х, а революция в этой области началась примерно в 2013-2014-м. Потому что только к этому времени удалось накопить достаточно большие объемы данных , чтобы учить нейросети, а вычислительные мощности стали относительно дешевыми. Продолжать разрабатывать детерминированные методы распознавания - указывать, какие части лица как сравнивать, - стало бессмысленно.

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

    Вы именно так обучали свою систему?

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

    Где же вы взяли эти миллионы пар фотографий?

    Александр Ханин: Есть доступные обучающие выборки для исследователей - сначала мы использовали их, а дальше уже работали с партнерами и клиентами, которые разрешили продолжить обучение на их данных.

    Как преуспеть на рынке

    Задача распознавания людей по лицу решена. А как обстоит дело с определением эмоций?

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

    Распознавать ложь, например?

    Александр Ханин: Да. Или определять, соответствует кандидат вашим требованиям или нет. Удовлетворен клиент обслуживанием или нет - улыбка ведь может выражать не только радость, но и насмешку и скрытое недовольство. Поэтому само по себе распознавание эмоций - это подзадача. Мы изучаем лицо в динамике, последовательность реакций на вопросы, обслуживание, обстановку.

    Есть ли в мире инновационные продукты, на которые вы ориентируетесь?

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

    В каких-то терминалах самообслуживания уже установлена система распознавания лиц?

    Александр Ханин: Да, например, в банке "Открытие" - в терминалах электронной очереди. И это не пилотные проекты, а такие, которые работают и удовлетворяют заказчиков в реальных условиях.

    Чувствуете, как конкуренты дышат в спину?

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

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

    Распознать всех!

    Какие задачи еще не решены, но будут - в обозримой перспективе? Над чем работают специалисты?

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

    Разве узнавать случайных людей по лицам не запрещено законом? Это ведь использование персональных данных.

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

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

    То есть ФСБ можно, а обычным людям нельзя?

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

    В аэропортах уже есть системы распознавания лиц?

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

    Угадай, что на картинке

    Как будет развиваться компьютерное зрение?

    Александр Ханин: Есть большая группа задач, именуемых visual question answering: вы показываете компьютеру картинку, и он должен понять, что там изображено. Это очень сложно: если просто учить распознавать объекты по отдельности, ничего не получится - надо понимать контекст и взаимосвязь объектов.

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

    То есть вы хотите научить машины распознавать образы, смысл которых зависит от контекста?

    Александр Ханин: Научить интерпретировать контекст и таким образом распознавать картинки, действия, сцены.

    Когда роботы прозреют

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

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

    Александр Ханин: Вы совершенно точно заметите работу таких систем при авторизации - например, когда будете разблокировать телефон. Многие уже привыкли к Touch ID, но скоро самым распространенным способом станет вхождение в систему по лицу. Приходя домой, вы не будете искать ключи, на работе вам не понадобится пропуск. Ускорится обслуживание и самообслуживание в банках, магазинах, во всей сфере услуг: расчеты будут происходить без карточек.

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

    Одна и та же система установленных повсюду камер и компьютерного зрения?

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

    Жить в мире, где все на виду, страшновато. Технически все проще становится построить антиутопию, где за всеми ведется тотальная слежка…

    Александр Ханин: Я думаю, в итоге мир станет лучше и намного безопаснее. Но обманывать будет труднее. Например, мы с партнерами недавно разработали продукт, который не только дает доступ в рабочее помещение, но и учитывает проведенное там время: пришли во столько-то, ушли во столько. Прогуляли, опоздали, не вернулись с обеда - все будет зафиксировано.

    И никак нельзя будет от этого спрятаться? Наверняка появятся маски с чужим лицом.

    Александр Ханин: Безусловно, есть масса способов обмануть систему, и в этой области "гонка вооружений" только начинается. Был такой видеоролик, где учили делать макияж, препятствующий распознаванию. Но то было года три назад - нынешние алгоритмы так просто не проведешь.

    А если вместо лица показывать фотографию?

    Александр Ханин: Чтобы вычислить мошенников, в системах распознавания лиц программируют специальный "детектор живости" (lifeness detector), который определяет, человек перед ним или фотография. Показателей живости несколько. Самый простой, который считается мировым стандартом, - это моргание. Еще система может попросить человека улыбнуться, повернуть голову, приблизиться к камере, чтобы убедиться, что он реальный. Но если камера оснащена сенсором глубины, это не требуется: машина сразу понимает, что в кадре объемный объект, а не фото.

    Кто еще в лидерах

    Распознавание лиц - это не только наука и технология, но и большой бизнес, который в развитых странах растет огромными темпами. Исследовательская компания Allied Market Research прогнозирует, что к 2022 году его оборот составит почти десять миллиардов долларов. Среди ведущих игроков есть и российские. Из десятков стартапов и исследовательских проектов мы выделили три самых успешных.

    NTechLab. Выпускник МГУ Артем Кухаренко начинал с приложения, определявшего породу собак по фотографии. Но уже в 2015 году созданный им с партнерами по проекту NTechLab алгоритм FaceN одержал победу в двух из четырех номинаций главного мирового конкурса по распознаванию лиц MegaFace, обойдя команду Google. Однако настоящая слава пришла к компании после разработки популярнейшего приложения FindFace, предназначенного для поиска по фото людей в соцсети "ВКонтакте". Сегодня число заявок на интеграцию технологии FindFace приближается к тысяче.

    Vocord. Компанию "Вокорд" можно смело считать чемпионом мира по распознаванию лиц: на сайте конкурса MegaFace она занимает первое место, лидируя с солидным отрывом. Команда "Вокорд" - ветераны на рынке систем компьютерного зрения: программу дистанционного биометрического распознавания лиц Vocord FaceControl они выпустили еще в 2008 году, сегодня их продуктами пользуются больше двух тысяч коммерческих и государственных организаций. Специализация компании - идентификация лиц, то есть поиск человека в толпе.

    VisionLabs. Их продукты входят в тройку лучших мировых коммерческих систем распознавания лиц. Подробнее об этой компании читайте в основном тексте.

    Основные виды биометрии

    Международная классификация способов идентификации человека

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

    Отпечатки пальцев. Дактилоскопический метод основан на неповторимости папиллярного рисунка кожи, широко применяется в криминалистике.

    Речь. Способ распознавания, основанный на преобразовании звучащей речи в цифровую информацию.

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

    Вены. Способ идентификации на основе венозного рисунка руки или пальцев.