Giter Site home page Giter Site logo

roopeshn28 / face-verification Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jifuzhao/face-verification

0.0 0.0 0.0 320.84 MB

Repository for Face Detection and Verification

License: MIT License

Jupyter Notebook 53.05% Python 0.24% HTML 46.71%

face-verification's Introduction

Face-Verification

Repository for Face Detection and Verification Systems


Tasks

  • Face Detection
    • Haar Cascade Classifier
    • LBP Classifier (not actually implemented)
  • Face Alignment
    • TBD
  • Face Verification
    • Base CNN model building and training
    • Face verification metric measure
  • Liveness Verification
    • Eye-blink
    • TBD
  • Interface or API

Demo

  • Sample Input Images

Sample

  • Frontal Face Detection

Sample

  • Frontal Face Crop

Sample

2. Base CNN Model for Face Verification

  • Training Dataset: VGGFace2 Dataset
  • Triplet Loss
    equation
    • a: anchor image
    • p: positive image
    • n: negative image
    • f(x): CNN model to encode the input image
    • $\alpha$: margin for triplet
    Sample

3. Face Verification

Give two input images, with the face verification api, the distance between to embedded images can be used to determine the identity of the input images. Below is the distance calculated for the sample input images.

Sample

4. Performance

Using the test dataset, the distance distribution between anchor image and positive image, and the distance distribution between anchor image and negative image, are shown below.

Sample

5. Extention: Face Recognition

Based on the pre-trained CNN models, face recognition can be performed using the encoded image vectors (in this project, a vector with 128 dimensions). Essentially, it can be performed using K-Nearest Neighbors (KNN) model.


Note

Currently the performance of pre-trained CNN models are mainly influenced by two factors: the quality of the input images and the iterations to train the model.

The input images used for training the CNN models have relatively low quality. With modern smart phones, the quality of the input image should be further improved. Thus, with better training images, the performance of the module should be further improved.

Limited by computation resources, a relatively small CNN model is used, and the model is only trained for 1,000 epochs. For better performance, please refer to other pre-trained models.

Useful Links:

Copyright @ Jifu Zhao 2018

face-verification's People

Contributors

jifuzhao avatar

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.