Reconocimiento facial en imágenes con PHP y OpenCV
Hoy no toca algo de mi propia cosecha, pero este echo no le quita espectacularidad al asunto..
Seguro que muchos habéis visto u oído hablar del tema del reconocimiento facial en imágenes o explicado claramente, el sistema que detecta donde esta la cara de la gente en una imagen o video por las recientes modificaciones en el buscador de Google y Picasa. Anteriormente este era un terreno que solo dominaba Riya(ahora bastante abandonada), pero pronto salieron muchas aplicaciones como PolarRose o Picollator abriendo camino a las aplicaciones para esta nueva tecnóloga de búsqueda y comparación mas "humana".
Pues bien si ahora quieres tu seguir los pasos de esta gente lo podemos conseguir gracias a varios proyectos libres pero el que nos va a servir para usarlo con PHP va a ser OpenCV desarrollado por Intel.
OpenCV es una librería que se encarga de reconocer caras, cuerpos, gestos... a partir de archivos XML que controlan y afinan los resultados.
Para poder utilizar esto en nuestros proyectos seguiremos las instrucciones de xarg.org.
Para instalar la librería correctamente en PHP:
- Instalar OpenCV (OpenCV 1.0.0)
- Download facedetect source package
- Descomprimir el archivo de codigo facedetect
- Ir a la carpeta facedetect desde la consola y escribir
phpize && ./configure && make && make install - Comprobar que tengamos
extension=facedetect.soen el archivophp.ini
Para compilar las instrucciones dentro de PHP directamente:
- Instalar OpenCV (OpenCV 1.0.0)
- Download facedetect source package
- Descomprimir el archivo de codigo facedetect en
$PHP_SOURCE_DIR/ext/facedetect - En el directorio raiz del codigo PHP ejecutar en la linea de comandos:
rm configure && ./buildconf --force - Configurar PHP con el comando
./configure --with-facedetect - Ejecutar
make && make install
(Para que todas las funciones de OpenCV funcionen correctamente necesita tener instalado en el sistema: pkgconfig, libpng, zlib, libjpeg, libtiff y python).
Una vez realizado eso tendremos dos nuevas instrucciones en nuestro lenguaje PHP instaladas.
Estas dos funciones son face_count() y face_detect() que respectivamente detectan cuantas caras hay en una imagen y donde están esas caras.
El metodo de utilizacion de ambas dunciones es realmente sencillo, solo tenemos que introducir como primer parámetro una imagen y como segundo el archivo XML suministrado por OpenCV o generado por nosotros a partir de su documentación para definir el tipo de detección:
Al no tener un servidor propio para experimentar todavía no he podido comprobar los pasos así que si alguien quiere confirmar que todo funciona correctamente seria todo un detalle que lo comentarais por aquí para comprobar que funciona.
[...] PHP, Reconocimiento facial en imágenes con PHP y OpenCV [...]
[...] Tierra 0: Reconocimiento facial en imágenes con PHP y OpenCV [...]
[...] En el tutorial de php ya vimos como se podía reconocer el texto de una imagen gracias a la librería phpOCR, hoy vamos a ir un poco más allá y empezaremos a reconocer rostros. [...]