El Blog de Rigo El Blog de Rigo  

Reconocimiento facial desde consola con Python

Hoy mientras curioseaba por GitHub, me he encontrado una biblioteca de Python llamada face_recognition, que como su nombre indica nos permite hacer reconocimiento facial, en todo tipo de imágenes.

Face_recognition hace uso del framework dlib y nos ofrece un grado de fiabilidad casi perfecta (99.38 %), según los test de LFW (Labeled Faces in the Wild).

Al tratarse de un software multiplataforma, lo podemos ejecutar desde cualquier sistema Linux, OS X o Windows.

Instalación

Así que antes de ver como funciona, vamos a instalarlo con pip el gestor de paquetes de Python (disponible en los repositorios de todas las distribuciones GNU/Linux).

sudo pip3 install face_recognition

Es posible que salida del comando os de un error relativo a la compilación de dlib.

Si es así, lo solucionamos instalando el conjunto de bibliotecas Boost de C++, desde el gestor de paquetes de nuestro distro.

En mi caso (Arch Linux y derivadas):

sudo pacman -S boost

Para Ubuntu debería funcionar:

sudo apt install libboost-all-dev
Y repetimos otra vez el primer comando, para completar la instalación de face_recognition:

sudo pip3 install face_recognition

Usando el programa

Ahora llega la parte más sencilla: la de su uso. Tan solo precisamos un par de carpetas y un puñado de imágenes.

En la primera (etiquetados) vamos a depositar las imágenes etiquetadas –con el nombre del archivo– de personas que ya conocemos (Melania y Donald). Conviene por tanto que sean fotografías en las que aparezcan solos (si son de grupo, el programa elige a la persona que esté más en primer plano).

Mientras que en la segunda (desconocidos) colocaremos las imágenes a “stalkear”, a ver si hay alguna posible coincidencia.

A continuación ejecutamos este sencillo comando (la ruta a vuestras carpetas, lógicamente puede variar):

[jose@replicante ~]$ face_recognition etiquetados desconocidos

desconocidos/33593821791_ef57896b09_k.jpg,unknown_person
desconocidos/33593821791_ef57896b09_k.jpg,Melania
desconocidos/33593821791_ef57896b09_k.jpg,unknown_person
desconocidos/33682207006_8d7ab91dce_k.jpg,unknown_person
desconocidos/33682207006_8d7ab91dce_k.jpg,Melania
desconocidos/33682207006_8d7ab91dce_k.jpg,unknown_person
desconocidos/33320971404_a0cf1a7737_o.jpg,unknown_person
desconocidos/33320971404_a0cf1a7737_o.jpg,unknown_person
desconocidos/33320971404_a0cf1a7737_o.jpg,Donald
desconocidos/33320971404_a0cf1a7737_o.jpg,unknown_person
desconocidos/33320971404_a0cf1a7737_o.jpg,unknown_person
desconocidos/33320971404_a0cf1a7737_o.jpg,unknown_person
desconocidos/34005922972_e18a403c05_o.jpg,unknown_person
desconocidos/34005922972_e18a403c05_o.jpg,Donald

En unos segundos nos dice si hay alguien conocido en las fotos examinadas.

Además este software ofrece otras posibilidades a partir de la obtención de la posición y contornos de ojos, nariz, boca y barbilla. Entre ellas la edición gráfica o el reconocimiento en tiempo real, combinando face_recognition con otras bibliotecas de Python.

De todas esas características nos hablan en su página del GitHub. El mejor lugar para seguir de cerca el desarrollo de este interesante software de reconocimiento facial.

Fuente

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.