Client Description

  • There is a need to replace the existing bio metric solution with a face recognition ML based solution
  • The current Bio based system has limitations in terms of volume of data that it can handle.
  • There is a need to track the movement of personnel within the office premise
  • The current system suffers from other limitations viz. trailing issues thus leading to inconsistent data.


  • Requirements included user registration for collecting the training data set.
  • Single / Multiple face validation.
  • Identifying the performance bottlenecks.
  • Testing the system with trained model using verification data followed by test data.
  • Performance Testing of activities of numerous concurrent users.
  • Exploring and identifying the Convolutional Neural Network model for feature extraction purpose.

Our Solution

  1. Detect faces with a pre-trained models from dlib or OpenCV.
  2. Transform the face for the neural network. This repository uses dlib’s real-time pose estimation with OpenCV’s affine transformation to try to make the eyes and bottom lip appear in the same location on each image.
  3. Use a deep neural network to represent (or embed) the face on a 128-dimensional unit hypersphere. The embedding is a generic representation for anybody’s face. Unlike other face representations, this embedding has the nice property that a larger distance between two face embeddings means that the faces are likely not of the same person. This property makes clustering, similarity detection, and classification tasks easier than other face recognition techniques where the Euclidean distance between features is not meaningful.
  4. Apply your favourite clustering or classification techniques to the features to complete your recognition task.
  5. Post the concept of successful recognition detection, the concept of local feature is used to track the movement in the defined periphery. This will decrease the load on recognition services, thus providing close to real time data.
  6.  In the event any face has not been trained, or not recognized, then it is marked as “Unknown” and access is either denied and or the anomaly is logged. The anomaly data is either mapped or the model is re-trained.
  7. Multiple faces can be mapped simultaneously thus preventing trailing issues and providing error free data on the movement.
  8. Mechanism to self-learn which runs on a periodic basis thus improving the recognition model.
  9. Determining / setting the threshold or the confidence level based on the learning results.


  • OpenCV – video & image processing, classification algo
  • dlib – Face detection & alignment
  • Torch – Neural Network
  • Python