Библиотека распознавания лиц [закрыто]


169

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

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

Я посмотрел на Faint , но, похоже, библиотека не очень многократно используется для моих собственных приложений.

Я доволен библиотекой на Python, Java, C ++, C или чем-то в этом роде. Лучше всего было бы, если бы его можно было запускать на компьютере с Windows, потому что в данный момент я полагаюсь на некоторый внешний код только для Windows.


1
Должно ли оно быть бесплатным по политическим или практическим причинам? Если это чистый исследовательский проект, вы можете получить бесплатную академическую лицензию от одного из коммерческих поставщиков.
Кристофер

2
Я получил относительно хорошие результаты только с подходом eigenfaces, но кажется, что хороший api для обнаружения лиц, который можно использовать бесплатно, в данный момент отсутствует
Janusz



4
Хотя этот вопрос вполне приемлем в 2009 году, этот вопрос больше не рассматривается по теме: вопросы, в которых нас просят порекомендовать или найти инструмент, библиотеку или любимый сторонний ресурс, не относятся к теме переполнения стека. См. Какими должны быть предопределенные причины не по теме для переполнения стека?
JDB до сих пор помнит Монику

Ответы:


85

Вот список коммерческих поставщиков, которые предоставляют готовые пакеты для распознавания лиц, которые работают в Windows:

  1. Cybula - информация об их распознавании лица SDK . Это компания, основанная университетским профессором, и их сайт выглядит непрофессионально. Там нет информации о ценах или демо, которые вы можете скачать. Вам нужно связаться с ними для получения информации о ценах.

  2. NeuroTechnology - информация об их распознавании лица SDK . Эта компания имеет как предварительную информацию о ценах, так и фактическую 30-дневную пробную версию своего SDK .

  3. Распознавание образов Питтсбурга - ( приобретено Google ) Информация об их SDK отслеживания и распознавания лиц . Предоставленные ими демонстрации помогут вам оценить их технологию, но не SDSK. Вам нужно связаться с ними для получения информации о ценах.

  4. Sensible Vision - информация об их SDK . Их сайт позволяет легко получить ценовое предложение, а также вы можете заказать оценочный комплект, который поможет вам оценить их технологию.


5
Спасибо за ссылки, но на данный момент мне нужно найти бесплатную библиотеку
Януш

1
Это может быть не для распознавания лиц как таковых , но numenta.com может представлять интерес для вас.
RCIX

7
Вы можете добавить Face.com бесплатный REST API в этот список
Omry Yadan

@Omry, вы должны добавить в качестве ответа или отредактировать это, чтобы добавить face.com
Скотт


54

Обновить

OpenCV 2.4.2 теперь поставляется с очень новым cv :: FaceRecognizer . Пожалуйста, смотрите очень подробную документацию по адресу:

Оригинальный пост

Я выпустил libfacerec , современную библиотеку распознавания лиц для API OpenCV C ++ (лицензия BSD). libfacerec не имеет дополнительных зависимостей и реализует метод Eigenfaces, метод Fisherfaces и гистограммы Local Binary Patterns. Части библиотеки будут включены в OpenCV 2.4.

Последняя версия libfacerec доступна по адресу:

Библиотека была написана для OpenCV 2.3.1 с учетом предстоящего OpenCV 2.4, поэтому я не поддерживаю версии OpenCV ранее 2.3.1. Этот проект представляет собой проект CMake с хорошо документированным API, также есть учебник по гендерной классификации. Вы можете увидеть HTML-версию документации по адресу:

Если вы хотите понять, как работают эти алгоритмы, вы можете прочитать мое Руководство по распознаванию лиц (включая примеры Python и GNU Octave / MATLAB):

В моем репозитории github есть также реализация алгоритмов Python и GNU Octave / MATLAB . Оба проекта в Facerec также включают несколько методов перекрестной проверки для оценки алгоритмов:

Соответствующие публикации:

  • Тюрк М. и Пентланд А. Собственные лица за признание. , Журнал когнитивной нейронауки 3 (1991), 71–86.
  • Belhumeur, PN, Hespanha, J., и Kriegman, D. Eigenfaces против Fisherfaces: распознавание с использованием специфической для класса линейной проекции. , Труды IEEE по анализу образов и машинному интеллекту 19, 7 (1997), 711–720.
  • Ахонен, Т., Хадид, А., Пиетикайнен, М. Распознавание лиц с помощью локальных двоичных структур. , Computer Vision - ECCV 2004 (2004), 469–481.


19

pam-face-authentication модуль PAM для аутентификации лица: но для того, чтобы получить то, что вам нужно, потребуется определенная работа. Быстрый тест показал, что скорость распознавания не так хороша, как у VeriLook от NeuroTechnology.

Malic - еще одно открытое программное обеспечение для распознавания лиц, использующее дескрипторы Gabor Wavelet. Но последнему обновлению источника исполнилось 3 года.

С веб-сайта: « Malic - это программное обеспечение для распознавания лиц с открытым исходным кодом, в котором используется вейвлет gabor. Это система распознавания лиц в реальном времени, основанная на Malib и CSU. признание. "

Далее это может представлять интерес:

gaborboosting : научная программа, применяемая для распознавания лиц с помощью алгоритма Gabor Wavelet и AdaBoost

Библиотека извлечения признаков - FELib относится к «аннотации лица с помощью дискриминанта Фишера с трансдуктивным ядром»


13

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

Кроме того, когда вы говорите «лучшая производительность», вы подразумеваете скорость или точность? Какие у вас проблемы? Насколько различны данные? Являются ли они в основном фронтальным лицом или имеют профили?


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


7

Вы должны посмотреть на http://libccv.org/

Это довольно новый, но он предоставляет бесплатный API высокого уровня с открытым исходным кодом для обнаружения лиц.

(... и, осмелюсь сказать, это чертовски удивительно)

Изменить: Стоит также отметить, что это одна из немногих библиотек, которые не зависят от opencv, и только для ударов, вот копия кода для обнаружения лица со страницы документации, чтобы дать вам представление о том, что происходит:

#include <ccv.h>
int main(int argc, char** argv)
{
    ccv_dense_matrix_t* image = 0;
    ccv_read(argv[1], &image, CCV_IO_GRAY | CCV_IO_ANY_FILE);
    ccv_bbf_classifier_cascade_t* cascade = ccv_load_bbf_classifier_cascade(argv[2]);         ccv_bbf_params_t params = { .interval = 8, .min_neighbors = 2, .accurate = 1, .flags = 0, .size = ccv_size(24, 24) };
    ccv_array_t* faces = ccv_bbf_detect_objects(image, &cascade, 1, params);
    int i;
    for (i = 0; i < faces->rnum; i++)
    {
        ccv_comp_t* face = (ccv_comp_t*)ccv_array_get(faces, i);
        printf("%d %d %d %d\n", face->rect.x, face->rect.y, face->rect.width, face->rect.y);
    }
    ccv_array_free(faces);
    ccv_bbf_classifier_cascade_free(cascade);
    ccv_matrix_free(image);
    return 0;
} 

5

Я знаю, что это было давно, но для всех, кто интересуется, есть проект Faint , который объединил многие из этих функций (обнаружение, распознавание и т. Д.) В хороший программный пакет.


4

Мы используем OpenCV . Там также есть много вещей, не способных распознавать лица, но, будьте уверены, они действительно распознают лица.


2
Я думаю, что в OpenCV нет прямого алгоритма распознавания лиц. Функция распознавания лиц из библиотеки OpenCV работает отлично
Janusz

3
Да, ты прав. Я перепутал распознавание лица и распознавание лица.
Пол Дж. Лукас

Как примечание, теперь есть cv :: FaceRecognizer, который можно использовать для распознавания.
huesforalice

1

Вы можете попробовать открыть библиотеку MVG, она также может быть использована для нескольких интерфейсов.


0

Следующим шагом будет FisherFaces. Попробуйте и проверьте, работают ли они на вас. Вот хорошее сравнение.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.