Crear un programa con reconocimiento facial en Python es posible gracias a la famosa librería OpenCV.

OpenCV es una biblioteca visión artificial que fue desarrollada en un principio por Intel y que gracias a los distintos contribuidores de código a nivel mundial, ha permitido el uso de muchas aplicaciones actuales, desde sistemas de seguridad, hasta reconocimiento y detección de objetos.

Que es la visión artificial

La visión artificial o visión por ordenador es una disciplina científica que incluye métodos para adquirir, procesar, analizar y comprender las imágenes del mundo real con el fin de producir datos de forma numérica o simbólica para que puedan ser tratados por un computador.

En nuestro caso nos centraremos en la detección facial o de rostros a partir de imágenes que, gracias al módulo de OpenCV en Python (librería) no será muy complicado.

Descargar archivo haarcascades

Estos archivos son los “modelos” de rostros humanos. Podemos crear nuevos modelos, si queremos, para detectar peces, plátanos, gatos o lo que queramos.

Sin embargo, estos archivos algunas veces no son importados correctamente cuando utilizamos la librería de Python, así que recomiendo bajar las haarcascadesdes de este enlace y guardarlas en la misma carpeta dónde vayamos a guardar nuestro código en Python.

Programa de reconocimiento facial en Python

Ahora vamos a crear un programa sencillo de reconocimiento facial en Python con OpenCV. Además del módulo ya mencionado vamos a utilizar un módulo de la librería estándar, sys y un módulo de tratamiento de imágenes, pillow

El programa que os propongo es el siguiente:

Los pasos que seguimos en el programa son los siguientes:

  • Obtenemos la imagen de los argumentos de ejecución, porque al ejecutar el programa introducimos el nombre de la imagen de la cual se realizará la detección facial.
  • Cargamos la plantilla, en mi caso la cargo de un directorio que he creado donde tengo todas las plantillas de OpenCV, que os recomendé descargar para evitar problemas.
  • Obtenemos un frame de la imagen.
  • Pasamos el frame obtenido anteriormente a blanco y negro.
  • A partir del frame en blanco y negro buscamos y guardamos las coordenadas de los rostros.
  • Pintamos rectángulos sobre las coordenadas anteriores.
  • Pedimos por teclado un nombre para guardar la nueva imagen detectando rostros.
  • Guardamos la imagen con el nombre obtenido en el paso anterior
  • Abrimos la imagen

Espero que os haya servido y para entenderlo mejor puedes ver el video del principio del post que, esta explicado de forma más práctica y amena 😉

Etiquetado en: