mohith7548 / AI_EVM

An Electronic Voting Machine Powered by AI. ATM like voting system. Phases included are Persons detection, Face mask detection, Face recognition, Voting on screen. Django as backend
10 stars 6 forks source link
artificial-intelligence computer-vision django electronic-voting electronic-voting-system evm machine-learning machinelearning-python neural-networks

AI EVM - (Electronic Voting Machine Powered by AI):


Title Image


Demo

Click to watch full demo (by Satyendra Yadav)

Intro


Team


Introduction

Most of the sectors have been automated these days but the Voting process has stayed un-updated for years. We propose to leverage AI and use it with EVMs to bring revolution to the voting process.

The AI-powered EVMs can reduce many costs due to manual work at the polling booths. They also help to check malpractices by using Computer Vision.


Project Pre-requisite Steps

It is suggested to use virtual python==3.6 environment for this project.


If you have anaconda installed, you can create a new empty virtual enviroment as shown below

conda create --name AI_EVM_env python=3.6

# for activating env
conda activate AI_EVM_env

# for deactivating
conda deactivate


And navigate to the project to install dependecies.

(Please feel free to raise an issue if run into problems while installing dlib)

pip install -r requirements.txt


Now before running the Django project for the first time, db tables have to be created.

# makemigrations (It will generate schemas)
python manage.py makemigrations

# migrate (It will create tables in the db)
python manage.py migrate

# create an admin account for the project
python manage.py createsuperuser


Run the Django server on localhost on port 5000

python manage.py runserver 0.0.0.0:5000

Deployment

The project architecture is divided into three layers as below.


Project Architecture


Since the server has to collect, analyze & reply with video stream in realtime, deploying server on internet at different location is not encourage.

The Presentation & Application layer are bind together in one Machine.

The main settings for deployment are:


NOTE


Future Scope

We have added basic/major functionality. But always can be improved with more features like below.