Welcome to FaceDentify! This project is all about comparing faces 🕵️♂️ against a database, whether it's for personal collections or large-scale datasets. Using powerful facial recognition technology, it matches faces and stores important details like full names and unique UIDs (UUIDs) in a simple-to-use TinyDB
database. It’s fast, scalable, and includes handy tools like photo labeling 📸. Perfect for everything from security systems to personal fun!
- Add New Faces: Easily insert one or more faces into the database, along with their details.
- Search Faces: Find a face using a photo or a unique Face UID.
- Delete Faces: Remove faces from the database either by photo comparison or by using the Face UID.
- Clear Database: This option will delete everything in the database.
To get started with FaceDentify, follow these steps:
-
Clone the Repository:
git clone https://github.com/ahnaf505/FaceDentify.git cd facedentify
-
Install Dependencies:
pip install -r requirements.txt
-
Run the Application:
python main.py
Once the application is running, the GUI provides various options to interact with the database:
- Click Insert Single Face.
- Select an image file.
- Enter the full name of the person.
- The face is encoded and stored in the database with a unique ID.
- Click Insert List of Faces.
- Select a JSON file formatted like this:
[ { "full_name": "John Doe", "filepath": "path/to/image1.png" }, { "full_name": "Jane Smith", "filepath": "path/to/image2.png" } ]
- The tool adds each face to the database.
- Click Query Face from Image.
- Select an image to search for similar faces in the database.
- If a match is found, the corresponding Face ID and full name are displayed.
- Click Query Face by ID.
- Enter the Face ID.
- Retrieve the associated full name and image.
- Click Delete Face by Image.
- Select an image to find and delete the corresponding face.
- Click Delete Face by ID.
- Enter the Face ID to remove all associated data.
- Click Clear Entire Database.
- Follow the prompts to confirm this irreversible action.
- Image Labeler: A simple tool to label images with a full name. Uses
tkinter
andPillow
. Just type the name and press enter (Best for small datasets, not recommended for production). - Face Backup: Back up or restore your entire face database to/from another directory.
Want to help out? Contributions are welcome! Just submit a pull request 🚀.
Happy coding! If you have any questions, feel free to open an issue or contact us directly.