Распознавание лиц PCA, методы реализации

Я работаю над проектом распознавания фаялов с использованием алгоритма PCA. Мне нужно разработать этот проект на JAVA, и у меня есть некоторые вопросы, связанные с реализацией этого алгоритма:

Во-первых: при расчете среднего лица (meanface) следует учитывать, что я работаю с изображениями, то есть среднее значение вектора всех изображений не может быть рассчитано так же, как в алгебре, но мы должны sum использовать одни и те же компоненты для каждый пиксель (например, красный с красным, зеленый с зеленым и т. д.) друг с другом, затем разделите результат на количество векторов изображения. Это правильно или нет?

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

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


person Light Tiger    schedule 14.10.2012    source источник
comment
Можете ли вы точно объяснить, откуда вы получаете огромные числа, тогда я смогу помочь вам понять, что происходит. Во время распознавания PCA самые большие числа, с которыми я сталкиваюсь, исчисляются тысячами, хотя многие из собственных граней содержат числа меньше 0.   -  person James Burnstone    schedule 14.10.2012
comment
для получения дополнительных объяснений я добавил предыдущие шаги, и мне было интересно, есть ли предварительное условие для типа изображений, которые я должен использовать с этим алгоритмом, например, изображения, которые не содержат альфа-параметр в пикселях   -  person Light Tiger    schedule 15.10.2012
comment
Я никогда не пользовался библиотекой jama, так что не могу вам помочь с ее реализацией. Где собственные значения? Я предполагаю, что они возвращаются из E или векторы в E уже отсортированы?   -  person James Burnstone    schedule 16.10.2012


Ответы (1)


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

Все остальные расчеты выполняются попиксельно.

Если у вас его нет, для преобразования rgb в оттенки серого используйте P = 0,587 * красный + 0,299 * зеленый + 0,114 * синий.

person James Burnstone    schedule 14.10.2012