Este proyecto implementa el Proyecto 1 de la consigna: un sistema que registra asistencia automaticamente a partir del reconocimiento facial de una persona en una imagen o en tiempo real mediante webcam.
La solucion usa la libreria deepface para:
- verificacion y reconocimiento facial
- busqueda de coincidencias dentro de una base de rostros registrados
- analisis de atributos faciales basicos como edad, genero y emocion
Ademas, el sistema genera una bitacora CSV de asistencia para que el docente o evaluador pueda revisar los registros.
- Registro de personas a partir de fotografias
- Reconocimiento facial sobre una imagen
- Pase de asistencia con imagen
- Pase de asistencia en tiempo real con webcam
- Reporte de asistencia guardado en
data/reports/attendance_log.csv - Analisis facial opcional usando DeepFace
.
├── app.py
├── data/
│ ├── captures/
│ ├── known_faces/
│ └── reports/
├── face_attendance/
│ ├── cli.py
│ ├── config.py
│ ├── service.py
│ └── storage.py
└── requirements.txt
- Python 3.10 o superior
- Webcam opcional para el modo en tiempo real
- Clona el repositorio y entra a la carpeta del proyecto.
git clone https://github.com/EnigmaticIndividual1/Computer-Vision.git
cd Computer-Vision- Crea un entorno virtual.
python3 -m venv .venv- Activa el entorno virtual.
En macOS / Linux:
source .venv/bin/activateEn Windows PowerShell:
.venv\Scripts\Activate.ps1- Instala dependencias.
pip install --upgrade pip
pip install -r requirements.txtpython app.py init-dirsAgrega al menos una fotografia clara por persona.
python app.py register --name "Alan Pineda" --image /ruta/a/alan_1.jpg
python app.py register --name "Alan Pineda" --image /ruta/a/alan_2.jpg
python app.py register --name "Maria Lopez" --image /ruta/a/maria.jpgLas imagenes quedan copiadas dentro de data/known_faces/.
python app.py list-peoplepython app.py recognize --image /ruta/a/foto_prueba.jpgSalida esperada aproximada:
Rostro 1: Alan Pineda (distance=0.2143, threshold=0.4)
python app.py mark --image /ruta/a/foto_prueba.jpgSi la persona ya fue registrada en la fecha actual, el sistema la marca como duplicado para evitar asistencias repetidas el mismo dia.
python app.py webcamComandos del modo webcam:
q: salir de la aplicacion
Opcionalmente puedes ajustar el indice de camara y la frecuencia de reconocimiento:
python app.py webcam --camera 0 --frame-interval 20Todos los registros se guardan en data/reports/attendance_log.csv.
Para verlos en consola:
python app.py reportPara filtrar por fecha:
python app.py report --date 2026-03-18python app.py analyze --image /ruta/a/foto_prueba.jpgSalida esperada aproximada:
Rostro 1: edad=24, genero=Man, emocion=happy
- Instalar dependencias con
requirements.txt. - Registrar una o mas personas con fotografias reales.
- Ejecutar
python app.py recognize --image ...para comprobar reconocimiento. - Ejecutar
python app.py mark --image ...opython app.py webcampara registrar asistencia. - Revisar
data/reports/attendance_log.csv.
- La primera ejecucion de DeepFace puede tardar mas porque descarga pesos del modelo si todavia no existen en el equipo.
- Para obtener mejores resultados, usa fotos frontales, con buena iluminacion y sin filtros.
- Si la webcam no esta disponible, todo el proyecto puede demostrarse usando solamente imagenes.