View Demo · Report Bug · Request Feature
- Our trained model can be downloaded here
- The pretrained model can be downloaded here
- The dataset we used for evaluation can be downloaded here
Table of Contents
Facsecure is an application that simulates an access control system through face recognition. This project provides the whole training pipeline for training a model with an own selected dataset. On top of this, an application utilizes the model as the core of the facial recognition backend logic.
Fasecure was developed in the context of the advanced practical course "Application Challenges for Machine Learning on the example of IBM Power AI" at the Technical University of Munich. Our main task was to build a complete facial recognition system.
The main focus of this project is implementation of the face recognition. For that we used the implementation described in the paper "FaceNet: A Unified Embedding for Face Recognition and Clustering".
Additionally, we implemented all tasks in which face recognition can be broken down to: Detection, Alignment, Embedding and Recognition/Registration.
$ git clone https://github.com/Neihtq/IBM-labcourse.git
and you are ready to go.
You can install all dependencies easily with pip. Simply run:
$ pip install -r requirements.txt
followed by
$ cd backend
$ pip install -e .
to install the Fasecure model.
Also make sure to have a working webcam.
The VGG Face Dataset consists of multiple images from 2622 distinct identities. Overall the dataset took 69 GB of storage. Triplets were generated and fed into Triplet Loss Function for learning.
Please refer to the wiki page on how to train the model.
Labeled Face in the Wild was used evaluating both embedding and recognition pipeline. On our local machines, we used DeepFace beforehand for cropping and aligning the faces on each image.
Please refer to the wiki page on how to evaluate the pipeline and its model.
We came also up with the idea of integrating face spoofing/liveness detection into the pipeline. However, we did not have enough time to develop a model with sufficient accuracy. Nonetheless, the face spoofing module can be tested sperately:
$ cd backend
$ python face_recognition/face_spoofing.py
Make sure to place the model for face recognition in backend/face_recognition/results/models/
.
Run:
$ cd backend
$ python server.py
Run:
$ cd frontend
$ python view.py
See the open issues for a list of proposed features (and known issues).
Distributed under the MIT License. See LICENSE
for more information.
Cao Son Ngoc Pham - @cacao - caoson@hotmail.de -
Quang Thien Nguyen - @Neihtq - q.thien.nguyen@outlook.de -
Simon Felderer - @simonfelderer - simon.felderer@tum.de -
Tobias Zeulner - @Zeulni - ge93yan@mytum.de -
- Special thanks to Omar Shouman for giving his best effort to support us during this course
- Special thanks for IBM to provides us with the IBM POWER Architecture for training
- Face Recognition using Tensorflow
- Best-README-Template
- We were heavily inspired by tamerthamoqa's implementation