Facial Recognition and Anti-Spoofing

The goal of this project was to detect faces and recognize the identity of the face at distance of up to 15 ft while maintaining anti-spoofing capabilities, e.g. a picture or video of the person should be discarded as a false attempt of recognition.

The information about different steps in the pipeline are given below:

Face Detection This was performed using RetinaNet with the detection accuracy of over 95%.

Face Alignment Affine transform was used to align the faces using five key points extracted using OpenCV.

Face Recognition ArcFace was used for facial recognition with a backbone of ResNet and Mobilenet for better accuracy and speed, respectively.

Anti-Spoofing This was checked through various means, by first using an existing anti-spoofing neural network called AENet, secondly, detecting if the face overlaps detected phone or monitor, and lastly by checking eye blinks.

Logging The information of the recognized face and new registrations were logged in the central databases and made available through a backend API developed in Python.

Along with above mentioned methods, several other methods were also tested and the best ones were chosen for the final pipeline, e.g. following methods were tested for facial recognition:

  • SphereFace
  • CosineFace
  • Triplet Loss
  • VGGFace2
  • CenterLoss
  • FaceNet

 

Simple switches were added in the implementation to turn each feature on and off, e.g. run the pipeline without an anti-spoofing method.

Overall facial recognition accuracy was over 99% while fps of 10 was maintained for the entire pipeline of a Nvidia GTX 1080 GPU. The overall pipeline was tested for up to 10,000 users for robustness and scalability.

Our vision is to lead the way in the age of Artificial Intelligence, fostering innovation through cutting-edge research and modern solutions. 

Quick Links
Contact

Phone:
+92 51 8912223

Email:
info@neurog.ai