La traductora Elena Bornovolokova específicamente para Netología adaptó un artículo de Fayzan Shaykh sobre cómo crear un modelo de reconocimiento facial y en qué áreas se puede aplicar.Introduccion
En los últimos años, la visión por computadora ha ganado popularidad y se destacó en una dirección separada. Los desarrolladores están creando nuevas aplicaciones que se utilizan en todo el mundo.
En esta dirección, me atrae el concepto de código abierto. Incluso los gigantes de la tecnología están listos para compartir nuevos descubrimientos e innovaciones con todos, para que la tecnología no siga siendo un privilegio de los ricos.
Una de estas tecnologías es el reconocimiento facial. Cuando se usa correcta y éticamente, esta tecnología se puede aplicar en muchas áreas de la vida.
En este artículo, le mostraré cómo crear un algoritmo de reconocimiento facial efectivo utilizando herramientas de código abierto. Antes de pasar a esta información, quiero que te prepares e inspires viendo este video:
Reconocimiento facial: aplicaciones potenciales
Aquí hay algunas áreas potenciales de aplicación de la tecnología de reconocimiento facial.
Reconocimiento facial en redes sociales . Facebook ha reemplazado el etiquetado manual de imágenes con sugerencias de etiquetas generadas automáticamente para cada imagen cargada en la plataforma. Facebook utiliza un algoritmo simple de reconocimiento facial para analizar los píxeles en la imagen y compararlo con sus respectivos usuarios.
Reconocimiento facial en seguridad . Un ejemplo simple del uso de la tecnología de reconocimiento facial para proteger los datos personales es desbloquear su teléfono inteligente "en la cara". Esta tecnología también se puede implementar en el sistema de acceso: una persona mira a la cámara y determina si debe ingresarla o no.
Reconocimiento facial para contar el número de personas . La tecnología de reconocimiento facial se puede utilizar para contar la cantidad de personas que asisten a un evento (como una conferencia o un concierto). En lugar de contar manualmente a los participantes, instalamos una cámara que puede capturar imágenes de las caras de los participantes y proporcionar el número total de visitantes. Esto ayudará a automatizar el proceso y a ahorrar tiempo.

Configuración del sistema: requisitos de hardware y software
Considere cómo podemos usar la tecnología de reconocimiento facial poniéndose en contacto con las herramientas de código abierto disponibles para nosotros.
Utilicé las siguientes herramientas que te recomiendo:
- Cámara web (Logitech C920) para construir un modelo de reconocimiento facial en tiempo real en una computadora portátil Lenovo E470 ThinkPad (Core i5 7th Gen). También puede usar la cámara o videocámara integrada de su computadora portátil con cualquier sistema adecuado para el análisis de video en tiempo real en lugar de los que usé.
- Es preferible utilizar un procesador de gráficos para un procesamiento de video más rápido.
- Utilizamos el sistema operativo Ubuntu 18.04 con todo el software necesario.
Antes de continuar con la construcción de nuestro modelo de reconocimiento facial, analizaremos estos puntos con más detalle.
Paso 1: configuración de hardware
Compruebe si la cámara está configurada correctamente. Con Ubuntu, esto es simple: vea si el dispositivo es reconocido por el sistema operativo. Para hacer esto, siga estos pasos:
- Antes de conectar la cámara web a la computadora portátil, verifique todos los dispositivos de video conectados escribiendo
ls /dev/video*
en el símbolo del sistema. Como resultado, aparece una lista de todos los dispositivos de video conectados al sistema. 
- Conecte la cámara web y vuelva a ejecutar el comando. Si la cámara web está conectada correctamente, el nuevo dispositivo se reflejará como resultado del comando.

- También puede usar el software de la cámara web para verificar su correcto funcionamiento. Ubuntu puede usar el programa Cheese para esto.

Paso 2: configuración del software
Paso 2.1: Instalar PythonEl código en este artículo fue escrito usando Python (versión 3.5). Para instalar Python, recomiendo usar
Anaconda , una distribución popular de Python para procesar y analizar datos.
Paso 2.2: Instalar OpenCVOpenCV es una biblioteca de código abierto que está diseñada para crear aplicaciones de visión por computadora. La instalación de OpenCV se realiza utilizando
pip
:
pip3 install opencv-python
Paso 2.3: Establecer la API de face_recognitionUtilizaremos la
face_recognition API
, que se considera la API de reconocimiento facial Python más fácil del mundo. Para instalar, use:
pip install dlib pip install face_recognition
Implementación
Después de configurar el sistema, procedemos a la implementación. Para comenzar, crearemos un programa y luego explicaremos lo que hicimos.
Tutorial
Cree un archivo
face_detector.py
y luego copie el siguiente código:
Luego ejecute este archivo de Python escribiendo:
python face_detector.py
Si todo funciona correctamente, se abrirá una nueva ventana con el modo de reconocimiento facial lanzado en tiempo real.
Para resumir y explicar lo que hizo nuestro código:
- Primero, indicamos el hardware en el que se analizará el video.
- Luego hicimos una captura de video en tiempo real cuadro por cuadro.
- Luego se procesó cada cuadro y se extrajo la ubicación de todas las caras en la imagen.
- Como resultado, estos cuadros se reprodujeron en forma de video junto con una indicación de dónde se encuentran las caras.
Ejemplo de aplicación de reconocimiento facial
Esto no es todo lo divertido termina. Haremos una cosa más genial: crearemos un ejemplo completo de aplicación basado en el código anterior. Haremos pequeños cambios en el código y todo estará listo.
Suponga que desea crear un sistema automatizado utilizando una videocámara para rastrear dónde se encuentra actualmente el altavoz. Dependiendo de su posición, el sistema gira la cámara para que el altavoz permanezca siempre en el centro del cuadro.
El primer paso es crear un sistema que identifique a la persona o personas en el video y se centre en la ubicación del orador.

Vamos a descubrir cómo hacerlo. Como ejemplo, seleccioné un video en YouTube con un discurso de los oradores de la conferencia DataHack Summit 2017.
Primero, importe las bibliotecas necesarias:
import cv2 import face_recognition
Luego leemos el video y establecemos la duración:
input_movie = cv2.VideoCapture("sample_video.mp4") length = int(input_movie.get(cv2.CAP_PROP_FRAME_COUNT))
Después de eso, creamos un archivo de salida con la resolución necesaria y la velocidad de fotogramas similar a la del archivo de entrada.
Cargamos la imagen del altavoz como muestra para reconocerla en el video:
image = face_recognition.load_image_file("sample_image.jpeg") face_encoding = face_recognition.face_encodings(image)[0] known_faces = [ face_encoding, ]
Una vez terminado, comenzamos el ciclo, que será:
- Extraer fotograma del video.
- Encuentra todas las caras e identifícalas.
- Cree un nuevo video que combine el marco original con la ubicación de la cara del orador con una firma.
Veamos el código que ejecutará esto:
El código te dará este resultado:
De los editores
Cursos de Netología sobre el tema: