Facial Recognition Access Monitoring System
==========================================

Project Description
-------------------
This application is designed to capture, analyze, and monitor facial biometric data using webcam input. 
It uses RetinaFace + FaceNet via DeepFace for embedding generation, and includes a live alignment guide,
capture workflow, and staff registration with embedded biometric vectors.

Getting Started
---------------
Follow the steps below to set up and run the application on a new machine.

1. Install Python 3.11.7
   https://www.python.org/downloads/
                                    -Add Python.exe to PATH on install window

2. Download and unzip this project folder.

3. Open a terminal or command prompt and navigate to the project directory.

Type the below commands at the command prompt.

4. Create a virtual environment in the project folder:

   On Windows:
       python -m venv venv

   On macOS/Linux:
       python3 -m venv venv

5. Activate the virtual environment:

   On Windows:
       venv\Scripts\activate

   On macOS/Linux:
       source venv/bin/activate

6. Install required libraries:

   pip install -r requirements.txt
   pip install tf-keras

-- Not command prompt --
Visual C++ Redistributable for Visual Studio 2019+ will be required from  
https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022


7. Run the application (path starts from the FaceTrack folder):

   python \capture\biometric_capture.py       # for registering biometrics into the database 
   python \monitor\monitor.py                 # for real-time monitoring (best after biometrics added to db)
   python \image_review\image_review.py	      # for evaluating captured images created by the monitoring program 

-------------------------------------------------------------------------------------------------------------------------------

Notes
-----
- The `database/` folder contains the SQLite database file: `staff_access_v2.db`.
- Captured embeddings are stored in this database and used for recognition.
- The virtual environment folder (`venv/`) is not included in the zip — it must be created on the target machine.
- Tested with Python 3.11.7 on Windows 11.
- The first time capture is ran, it will be significantly slower as dependencies are downloaded in the background.

Dependencies
------------
See `requirements.txt` for a full list of required packages.

Author
------
Charles Gill - Student No-0250767
July 2025
