Вопрос

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

Это было полезно?

Решение

Ознакомьтесь с этой страницей на OpenCV - Вики о распознавании лиц с помощью Особенности, похожие на Haar.

@гибкий диск:Тот же парень опубликовал еще один проект реализация этих функций, подобных Haar, для распознавания лиц.

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

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

Другие советы

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top