This project benchmarks face detection models and explores head pose estimation as part of a Data Science course at UC3M. The goal is to evaluate various face detection algorithms across different metrics including accuracy, precision, and inference time.
benchmark/- Face detection benchmark framework with model implementations and evaluation scriptsdocs/- Project documentation, papers analysis, and state-of-the-art researchpipeline/- Data pipeline utilities for dataset processingreport/- LaTeX source files for the final project reportvisualization/- Streamlit-based visualization application for results
- Comprehensive benchmarking of multiple face detection models:
- YOLO variants (YOLOv5, YOLOv8, YOLOv10, YOLOv11)
- Classical approaches (Haar Cascade, SSD)
- Modern detectors (FaceBoxes, LFFD, DSFD, RetinaFace, MTCNN, BlazeFace, SCRFD)
- Lightweight models (Ultra-Light-Fast-Generic-Face-Detector)
- Evaluation on WIDER FACE dataset
- Performance metrics: accuracy, precision, recall, inference time
- Interactive visualization dashboard
- Python 3.8+
- CPU-only environment (no GPU required)
- Clone the repository:
git clone https://github.com/andres-nav/data-science-project-uc3m.git
cd data-science-project-uc3m- Install dependencies:
# For benchmark framework
cd benchmark
pip install -r requirements.txt
# For visualization app
cd ../visualization
pip install -r requirements.txt- Initialize submodules:
git submodule update --init --recursivecd benchmark
python main.pycd visualization
streamlit run app.pyDetailed benchmark results, model comparisons, and analysis can be found in the final report PDF located in the report/ directory.