Я думаю, что первое, что вы должны сделать, это понять, что алгоритмы вы перечисленные используется на различных этапах распознавания лица.
Во-первых, вам нужно принять решение о представлении, i. е. используемые функции. Это могут быть необработанные пиксели, фильтры Габора, какие-то дескрипторы формы, деформируемые модели и т. Д.
Тогда вы, как правило, хотите уменьшить размерность своих функций. Именно здесь появляются алгоритмы, такие как PCA, ICA или LDA, данные проекта указывают на более низкое пространственное пространство, пытаясь сохранить большую часть дисперсии (PCA) или обеспечить оптимальное разделение точек разных категорий (LDA).
Тогда вы, вероятно, захотите обучить классификатор своим функциям, чтобы различать лица разных людей. Существует множество алгоритмов выбора, таких как «Ближайший сосед», «Поддержка векторных машин», «Скрытые марковские модели», «Байесские сети» и т. Д.
Обратите внимание, что выбор алгоритма для конкретной стадии может зависеть или не зависит по алгоритмам для других этапов. Для экземпляров PCA можно использовать для уменьшения размерности почти любого типа функций. С другой стороны, не сразу видно, как можно использовать классификатор машинных машин поддержки для лиц, представленных деформируемой сеткой.
Я предполагаю, что первое, что вы должны попытаться сделать, - это точно определить вашу проблему. Вы хотите различать лица только нескольких человек, например, узнавать членов вашей семьи на фотографиях? Вы хотите узнать людей из огромной базы данных? У вас много учебных образов для каждого лица или только несколько? Вы хотите обрабатывать различные ориентации и условия освещения?
Ответы на эти вопросы определяют, насколько сложна ваша проблема, и, безусловно, повлияет на ваш выбор алгоритмов.
EDIT: Настоящий thesis человек, который пытался решить подобную проблему. Это с 2002 года, но ИМХО это хорошее место для начала.
+1 для темы, очень интересно. –
Сообщество Wiki ?? – Betamoo