Reconocimiento facial desde la linea de comandos 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.
Via: lamiradadelreplicante.com