This system is a low-footprint versatile application involving hardware and software components for recognition of shapes and/or faces through machine learning algorithms.
After logging in, you will be greeted with the home page. Here, you can see the livestream of your primary camera (if online), any recent events, and also switch classification modes between facial/shape detection!
On the events page, you can sort/search your way through any captured events from your cameras!
On the cameras page, you can see all of the cameras associated with your account, along with seeing their online/offline status, recognition mode, and when it was last online.
On the train page, you can upload your own reference images to retrain the machine learning models to recognize new faces or simply improve the accuracy.
Setup the hardware unit by following the instructions here.
Place the AWS config and credentials in the aws file:
On Windows:
- Navigate to
C:/Users/*Your username*/.aws/
- copy the config and credentials files into this directory
On Linux/MacOS:
sudo mkdir ~/.aws
- copy the config and credentials files into this directory
This project runs inside a Python virtual environment. To set up your environment, follow these steps:
- Navigate to the root directory in terminal
- Create a virtual environment using:
python3 -m venv env
(Optional) To setup a new AWS instance + account, follow the instructions in AWS Setup.
On Linux/MacOS:
- Run
source env/bin/activate
to start the Python virtual environment. export FLASK_APP=server.main.py
export DB_PASSWORD=*insert DB_password here*
- Run
deactivate
to stop the Python virtual environment. - If you need to set an environment variable use:
export <variable>=<value>
. This is only saved in your current terminal.
On Windows:
- Run
.\env\Scripts\activate
to start the Python virtual environment. set FLASK_APP=server.main.py
set DB_PASSWORD=*insert DB_password here*
- Run
deactivate
to stop the Python virtual environment. - If you need to set an environment variable use:
set <variable>=<value>
. This is only saved in your current terminal.
You have now created the virtual environment in the project directory, continue following the steps to run the server.
To run the server:
- Navigate to the root directory in terminal.
- Start the Python virtual environment, following the instructions in First Time Setup.
- Install the dependencies by running
pip install -r requirements.txt
. - Run
python3 -m server.main
to start the server.
You're all set! The server should now be running on 127.0.0.1:5000
.
Running the Client over LAN (preferred):
- Navigate to the root directory in terminal.
- Navigate to the
client/
folder and runpython client.py <ip_address> <port>
. Note that<ip_address>
and<port>
should be typed out as additional arguments to tell the client the ip/port to connect to.
Additional instructions for running the client/server can be found here.
To run tests, in your virtual environment run:
python -m pytest
This capstone project also has an associated poster with additional information:
- Login using Flask-Login and SQLAlchemy
- Data tables with bootstrap4
- Data models in Flask
- Adding flask-migrate to existing project
- Flask Multi-Camera Streaming
Name | Github | |
---|---|---|
Rudy Patel | [email protected] | @rudy-patel |
Kaden Dreger | [email protected] | @kaden-dreger |
Jacob Paetsch | [email protected] | @jpaetsch |
Braden Stolte | [email protected] | @b-stolte |