All Projects → becauseofAI → Mobileface

becauseofAI / Mobileface

Licence: mit
A face recognition solution on mobile device.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Mobileface

Imagedetect
✂️ Detect and crop faces, barcodes and texts in image with iOS 11 Vision api.
Stars: ✭ 286 (-57.25%)
Mutual labels:  face-detection, face-recognition, face
Robovision
AI and machine leaning-based computer vision for a robot
Stars: ✭ 126 (-81.17%)
Mutual labels:  artificial-intelligence, face-detection, face-recognition
Dockerface
Face detection using deep learning.
Stars: ✭ 173 (-74.14%)
Mutual labels:  face-detection, face-recognition, face
Human Detection And Tracking
Human-detection-and-Tracking
Stars: ✭ 753 (+12.56%)
Mutual labels:  face-detection, face-recognition, face
face
[deprecated] 👽 Face Recognition package for Laravel
Stars: ✭ 37 (-94.47%)
Mutual labels:  face, face-recognition, face-detection
Lookatme
VideoView that plays video only when 👀 are open and 👦 is detected with various other features
Stars: ✭ 161 (-75.93%)
Mutual labels:  face-detection, face-recognition, face
Ai Reading Materials
Some of the ML and DL related reading materials, research papers that I've read
Stars: ✭ 79 (-88.19%)
Mutual labels:  artificial-intelligence, face-detection, face-recognition
Face Recognition.js
Simple Node.js package for robust face detection and face recognition. JavaScript and TypeScript API.
Stars: ✭ 1,768 (+164.28%)
Mutual labels:  face-detection, face-recognition, face
timeline
Timeline - A photo organizer
Stars: ✭ 39 (-94.17%)
Mutual labels:  face, face-recognition, face-detection
FaceIDLight
A lightweight face-recognition toolbox and pipeline based on tensorflow-lite
Stars: ✭ 17 (-97.46%)
Mutual labels:  face, face-recognition, face-detection
Awesome Face
😎 face releated algorithm, dataset and paper
Stars: ✭ 739 (+10.46%)
Mutual labels:  face-detection, face-recognition, face
Facecropper
✂️ Crop faces, inside of your image, with iOS 11 Vision api.
Stars: ✭ 479 (-28.4%)
Mutual labels:  face-detection, face-recognition, face
Helloface
An awesome face technology repository.
Stars: ✭ 905 (+35.28%)
Mutual labels:  artificial-intelligence, face-detection, face-recognition
Face.evolve.pytorch
🔥🔥High-Performance Face Recognition Library on PaddlePaddle & PyTorch🔥🔥
Stars: ✭ 2,719 (+306.43%)
Mutual labels:  artificial-intelligence, face-detection, face-recognition
Look4Face
Demo of Face Recognition web service
Stars: ✭ 23 (-96.56%)
Mutual labels:  face, face-recognition, face-detection
Multi-Face-Comparison
This repo is meant for backend API for face comparision and computer vision. It is built on python flask framework
Stars: ✭ 20 (-97.01%)
Mutual labels:  face, face-recognition, face-detection
Workattendancesystem
一个基于opencv、dilb的员工人脸识别考勤系统
Stars: ✭ 299 (-55.31%)
Mutual labels:  face-detection, face-recognition
Deepvideoanalytics
A distributed visual search and visual data analytics platform.
Stars: ✭ 2,973 (+344.39%)
Mutual labels:  face-detection, face-recognition
Face Tracking With Anime Characters
Hello! I have made a Python project where YURI from the game doki doki literature club accesses the webcam and stares directly into the players soul. Hope you enjoy!
Stars: ✭ 320 (-52.17%)
Mutual labels:  artificial-intelligence, face-detection
Face recognition
🍎 My own face recognition with deep neural networks.
Stars: ✭ 328 (-50.97%)
Mutual labels:  face-detection, face-recognition

💥Big Bang💥

Receptive Field Is Natural Anchor

Receptive Field Is All You Need

2K real-time detection is so easy!

[Paper] [MXNet] [PyTorch]


MobileFace

A face recognition solution on mobile device.

MobileFaceV1

Prerequirements

  • Anaconda (optional but recommend)
  • MXNet and GluonCV (the easiest way to install)
  • DLib (may be deprecated in the future)
    The easiest way to install DLib is through pip.
pip install dlib

Performance

Identification

Model Framework Size CPU LFW Target
MobileFace_Identification_V1 MXNet 3.40M 8.5ms - Actual Scene
MobileFace_Identification_V2 MXNet 3.41M 9ms 99.653% Benchmark
🌟MobileFace_Identification_V3 MXNet 2.10M 💥3ms(sota) 95.466%(baseline) Benchmark

Detection

Model Framework Size CPU
MobileFace_Detection_V1 MXNet/GluonCV 30M 20ms/50fps

Landmark

Model Framework Size CPU
MobileFace_Landmark_V1 DLib 5.7M <1ms

Pose

Model Framework Size CPU
MobileFace_Pose_V1 free <1K <0.1ms

Align

Model Framework Size CPU
MobileFace_Align_V1 free <1K <0.1ms

Attribute

Model Framework Size CPU
MobileFace_Attribute_V1 MXNet/GluonCV 16.4M 14ms/71fps

Tracking

Model Framework Size CPU
MobileFace_Tracking_V1 free - <2ms

Example

To get fast face feature embedding with MXNet as follow:

cd example
python get_face_feature_v1_mxnet.py # v1, v2, v3

To get fast face detection result with MXNet/GluonCV as follow:

cd example
python get_face_boxes_gluoncv.py

To get fast face landmarks result with dlib as follow:

cd example
python get_face_landmark_dlib.py

To get fast face pose result as follow:

cd example
python get_face_pose.py

To get fast face align result as follow:

cd example
python get_face_align.py

To get fast face attribute results as follow:

cd example
python get_face_attribute_gluoncv.py

To get mobileface all results as follow:

cd example
python mobileface_allinone.py

To get mobileface fast tracking result as follow:

cd example
python get_face_tracking_v1.py

To get mobileface makeup result as follow:

cd example
python get_face_makeup_v1.py

MobileFaceMakeupV1

To get mobileface enhancement result as follow:

cd example
python get_face_enhancement_v1.py

MobileFaceEnhanceV1

Visualization

t-SNE

I used the t-SNE algorithm to visualize in two dimensions the 256-dimensional embedding space. Every color corresponds to a different person(but colors are reused): as you can see, the MobileFace has learned to group those pictures quite tightly. (the distances between clusters are meaningless when using the t-SNE algorithm)
t-SNE
To get the t-SNE feature visualization above as follow:

cd tool/tSNE
python face2feature.py # get features and lables and save them to txt
python tSNE_feature_visualization.py # load the txt to visualize face feature in 2D with tSNE

ConfusionMatrix

I used the ConfusionMatrix to visualize the 256-dimensional feature similarity heatmap of the LFW-Aligned-100Pair: as you can see, the MobileFace has learned to get higher similarity when calculating the same person's different two face photos. Although the performance of the V1 version is not particularly stunning on LFW Dataset, it does not mean that it does not apply to the actual scene.
t-SNE
To get the ConfusionMatrix feature similarity heatmap visualization above as follow:

cd tool/ConfusionMatrix
python ConfusionMatrix_similarity_visualization.py

Tool

Time

To get inference time of different version's MXNet models as follow:

cd tool/time
python inference_time_evaluation_mxnet.py --symbol_version=V3 # default = V1

Model_Prune

Prune the MXNet model through deleting the needless layers (such as classify layer and loss layer) and only retaining features layers to decrease the model size for inference as follow:

cd tool/prune
python model_prune_mxnet.py

MXNet2Caffe

Merge_bn

Benchmark

LFW

The LFW test dataset (aligned by MTCNN and cropped to 112x112) can be download from Dropbox or BaiduDrive, and then put it (named lfw.bin) in the directory of data/LFW-bin.
To get the LFW comparison result and plot the ROC curves as follow:

cd benchmark/LFW
python lfw_comparison_and_plot_roc.py

LFW ROC

MegaFace

TODO

  • [x] MobileFace_Identification
  • [x] MobileFace_Detection
  • [x] MobileFace_Landmark
  • [x] MobileFace_Align
  • [x] MobileFace_Attribute
  • [x] MobileFace_Pose
  • [x] MobileFace_Tracking
  • [x] MobileFace_Makeup
  • [x] MobileFace_Enhancement
  • [ ] MobileFace_FacePortrait
  • [ ] MobileFace_FaceSwap
  • [ ] MobileFace_MakeupSwap
  • [ ] MobileFace_NCNN
  • [ ] MobileFace_FeatherCNN
  • [x] Benchmark_LFW
  • [ ] Benchmark_MegaFace

Others

Coming Soon!

FacePortrait

MakeupSwap

FaceSwap

Reference

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].