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.
- Real-Time Face Recognition: Detect and recognize faces seamlessly in real-time.
- User-Friendly Interface: Easy to use with a clean design for enhanced user experience.
- Metadata Management: Register, update, and delete face entries with ease.
- Scalable Architecture: Built to handle multiple users and extensive datasets.
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
.
Project Structure
requirements.txt
: Contains the Python dependencies for the project.API/
: Contains the code for the FastAPI application.FaceRec/
: Contains all files related to the HTML, CSS, and Flask application.Model-Training/
: Contains scripts for training models.docs/
: Contains documentation files.test-faces/
: Contains test data for face recognition.main.py
: Contains code to start both FastAPI and Flask applications.
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 specificEmployeecode
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:
- Database Name:
DatabaseName
- Collection Name:
CollectionName
- Database Name:
-
Import Data by Using a JSON File:
- From the
database.mongo
folder ->{DatabaseName}.{CollectionName}.json
- From the
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 specificEmployeecode
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.