Skip to content

A discriminative few-shot learning approach for face recognition and verification using a Siamese network architecture. Employing a triplet loss function, the model optimizes the embedding space to cluster faces of the same individual and separate those of different individuals, enhancing accuracy and efficiency with limited training data.

Notifications You must be signed in to change notification settings

HadushHailu/discriminative_few_Shot_face_recognition_and_verification

Repository files navigation

Discriminative few Shot face Recognition and Verification

A few-shot learning method for face recognition and verification utilizes a Siamese Network Architecture. By using a triplet loss function, the model refines the embedding space to group faces of the same person together and distinguish those of different people, improving accuracy and efficiency with minimal training data. The original Siamese Network Architecture was introduced by Gregory Koch et al. in the paper "Siamese Neural Networks for One-shot Image Recognition."

Real-time Face recognition and Verification

  • Score: The likelihood that the bounding box contains a face.

  • Verified: If the confidence score exceeds 85%, this is set to True.

  • Confidence: The probability indicating how similar the detected face is to the positive class.

    The first picture is a positive class and the second one is a negative class. result

Siamese Network Architecture

Example Image

Requirement

No Name Version
1 cuda 12.2
2 nvidia driver 535.104.05
3 tensorflow 2.15.0
4 retinaface 0.0.17
5 mtcnn 0.1.0
6 openface 19.24.4
7 cv2 4.9.0

Dataset

Positive Classes

The positvie class for this project was collected by ourselves from webcam and cropped to be 100x100 pixels. If more datasets is needed it is possible to get a dataset from kaggle using this link

Negative classes

Anchor Classes

  • The anchor class contains a copy of shuffled positive class

Verification_image

  • Contains 50 samples per individual positive class.

Trained Model(.hs format)

  • The trained model cab be downloaded here and be used for inference.

Presentation

Presentation of this project is here

References

  1. https://www.cs.cmu.edu/~rsalakhu/papers/oneshot1.pdf
  2. https://www.sitepoint.com/keras-face-detection-recognition/
  3. https://medium.com/@iselagradilla94/multi-task-cascaded-convolutional-networks-mtcnn-for-face-detection-and-facial-landmark-alignment-7c21e8007923
  4. https://medium.com/axinc-ai/retinaface-a-face-detection-model-designed-for-high-resolution-6c3900771a01
  5. https://medium.com/@vrushabhkangale/face-recognition-system-using-open-face-480d581986b
  6. https://www.v7labs.com/blog/triplet-loss
  7. https://machinelearningmastery.com/how-to-perform-face-recognition-with-vggface2-convolutional-neural-network-in-keras/

About

A discriminative few-shot learning approach for face recognition and verification using a Siamese network architecture. Employing a triplet loss function, the model optimizes the embedding space to cluster faces of the same individual and separate those of different individuals, enhancing accuracy and efficiency with limited training data.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published