Алгоритм распознавания лиц: Как работает распознавание лиц? Разбор / Хабр

Содержание

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

Среднестатистический человек может идентифицировать знакомое лицо в толпе с точностью 97,53%. Вы скажете, это немало и будете правы. Но это ничто по сравнению с современными алгоритмами, которые добились точности 99,8% еще в 2014 году. А в последние несколько лет они достигли практически совершенства! Современный алгоритм, использующийся в камерах видеонаблюдения в Москве способен обрабатывать 1 миллиард изображений менее чем за полсекунды с точностью близкой к 100%.

Этот алгоритм насколько крут, что уже в этом году в Московском Метро планируют ввести систему прохода по лицу — FacePay. При этом нам обещают, что система будет работать даже если человек в медицинской маске.


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

  • Как работают алгоритмы распознавания лиц?
  • Страшны ли эти алгоритмы на самом деле и где их применяют во благо?
  • А также поговорим какого будущего нам ждать.

Причины


Технологии машинного зрения и распознавания лиц развивались очень активно с середины прошлого века. Но только сейчас стали по-настоящему хорошо работать. Причин тому три штуки:

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


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

Этап 1. Обнаружение


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

Как эта штука работает?

Этот алгоритм просто сканирует изображение при помощи вот таких прямоугольников, они называются примитивами Хаара:

И еще вот таких прямоугольников:

Задача этих объектов — находить более светлые и темные области на изображении, характерных конкретно для человеческих лиц.

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

В общем таких характерных признаков много и естественно не только у человеческих лиц могут быть подобные паттерны. Поэтому алгоритм работает в несколько этапов:

Сначала находится первый признак, система понимает: «В этой области может быть лицо». Тогда она начинает там же искать второй признак, а потом третий. И если в одной области найдено 3 признака, уже можно уверенно сказать — да, это лицо! После чего система получает область изображения, в котором есть только лицо.

Этап 2. Антропометрические точки


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

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

Этап 3. Исправление искажений


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

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

Этап 4. Вектор лица


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

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

Этап 5. Идентификация


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

Где и как используется?


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

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

Что будет в будущем?


Чего же нам ждать в будущем? Распознавание лиц для разблокировки iPhone, входа в Windows или во время конференций — это прекрасная, удобная технология, упрощающая жизнь и мы уже ей пользуемся. Но вот повсеместные камеры наблюдения в городах рисуют в воображении самые мрачные картины в духе Джорджа Оруэлла.

Отсюда возникает вопрос — можно ли защитить себя от систем видеонаблюдения? Конечно, с развитием технологий развиваются и средства обхода этих технологий.

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

Но по большому счету такой лук скорее больше привлечет внимания, а алгоритмы подстроятся под обманки. Поэтому единственный способ защиты — это закон. Бизнес активно не внедряет системы распознавания лиц только потому, что это несет большие юридические издержки. В ЕС активно разрабатывается новый закон, который уже прозвали GDPR 2: он будет строго регулировать системы распознавания лиц и прочие системы искусственного интеллекта, вызывающие законные опасения.

В России с этим пока что не так хорошо. Тем не менее отечественные компании, которые присутствуют на международном рынке также будут вынуждены соблюдать новые правила игры, как произошло с первым GDPR.

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

Анализ существующих подходов к распознаванию лиц / Хабр

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

Итак, начнем.

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

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

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

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

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

а)

б)

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

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

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

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

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

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

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

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

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

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

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

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

Наилучшие результаты в области распознавания лиц (по результатам анализа публикаций) показала Convolutional Neural Network или сверточная нейронная сеть (далее – СНС) [29-31], которая является логическим развитием идей таких архитектур НС как когнитрона и неокогнитрона. Успех обусловлен возможностью учета двумерной топологии изображения, в отличие от многослойного перцептрона.

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

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

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

Свое развитие СНС получили в разработке DeepFace [47], которую приобрел

Facebook для распознавания лиц пользователей своей соцсети. Все особенности архитектуры носят закрытый характер.

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

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

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

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

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

Недостатки:

— необходимо подбирать параметры модели для каждой базы данных;

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

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

Одним из наиболее известных и проработанных является метод главных компонент (principal component analysis, PCA), основанный на преобразовании Карунена-Лоева.

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

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

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

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

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

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

Алгоритм РСА

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

= 0.956*-1.842*+0.046 …

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

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

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

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

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

где

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

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

LDA ищет проекцию данных, при которой классы являются максимально линейно сепарабельны (см. рисунок ниже). Для сравнения PCA ищет такую проекцию данных, при которой будет максимизирован разброс по всей базе данных лиц (без учета классов). По результатам экспериментов [22] в условиях сильного бакового и нижнего затенения изображений лиц 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 году [17,18]. Первоначально активные модели внешнего вида применялись для оценки параметров изображений лиц.

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

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

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

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

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

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

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

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

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

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

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

Active Shape Models (ASM)

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

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

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

Тогда любая форма может быть описана с помощью модели и параметров:

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


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

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

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

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

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

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

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

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

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

Ежегодно FERET публикует отчет о сравнительном испытании современных систем распознавания лиц [55] на базе лиц более одного миллиона. К большому сожалению в последних отчетах не раскрываются принципы построения систем распознавания, а публикуются только результаты работы коммерческих систем. На сегодняшний день лидирующей является система 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 в задаче идентификации лиц

Понимание алгоритмов распознавания лиц | RecFaces

25 марта 2021 г.

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

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

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

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

Table of Contents

Convolutional Neural Network (CNN)
Eigenfaces
Fisherfaces
Kernel Methods: PCA and SVM
Haar Cascades
Three-Dimensional Recognition
Skin Texture Analysis
Тепловизоры
ANFIS
Локальные бинарные гистограммы (LBPH)
FaceNet
NEC
Megvii (Face++)
Распознавание лиц: сочетание различных методов
Резюме
Часто задаваемые вопросы об алгоритмах распознавания лиц
Как работает алгоритм распознавания лиц?
Что такое алгоритм распознавания лиц?
Как вы можете распознавать лица в OpenCV?
Как вы обучаете алгоритмы распознавания лиц?

Сверточная нейронная сеть (CNN)

Сверточная нейронная сеть (CNN) — одно из достижений в области искусственных нейронных сетей (ANN) и разработки ИИ. Это один из самых популярных алгоритмов глубокого обучения, типа машинного обучения, при котором модель учится выполнять задачи классификации непосредственно на изображении, видео, тексте или звуке. Модель показывает впечатляющие результаты в нескольких областях: компьютерное зрение, обработка естественного языка (NLP) и самый большой набор данных классификации изображений (Image Net). CNN — это обычная нейронная сеть с новыми слоями — сверточным и пулинговым. CNN может иметь десятки и сотни таких слоев, и каждый из них учится обнаруживать различные особенности изображения.

Собственные лица

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

Fisherfaces

Fisherfaces — один из самых популярных алгоритмов распознавания лиц; он считается лучшим, чем многие его альтернативы. Как улучшение алгоритма Eeigenfaces, его часто сравнивают с Eigenfaces и считают более успешным в различии классов в процессе обучения. Ключевым преимуществом этого алгоритма является его способность интерполировать и экстраполировать изменения освещения и выражения лица. Имеются сообщения о 93% точности алгоритма Fisherfaces в сочетании с методом PCA на этапе предварительной обработки.

Методы ядра: PCA и SVM

Анализ основных компонентов (PCA) — универсальный статистический метод, имеющий множество практических применений. При использовании в процессе распознавания лиц PCA стремится уменьшить размер исходных данных, сохраняя при этом наиболее важную информацию. Он генерирует набор взвешенных собственных векторов, которые, в свою очередь, составляют собственные лица — обширные наборы различных изображений человеческих лиц. Линейная комбинация собственных граней представляет каждое изображение в обучающем наборе. PCA используется для получения этих собственных векторов из ковариационной матрицы набора обучающих изображений. Для каждого изображения вычисляются его основные компоненты (от 5 до 200). Другие компоненты кодируют незначительные различия между лицами и шумом. Процесс распознавания включает в себя сравнение основного компонента неизвестного изображения с компонентами всех остальных изображений.

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

Каскады Хаар

Каскад Хаара — это метод обнаружения объектов, используемый для обнаружения объектов на изображениях. Алгоритм учится на большом количестве положительных и отрицательных образцов — первый содержит интересующий объект, а второй содержит что-либо, кроме объекта, который вы ищете. После обучения классификатор может найти интересующий объект на новых изображениях. Этот метод использовался для идентификации преступников в сочетании с алгоритмом локального бинарного шаблона для распознавания лиц. Каскадный классификатор Хаара использует 200 (из 6000) признаков, что обеспечивает оценку 85-9.Уровень распознавания 5% даже с разными выражениями.

Трехмерное распознавание

В основе технологии трехмерного распознавания лиц лежит уникальная структура человеческого черепа. Строение черепа каждого человека уникально и может быть описано несколькими десятками параметров. Этот метод распознавания лиц основан на сравнении 3D-сканирования лица с образцами из базы данных. У него есть существенное преимущество — макияж, растительность на лице, очки и тому подобные факторы не влияют на процесс обнаружения и распознавания. В последнем исследовании использовалась технология отображения трехмерной геометрической информации на обычной двумерной сетке. Это позволяет сочетать описательность 3D-данных с вычислительной эффективностью 2D-данных и демонстрирует самую высокую производительность, о которой сообщалось в FRGC v2 (3D-база данных лиц Face Recognition Grand Challenge).

Анализ текстуры кожи

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

Тепловизионные камеры

Тепловизионная камера — это устройство, используемое для наблюдения за распределением температуры на исследуемой поверхности. Распределение температуры отображается в виде цветного изображения с разными цветами, соответствующими температурам. У этой технологии уже есть несколько практических приложений, адаптирующихся к глобальным изменениям — сертификаты иммунитета на смартфонах, дистанционное обнаружение лихорадки и тепловое распознавание лиц. Модели теплового распознавания лиц основаны на уникальных температурных характеристиках человеческого лица. Постоянные температурные «сигнатуры» человека измеряются с помощью воображаемого теплового инфракрасного (ИК) излучения. Использование теплового метода в распознавании лиц имеет неоспоримое преимущество — макияж, растительность на лице, головной убор и очки не влияют на его точность. Более того, это отличает братьев-близнецов.

ANFIS

Адаптивная нейро-нечеткая интерференционная система (ANFIS) представляет собой тип искусственной нейронной сети. Этот метод объединяет принципы нейронных сетей с принципами нечеткой логики и объединяет их преимущества в единой структуре. ANFIS используется для классификации характеристик изображений, извлеченных из наборов данных на этапе предварительной обработки. Специалисты по данным комбинируют этот метод с различными алгоритмами извлечения признаков. Таким образом, в некоторых исследованиях сообщалось о невероятной точности классификации ANFIS на уровне 97,1% после выделения признаков с помощью двухмерного анализа основных компонентов.

Гистограммы локальных бинарных шаблонов (LBPH)

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

FaceNet

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

NEC

Решение, разработанное японской технологической компанией NEC, позволяет с высокой точностью идентифицировать людей, распознавая возрастные изменения. В решении используется смешанное сопоставление с адаптивным регионом — модель, которая фокусируется на очень похожих сегментах для сопоставления. Технология NEC делит входные и зарегистрированные изображения на небольшие сегменты и фокусируется только на сегментах большего сходства. Это позволяет системе показывать более высокую точность идентификации даже в случае, если на лице есть маска или очки. В качестве базового алгоритма решение NEC использует обобщенное векторное квантование обучения (GLVQ).

Megvii (Face++)

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

Распознавание лиц: сочетание различных методов

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

Резюме

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

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

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

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

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

Что такое алгоритм распознавания лиц?

Алгоритм распознавания лиц — это метод построения биометрической модели лица для дальнейшего анализа и процесса распознавания лиц.

Как вы можете распознавать лица в OpenCV?

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

  • Распознавание лиц;
  • Извлечение признаков с помощью встраивания лиц;
  • Распознавание лиц.

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

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

Машинное обучение и распознавание лиц

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

Что такое машинное обучение?

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

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

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

 

Как сегодня используется машинное обучение

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

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

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

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

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

 

Использование машинного обучения в технологии распознавания лиц

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

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

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

3 этапа распознавания лиц

Распознавание лиц делится на три этапа:

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

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

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