abril 18, 2024

BitCuco

¡Hola Mundo!

Reconocimiento facial en Python

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.

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.

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.