FaceRec is an innovative face recognition project utilizing Flask, FastAPI, DeepFace, and MongoDB to create a Face recognition system. This application empowers users to register faces along with associated metadata, update their information, and delete their data, creating a comprehensive face recognition system.
These instructions will guide you through setting up the project on your local machine for development.
Make sure you have Python 3.10 or later installed.
Clone the Repository:
git clone https://github.com/Devasy23/FaceRec.git
Navigate to the Project Directory:
cd FaceRec
Install the Required Packages:
pip install -r requirements.txt
To start the Flask and FastAPI applications, run the following command:
python main.py
Your application will be available at http://localhost:5000
.
create_new_faceEntry()
: Receives a POST request with an image and metadata. It extracts the face, calculates the embeddings, and stores the data in the database.Data()
: Sends a GET request to the /data
endpoint of the FastAPI app to get the list of Face Entries from MongoDB.update()
: Updates the details of the face entry in the database.read()
: Sends a GET request with a specific Employeecode
to read the related information.delete()
: Deletes the specific employee data.Create a New Connection in MongoDB using the following URL:
mongodb://localhost:27017/8000
Create a Database:
DatabaseName
CollectionName
Import Data by Using a JSON File:
database.mongo
folder -> {DatabaseName}.{CollectionName}.json
faceEntries
Collection Schema:id
: A unique identifier for the face entry.Employeecode
: A unique employee ID associated with the image.Name
: The name of the person in the image.gender
: The gender of the person.Department
: The department of the person.time
: The timestamp of when the face entry was created.embeddings
: The embeddings of the face image.Image
: Base64 encoded image file.create_new_faceEntry()
: Receives a POST request with an image and metadata. It extracts the face from the image, calculates the embeddings, and stores the data in the database.
Data()
: Sends a GET request to the /data
endpoint of the FastAPI app to retrieve the list of face entries from MongoDB.
update()
: Updates the details of a face entry in the database.
read()
: Sends a GET request with a specific Employeecode
to retrieve related information.
delete()
: Deletes a specific employee's data from the database.
To run the tests for this project, use the following command:
pytest
Thanks to all the amazing people who have contributed to FaceRec! π
For detailed API documentation, please refer to the API Documentation file.
This project is licensed under the APACHE License - see the LICENSE file for details.