Skip to main content

Detección de rostros con reTerminal y cámara Pi con OpenCV

Introducción

La detección de rostros utilizando el método Haar Cascade es una técnica fundamental en visión por computadora, empleando un modelo de aprendizaje automático para reconocer características faciales. Este método se basa en una cascada de clasificadores entrenados en características tipo Haar, permitiendo una identificación rápida y precisa de rostros en imágenes y flujos de video. Su aplicación generalizada abarca diversos campos, incluyendo tecnología de reconocimiento facial para propósitos de seguridad y autenticación, sistemas de videovigilancia, e incluso en software de fotografía para etiquetado automático y clasificación basada en rostros detectados. El método Haar Cascade es particularmente valioso debido a su eficiencia computacional, haciéndolo muy adecuado para detección de rostros en tiempo real en varios contextos, contribuyendo significativamente al avance de las tecnologías de análisis e identificación facial.

Comenzando

Antes de iniciar este proyecto, es posible que necesites preparar tu hardware y software con anticipación como se describe aquí.

Preparación del hardware

Preparación del Software

Recomendamos instalar la versión Bullesye o Bullseye del SO Raspberry Pi de 64 bits desde su sitio web oficial. Si prefieres instalar un nuevo SO Raspbian, por favor sigue los pasos descritos en esta guía.

note

Recomendamos encarecidamente revisar nuestro tutorial anterior sobre Cómo empezar con OpenCV, ya que este tutorial sirve como una continuación en nuestra serie.

¿Qué es el método Haar Cascade?

En OpenCV, el método Haar Cascade es un algoritmo de detección de rostros basado en aprendizaje automático. Funciona entrenando un clasificador en cascada con imágenes positivas y negativas, permitiéndole reconocer patrones y características indicativas de rostros. La cascada comprende múltiples etapas, cada una con un conjunto de clasificadores débiles que progresivamente eliminan regiones que no son rostros, haciendo que el proceso de detección sea eficiente. Las características tipo Haar, que se asemejan a patrones rectangulares de áreas oscuras y claras, sirven como la base para reconocer objetos, como rostros. Una vez entrenada, la cascada puede aplicarse a imágenes o fotogramas de video para detectar rostros rápidamente. Este método es ampliamente utilizado por su precisión y velocidad, convirtiéndolo en una opción popular en varias aplicaciones, incluyendo detección y reconocimiento de rostros en tiempo real.

Por favor revisa esta documentación si quieres aprender más.

Ejecutemos el código

Asegúrate de que estás en la carpeta correcta. Si no

cd Seeed_Python_ReTerminal/samples/Opencv_and_piCam

Entonces o incluso puedes usar el IDE Thonny para ejecutar el script de Python.

python facedetection_pi.py

Siguiendo tu referencia, proporcionaremos el fragmento de código completo para tu conveniencia.

import cv2
from picamera2 import Picamera2

# Load the pre-trained Haar Cascade classifier for face detection
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280, 720)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()

try:
while True:
im = picam2.capture_array()
cv2.imshow("Camera", im)

# Convert the image to grayscale for face detection
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)

# Perform face detection
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5, minSize=(30, 30))

# Draw rectangles around the detected faces
for (x, y, w, h) in faces:
cv2.rectangle(im, (x, y), (x+w, y+h), (255, 0, 0), 2)

# Display the image with face detection
cv2.imshow("Face Detection", im)

# Break the loop when 'q' is pressed
if cv2.waitKey(1) == ord('q'):
break

finally:
# Release resources
cv2.destroyAllWindows()
picam2.stop()
picam2.close()

Si quieres encontrar más archivos xml de cascadas haas para experimentar, por favor revisa este enlace.

Aplicaciones

Haarcascade, originalmente diseñado para la detección de rostros en tiempo real, ha experimentado avances para abordar desafíos contemporáneos. Los innovadores han extendido sus capacidades para incluir detección de mascarillas faciales, crucial para las medidas de salud pública. Además, la tecnología ha sido optimizada para detección de placas de matrícula, particularmente valiosa en entornos de recursos limitados donde el hardware sofisticado es escaso. Estas adaptaciones demuestran la versatilidad y eficiencia de Haarcascade para satisfacer diversas necesidades dentro de las aplicaciones de visión por computadora.

Soporte técnico

¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.

Loading Comments...