Из чего генерируются Eigenfaces? - PullRequest
3 голосов
/ 23 июня 2011

Я работаю с собственными лицами для программы распознавания лиц, которую я пишу. У меня есть пара вопросов о том, как на самом деле генерируются собственные лица:

  1. Они созданы из множества фотографий разных людей или из множества картинок одного и того же человека?

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

  3. Определяется ли собственное лицо для каждого изображения, которое вы предоставляете, или несколько изображений направлены на создание одного собственного лица?

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

Ответы [ 2 ]

2 голосов
/ 23 июня 2011

Я нахожу описание для Eigenfaces в Википедии весьма полезным. Чтобы ответить на ваши вопросы:

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

Редактировать: Отвечая на вопрос, который Кевин добавил в комментарии к вопросу:

Идея использования собственных граней заключается в том, что вы можете выразить изображение лица, смешивая собственные грани. Предположим, у вас есть три собственных лица ef_1, ef_2, ef_3 и изображение лица f_1 = a_1 * ef_1 + a_2 * ef_2 + a_3 * ef_3. Собственные лица не меняются, независимо от того, какое лицо вы хотите им выразить, однако коэффициенты a = (a_1, a_2, a_3) являются характерными для лица. Это то, что вы бы использовали для сравнения двух лиц.

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

P.S .: Я рекомендую, чтобы вы следили за Область 51: Computer Vision , которая является дочерним сайтом Stack Overflow о компьютерном зрении в процессе создания.

1 голос
/ 23 июня 2011
  1. Множество разных людей крайне необходимо, чтобы добиться поддержки, чтобы покрыть все возможные лица.
  2. В этом нет необходимости, хотя вам нужно представлять все измерения. Хорошая аналогия - барицентрические координаты для описания местоположения точки в треугольнике. Вы получаете средневзвешенное значение для вершин. Если у вас нет достаточной векторной поддержки (например, только две точки), вы не сможете описать точки, которые находятся за пределами линии, независимо от того, как вы играете со средневзвешенным значением. По сути, это точка зрения Бьорнца на лица кавказцев и азиаток. Обратите внимание, что эта аналогия является грубым упрощением. Весовые коэффициенты на собственных гранях на самом деле больше похожи на коэффициенты PCA или Фурье.
  3. Каждое изображение превращается в собственное лицо, которое является вектором главных компонентов.

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

...