Eigenface - Eigenface

Некоторые собственные лица из AT&T лаборатории Кембридж

An собственное лицо (/ˈаɪɡəпˌжs/) - это имя, данное набору собственные векторы при использовании в компьютерное зрение проблема человека распознавание лица.[1] Подход использования собственных граней для признание был разработан Сировичем и Кирби (1987) и использовался Мэтью Терк и Алекс Пентланд в классификации лиц.[2] Собственные векторы выводятся из ковариационная матрица из распределение вероятностей сверх-размерный векторное пространство изображений лиц. Сами собственные грани образуют базисный набор всех изображений, используемых для построения ковариационной матрицы. Это приводит к уменьшению размеров, позволяя меньшему набору базовых изображений представлять исходные обучающие изображения. Классификация может быть достигнута путем сравнения того, как лица представлены базовым набором.

История

Подход собственного лица начался с поиска низкоразмерного представления изображений лиц. Сирович и Кирби (1987) показали, что Анализ главных компонентов может использоваться на коллекции изображений лиц для формирования набора основных функций. Эти базовые изображения, известные как собственные изображения, можно линейно комбинировать для восстановления изображений в исходном обучающем наборе. Если обучающая выборка состоит из M изображений, анализ главных компонентов может сформировать базовый набор N изображения, где N . Ошибка восстановления снижается за счет увеличения количества собственных изображений; однако необходимое количество всегда выбирается меньше, чем M. Например, если вам нужно создать несколько N собственные лица для обучающего набора M изображения лица, можно сказать, что каждое изображение лица может состоять из "пропорций" всех K "features" или eigenfaces: изображение лица.1 = (23% от E1) + (2% E2) + (51% E3) + ... + (1% Eп).

В 1991 г. М. Терк и А. Пентланд расширили эти результаты и представили метод распознавания лиц по собственному лицу.[3] Помимо разработки системы автоматического распознавания лиц с использованием собственных лиц, они показали способ расчета собственные векторы из ковариационная матрица Таким образом, компьютеры того времени могли выполнять собственное разложение на большом количестве изображений лиц. Изображения лиц обычно занимают многомерное пространство, и традиционный анализ главных компонентов на таких наборах данных был невозможен. В статье Тёрка и Пентланда продемонстрированы способы извлечения собственных векторов на основе матриц, размер которых определяется количеством изображений, а не количеством пикселей.

После внедрения метод собственного лица был расширен за счет включения методов предварительной обработки для повышения точности.[4] Также использовалось множество разнообразных подходов для построения наборов собственных лиц для разных субъектов.[5][6] и разные черты лица, например глаза.[7]

Поколение

А набор собственных граней может быть сгенерирован путем выполнения математического процесса, называемого Анализ главных компонентов (PCA) на большом наборе изображений, изображающих разные человеческие лица. Неформально собственные лица можно рассматривать как набор «стандартизованных ингредиентов лица», полученных из статистический анализ из многих изображений лиц. Любое человеческое лицо можно рассматривать как сочетание этих стандартных лиц. Например, лицо человека может состоять из среднего лица плюс 10% из собственного лица 1, 55% из собственного лица 2 и даже −3% из собственного лица 3. Примечательно, что не требуется много собственных граней, объединенных вместе, чтобы достичь справедливого приближения к большинство лиц. Кроме того, поскольку лицо человека не записывается цифровая фотография, но вместо этого в виде просто списка значений (одно значение для каждого собственного лица в используемой базе данных) для лица каждого человека требуется гораздо меньше места.

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

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

Практическая реализация

Чтобы создать набор собственных граней, необходимо:

  1. Подготовьте обучающий набор изображений лиц. Изображения, составляющие обучающую выборку, должны быть сделаны при одинаковых условиях освещения и должны быть нормализованы, чтобы глаза и рот были выровнены на всех изображениях. Все они также должны быть передискретизированы до общего пиксель разрешающая способность (р × c). Каждое изображение рассматривается как один вектор, просто сцепление строки пикселей в исходном изображении, в результате чего получается один столбец с р × c элементы. Для этой реализации предполагается, что все изображения обучающего набора хранятся в одном матрица Т, где каждый столбец матрицы - изображение.
  2. Вычтите иметь в виду. Среднее изображение а необходимо вычислить, а затем вычесть из каждого исходного изображения в Т.
  3. Рассчитайте собственные векторы и собственные значения из ковариационная матрица S. Каждый собственный вектор имеет ту же размерность (количество компонентов), что и исходные изображения, и, таким образом, сам по себе может рассматриваться как изображение. Поэтому собственные векторы этой ковариационной матрицы называются собственными гранями. Это направления, в которых изображения отличаются от среднего изображения. Обычно это будет дорогостоящим в вычислительном отношении шагом (если вообще возможно), но практическая применимость собственных граней проистекает из возможности вычислить собственные векторы S эффективно, без вычислений S явно, как подробно описано ниже.
  4. Выберите основные компоненты. Отсортируйте собственные значения в порядке убывания и расположите собственные векторы соответственно. Количество основных компонентов k определяется произвольно, устанавливая порог ε для общей дисперсии. Общая дисперсия , п = количество компонентов.
  5. k - наименьшее число, удовлетворяющее

Эти собственные лица теперь можно использовать для представления как существующих, так и новых лиц: мы можем спроецировать новое (с вычетом среднего) изображение на собственные лица и, таким образом, записать, как это новое лицо отличается от среднего лица. Собственные значения, связанные с каждым собственным лицом, представляют, насколько изображения в обучающем наборе отличаются от среднего изображения в этом направлении. Информация теряется из-за проецирования изображения на подмножество собственных векторов, но потери сводятся к минимуму, сохраняя эти собственные грани с наибольшими собственными значениями. Например, при работе с изображением размером 100 × 100 будет получено 10 000 собственных векторов. В практических приложениях большинство лиц обычно можно идентифицировать с помощью проекции от 100 до 150 собственных граней, так что можно отбросить большую часть из 10 000 собственных векторов.

Пример кода Matlab

Вот пример вычисления собственных лиц с помощью расширенной базы данных лиц Йельского университета B. Чтобы избежать узких мест в вычислениях и хранении, изображения лиц отбираются с коэффициентом 4 × 4 = 16.

Чисто все;Закрыть все;нагрузка Yalefaces[час, ш, п] = размер(Yalefaces);d = час * ш;% векторизовать изображенияИкс = изменить форму(Yalefaces, [d п]);Икс = двойной(Икс);% вычесть среднееmean_matrix = иметь в виду(Икс, 2);Икс = bsxfun(@минус, Икс, mean_matrix);% вычислить ковариациюs = cov(Икс');% получить собственное значение и собственный вектор[V, D] = eig(s);Eigval = диагональ(D);% сортировать собственные значения в порядке убыванияEigval = Eigval(конец: - 1:1);V = fliplr(V);% показывают среднее значение и основные собственные векторы с 1-го по 15-йфигура, подсюжет(4, 4, 1)изображенияc(изменить форму(mean_matrix, [час, ш]))палитра серыйза я = 1:15    подсюжет(4, 4, я + 1)    изображенияc(изменить форму(V(:, я), час, ш))конец

Обратите внимание, что хотя ковариационная матрица S генерирует множество собственных граней, только часть из них необходима для представления большинства граней. Например, для представления 95% от общей вариации всех изображений лиц необходимы только первые 43 собственных лица. Чтобы вычислить этот результат, реализуйте следующий код:

% оценивают количество основных компонентов, необходимых для представления 95% общей дисперсии.Eigsum = сумма(Eigval);csum = 0;за я = 1: d    csum = csum + Eigval(я);    телевидение = csum / Eigsum;    если телевизор> 0,95        k95 = я;        переменаконец;конец;

Вычисление собственных векторов

Выполнение PCA непосредственно на ковариационной матрице изображений часто невозможно с вычислительной точки зрения. Если используются небольшие изображения, скажем 100 × 100 пикселей, каждое изображение представляет собой точку в 10000-мерном пространстве, а ковариационная матрица S матрица 10,000 × 10,000 = 108 элементы. Тем не менее классифицировать ковариационной матрицы ограничено количеством обучающих примеров: если есть N обучающих примеров, будет не более N - 1 собственный вектор с ненулевыми собственными значениями. Если количество обучающих примеров меньше размерности изображений, главные компоненты могут быть вычислены более легко следующим образом.

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

тем не мение TTТ - большая матрица, и если вместо этого мы возьмем разложение по собственным значениям

затем мы замечаем, что, предварительно умножив обе части уравнения на Т, мы получаем

Это означает, что если тыя является собственным вектором ТТТ, тогда vя = Втя является собственным вектором S. Если у нас есть обучающий набор из 300 изображений размером 100 × 100 пикселей, матрица ТТТ представляет собой матрицу 300 × 300, которая намного более управляема, чем ковариационная матрица 10 000 × 10 000. Обратите внимание, однако, что результирующие векторы vя не нормируются; если требуется нормализация, ее следует применить как дополнительный шаг.

Связь с СВД

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

Пусть разложение по сингулярным числам (СВД) из Икс быть:

Тогда разложение на собственные значения для является:

, где Λ = diag (собственные значения )

Таким образом, мы легко видим, что:

Собственные грани = первые () столбцы связанных с ненулевыми сингулярными значениями.
I-е собственное значение с единственным значением

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

Использование в распознавании лиц

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

Для распознавания лиц изображения галереи - те, которые видит система - сохраняются в виде наборов весов, описывающих вклад каждого собственного лица в это изображение. Когда новое лицо представляется системе для классификации, его собственные веса определяются путем проецирования изображения на набор собственных лиц. Это обеспечивает набор весов, описывающих поверхность зонда. Затем эти веса классифицируются по всем весам в галерее, чтобы найти наиболее близкое соответствие. Метод ближайшего соседа - это простой подход для поиска Евклидово расстояние между двумя векторами, минимум которых можно отнести к самому близкому объекту (Терк и Пентланд 1991, п. 590)

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

Псевдокод[8]
  • Данный вектор входного изображения , средний вектор изображения из базы данных , вычислим вес k-й собственной грани как:
    Затем сформируйте вектор веса
  • Сравните W с весовыми векторами изображений в базе данных. Найдите евклидово расстояние.
  • Если , то m-я запись в базе данных является кандидатом на распознавание.
  • Если , тогда U лицо может быть неизвестным и может быть добавлено в базу данных.
  • Если это не изображение лица.

Вес каждого изображения галереи передает только информацию, описывающую это изображение, а не предмет. Изображение одного объекта при фронтальном освещении может иметь совсем другой вес, чем изображения того же объекта при ярком левом освещении. Это ограничивает применение такой системы. Эксперименты в исходной статье Eigenface дали следующие результаты: в среднем 96% с изменением освещенности, 85% с изменением ориентации и 64% с изменением размера. (Терк и Пентланд 1991, п. 590)

В метод собственных граней были внесены различные расширения, такие как собственные особенности. Этот метод сочетает в себе лицевые метрики (измерение расстояния между чертами лица) с представлением собственного лица. Другой метод, похожий на технику собственного лица, - это 'рыбаки 'который использует линейный дискриминантный анализ.[9] Этот метод распознавания лиц менее чувствителен к изменению освещения и позы лица, чем использование собственных лиц. Fisherface использует помеченные данные, чтобы сохранить больше информации, относящейся к классу, на этапе уменьшения размерности.

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

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

Рассмотрение

Eigenface предоставляет простой и дешевый способ реализовать распознавание лиц:

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

Однако недостатки метода собственных граней также очевидны:

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

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

Смотрите также

Примечания

  1. ^ Наваррете, Пабло; Руис-дель-Солар, Хавьер (ноябрь 2002 г.). «Анализ и сравнение подходов к распознаванию лиц на основе собственного пространства» (PDF). Международный журнал распознавания образов и искусственного интеллекта. 16 (7): 817–830. CiteSeerX  10.1.1.18.8115. Дои:10.1142 / S0218001402002003.
  2. ^ Терк, Мэтью А. и Пентленд, Алекс П. [Распознавание лиц с использованием собственных лиц]. Компьютерное зрение и распознавание образов, 1991. Труды {CVPR'91.}, {IEEE} Конференция компьютерного общества, 1991 г.
  3. ^ Терк, Мэтью А. и Пентленд, Алекс П. Распознавание лиц с использованием собственных лиц. Компьютерное зрение и распознавание образов, 1991. Труды {CVPR'91.}, {IEEE} Конференция компьютерного общества, 1991 г.
  4. ^ Дрейпер, Брюс А. и Ямбор, Венди С. и Беверидж, Дж. Росс. Анализ алгоритмов распознавания лиц на основе pca: выбор собственного вектора и меры расстояния. 2002.
  5. ^ Белхумёр, {P, N} и Кригман, Д. Каков набор изображений объекта при всех возможных условиях освещения?. Proceedings {CVPR} '96, 1996 {IEEE} Конференция компьютерного общества по компьютерному зрению и распознаванию образов, 1996
  6. ^ Бернстон, Джеймс; Инь, Худжун (2011). «Собственное освещение: восстановление освещения из изображений лиц». Интеллектуальная инженерия данных и автоматизированное обучение - IDEAL 2011. Конспект лекций по информатике. 6936. С. 490–497. Дои:10.1007/978-3-642-23878-9_58. ISBN  978-3-642-23877-2.
  7. ^ Могхаддам, Б. и Вахид, В. и Пентленд, А. Помимо собственных лиц: вероятностное сопоставление для распознавания лиц. Третья {IEEE} международная конференция по автоматическому распознаванию лиц и жестов, 1998 г. Протоколы
  8. ^ М. Тюрк; А. Пентланд (1991). «Собственные лица для узнавания» (PDF). Журнал когнитивной неврологии. 3 (1): 71–86. Дои:10.1162 / jocn.1991.3.1.71. PMID  23964806.
  9. ^ Белхумёр, П. Н., и Хеспанха, {Дж., П.}, и Кригман, Д.Eigenfaces против Fisherfaces: распознавание с использованием линейной проекции для конкретного класса, 1997.

Рекомендации

внешняя ссылка