https://github.com/superrmurlocc/face-detector
Face-Detector is a deep learning-based system designed for identifying and recognizing faces in images and video streams. Built upon the VGGFace2 model and fine-tuned with ArcFace and Triplet Loss, it achieves 97% accuracy on a subset of the CelebA dataset.
https://github.com/superrmurlocc/face-detector
computer-vision deep-learning face-recognition opencv pytorch
Last synced: about 2 months ago
JSON representation
Face-Detector is a deep learning-based system designed for identifying and recognizing faces in images and video streams. Built upon the VGGFace2 model and fine-tuned with ArcFace and Triplet Loss, it achieves 97% accuracy on a subset of the CelebA dataset.
- Host: GitHub
- URL: https://github.com/superrmurlocc/face-detector
- Owner: SuperrMurlocc
- License: gpl-3.0
- Created: 2025-02-16T22:46:46.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-16T23:18:06.000Z (over 1 year ago)
- Last Synced: 2025-02-16T23:27:21.720Z (over 1 year ago)
- Topics: computer-vision, deep-learning, face-recognition, opencv, pytorch
- Language: Jupyter Notebook
- Homepage:
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Face-Detector

This project presents a **Face Detector** designed for **detecting faces in images and associating them with previously seen identities**. The system is built upon a **VGGFace2 model**, fine-tuned using **ArcFace** and **Triplet** Losses to enhance recognition performance.
The implementation provides:
- A **face bank** for storing and managing known identities.
- An **application** capable of detecting faces from images or a live webcam feed.
The project leverages a **deep learning-based algorithm** implemented with the **PyTorch** framework, achieving **97% classification accuracy** on a subset of the CelebA dataset.
---
## Table of Contents
- [Overview](#overview)
- [Datasets](#datasets)
- [System Workflow](#system-workflow)
- [Technologies Used](#technologies-used)
- [Results](#results)
- [Contributors](#contributors)
---
## Overview
The goal of this project was to create a system capable of accurately detecting and recognizing faces, The main functionalities include:
- Identifing and locating faces in images or video streams.
- Aligning faces for the neural network.
- Match detected faces against a database of known identities.
- Managing known faces for recognition.
- Performing detection and recognition on live webcam input.
---
## Datasets
- **Training:** The model was trained using the **CelebA** dataset.
- **Testing & Evaluation:** A subset of CelebA was used for testing and performance metrics.
- **Presentation:** A custom **Players Dataset** was created for demonstration purposes, containing a few images of **Kylian Mbappé** and **Cristiano Ronaldo**.
⚠ **Disclaimer:** I do not claim ownership of the images used in the *Players Dataset*. They are included solely for demonstration purposes.
---
## System Workflow

---
## Technologies Used
- **Python 3**
- **PyTorch** - for building and training deep learning models
- **OpenCV** – for image processing and feature detection
- **NumPy** – for efficient numerical operations
- **Matplotlib** – for visualization
- **einops** – for tensor manipulation
- **Git/GitHub** – for version control and collaboration
---
## Results
The face recognition system achieved **97% classification accuracy** on a subset of the **CelebA dataset**, demonstrating high reliability in identifying known faces.
To further evaluate performance, we analyzed **False Rejection Rate (FRR)** and **False Acceptance Rate (FAR)** across different decision thresholds:
- **FRR (False Rejection Rate)** – Measures the percentage of genuine faces incorrectly rejected by the system.
- **FAR (False Acceptance Rate)** – Measures the percentage of impostor faces incorrectly accepted as known identities.
The following figure presents the **FRR and FAR curves**, showing the trade-off between security and recognition accuracy:

A well-balanced threshold ensures both **low rejection of genuine users** and **high resistance to false acceptances**.
---
## Contributors
- **Jakub Bednarski** – Conceptualization, Methodology, Software Development, Project Administration
- **Julia Komorowska** – Software Development, Investigation
- **Adam Wasiela** – Software Development, Investigation
- **Hubert Woziński** – Software Development, Investigation