Skip to content

vishnux/FaceID

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FaceID: Face Recognition using Siamese Networks with Triplet Loss

Welcome to the FaceID Application powered by Siamese Networks with Triplet Loss. This deep learning algorithm is designed for face recognition, duplicate detection, and anomaly detection, among other applications. The implementation utilizes a Siamese network with three identical subnetworks to estimate the similarity between images, with Triplet Loss as the selected loss function for One-Shot Classification.

Key Features

  • More Robust to Class Imbalance: Giving a few images per class is sufficient for Siamese networks to recognize those images in the future with the aid of one-shot learning.
  • Advanced Face Recognition: Utilize state-of-the-art deep learning techniques for accurate face recognition.
  • Siamese Network Architecture: Benefit from the unique structure of the Siamese network for effective feature extraction and similarity estimation.
  • Triplet Loss Optimization: Train the network using Triplet Loss, an effective loss function for learning discriminative feature embeddings.

How it Works

The model is trained using triplets of images. A triplet consists of an anchor image, a positive image (which is similar to the anchor image), and a negative image (which is dissimilar to the anchor image). The goal of the model is to learn to differentiate between positive and negative images while keeping the distance between the anchor and positive images smaller than the distance between the anchor and negative images.

Once the model is trained, it can be used for one-shot face recognition. This means that given a single image of a person, the model can identify that person by comparing the features of the input image to those in the database.

Requirements

  • Python 3.x
  • TensorFlow 2.x
  • NumPy

Usage

  1. Clone this repository: git clone https://github.com/vishnux/Siamese-network-with-Triplet-Loss.git

  2. Install the required packages

  3. Run the Jupyter notebook

Contribute

Contributions to the FaceID project are welcome! If you have any ideas, bug fixes, or enhancements, feel free to submit an issue or pull request.

Here are some ideas on How to Contribute.

Please adhere to this project's Code of Conduct.

License

This project is licensed under the MIT License.

References

Schroff, F., Kalenichenko, D., & Philbin, J. (2015). FaceNet: A Unified Embedding for Face Recognition and Clustering. ArXiv. https://doi.org/10.1109/CVPR.2015.7298682

Conclusion

Siamese networks with triplet loss are effective for one-shot face recognition tasks. This implementation can be used as a starting point for building a more robust face recognition system.

About

Facial Recognition for Security and Surveillance Systems

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published