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