Obtener información de las imágenes y procesarla, es una tarea que requiere un alto grado de aprendizaje, y sobre todo si se tratan de rostros. En la actualidad existen varias librerías para el reconocimiento facial en Python, donde el proceso de aprendizaje lo hace la máquina, por medio de la lectura de muchas imágenes con caras, y su análisis en cada una de ellas, para construir una red de información que nos permite la identificación de rostros.
En ésta publicación mostramos a los usuarios las herramientas necesarias a través de la biblioteca Face Recognition, para facilitar la implementación del reconocimiento facial en tu desarrollo, fácilmente acoplable en diferentes lenguajes de programación, para facilitar la tarea de acuerdo a tu perfil y facilidad de uso. Además la biblioteca es de código abierto (open source), con licenciamiento MIT.
Tabla de contenidos
Introducción a Face Recognition
Face Recognition es una biblioteca que permite el reconocimiento facial en Python. Es fácil de utilizar y hace uso de la biblioteca dlib de C++ para realizar el reconocimiento de caras. El algoritmo hace uso del aprendizaje en profundidad y tiene una precisión del 99.38% de acuerdo al sitio. La biblioteca se puede clonar directamente desde Github o implementar vía Git en tu proyecto.
git clone https://github.com/ageitgey/face_recognition.git
Ejemplos de reconocimiento facial con Face Recognition
Reconocer caras en imágenes
Para encontrar todas las caras existentes en una imagen, es suficiente utilizar las siguientes tres líneas de código con la biblioteca face_recognition:
import face_recognition imagen = face_recognition.load_image_file("mi_imagen.jpg") localizaCaras = face_recognition.face_locations(imagen)
Para ejemplificar el resultado, tenemo la siguiente imagen cuyo nombre de archivo es mi_imagen.jpg
Si ejecutamos el código anterior, se extraen las dos caras existentes en la imagen:
Agregar contorno a una cara
Es posible agregar un contorno a una cara, tanto ojos, nariz, boca y barbilla con la biblioteca. Para ello se ejecuta el siguiente código:
import face_recognition imagen = face_recognition.load_image_file("mi_imagen.jpg") cara_remarcado = face_recognition.face_landmarks(imagen)
Identificar caras en una imagen
Para identificar el rostro de una persona en una imagen, se requiere un proceso de aprendizaje (o entrenamiento) por parte de la máquina, leyendo varias imágenes y almacenando su contenido biométrico para después compararlo con diversas muestras. Por medio de comparaciones, la máquina define a la persona mostrada en la imagen. El código utilizado para la identificación o reconocimiento facial en una imagen es el siguiente:
import face_recognition imagenConocida = face_recognition.load_image_file("einstein.jpg") imagenDesconocida = face_recognition.load_image_file("otraImagen.jpg") codificadoEinstein = face_recognition.face_encodings(imagenConocida)[0] codificadoNoConocido = face_recognition.face_encodings(imagenDesconocida)[0] resultado = face_recognition.compare_faces([codificadoEinstein], codificadoNoConocido)
En donde si utilizamos la siguiente imagen einstein.jpg, nos reconocerá la imagen como Albert Einstein.
Otros ejemplos de Face Recognition
El proyecto completo, así como otros proyectos derivados del uso de ésta biblioteca, los puedes encontrar también en Github. También existen otras herramientas para el reconocimiento facial en otros lenguajes de programación, por ejemplo utilizando C++ o bien con la integración de la biblioteca OpenCV (integración en múltiples lenguajes, como Javascript y Ruby), etc.
2 comentarios en «Reconocimiento facial en Python»