Biblioteca de reconocimiento facial [cerrado]


Estoy buscando una biblioteca gratuita de reconocimiento facial para un proyecto universitario. No estoy buscando detección facial. Estoy buscando reconocimiento real. Eso significa encontrar imágenes que contengan caras especificadas o bibliotecas que calculen distancias entre caras específicas.

Actualmente estoy usando OpenCV para detectar las caras y un algoritmo rough Eigenface para el reconocimiento. Pero pensé que debería haber algo por ahí con mejor rendimiento que un algoritmo autograbado. No estoy hablando de velocidad como rendimiento, estoy buscando una biblioteca con mejores resultados que un simple enfoque de Eigenface.

Eché un vistazo a Faint, pero parece que la biblioteca no es muy reutilizable para mis propias aplicaciones.

Estoy contento con una biblioteca en Python, Java, C++, C o algo así. Lo mejor sería si se puede ejecutar en una máquina Windows porque estoy confiando en algún código externo solo para Windows en momento.

Author: hippietrail, 2009-06-05

11 answers

Aquí hay una lista de proveedores comerciales que proporcionan paquetes listos para usar para el reconocimiento facial que se ejecutan en Windows:

  1. Cybula - Información sobre su SDK de Reconocimiento Facial . Esta es una empresa fundada por un profesor universitario y, como tal, su sitio web parece poco profesional. No hay información de precios o demostración que pueda descargar. Tendrá que ponerse en contacto con ellos para obtener información sobre precios.

  2. NeuroTecnología - Información sobre su SDK de Reconocimiento facial . Esta compañía tiene tanto información de precios por adelantadocomo una prueba real de 30 días de su SDK.

  3. Reconocimiento de Patrones de Pittsburgh - (Adquirido por Google ) Información sobre su SDK de Seguimiento y Reconocimiento Facial. Las demostraciones que proporcionan le ayudan a evaluar su tecnología, pero no su SDSK. Tendrá que ponerse en contacto con ellos para obtener información sobre precios.

  4. Sensible Vision - Información sobre su SDK . Su sitio le permite obtener fácilmente una cotización de precio y también puede pedir un kit de evaluación que le ayudará a evaluar su tecnología.

 81
Author: Praveen Angyan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-29 00:11:55

Actualizar

OpenCV 2.4.2 ahora viene con el nuevo cv::FaceRecognizer. Por favor, consulte la documentación muy detallada en:

Post original

He lanzado libfacerec, una moderna biblioteca de reconocimiento facial para la API OpenCV C++ (licencia BSD). libfacerec no tiene dependencias adicionales e implementa los métodos Eigenfaces, Fisherfaces y Local Histogramas de Patrones Binarios. Partes de la biblioteca se incluirán en OpenCV 2.4.

La última revisión de libfacerec está disponible en:

La biblioteca fue escrita para OpenCV 2.3.1 con la próxima OpenCV 2.4 en mente, por lo que no apoyo las versiones de OpenCV anteriores a la 2.3.1. Este proyecto viene como un proyecto CMake con una API bien documentada, también hay un tutorial sobre clasificación de género. Puedes vea una versión HTML de la documentación en:

Si quieres entender cómo funcionan esos algoritmos, es posible que quieras leer mi Guía para el Reconocimiento Facial (incluye ejemplos de Python y GNU Octave/MATLAB):

También hay una implementación de Python y GNU Octave / MATLAB de los algoritmos en mi github repository . Ambos proyectos en facerec también incluyen varios métodos de validación cruzada para evaluar algoritmos:

Las publicaciones relevantes son:

  • Turk, M., y Pentland, A. Se presentan para el reconocimiento.. Journal of Cognitive Neuroscience 3 (1991), 71-86.
  • Belhumeur, P. N., Hespanha, J., and Kriegman, D. Caras propias vs. Caras de pescador: Reconocimiento usando la clase proyección lineal específica.. IEEE Transactions on Pattern Analysis and Machine Intelligence 19, 7 (1997), 711-720.
  • Ahonen, T., Hadid, A., and Pietikainen, M. Reconocimiento facial con Patrones Binarios Locales.. Computer Visión-ECCV 2004 (2004), 469-481.
 54
Author: bytefish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-03 01:45:52

Autenticación Pam-face un módulo PAM para Autenticación Facial: pero requeriría algo de trabajo para obtener lo que quieres. Una prueba rápida mostró, que la tasa de reconocimiento no son tan buenos como los de VeriLook de NeuroTecnología.

Malic es otro software de reconocimiento facial de código abierto, que utiliza descriptores de Wavelet Gabor. Pero la última actualización de la fuente tiene 3 años.

Desde el sitio web: " Malic es un software de reconocimiento facial de código abierto que utiliza gabor wavelet. Es el sistema de reconocimiento facial en tiempo real que se basa en Malib y CSU Face Identification Evaluation System (csuFaceIdEval).Utiliza la biblioteca Malib para el procesamiento de imágenes en tiempo real y algunos de csuFaceIdEval para el reconocimiento facial."

Además esto podría ser de interés:

Gaborboosting: Un programa científico aplicado al Reconocimiento Facial con el algoritmo Gabor Wavelet y AdaBoost

Biblioteca de Extracción de Características - FELib se refiere a " Anotación Facial por Discriminante Transductivo de Fisher Kernel,"

 19
Author: jk.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-03 18:07:30

Creo que Eigenface, que ya estás haciendo, es el camino a seguir si quieres calcular la distancia entre caras. Puedes probar diferentes enfoques como Support Vector Machineo Hidden Markov Model. He encontrado una página que enumera los principales algoritmos que podrían utilizarse para el reconocimiento facial: Face Recognition Homepage.

Además, cuando dices "mejor rendimiento", ¿te refieres a velocidad o precisión? ¿Qué clase de problema tienes? Cuan ¿varían los datos? ¿Son en su mayoría cara frontal o incluyen perfiles?

 13
Author: Eugene Yokota,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-21 05:47:17

Si su proyecto está en una película o televisión, o cualquier cosa que tenga un guion, parece que definitivamente desea ver el trabajo de Mark Everingham et al.. El software está disponible, al igual que los resultados de un episodio de Buffy.

 9
Author: huitseeker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-25 22:47:42

Deberías mirar http://libccv.org /

Es bastante nuevo, pero proporciona una API de alto nivel de código abierto gratuita para la detección de rostros.

(...y, me atrevo a decir, es bastante malditamente increíble)

Editar: Vale la pena señalar también, que esta es una de las pocas libs que NO depende de opencv, y solo para patadas, aquí hay una copia del código para la detección de rostros fuera de la página de documentación, para darle una idea de lo que está involucrado:

#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;
} 
 7
Author: Doug,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-03 01:03:39

Sé que ha pasado un tiempo, pero para cualquier otra persona interesada, está el proyecto Faint, que ha incluido muchas de estas características (detección, reconocimiento, etc.).) en un buen paquete de software.

 5
Author: Marcus P S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-13 20:19:53

Estamos usando OpenCV. Tiene un montón de cosas que no son de reconocimiento facial también, pero, tenga la seguridad de que sí lo hace.

 4
Author: Paul J. Lucas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-10 15:39:15

Puede intentar abrir la biblioteca MVG, también se puede usar para múltiples interfaces.

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-30 10:42:05

El siguiente paso serían las caras de pez. Pruébalo y comprueba si funcionan para ti. Aquí es una buena comparación.

 0
Author: Łukasz Lew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-22 14:48:45

No es realmente lo que está buscando, pero puede ser útil para usted. Algoritmos de Detección de rostros/Visión por computadora en MATLAB.

 0
Author: Dan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-25 10:53:02