FACIAL RECOGNITION SYSTEM

Customer wanted us to build an end-to-end model for recognizing faces that can run both on Cloud and Devices powered by Qualcomm S603 & S605 chipsets.

To build a robust recognition engines, following features need to be built :

Face Detection

Landmark Generation

Face Recognition

The faces from the detection model is fed to the Recognition model, which generates a 512 point feature embeddings using a modified ResNET 50. The model uses ARC face loss function to get better separation between two face embeddings.

FACE DETECTION

Created a custom model on the lines of Region proposals. Two nets are implemented with the first net providing region proposals and the second net predicting the faces with its bounding box details

Landmark Generation : Both the nets predict the landmarks from the bounding boxes

FACE RECOGNITION

The faces from the detection model is fed to the Recognition model, which generates a 512 point feature embeddings using a modified ResNET 50. The model uses ARC face loss function to get better separation between two face embeddings.

TECHNOLOGIES / TOOLS

Keras, TensorFlow

OpenCV

Optimized MTCNN

MODEL HIGHLIGHTS

When given a same set of images (10 images) to Azure, Google and our algorithm, we could detect more faces than Azure and Google.

Model size wise we are 110MB and performance wise faster than Face++ and other models like MobileNet and VGG

Our model could differentiate between Twins

We use 512 feature embedding which means a lot of details about a face is captured and stored which helps in very effective recognition