All Projects → jonaphin → facenet

jonaphin / facenet

Licence: MIT license
Face recognition using Tensorflow

Projects that are alternatives of or similar to facenet

Face-Recognition-Jetson-Nano
Recognize 2000+ faces on your Jetson Nano with database auto-fill and anti-spoofing
Stars: ✭ 63 (+270.59%)
Mutual labels:  face-recognition, face-detection
DeepFaceRecognition
Face Recognition with Transfer Learning
Stars: ✭ 16 (-5.88%)
Mutual labels:  face-recognition, face-detection
Facepapercollection
A collection of face related papers
Stars: ✭ 241 (+1317.65%)
Mutual labels:  face-recognition, face-detection
FaceRecognitionCpp
Large input size REAL-TIME Face Detector on Cpp. It can also support face verification using MobileFaceNet+Arcface with real-time inference. 480P Over 30FPS on CPU
Stars: ✭ 40 (+135.29%)
Mutual labels:  face-recognition, face-detection
bob
Bob is a free signal-processing and machine learning toolbox originally developed by the Biometrics group at Idiap Research Institute, in Switzerland. - Mirrored from https://gitlab.idiap.ch/bob/bob
Stars: ✭ 38 (+123.53%)
Mutual labels:  face-recognition, face-detection
GenderRecognizer
Plain Face Detector & Gender Recognizer
Stars: ✭ 57 (+235.29%)
Mutual labels:  face-recognition, face-detection
Face-Recognition
A Java application for Face Recognition under expressions, occlusions and pose variations.
Stars: ✭ 55 (+223.53%)
Mutual labels:  face-recognition, face-detection
Face.evolve.pytorch
🔥🔥High-Performance Face Recognition Library on PaddlePaddle & PyTorch🔥🔥
Stars: ✭ 2,719 (+15894.12%)
Mutual labels:  face-recognition, face-detection
Face Recognition
<NOT ACTIVELY MAINTAINED>A light weight face recognition implementation using a pre-trained facenet model
Stars: ✭ 106 (+523.53%)
Mutual labels:  face-recognition, face-detection
Detect-Facial-Features
Code example demonstrating how to detect eyes, nose, lips, and jaw with dlib, OpenCV, and Python
Stars: ✭ 42 (+147.06%)
Mutual labels:  face-recognition, face-detection
ViewFaceCore
C# 超简单的离线人脸识别库。( 基于 SeetaFace6 )
Stars: ✭ 345 (+1929.41%)
Mutual labels:  face-recognition, face-detection
FaceIDLight
A lightweight face-recognition toolbox and pipeline based on tensorflow-lite
Stars: ✭ 17 (+0%)
Mutual labels:  face-recognition, face-detection
Facerecognition
Nextcloud app that implement a basic facial recognition system.
Stars: ✭ 226 (+1229.41%)
Mutual labels:  face-recognition, face-detection
FaceRecog
Realtime Facial recognition system using Siamese neural network
Stars: ✭ 47 (+176.47%)
Mutual labels:  face-recognition, face-detection
Ownphotos
Self hosted alternative to Google Photos
Stars: ✭ 2,587 (+15117.65%)
Mutual labels:  face-recognition, face-detection
Awesome Face recognition
papers about Face Detection; Face Alignment; Face Recognition && Face Identification && Face Verification && Face Representation; Face Reconstruction; Face Tracking; Face Super-Resolution && Face Deblurring; Face Generation && Face Synthesis; Face Transfer; Face Anti-Spoofing; Face Retrieval;
Stars: ✭ 3,220 (+18841.18%)
Mutual labels:  face-recognition, face-detection
Marvel
Marvel - Face Recognition With Android & OpenCV
Stars: ✭ 199 (+1070.59%)
Mutual labels:  face-recognition, face-detection
Arcface Multiplex Recognition
适用于复杂场景的人脸识别身份认证系统
Stars: ✭ 200 (+1076.47%)
Mutual labels:  face-recognition, face-detection
Face-Recognition-Raspberry-Pi-64-bits
Recognize 2000+ faces on your Raspberry Pi 4 with database auto-fill and anti-spoofing
Stars: ✭ 48 (+182.35%)
Mutual labels:  face-recognition, face-detection
Face-Recognition-Attendance-System
Face Detection | Recognition | Attendance
Stars: ✭ 289 (+1600%)
Mutual labels:  face-recognition, face-detection

Face Recognition using Tensorflow Build Status

This is a TensorFlow implementation of the face recognizer described in the paper "FaceNet: A Unified Embedding for Face Recognition and Clustering". The project also uses ideas from the paper "A Discriminative Feature Learning Approach for Deep Face Recognition" as well as the paper "Deep Face Recognition" from the Visual Geometry Group at Oxford.

Compatibility

The code is tested using Tensorflow r1.2 under Ubuntu 14.04 with Python 2.7 and Python 3.5. The test cases can be found here and the results can be found here.

Installation

Facenet can now be installed as a package:

pip install facenet

News

Date Update
2019-07-12 v1.0.4: Fixed some bugs, upped tensorflow version to 1.10.0, froze scipy
2018-04-14 Package available in global distribution channel as "facenet"
2017-05-13 Removed a bunch of older non-slim models. Moved the last bottleneck layer into the respective models. Corrected normalization of Center Loss.
2017-05-06 Added code to train a classifier on your own images. Renamed facenet_train.py to train_tripletloss.py and facenet_train_classifier.py to train_softmax.py.
2017-03-02 Added pretrained models that generate 128-dimensional embeddings.
2017-02-22 Updated to Tensorflow r1.0. Added Continuous Integration using Travis-CI.
2017-02-03 Added models where only trainable variables has been stored in the checkpoint. These are therefore significantly smaller.
2017-01-27 Added a model trained on a subset of the MS-Celeb-1M dataset. The LFW accuracy of this model is around 0.994.
2017‑01‑02 Updated to code to run with Tensorflow r0.12. Not sure if it runs with older versions of Tensorflow though.

Pre-trained models

Model name LFW accuracy Training dataset Architecture
20170511-185253 0.987 CASIA-WebFace Inception ResNet v1
20170512-110547 0.992 MS-Celeb-1M Inception ResNet v1

Inspiration

The code is heavily inspired by the OpenFace implementation.

Training data

The CASIA-WebFace dataset has been used for training. This training set consists of total of 453 453 images over 10 575 identities after face detection. Some performance improvement has been seen if the dataset has been filtered before training. Some more information about how this was done will come later. The best performing model has been trained on a subset of the MS-Celeb-1M dataset. This dataset is significantly larger but also contains significantly more label noise, and therefore it is crucial to apply dataset filtering on this dataset.

Pre-processing

Face alignment using MTCNN

One problem with the above approach seems to be that the Dlib face detector misses some of the hard examples (partial occlusion, silhouettes, etc). This makes the training set to "easy" which causes the model to perform worse on other benchmarks. To solve this, other face landmark detectors has been tested. One face landmark detector that has proven to work very well in this setting is the Multi-task CNN. A Matlab/Caffe implementation can be found here and this has been used for face alignment with very good results. A Python/Tensorflow implementation of MTCNN can be found here. This implementation does not give identical results to the Matlab/Caffe implementation but the performance is very similar.

Running training

Currently, the best results are achieved by training the model as a classifier with the addition of Center loss. Details on how to train a model as a classifier can be found on the page Classifier training of Inception-ResNet-v1.

Pre-trained model

Inception-ResNet-v1 model

A couple of pretrained models are provided. They are trained using softmax loss with the Inception-Resnet-v1 model. The datasets has been aligned using MTCNN.

Performance

The accuracy on LFW for the model 20170512-110547 is 0.992+-0.003. A description of how to run the test can be found on the page Validate on LFW.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].