Современное состояние распознавания лиц - PullRequest
21 голосов
/ 25 мая 2010

Недавно я немного изучил распознавание лиц. Однако я поражен количеством алгоритмов, которые существуют.

PCA, LDA, IDA, Gabor Wavelets, AAM ...

Скажем, вы хотели сделать что-то вроде this ... Какие алгоритмы вы бы использовали или какие документы вы бы прочитали?

Ответы [ 3 ]

17 голосов
/ 27 мая 2010

Я думаю, первое, что вы должны сделать, это осознать, что перечисленные вами алгоритмы используются на разных этапах распознавания лиц.

Во-первых, вам нужно определиться с представлением, т.е. е. функции для использования. Это могут быть необработанные пиксели, фильтры Габора, дескрипторы форм, деформируемые модели и т. Д.

Затем, как правило, вы хотите уменьшить размерность ваших функций. Это то место, где используются такие алгоритмы, как PCA, ICA или LDA, которые проектируют точки данных в пространство меньшего измерения, пытаясь сохранить большую часть дисперсии (PCA) или обеспечить оптимальное разделение точек разных категорий (LDA).

Тогда вы, вероятно, захотите обучить классификатору своих черт, чтобы различать лица разных людей. Существует множество алгоритмов на выбор, таких как ближайший сосед, машины опорных векторов, скрытые марковские модели, байесовские сети и т. Д.

Обратите внимание, что выбор алгоритма для определенного этапа может зависеть или не зависеть от алгоритмов для других этапов. Например, PCA может использоваться для уменьшения размерности практически любого типа функций. С другой стороны, не сразу очевидно, как можно использовать классификатор машин опорных векторов для граней, представленных деформируемой сеткой.

Полагаю, первое, что вы должны попытаться сделать, это очень точно определить вашу проблему. Вы хотите различать лица нескольких человек, например, узнавать членов своей семьи на фотографиях? Хотите узнать людей из огромной базы данных? У вас есть много тренировочных образов для каждого лица или только несколько? Хотите работать с разными ориентациями и условиями освещения?

Ответы на эти вопросы определяют, насколько сложна ваша проблема, и, безусловно, повлияют на ваш выбор алгоритмов.

EDIT: Вот тезис кого-то, кто пытался решить подобную проблему. Это с 2002 года, но ИМХО это хорошее место для начала.

3 голосов
/ 30 ноября 2012

Вы хотите рассмотреть карты глубины. Это состояние искусства. Попробуйте прочитать о разреженных сферических представлениях. Собственные лица просто не очень крепкие. Это не инвариант к нескольким факторам. Современное распознавание лиц использует 3d PCL, который имеет информацию о глубине. Это позволит вам распознать даже в темноте. Вы можете использовать камеру Asus или камеру Kinect для сбора информации о глубине. Надеюсь, это поможет!

1 голос
/ 25 мая 2010

Каскад Хаара, бегущий по порту Марилена.

Каскад Хаара - это алгоритм, который читает файл и сообщает компьютеру, как он выглядит. Я использовал его в прошлом, чтобы обнаружить лица, очки, просто улыбку, руки и банку кока-колы.

http://en.wikipedia.org/wiki/Haar-like_features

...