1822 B.tech It Batchno 340
1822 B.tech It Batchno 340
By
Vaishnavy P & Nandhini V
38120088 & 38120053
BONAFIDE CERTIFICATE
This is to certify that this Project Report is the Bonafide work of who carried out the
project entitled “Smart Voting System Using Deep Learning Techniques” Under our
supervision from August 2021 to March 2022
Internal Guide
Dr. R.M Gomathi M.E, Ph.D.
We Vaishnavy.P and Nandhini.V hereby declared that the Project Report entitled
“Smart Voting System Using Deep Learning Techniques ” done by us under the
guidance of Dr. R.M Gomathi M.E, Ph.D. at Sathyabama Institute of Science and
Technology (Deemed to be University), Jeppiaar Nagar, Rajiv Gandhi Salai, Chennai
- 600119 is submitted in partial fulfillment of the requirements for the award of
Bachelor of Technology degree in Information Technology.
DATE: 28/02/2022
ACKNOWLEDGEMENT
We are pleased to acknowledge our sincere thanks to Board of management of
SATHYABAMA for their kind encouragement in doing this project and for
completing it successfully. We are grateful to them.
We would like to express our sincere and deep sense of gratitude to our
Project Guide Dr. R.M Gomathi M.E, Ph.D. for her valuable guidance,
suggestions and constant encouragement paved way for the successful completion of
our project work.
ABSTRACT
Online voting system in which the election data is stored and processed. To
achieve higher level of security, one levels of authentication techniques are
used. The authentication technique used is a Face Detection and Recognition
system. In this method of authentication, the voters face image captured during
the registration is compared with the image captured by the webcam at the time
of casting vote. After the first level of authentication is done a voter can
casting the vote. These techniques provide a more secure platform thus
overcoming vulnerabilities of the traditional voting system. We use OpenCV,
Flask are the python package and Haar Cascade Algorithm
LIST OF TABLES
II LIST OF FIGURES 6
1 1.1 INTRODUCTION 7
1.2 OBJECTIVE 8
INTRODUCTION
In Democratic countries like India, the voting system plays a major role during
elections. Traditionally, the election commission in India uses electronic voting
machines which need more manpower, time-consuming and also, they are less
trustworthy. As we know, in every country Election is a basic process of
democracy which allows people to show their opinions by selecting their
candidate. India is spending huge money to improve our whole voting system
to provide a better government to citizens. In India, voting system should be
honest, translucent and fully secure for the better democracy. The current
system is used to less transparency because there could be chances of cheating
at the voting time.
Objective
This system provides a better security as it ensures that no voter is
allowed to vote more than once. Also, the system takes care that no voter
can determine for whom anyone else voted and no voter can duplicate
anyone else vote. Every voter can make sure his/her vote is cast. The
developed application is based on an e-Voting methodology. The voter's
image is captured using a webcam. This image is used as an input to the
face detection algorithm. This image will compare with our dataset for
verifying the user. This is achieved by template matching where the
image received from the user side is compared with the image stored in
user dataset at the time of registration. Once the user is verified, he can
cast his vote. The vote cast by him is then stored in the database and is
taken for tallying purpose after the deadline for voting process.
CHAPTER 2
2.1. LITERATURE SURVEY
1.Title - A Secure Verifiable Ranked Choice Online Voting System Based
on Homomorphic Encryption
Author - Xue Chao Yang; Xun Yi; Surya Nepal; Andrei Kelarev;
Fenagling Han,IEEE Access, March 2018
Advanced security methods are necessary to introduce effective online voting
in the whole world. Elections conducted on paper consume a lot of resources
and contribute to the destruction of forests, which leads to climate deterioration.
Recent online voting experiences in countries, such as the United States, India,
and Brazil, demonstrated that further research is needed to improve security
guarantees for future elections, to ensure the confidentiality of votes and enable
the verification of their integrity and validity.
CHAPTER - 3
Limitations
⚫ It Use an Iot Based hardware for Casting the vote
⚫ The IoT devices are either legitimate or malicious
⚫ Malicious devices and not be able to add in the blockchain
Necessary Packages:
⚫ NumPy
⚫ Pandas
⚫ Matplotlib
⚫ pyplot
⚫ Scikit-learn
⚫ TensorFlow
⚫ Jupyter
⚫ Open-cv
The feasibility of the project is analyzed in this phase and business proposal is
put forth with a very general plan for the project and some cost estimates.
During system analysis the feasibility study of the proposed system is to be
carried out. This is to ensure that the proposed system is not a burden to the
company. For feasibility analysis, some understanding of the major
requirements for the system is essential. Three key considerations involved in
the feasibility analysis are
➢ Economic feasibility
➢ Technical feasibility
➢ Social feasibility
ECONOMICAL FEASIBILITY
This study is carried out to check the economic impact that the system will
have on the organization. The amount of fund that the company can pour into
the research and development of the system is limited. The expenditures must
be justified. Thus, the developed system as well within the budget and this was
achieved because most of the technologies used are freely available. Only the
customized products had to be purchased.
TECHNICAL FEASIBILITY
This study is carried out to check the technical feasibility, that is, the technical
requirements of the system. Any system developed must not have a high
demand on the available technical resources. This will lead to high demands
being placed on the client. A feasibility study evaluates the project’s potential
for success.
SOCIAL FEASIBILITY
The aspect of study is to check the level of acceptance of the system by the user.
This includes the process of training the user to use the system efficiently. The
user must not feel threatened by the system, instead must accept it as a
necessity. The level of acceptance by the users solely depends on the methods
that are employed to educate the user about the system and to make him
familiar with it. His level of confidence must be raised so that he is also able to
make some constructive criticism, which is welcomed, as he is the final user of
the system.
CHAPTER 4
1. Processor : Pentium IV
2. RAM : 8 GB
3. Processor : 2.4 GHz
4. Main Memory : 8GB RAM
5. Hard Disk Drive : 1tb
6. Keyboard : 104 Keys
4.2. SOFTWARE REQUIREMENTS
The Anaconda distribution comes with the following applications along with
Anaconda Navigator.
1. JupyterLab
2. Jupyter Notebook
3. Qt Console
4. Spyder
5. Glue viz
6. Orange3
7. RStudio
> Qt Console: It is the PyQt GUI that supports inline figures, proper multiline
editing with syntax highlighting, graphical calltips and more.
> Glue viz: This is used for multidimensional data visualization across files. It
explores relationships within and among related datasets.
Compiled with Latest Python release: Anaconda 5.3 is compiled with Python
3.7, taking advantage of Python’s speed and feature improvements.
• Enhanced CPU Performance: The Intel Math Kernel Library 2019 for Deep
Neural Networks (MKL 2019) has been introduced in Anaconda 5.3
distribution. Users deploying TensorFlow can make use of MKL 2019 for Deep
Neural Networks. These Python binary packages are provided to achieve high
CPU performance.
• New packages are added: There are over 230 packages which has been
updated and added in the new release.
• Work in Progress: There is a casting bug in NumPy with Python 3.7 but the
team is currently working on patching it until NumPy is updated.
CHAPTER-5
5.1. SYSTEM ARCHITECTURE
5.2.Modules Description
Register
Registration module is the starting point of this project where a user
gone make use of this system by registering himself into it.In this module user
will a unique voter id and user gone register with some basic information about
him after the user gone complete the registration by giving his face as input and
system will read the face and load it in datasets after that registration process is
completed.
Data Preprocessing
In this module the collected dataset from user in the time of registration
will be stored in folder and all image are resized to standard and unique size
and the image are converted to gray scale image and noise are removed.
Feature Extraction
In this feature extraction module, we extract the feature from registered
user datasets folder
Admin upload candidates and assign election
Admin is the one who monitor the entire system. First admin has a
standard login id and password. Admin can upload election candidates the
candidates list must be in a csv file where the candidate's detail like part name
email and area the he gone compete with this detail the file will be uploaded
from data the details will be uploaded to system. Admin can also monitor the
registered user.Admin can also assign election on the upcoming dates.
Login
Now the register user will login in this this system with registered
information if information given by the user matches the database the user will
be allowed to login into this system. After the user successfully logged in now
the user can see the upcoming election if the election was assigned and user can
also see the candidates list.
Face Recognition
Every time a new user register or the existing user vote his face will be
recognition to check weather user is authorized or not.
Voting
After user logged in now user can vote for his area. After selecting the party, he
can vote in that time user face will be recognized and check whether he is an
authorized registered user or not if the user is unauthorized user will not allow
to vote his vote will not be registered.
See the result
After the user voted his vote now the result will be automatic updated
with the vote count.
5.3.UML DIAGRAMS
UML stands for Unified Modeling Language. UML is a standardized
general-purpose modeling language in the field of object-oriented software
engineering. The standard is managed, and was created by, the Object
Management Group.
The goal is for UML to become a common language for creating models
of object-oriented computer software. In its current form UML is comprised of
two major components: a Meta-model and a notation. In the future, some form
of method or process may also be added to; or associated with, UML.
The Unified Modeling Language is a standard language for specifying,
Visualization, Constructing and documenting the artifacts of software system,
as well as for business modeling and other non-software systems.
The UML represents a collection of best engineering practices that have
proven successful in the modeling of large and complex systems.
The UML is a very important part of developing objects-oriented
software and the software development process. The UML uses mostly
graphical notations to express the design of software projects.
GOALS:
The Primary goals in the design of the UML are as follows:
1. Provide users a ready-to-use, expressive visual modeling Language so
that they can develop and exchange meaningful models.
2. Provide extendibility and specialization mechanisms to extend the core
concepts.
3. Be independent of particular programming languages and development
process.
4. Provide a formal basis for understanding the modeling language.
5. Encourage the growth of OO tools market.
6. Support higher level development concepts such as collaborations,
frameworks, patterns and components.
7. Integrate best practices.
successful unit testing, the components are apt and fine. This type of testing is
specially aimed to expose the issues that come-up by the component's
combination.
(III) FUNCTIONAL TESTING
The functional tests help in providing the systematic representation that
functions tested are available and specified by technical requirement,
documentation of the system and the user manual.
(IV) SYSTEM TESTING
System testing, as the name suggests, is the type of testing in which ensure that
the software system meet the business requirements and aim. Testing of the
configuration is taken place here to ensure predictable result and thus analysis
of it.System testing is relied on the description of process and its flow, stressing
on pre driven process and the points of integration.
(V) WHITE BOX TESTING
The white box testing is the type of testing in which the internal components of
the system software is open and can be processed by the tester. It is therefore a
complex type of testing process. All the data structure, components etc. are
tested by the tester himself to find out a possible bug or error. It is used in
situation in which the black box is incapable of finding out a bug. It is a
complex type of testing which takes more time to get applied.
(VI) BLACK BOX TESTING
The black box testing is the type of testing in which the internal components of
the software is hidden and only the input and output of the system is the key for
the tester to find out a bug. It is therefore a simple type of testing. A
programmer with basic knowledge can also process this type of testing. It is
less time consuming as compared to
the white box testing. It is very successful for software which are less complex
are straight-forward in nature. It is also less costly than white box testing.
(V) ACCEPTANCE TESTING
User Acceptance Testing is a critical phase of any project and requires
significant participation by the end user. It also ensures that the system meets
the functional requirements.
Conclusion
Smart Voting is primarily responsible for the majority of India's city. It should
be considered as the main issue for the majority of us. The existing methods for
Voting involve manual work with lot of human work and man power and also
if convert voting to online it need secured voting system to cast voter's vote.
The Machine Learning technique. Are used to recognize person face and check
whether voter is a authorized or not.
References
1. Tiltle - A Secure Verifiable Ranked Choice Online Voting System Based on
Homomorphic Encryption,Author - Xuechao Yang; Xun Yi; Surya Nepal;
Andrei Kelarev; Fengling Han,IEEE Access ,March 2018
2. Tiltle - Electronic Voting Using Blockchain And Smart Contracts: Proof Of
Concept,Author - Fáber D. Giraldo; Barbosa Milton C.; Carlos E.
Gamboa ,IEEE Latin America Transactions 10, October 2020
3. Tiltle - A Secure End-to-End Verifiable Internet-Voting System Using
Identity-Based Blind Signature,Author - Mahender Kumar; Satish Chand; C. P.
Katti , IEEE Systems Journal , June 2020)
4.Tiltle - A Smart Contract System for Decentralized Borda Count Voting,
Author - Somnath Panja; Samiran Bag; Feng Hao; Bimal Roy, IEEE
Transactions on Engineering Management , Nov. 2020.
APPENDEX
1. SOURCE CODE
from email import message
from flask import *
import sqlite3 as sql
from random import randint
import datetime
from flask.helpers import url_for
from face_detection import face_register,face_reg
import smtplib
import os
import random
import operator
import string
import cv2
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = 'static/upload'
app.secret_key = 'any random string'
@app.route("/")
def index():
def random_with_N_digits(n):
range_start = 10**(n-1)
range_end = (10**n)-1
return randint(range_start, range_end)
a=random_with_N_digits(10)
2. SCREEN SHOTS
A
B
C
D
E
F