Reconocimiento facial con Raspberry Pi y OpenCV
Publicado por Loli Diéguez en
En este tutorial te enseño como configurar una Raspberry Pi para reconocimiento facial usando Python y OpenCV.
OpenCV (biblioteca de visión de computadora de código abierto) es una biblioteca muy útil que proporciona muchas características como reconocimiento de texto, reconocimiento facial, detección de objetos, creación de mapas de profundidad y aprendizaje automático.
En este tutorial te enseño cómo instalar OpenCV y otras bibliotecas que serán útiles para la detección de objetos. A partir de ahí, te enseñaré cómo realizar operaciones de imagen y vídeo en tu Raspberry Pi para reconocimiento facial con OpenCV y Python.
El resultado final, es que terminarás escribiendo un simple código para detectar caras en una imagen.
¿Qué es OpenCV?
OpenCV es una biblioteca de software de visión en ordenadores y aprendizaje de código abierto. OpenCV se lanza bajo una licencia BSD, por lo que es gratis para uso académico y comercial. Tiene interfaces C ++, Python y Java. Además, es compatible con Windows, Linux, Mac OS, iOS y Android.
OpenCV fue diseñado para la eficiencia computacional y muy enfocado para aplicaciones en tiempo real.
Cómo instalar OpenCV en una Raspberry Pi
Para instalar OpenCV, necesitaras tener Python ya instalado en tu placa, aunque normalmente viene ya precargado en Raspbian, así que, puedes montar OpenCV directamente.
Escribe los siguientes comandos para asegurarte de que tu Pi está actualizada y los paquetes instalados están en las últimas versiones.
sudo apt-get update
sudo apt-get upgrade
Escribe los siguientes comandos en el terminal para instalar los paquetes necesarios.
sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore4
Escribe el siguiente comando para instalar OpenCV 3 para Python 3 en tu placa.
sudo pip3 install opencv-contrib-python libwebp6
Después de estos pasos, OpenCV debería estar instalado. ¡Ahora toca probarlo!
Pruebas de OpenCV
Para verificar si OpenCV está instalado correctamente o no, intenta importar OpenCV escribiendo lo siguiente en la ventana de comandos:
Python3
Después:
import cv2
¡Si no te salen errores, la instalación está finalizada con éxito!
Para saber qué versión de OpenCV tienes, escribe el siguiente comando:
cv2.__version__
El resultado sera una pantalla como la siguiente:
Bibliotecas opcionales recomendadas
Hay otras bibliotecas que serán útiles para la detección de objetos y otros proyectos, por lo que te recomiendo que también instales las siguientes
NumPy
La primera biblioteca es NumPy, una biblioteca que hace que las operaciones de matriz en Python sean fáciles de realizar. Instala NumPy escribiendo el siguiente comando:
pip3 install python-numpy
Matplotlib
La segunda biblioteca es Matplotlib, es una biblioteca para la generación de gráficos a partir de datos contenidos en listas o arrays en el lenguaje de programación Python y su extensión matemática NumPy. Instala Matplotlib escribiendo el siguiente comando:
pip3 install python-matplotlib
Ahora ya has terminado de instalar OpenCV y las bibliotecas complementarias, lo siguiente es la detección de objetos y el aprendizaje automático utilizando todo lo que hemos instalado.
Detección de rostros en imágenes usando OpenCV
Lo primero será escribir el código que hara el reconocimiento facial en las imágenes que se pasan al código. Para la detección de rostros, necesitas un archivo en cascada . Guarda este archivo en el directorio de trabajo como "haarcascade_frontalface_default.xml".
Ingresa la ruta de la imagen en la que desea detectar caras en el siguiente código y ejecuta el código.
# Import OpenCV library
import cv2
# Load a cascade file for detecting faces
faceCascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml");
# Load image
image = cv2.imread('obamafamily.jpg')
# Convert into grayscale
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Look for faces in the image using the loaded cascade file
faces = faceCascade.detectMultiScale(gray, 1.2, 5)
for (x,y,w,h) in faces:
# Create rectangle around faces
cv2.rectangle(image,(x,y),(x+w,y+h),(255,255,0),2)
# Create the resizeable window
cv2.namedWindow('Obama', cv2.WINDOW_NORMAL)
# Display the image
cv2.imshow('Obama', image)
# Wait until we get a key
k=cv2.waitKey(0)
# If pressed key is 's'
if k == ord('s'):
# Save the image
cv2.imwrite('convertedimage.jpg', image)
# Destroy all windows
cv2.destroyAllWindows()
# If pressed key is ESC
elif k == 27:
# Destroy all windows
cv2.destroyAllWindows()
Después de ejecutar el código, aparecerán rectángulos alrededor de las caras como se muestra en la imagen a continuación.
Ahora podrás empezar a pasar tus fotos por esta aplicación para buscar tu cara y la de las personas que quieres.
Si te ha gustado este articulo no dudes en compartirlo con los enlaces de abajo
Compartir esta publicación
- Etiquetas: clone, OpenCV, raspberry pi, tutorial