¡Bienvenido al proyecto «Webcam Feed with Face Detection»! En este artículo, exploraremos una aplicación simple que utiliza Python y bibliotecas como OpenCV y dlib para capturar el feed de una cámara web y realizar la detección de caras en tiempo real. Este proyecto es ideal para aprender sobre procesamiento de imágenes y detección facial.

Código Fuente

El código fuente de la aplicación se presenta a continuación. Este script, llamado app.py, emplea la biblioteca OpenCV para acceder a la cámara web, el clasificador Haar para detectar caras y el modelo dlib para el reconocimiento de emociones.

import cv2
import dlib
from datetime import datetime

# Cargar el clasificador de cascada Haar preentrenado para la detección de caras
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + ‘haarcascade_frontalface_alt2.xml’)

# Cargar el modelo de predictor facial dlib para el reconocimiento de emociones
emotion_detector = dlib.get_frontal_face_detector()

# Abrir la cámara predeterminada (índice 0)
camera = cv2.VideoCapture(0)

if not camera.isOpened():
print(«Error al abrir la cámara.»)
exit()

print(«Presiona ‘q’ para salir.»)

while True:
ret, frame = camera.read()
if not ret:
print(«Error al recuperar el fotograma de la cámara.»)
break

# Convertir el fotograma a escala de grises para la detección de caras
gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

# Detectar caras en el fotograma
faces = face_cascade.detectMultiScale(gray_frame, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

# Contador de personas
num_faces = len(faces)

# Dibujar cuadros delimitadores alrededor de las caras detectadas
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)

# Detectar emociones en la cara utilizando el modelo dlib
emotion_rectangles = emotion_detector(gray_frame[y:y+h, x:x+w])
for rect in emotion_rectangles:
cv2.putText(frame, «Emotion Detected», (x, y – 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)

# Mostrar el contador de personas
cv2.putText(frame, f’Número de Personas: {num_faces}’, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 2)

# Mostrar la fecha y hora en la esquina superior derecha de la pantalla
current_datetime = datetime.now().strftime(«%Y-%m-%d %H:%M:%S»)
cv2.putText(frame, current_datetime, (frame.shape[1] – 200, 20), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 2)

# Mostrar el fotograma
cv2.imshow(‘Webcam Feed with Face Detection’, frame)

# Salir del bucle si se presiona ‘q’
if cv2.waitKey(1) & 0xFF == ord(‘q’):
break

# Liberar la cámara y cerrar la ventana de OpenCV
camera.release()
cv2.destroyAllWindows()

Instrucciones de Uso

  1. Asegúrate de tener Python instalado en tu sistema.

  2. Instala las dependencias ejecutando el siguiente comando en tu terminal:

    pip install opencv-python dlib
  3. Ejecuta la aplicación con el siguiente comando:

    python app.py
  4. La aplicación abrirá una ventana con el feed de la cámara web y la detección de caras. Presiona ‘q’ para salir.

Licencia


Este proyecto está licenciado bajo la Licencia MIT. La Licencia MIT es una licencia de código abierto ampliamente utilizada que permite la reutilización del código en proyectos personales y comerciales.

 

MIT License

Copyright (c) [Año] [Nombre del titular de los derechos de autor]

Se concede permiso, de forma gratuita, a cualquier persona que obtenga una copia
de este software y de los archivos de documentación asociados (el «Software»), para tratar
en el Software sin restricción, incluidos, entre otros, los derechos
de uso, copia, modificación, fusión, publicación, distribución, sublicencia y/o venta de
copias del Software y permitir a las personas a las que se les proporcione el Software que lo hagan
de acuerdo con las siguientes condiciones:

… (consultar el archivo LICENSE para obtener más detalles)

Contribuciones

Si deseas contribuir a este proyecto, ¡te damos la bienvenida! Siéntete libre de abrir problemas o enviar solicitudes de extracción en el repositorio.

¡Esperamos que disfrutes explorando y utilizando esta aplicación! Si tienes alguna pregunta o sugerencia, no dudes en ponerte en contacto con nosotros.

¡Diviértete detectando caras!

Feel free to browse our gallery, and let the fusion of art and AI spark your curiosity. Each creation tells a unique story, inviting you to ponder the boundless possibilities that emerge when technology and creativity converge. Welcome to a gallery where innovation knows no limits!

Scroll al inicio