Подтвердить что ты не робот

Надежное распознавание лиц в C/С++?

Я ищу надежный алгоритм/библиотеку распознавания лиц, желательно на C (С++ тоже в порядке, а на других языках я могу при необходимости портировать). Я использовал OpenCV в прошлом, но я не думаю, что он инвариантен к вращению. Не обязательно быть в режиме реального времени, но это тоже не должно быть ужасно медленным (возможно, одна или две секунды на фотографию в порядке). Ищете высокую надежность, а не много ложных срабатываний. Кто-нибудь знает о каких-либо хороших реализациях?

4b9b3361

Ответ 1

Посмотрите эту страницу на OpenCV Wiki об обнаружении лица с помощью Haar-подобные функции.

@floppydisk: тот же парень опубликовал еще один project, реализующий эти Haar-подобные функции для обнаружения лица.

Концепцию не сложно понять, и вы даже можете ее реализовать самостоятельно. Возможно, самая сложная часть - это создание каскада усиленных классификаторов (но openCV имеет все, что легко реализовать!)

Некоторые другие методы, которые могут быть использованы при распознавании лиц, которые могут быть сделаны инвариантными к аффинным преобразованиям, включают в себя:

Ответ 2

Вы можете попробовать взглянуть на эту библиотеку:

http://vasc.ri.cmu.edu/NNFaceDetector/

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

Ответ 3

Mark - вы говорите, что OpenCV не может быть инвариантным к вращению

Что помешало бы вам выполнить четыре сравнения, вращая 90 & deg; после каждого сравнения?

Ответ 4

В проекте Code Project кто-то разместил подробное описание проекта для распознавания лиц, а также некоторый исходный код С++ для проекта и ссылки на библиотеки, которые он использовал. Его алгоритм фокусируется на использовании цветовых различий для поиска патчей кожи, а затем тестирования, чтобы увидеть, соответствуют ли 19x19 пиксельные изображения лицам. Я не знаком со всеми библиотеками для распознавания лиц, но, прочитав некоторые из его кода, многие методы и функции имеют CV в названии, поэтому он может использовать библиотеку OpenCV, но я не знаком с ним, м не на 100%. Тем не менее, он дает много объяснений о своем приложении и исходных файлах, поэтому он может быть хорошей отправной точкой.

Ответ 5

Единственное, с чем я работал, это Visionics FaceIt. Он работал довольно хорошо, но в последнее время я знал, что очень, очень, очень далек от свободного (как в пиве, так и в речи).

Ответ 6

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

Я столкнулся с проблемой о проблемах вращения с лицом. Моя мысль, может быть, вы могли бы попробовать совпадение формы и попытаться исправить объект. Попробуйте и ориентируйте его на нормальное соотношение сторон головы. Я никогда не получал так много в своем проекте с Eigenface, но дайте мне знать, как это работает. Это должно быть легко в Matlab.: P