Эйгенфейс
Собственное лицо ( / ˈaɪ ɡ ) — это имя , ən- / EYE -gən- данное набору собственных векторов при использовании в задаче компьютерного зрения распознавания человеческих лиц . [1] Подход использования собственных лиц для распознавания был разработан Сировичем и Кирби и использован Мэтью Терком и Алексом Пентландом при классификации лиц. [2] [3] Собственные векторы получаются из ковариационной матрицы по распределения вероятностей многомерному векторному пространству изображений лиц. Сами собственные лица образуют базисный набор всех изображений, используемых для построения ковариационной матрицы. Это приводит к уменьшению размерности, позволяя меньшему набору базовых изображений представлять исходные обучающие изображения. Классификацию можно выполнить путем сравнения того, как лица представлены базовым набором.
История
[ редактировать ]Подход «собственное лицо» начался с поиска низкоразмерного представления изображений лица. Сирович и Кирби показали, что анализ главных компонентов можно использовать для коллекции изображений лиц, чтобы сформировать набор базовых функций. [2] Эти базовые изображения, известные как собственные изображения, можно линейно комбинировать для восстановления изображений в исходном обучающем наборе. Если обучающий набор состоит из M изображений, анализ главных компонентов может сформировать базовый набор из N изображений, где N < M . Ошибка реконструкции снижается за счет увеличения количества собственных изображений; однако необходимое число всегда выбирается меньшим, M. чем Например, если вам нужно сгенерировать несколько N собственных лиц для обучающего набора из M изображений лиц, вы можете сказать, что каждое изображение лица может состоять из «пропорций» всех K «особенностей» или собственных лиц: Изображение лица 1 = (23% Е 1 ) + (2 % Е 2 ) + (51 % Е 3 ) + ... + (1 % Е н ).
В 1991 году М. Тёрк и А. Пентланд расширили эти результаты и представили метод распознавания лиц по собственному лицу. [3] Помимо разработки системы автоматического распознавания лиц с использованием собственных лиц, они показали способ расчета собственных векторов ковариационной матрицы , позволяющий компьютерам того времени выполнять собственное разложение на большом количестве изображений лиц. Изображения лиц обычно занимают многомерное пространство, и традиционный анализ главных компонент был невозможен для таких наборов данных. В статье Терка и Пентланда продемонстрированы способы извлечения собственных векторов на основе матриц, размер которых определяется количеством изображений, а не количеством пикселей.
После своего создания метод собственного лица был расширен за счет включения методов предварительной обработки для повышения точности. [4] Несколько подходов к многообразию также использовались для построения наборов собственных лиц для разных субъектов. [5] [6] и различные особенности, такие как глаза. [7]
Поколение
[ редактировать ]Набор собственных лиц можно создать, выполнив математический процесс, называемый анализом главных компонентов (PCA), на большом наборе изображений, изображающих разные человеческие лица. Неофициально собственные лица можно рассматривать как набор «стандартизированных ингредиентов лица», полученных в результате статистического анализа множества изображений лиц. Любое человеческое лицо можно рассматривать как комбинацию этих стандартных лиц. Например, лицо может состоять из среднего лица плюс 10% от собственного лица 1, 55% от собственного лица 2 и даже -3% от собственного лица 3. Примечательно, что не нужно объединять много собственных лиц, чтобы получить достоверное приближение к большинство лиц. Кроме того, поскольку лицо человека записывается не в виде цифровой фотографии , а просто в виде списка значений (одно значение для каждого собственного лица в используемой базе данных), для лица каждого человека требуется гораздо меньше места.
Создаваемые собственные грани будут выглядеть как светлые и темные области, расположенные по определенному шаблону. По этой схеме выделяются различные черты лица для оценки и оценки. Будет образец для оценки симметрии , наличия волос на лице, линии роста волос или оценки размера носа или рта. Другие собственные лица имеют шаблоны, которые труднее идентифицировать, и изображение собственного лица может быть очень мало похоже на лицо.
Техника, используемая для создания собственных лиц и их использования для распознавания, также используется за пределами распознавания лиц: распознавание рукописного текста , чтение по губам , распознавание голоса , интерпретация языка жестов / жестов рук и анализ медицинских изображений . Поэтому некоторые не используют термин «собственное лицо», а предпочитают использовать «собственное изображение».
Практическая реализация
[ редактировать ]Чтобы создать набор собственных граней, необходимо:
- Подготовьте обучающий набор изображений лиц. Изображения, составляющие обучающий набор, должны были быть сделаны в одинаковых условиях освещения и должны быть нормализованы, чтобы глаза и рты были выровнены на всех изображениях. Все они также должны быть преобразованы в общее разрешение пикселей ( r × c ). Каждое изображение рассматривается как один вектор путем простого объединения строк пикселей исходного изображения, в результате чего получается один столбец с элементами r × c . Для этой реализации предполагается, что все изображения обучающего набора хранятся в одной матрице T , где каждый столбец матрицы является изображением.
- Вычтите среднее значение . Среднее изображение a должно быть вычислено, а затем вычтено из каждого исходного изображения в T .
- Вычислите собственные векторы и собственные значения ковариационной матрицы S . Каждый собственный вектор имеет ту же размерность (количество компонентов), что и исходные изображения, и поэтому сам может рассматриваться как изображение. Поэтому собственные векторы этой ковариационной матрицы называются собственными гранями. Это направления, в которых изображения отличаются от среднего изображения. Обычно это требует больших вычислительных затрат (если вообще возможно), но практическая применимость собственных граней проистекает из возможности эффективно вычислять собственные векторы S , даже не вычисляя S явно, как подробно описано ниже.
- Выберите основные компоненты. Отсортируйте собственные значения в порядке убывания и соответствующим образом расположите собственные векторы. Количество главных компонент k определяется произвольно путем установки порога ε для общей дисперсии. Общая дисперсия , n = количество компонентов и представляет собственное значение компонента.
- k — наименьшее число, удовлетворяющее условию
Эти собственные лица теперь можно использовать для представления как существующих, так и новых лиц: мы можем проецировать новое изображение (с вычитанием среднего) на собственные лица и тем самым записывать, чем это новое лицо отличается от среднего лица. Собственные значения, связанные с каждым собственным лицом, показывают, насколько изображения в обучающем наборе отличаются от среднего изображения в этом направлении. Информация теряется при проецировании изображения на подмножество собственных векторов, но потери минимизируются за счет сохранения собственных граней с наибольшими собственными значениями. Например, работа с изображением размером 100 × 100 создаст 10 000 собственных векторов. В практических приложениях большинство граней обычно можно идентифицировать с помощью проекции от 100 до 150 собственных граней, так что большую часть из 10 000 собственных векторов можно отбросить.
Пример кода Матлаба
[ редактировать ]Вот пример расчета собственных лиц с помощью расширенной базы данных лиц Yale Face B. Чтобы избежать узких мест в вычислениях и хранении, изображения лиц дискретизируются с коэффициентом 4 × 4 = 16.
clear all;
close all;
load yalefaces
[h, w, n] = size(yalefaces);
d = h * w;
% vectorize images
x = reshape(yalefaces, [d n]);
x = double(x);
% subtract mean
mean_matrix = mean(x, 2);
x = bsxfun(@minus, x, mean_matrix);
% calculate covariance
s = cov(x');
% obtain eigenvalue & eigenvector
[V, D] = eig(s);
eigval = diag(D);
% sort eigenvalues in descending order
eigval = eigval(end: - 1:1);
V = fliplr(V);
% show mean and 1st through 15th principal eigenvectors
figure, subplot(4, 4, 1)
imagesc(reshape(mean_matrix, [h, w]))
colormap gray
for i = 1:15
subplot(4, 4, i + 1)
imagesc(reshape(V(:, i), h, w))
end
Обратите внимание: хотя ковариационная матрица S генерирует множество собственных граней, для представления большинства граней необходима лишь часть из них. Например, чтобы представить 95% всех вариаций всех изображений лиц, необходимы только первые 43 собственных лица. Чтобы вычислить этот результат, реализуйте следующий код:
% evaluate the number of principal components needed to represent 95% Total variance.
eigsum = sum(eigval);
csum = 0;
for i = 1:d
csum = csum + eigval(i);
tv = csum / eigsum;
if tv > 0.95
k95 = i;
break
end;
end;
Вычисление собственных векторов
[ редактировать ]Выполнение PCA непосредственно на ковариационной матрице изображений часто невозможно с вычислительной точки зрения. Если используются небольшие изображения, скажем, 100 × 100 пикселей, каждое изображение представляет собой точку в 10 000-мерном пространстве, а ковариационная матрица S представляет собой матрицу 10 000 × 10 000 = 10. 8 элементы. Однако ранг ковариационной матрицы ограничен количеством обучающих примеров: если имеется N обучающих примеров, будет не более N - 1 собственных векторов с ненулевыми собственными значениями. Если количество обучающих примеров меньше размерности изображений, основные компоненты можно вычислить проще следующим образом.
Пусть T — матрица предварительно обработанных обучающих примеров, где каждый столбец содержит одно изображение с вычтенным средним значением. Затем ковариационная матрица может быть вычислена как S = TT Т а разложение S по собственным векторам определяется выражением
Однако ТТ Т — большая матрица, и если вместо этого мы возьмем разложение по собственным значениям
то мы замечаем, что, предварительно умножив обе части уравнения на T , мы получаем
Это означает, что если ui — собственный вектор T Т T , то v i = Tu i — собственный S. вектор Если у нас есть обучающий набор из 300 изображений размером 100 × 100 пикселей, матрица T Т T — это матрица размером 300 × 300, которая гораздо более управляема, чем ковариационная матрица 10 000 × 10 000. что результирующие векторы vi Однако обратите внимание , не нормализованы; если требуется нормализация, ее следует применять как дополнительный шаг.
Соединение с СВД
[ редактировать ]Пусть X обозначает матрица данных со столбцом как вектор изображения с вычтенным средним значением. Затем,
Пусть сингулярное разложение (SVD) X будет:
Тогда разложение по собственным значениям для является:
- , где Λ=diag (собственные значения )
Таким образом, мы легко можем видеть, что:
- Собственные лица = первые ( ) столбцы связанные с ненулевыми сингулярными значениями.
- i-е собственное значение с сингулярным значением
Используя SVD для матрицы данных X , нет необходимости вычислять фактическую ковариационную матрицу для получения собственных граней.
Использование в распознавании лиц
[ редактировать ]Распознавание лиц послужило мотивацией для создания собственных лиц. Для этого использования собственные лица имеют преимущества перед другими доступными методами, такие как скорость и эффективность системы. Поскольку собственное лицо — это прежде всего метод уменьшения размерности, система может представлять множество объектов с относительно небольшим набором данных. Как система распознавания лиц, она также достаточно инвариантна к значительному уменьшению размера изображения; однако он начинает существенно давать сбои, когда разница между видимыми изображениями и зондовым изображением велика.
Для распознавания лиц изображения галереи — те, которые видит система — сохраняются как наборы весов, описывающие вклад каждого собственного лица в это изображение. Когда новое лицо представляется системе для классификации, его собственный вес определяется путем проецирования изображения на коллекцию собственных лиц. Это обеспечивает набор весов, описывающих поверхность зонда. Затем эти веса классифицируются по всем весам в наборе галереи, чтобы найти наиболее близкое совпадение. Метод ближайшего соседа — это простой подход к нахождению евклидова расстояния между двумя векторами, где минимум можно классифицировать как ближайший объект. [3] : 590
Интуитивно понятно, что процесс распознавания с помощью метода eigenface заключается в проецировании изображений запроса в пространство лиц, охватываемое вычисленными собственными лицами, и в поиске наиболее близкого соответствия классу лица в этом пространстве лиц.
- Псевдокод [8]
-
- Данный вектор входного изображения , средний вектор изображения из базы данных , рассчитайте вес k-й собственной грани как:
- Затем сформируйте весовой вектор
- Сравните W с весовыми векторами изображений в базе данных. Найдите евклидово расстояние.
- Если , то m-я запись в базе данных является кандидатом на распознавание.
- Если , то U может быть неизвестным лицом и его можно добавить в базу данных.
- Если это не изображение лица.
- Данный вектор входного изображения , средний вектор изображения из базы данных , рассчитайте вес k-й собственной грани как:
Вес каждого изображения галереи передает только информацию, описывающую это изображение, а не предмет. Изображение одного объекта при фронтальном освещении может иметь совсем другой вес, чем изображение того же объекта при сильном левом освещении. Это ограничивает применение такой системы. Эксперименты в оригинальной статье Eigenface дали следующие результаты: в среднем 96% с изменением освещенности, 85% с изменением ориентации и 64% с изменением размера. [3] : 590
К методу собственного лица были сделаны различные расширения. Метод собственных черт сочетает в себе показатели лица (измерение расстояния между чертами лица) с представлением собственного лица. Fisherface использует линейный дискриминантный анализ [9] и менее чувствителен к изменению освещения и позе лица. Fisherface использует помеченные данные, чтобы сохранить больше информации о классе на этапе уменьшения размеров.
Еще одной альтернативой eigenfaces и Fisherfaces является модель активного внешнего вида . Этот подход использует активную модель формы для описания контура лица. Собрав множество контуров лиц, можно использовать анализ главных компонентов для формирования базового набора моделей, отражающих вариации различных лиц.
Многие современные подходы по-прежнему используют анализ главных компонентов как средство уменьшения размерностей или формирования базовых изображений для различных режимов вариаций.
Обзор
[ редактировать ]Eigenface предоставляет простой и дешевый способ реализовать распознавание лиц:
- Процесс обучения полностью автоматизирован и легко программируется.
- Eigenface адекватно снижает статистическую сложность представления изображений лица.
- После того, как собственные лица базы данных рассчитаны, распознавание лиц может быть достигнуто в режиме реального времени.
- Eigenface может работать с большими базами данных.
Однако недостатки метода собственного лица также очевидны:
- Он очень чувствителен к освещению, масштабу и перемещению и требует строго контролируемой среды.
- Eigenface с трудом фиксирует изменения выражения лица.
- Наиболее важные собственные лица в основном связаны с кодированием освещения и не предоставляют полезной информации о реальном лице.
Чтобы на практике справиться с отвлечением освещения, метод собственных лиц обычно отбрасывает первые три собственных лица из набора данных. Поскольку освещение обычно является причиной самых больших изменений в изображениях лиц, первые три собственных лица в основном собирают информацию об изменениях трехмерного освещения, что мало способствует распознаванию лиц. Отбросив эти три собственных лица, точность распознавания лиц значительно повысится, но другие методы, такие как лицо рыбака и линейное пространство, по-прежнему имеют преимущество.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Наваррете, Пабло; Руис-Дель-Солар, Хавьер (ноябрь 2002 г.). «Анализ и сравнение подходов к распознаванию лиц на основе собственного пространства» (PDF) . Международный журнал распознавания образов и искусственного интеллекта . 16 (7): 817–830. CiteSeerX 10.1.1.18.8115 . дои : 10.1142/S0218001402002003 . S2CID 7130804 .
- ^ Перейти обратно: а б Л. Сирович; М. Кирби (1987). «Малоразмерная процедура характеристики человеческих лиц». Журнал Оптического общества Америки А. 4 (3): 519–524. Бибкод : 1987JOSAA...4..519S . дои : 10.1364/JOSAA.4.000519 . ПМИД 3572578 .
- ^ Перейти обратно: а б с д Терк, Мэтью А; Пентленд, Алекс П. (1991). Распознавание лиц с использованием собственных лиц (PDF) . Учеб. Конференция IEEE по компьютерному зрению и распознаванию образов . стр. 586–591. дои : 10.1109/cvpr.1991.139758 . ISBN 0-8186-2148-6 .
- ^ Ямбор, Венди С.; Дрейпер, Брюс А.; Беверидж, Дж. Росс (2002). «Анализ алгоритмов распознавания лиц на основе PCA: выбор собственного вектора и меры расстояния» (PDF) . Эмпирические методы оценки в компьютерном зрении . Серия «Машинное восприятие и искусственный интеллект». Том. 50. МИРОВАЯ НАУЧНАЯ. стр. 39–60. дои : 10.1142/9789812777423_0003 . ISBN 978-981-02-4953-3 . ISSN 1793-0839 .
- ^ Бельхумер, Пенсильвания; Кригман, диджей (1996). Каков набор изображений объекта при всех возможных условиях освещения? . Учеб. Конференция IEEE по компьютерному зрению и распознаванию образов . стр. 270–277. дои : 10.1109/cvpr.1996.517085 . ISBN 0-8186-7259-5 .
- ^ Бернстон, Джеймс; Инь, Худжун (2011). «Собственный свет: восстановление освещенности по изображениям лиц». Интеллектуальная инженерия данных и автоматизированное обучение — IDEAL 2011 . Конспекты лекций по информатике. Том. 6936. стр. 490–497. дои : 10.1007/978-3-642-23878-9_58 . ISBN 978-3-642-23877-2 .
- ^ Могаддам, Б.; Вахид, В.; Пентленд, А. (1998). За пределами собственных лиц: вероятностное сопоставление для распознавания лиц . Учеб. Третья международная конференция IEEE по автоматическому распознаванию лиц и жестов . стр. 30–35. дои : 10.1109/afgr.1998.670921 . ISBN 0-8186-8344-9 .
- ^ М. Тюрк; А. Пентланд (1991). «Собственные лица для узнавания» (PDF) . Журнал когнитивной нейронауки . 3 (1): 71–86. дои : 10.1162/jocn.1991.3.1.71 . ПМИД 23964806 . S2CID 26127529 .
- ^ Бельхумер, Пенсильвания; Эспанья, Япония; Кригман, диджей (июль 1997 г.). «Eigenfaces против Fisherfaces: распознавание с использованием линейной проекции для конкретного класса» (PDF) . Транзакции IEEE по анализу шаблонов и машинному интеллекту . 19 (7): 711–720. CiteSeerX 10.1.1.5.1467 . дои : 10.1109/34.598228 . ISSN 0162-8828 . Архивировано (PDF) из оригинала 29 марта 2018 г.
Дальнейшее чтение
[ редактировать ]- М. Кирби; Л. Сирович (1990). «Применение процедуры Карунена-Лоэве для характеристики человеческих лиц». Транзакции IEEE по анализу шаблонов и машинному интеллекту . 12 (1): 103–108. дои : 10.1109/34.41390 .
- А. Пентланд, Б. Могаддам, Т. Старнер, О. Олийде и М. Терк. (1993). « Модульные собственные пространства на основе представлений для распознавания лиц ». Технический отчет 245, Медиа-лаборатория Массачусетского технологического института.
- М. Х. Ян (2000). «Распознавание лиц с использованием собственных лиц ядра». Материалы Международной конференции по обработке изображений . Том. 1. С. 37–40. дои : 10.1109/ICIP.2000.900886 .
- Р. Сендриллон; Б. Ловелл (2000). «Распознавание лиц в реальном времени с использованием собственных лиц» (PDF) . Визуальные коммуникации и обработка изображений . стр. 269–276. дои : 10.1117/12.386642 .
- Т. Хезелтин, Н. Пирс, Дж. Остин, З. Чен (2003). « Распознавание лиц: сравнение подходов, основанных на внешнем виде ». Учеб. VII Вычисление цифровых изображений: методы и приложения , том 1. 59–68.
- Д. Писаренко (2003). Распознавание лиц на основе Eigenface .
- Ф. Цалаканидуа; Д. Цоварасб; М.Г. Стринтзиса (2003). «Использование глубины и цвета собственных лиц для распознавания лиц». Буквы для распознавания образов . 24 (9): 1427–1435. Бибкод : 2003PaReL..24.1427T . дои : 10.1016/S0167-8655(02)00383-5 .
- Делак К., Гргич М., Лиацис П. (2005). « Статистические методы распознавания лиц на основе внешнего вида ». Материалы 47-го Международного симпозиума ELMAR-2005, посвященного мультимедийным системам и приложениям , Задар, Хорватия, 8–10 июня 2005 г., стр. 151–158.
Внешние ссылки
[ редактировать ]- Домашняя страница распознавания лиц
- PCA в наборе данных FERET
- Развитие интеллекта Собственные лица и веретенообразная область лица
- Учебное пособие по распознаванию лиц с использованием собственных лиц и классификаторов расстояний
- Пример кода Matlab для собственных лиц
- OpenCV + C++Builder6 реализация PCA
- Демонстрация собственных лиц в Java-апплете. Архивировано 1 ноября 2011 г. на Wayback Machine.
- Введение в собственные лица
- Функция распознавания лиц в OpenCV
- Распознавание выражения лица на основе Eigenface в Matlab