Giter VIP home page Giter VIP logo

fasecure's Introduction


Logo

Fasecure

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
  1. About The Project
  2. Getting Started
  3. Training and Evaluation
  4. Running Fasecure
  5. Issues
  6. License
  7. Contact
  8. Acknowledgements

About The Project

Product Name Screen Shot 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.

Face Recognition Pipeline

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.

Built With

Getting Started

$ git clone https://github.com/Neihtq/IBM-labcourse.git

and you are ready to go.

Prerequisites

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.

Training and Evaluation

Training data

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.

Training

Please refer to the wiki page on how to train the model.

Evaluation Data

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.

Evaluation

Please refer to the wiki page on how to evaluate the pipeline and its model.

Face Spoofing

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

Running Fasecure

Backend

Make sure to place the model for face recognition in backend/face_recognition/results/models/.

Run:

$ cd backend
$ python server.py

Frontend

Run:

$ cd frontend
$ python view.py

Issues

See the open issues for a list of proposed features (and known issues).

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Cao Son Ngoc Pham - @cacao - [email protected] -

Quang Thien Nguyen - @Neihtq - [email protected] -

Simon Felderer - @simonfelderer - [email protected] -

Tobias Zeulner - @Zeulni - [email protected] -

Acknowledgements

fasecure's People

Contributors

neihtq avatar zeulni avatar xcacao avatar simonfelderer avatar

Stargazers

Omar Shouman avatar  avatar

Watchers

 avatar

fasecure's Issues

Face Recognition Model

Look for models, architectures and techniques for face recognition model. The face recognition should:

  • get an image with a face
  • tell whether the face is unknown or does exist in the "database"
  • Output should be human readable

Face Detection Model

Find and implement a face detection architecture using pretrained models. Possible ideas:

  • YOLOv3
  • Detectron

Input is an image of fixed size. Output should be coordinates of boundary boxes.

Create good README

As an interested person I want to have a nice readme so I know how to set up and use the project.

Prepare Github repo for delivery

Needs clarification with Omar how he wants it to be

For now: look for other pytorch projects on github and copy their structure

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.