Background to the problem Most countries around the world are exploring Information and Communication technologies

Background to the problem
Most countries around the world are exploring Information and Communication technologies (ICT) to have better connectivity with their citizens including the involvement of ICT in democracy. Electronic-voting is today’s demand in this technically sound society where a number of processes are mapped into electronic word and voters have become more and more mobile.

Electronic voting can be defined as a type of vote which is done through electronic systems.

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!


order now

The main reasons for a government to use electronic elections are:
To increase election’s activity by facilitating the casting of votes by voter
To reduce election and referendum expenses.

To make vote counting fast, quicker and the delivery of voting results.

To make voters to cast their votes from different places, not from only a particular polling station
So to avoid illegal voting we will be exploring the Fingerprint Biometric Access System for
Swaziland as they will having their elections at the end of the year.

What is a Biometric System?
Biometric Systems can be defined as systems which use biological characteristics of individuals for some specific purpose. The most common purpose of biometric systems is to either establish or authenticate a person’s identity based on the relevant biological characteristic. The characteristic is one of two types: physiological or behavioral. The most commonly used ones are physiological, such as DNA, ear-shape, or fingerprints.

A biometric system may operate either in verification mode or identification mode, but for the context of this project we will use the identification method. In the identification stage the system searches the fingerprint template that has been stored in the database which belongs to the users in order to identify an individual.

The voters thumb will be used for identifying the voters
During the election when the voter puts his/her thumb on the scanner, the system will check if it matches with images stored in the database.

If it matches the system will allow the voter to cast his/her vote.

Captures fingerprints, extracts the features and stores it in the database.
Verifies the identity of the voter at login time by comparing the fingerprint that has been pre-stored in the database with the fingerprint being supplied at login.
Provides an interface for the user to cast votes if a match is found.
Technical Specifications
Image extraction and matching algorithms
The feature extraction algorithm must combine pattern, minutiae and image technology enabling it to extract an image from fingers which are badly eroded or have no visible prints.
The fingerprint matching algorithm must be able to perform one-to-many matching on up to 2 500 individual fingerprint records in less than one second.
The fingerprint image stored in the system must be in an encrypted template format and should not be stored as an entire image or in a format which can be reproduced.
For the purposes of this project we will use fingerprints downloaded from the internet to reduce the system’s costs.

Registration Specification
The system must allow the following information to be captured when voters are registered:
Voters name and Surname
National ID number
Date of Birth
Residential address and contact information
Nationality
5 or 10 fingers
photo image of voter
Scanning Specification
The scan station must allow for:
Multi-finger scanning to prevent fraud
Visual confirmation on successful scan
LED or LCD display
Date and time stamp to capture all successful scans
Reporting Specification
The software must be capable of providing Election Committee with a series of real-time and historical reports – it must be possible to run these at local site levels and centrally.
Number of all registered voters
Number of voters per polling station
Security Specification
Eligibility : only votes of authenticated voters shall be taken into account;
Uniqueness : each voter is allowed to cast one vote;
Anonymity : votes are set secret;
Accuracy: cast ballot cannot be altered.

Hardware Specifications
Fingerprint capture and scanner
Fingerprint sensor type : optical
Interface : USB
Image Capture surface : 15 – 18 mm
Verification Speed : 0.3 sec
Scanning speed : 0.5 sec
Character file size : 256 bytes
False Acceptance rate : 0.00001%
Web Cam Specification Logitech
Megapixels HD : 1280×720 pixels
Frame rate : 30 fps (frames per second)
Lens quality : Glass lens
Continuous auto focus
Low light quality
Smart ID Card Printer specifications
Memory : 64Mb RAM
LED Display
USB (Ethernet optional)
Laptop
Windows 10 Operating system
Processor : 1 GHz
RAM : 2GB
Hard disk space : 20GB
Graphics card : WDDM 1.0 Driver
Display : 800×600
Software Specification
Visual studio 2010
SQL 2014
MATLAB
Broadband Internet- Wifi.

Windows 10 OS
Registration Requirements (http://www.elections.org.sz/online/who-can-register/)
Voter must be 18 years of age by the registration date
Eswatini resident
Eswatini citizen currently living in another country.

An inmate who is not under sentence of death or life imprisonment by a court in any country
Detailed Design
Figure : 1 fingerprint identification and verification in voter registration

The fingerprint scanner will be the input to the system but in this case we will use a fingerprint database found on the system.

The system has two modules, the enrolment(Registration) and the identification (Authentication). The enrolment module handles the registration process in order to register the eligible voters in the system, hence the output of the enrolment module will be stored in the database of the system.
The second module which is the authentication module will handle the process of checking the eligibility of the user by taking the user’s fingerprint and matches it with the database’s fingerprints; if the system has fingerprints that are the same in the database then the user is eligible to cast his vote. The vote of the user will be counted and stored in the database.
The steps in fingerprint preprocessing are as follows:
Image enhancement
Normalization
Filtering
Noise reduction
Binarization
Thinning
Image Enhancement
Image enhancement is the process of adjusting digital images so that the results are more suitable for display or further image analysis. In our case, the quality of the image is really good as we got the fingerprints from the internet, and we won’t need to enhance our image.

Normalization
It is a process that changes the range of pixel intensity values. To normalize an image, the area which is to normalize has to be known. The highest and the lowest pixel values of the current image have to be identified. The equation for normalization is as follows:
Inorm (x,y) = I(x,y)-Imin XM
Imax – Imin
Where:
I is the intensity (gray level) of the image.

Imin is the lowest pixel value found in the image,
Imax is the highest one found.
M represents the new maximum value of the scale, mostly M = 255, resulting in 256 different gray levels, including black (0) and white (255).

Inorm(x, y) is the normalized value of the pixel with coordinates x and y in the original image I(x,y).

Figure 2: Sample normalised image( HYPERLINK “https://hub.packtpub.com/fingerprint-detection-using-opencv/” https://hub.packtpub.com/fingerprint-detection-using-opencv/) October 2015
Filtering
Filters are algorithms by a wide range used for removal of those types of noise and they are necessary not only for improving image quality but as a preprocessing phase in almost any application involving digital images.

Figure 3: Sample of a filtered image (A Low Complexity Fingerprint Verification Algorithm with Reduced Hardware Resources Jia-Hong Dai, Ching-Han ChenPublished 2008 in J. Inf. Sci. Eng.)
Noise reduction
The noise reduction is in two stages: noise detection and noise reduction.
In the Noise detection, the noisy pixels are being identified
In the Noise reduction stage, they are replaced by an estimated value.

Binarization
The separation of the object and background is known as Binarization.

Thinning
The thinning technique is often used to get the skeleton of an image. It is a process of reducing the amount pixels in an image by removing all redundant pixels and producing a new simplified image with the minimum number of pixels possible.

Loading the image
Figure 4: Example of load imageon the system that has been developed

Figure 5: Example of a filtered image on the system that has been developed
Filtering

Binarization
Figure 6: Example of a binarized image on the system that has been developed

Thinning
Figure 7: Example of a thinned image on the sytem that has been developed

Miniatiae Extraction
Figure 8: Example of a filtered image that has been developed

Database Design
3676650285750right127635Fingerprint image
00Fingerprint image
left41910VoterID00VoterID9906002806701866265166370VOTER
0VOTER

57150204470name00name
3324224219710366712410160-66675219710226695021590027336752616201257300233045109537520701099060071120
466725013970Voter picture
00Voter picture
center635016192542545LastNameea0LastNameea
76200223520DOB
0DOB

134302513970Gender
0Gender
287655013970Contact no
00Contact no

5276850133985Constituency
0Constituency

66674939370votess00votess470535096520
32575491752603619500106045Const_Name0Const_Name6086475191770
57150296545Gender
00Gender
M
549592510795Const_ID00Const_ID36195010795AGE
00AGE
188595033655Manages
0Manages

762000106045-323850965204429125201295AdminIdAdminId
33718501733552752725139701
-466725163830Candidate
00Candidate
4448174278130Username
0Username
2114550163830Admin
0Admin

-2857503067059620259715534194752781303428999163830
55245040005
180340306705Name
0Name
431482511430password00password
46672431115CandidateId00CandidateId
Figure 9: Database design
Admin Table
Field Name Data Type Description
UserId Int Primary key
Username Varchar Login name for admin
Password Varchar Password for login
CandidateID int Foreign Key
ConstituencyID int Foreign Key
VoterID Int Foreign Key
/****** Object: Table dbo.USER Script Date: 2018-07-24 4:40:51 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE dbo.USER(
USERID int IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
USERNAME varchar(14) NOT NULL,
Password varchar(14) NOT NULL,
CandidateId int NOT NULL,
ConstituencyId int NOT NULL,
VoterId int NOT NULL)
GO
SET ANSI_PADDING OFF
GO
Voter Table
Field Name Data Type Description
VoterId Int Primary Key
Name Varchar Voters name
LastName Varchar Voters lastname
DOB Varchar Date of birth of voter
Contact no Varchar The contact numbers
Constituency Varchar (Foreign Key)The constituency where voter will cast vote
Voter picture Image The picture of the voter
Fingerprint image Image The fingerprint image of the voter
National ID int Voters national id
Gender Varchar The gender of the voter
/****** Object: Table dbo.Voters Script Date: 2018-07-24 4:25:54 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE dbo.Voters(
VoterID int IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
Name varchar(50) NULL,
LastName varchar(50) NULL,
Gender varchar(1) NULL,
EmployerId int NULL,
DOB date NULL,
NationalID varchar(30) NULL,
VoterPic image NULL,
FingerImage image NULL,
ContactNo varchar(50) NULL,
Constituency varchar(50) NULL,

CONSTRAINT NationalID UNIQUE NONCLUSTERED
(
NationalID ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY
) ON PRIMARY TEXTIMAGE_ON PRIMARY
GO
SET ANSI_PADDING OFF
GO
Candidate Table
Field Name Data Type Description
Candidate ID Int Primary Key
Name Varchar Candidate Name
Age Int The age of the candidate
Constitution Varchar (Foreign Key)The constituency where candidate is standing for election
/****** Object: Table dbo.Candidate Script Date: 2018-07-24 4:40:51 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE dbo.Candidate(
CandidateID int IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
Name varchar(14) NOT NULL,
age int NOT NULL,
ConstituencyId int NOT NULL)

GO
SET ANSI_PADDING OFF
GO
Constituency Table
Field Name Data Type Description
Constituency ID Int Primary key
Constituency Name Varchar The name of the constituency
VoterID Int Voter id
/****** Object: Table dbo.Constituency Script Date: 2018-07-24 4:40:51 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE dbo.Constituency(
ConstituencyID int IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
ConstituencyName varchar(14) NOT NULL,
VoterId int NOT NULL)

GO
SET ANSI_PADDING OFF
GO
1. Administrator:
Admin has five attributes : UserID, Username, CandidateID, VoterID and ConstituencyId. It has a one to many relationships with the entity Candidate because a lot of people are under one administrator. It also has one to many relationships with the entity Voter as thousands of voters are also related to one administrator.

UserID: It contains the id that is only for the people who are working as administrator.
Username: It is for logging into the system
Password: The password to be used for getting into the system
1.4 VoterID: Identification number of the administrator as a voter since an administrator is also a voter.
1.5 ConstituencyID: Each election area has an id and here the id is for which area the administrator working for.

2. Voter has many attributes which has all the information concerning the voter
3. Candidate
Candidate has four attributes which are CandidateID, Name,age and ConstitutionID. It has a one to many relationships with the constituency.

3.1 CandidateID: Stands for each candidate’s identification.
3.2 Name: Stands for each candidate’s name.
3.3 Age : Stands for the age of the candidate
3.4 ConstitutionName: The name of the constitution the candidate is standing for elections in
4. Constituency
Constituency has two attributes ConstituencyID, Constitueny Name and VoterID.
ConstituencyID: Presents each constituency, as each has a unique id.
ConstituencyName : The constituency name
VoterID: Shows the id of all the voters are there in that constituency.

The Voter Registration Flow Chart
Figure 10: The registration Process
2114550209550START
00START

1562100200660324802510795
212407548260
195262597155REGISTER VOTER, VERIFY VOTER ELIGIBILITY
0REGISTER VOTER, VERIFY VOTER ELIGIBILITY

3295650115570
205740029845IS VOTER REGISTERED
0IS VOTER REGISTERED

1647825153670NO
3295650277495
YES
1809750154305REGISTRATION SUCCESSFUL
0REGISTRATION SUCCESSFUL

331470020955
2362200231141END
00END

1 . Start – Voter to bring national id or passport for registration
2. Register Voter and voter elibility –
(a)Capturing of voters personal information on the system e.g FirstName, lastname, Date of Birth
(b) Capturing of voter photo and fingerprint
(c) Voter information verified
3. Has voter registered, if Yes Continue, of no Go back to start
4. Registration successful – Voter is issued with Voter registration card

Who can register?


You are eligible to register to vote if you are;
A Swazi citizen or ordinarily resident in Swaziland; and have attained the age of 18 years.

A Swazi citizen currently living in another country.

An inmate who is not under sentence of death or life imprisonment by a court in any country
Who is not eligible to vote, a person who:
is certified to be insane or adjudged to be of unsound mind
is under a sentence of death or life imprisonment imposed on that person by a court in Swaziland;
is, for an act which is a criminal offence under the law of Swaziland, under a sentence of death or life imprisonment imposed on that person by a court in any other country;
The Voting process flow chart
2047875280670Start
Start

286702523495
80010018719794190999191960517621251395730Does fingerprint match
0Does fingerprint match
2964181852805174307533655Ask voter to put fingerprint on Scanner
Ask voter to put fingerprint on Scanner

5534025196215Yes
0Yes

590550401956Warning
00Warning
23050503983355End
End
3600450390715551720752078355Display user information, image, stored fingerprint
00Display user information, image, stored fingerprint
52197013278505User casts his/her vote
0User casts his/her vote
5981700284988058674001649730left935355User not authorized to vote
0User not authorized to vote
5153025963930User authorized to vote
00User authorized to vote
4857753162305819775192405571505715No
0No
wa

Figure 11: The voting process flow chart
In the identification stage, the voter who wants to cast his vote will scan his fingerprint using the fingerprint voting system. The fingerprint voting system will check against the database the voter fingerprint image in order to check the authority of the voter. The output of the fingerprint voting system either return true or false, if the output is true that means the voter can cast his vote if it is false then the system will activate a warning message.

1752600238760FINGERPRINT SCANNER/FINGERPRINT DATABASE
FINGERPRINT SCANNER/FINGERPRINT DATABASE
Figure 12: Part of the voting process
2000252896235NO
0NO
right2724785YES
YES
96202519532594037965195262520383501343660DOES FINGERPRINT MATCH
0DOES FINGERPRINT MATCH
3019425695960
Minutiae Extraction (A HIERARCHICAL FINGERPRINT MATCHING
SYSTEM 2009 ABHISHEK RAWAT
)
The ridge bifurcation and ridge endings are the most used minutiae types and have been used by matching algorithms.
Orientation Estimation : A fingerprint image is an oriented texture pattern and the ridge orientation at a pixel (x,y) is the angle that the ridges within a small neighborhood centered at (x,y), form with the horizontal axis. The fingerprint image is first divided into a number of non-overlapping blocks. An analysis of grayscale gradients within a block is done to estimate the representative ridge orientation within that block.
JOURNAL OF MEDICAL INFORMATICS ; TECHNOLOGIES Vol. 22/2013, ISSN 1642-6037
GRADIENT BASED ORIENTATION ESTIMATION
The main steps are as follows:
Compute the gradients of the derivative of x(x,y) and the derivative of y(x,y) at each pixel of the fingerprint image I(x,y)
If the gradient values are the same, then add +-1 or if the gradient is equal to zero also add +-1.

Estimate the local orientation in blocks, centered at pixel (x,y) using the following equations.

Segmentation: During segmentation the portions of fingerprint image showing the finger (foreground) is segmented. It is important so as to avoid the extraction of spurious features from background and noisy regions within a fingerprint.
(Fingerprint Image Segmentation Based on Quadric Surface Model *Yilong Yin 1, Yanrong Wang1, and Xiukun Yang)
2
)
If the quadric surface model was as follows:

W is a real symmetric matrix and w is a d-dimension vector. L=1/2 d(d+3)+1 coefficients are needed and the calculation cost is large. In simplifying the algorithm, we define W as a matrix that only elements on main diagonal is non-zero, others are all zero. This quadric discriminant is nonlinear, which is difficult to handle with.

Ridge detection: The important property of the ridges in a fingerprint image is that the gray level values on ridges attain their local maxima along a direction normal to the local ridge orientation.

A new ?ngerprint ridges frequency determination method
Piotr Porwika) and ?ukasz Wi?ec?awb) Institute of Informatics, University of Silesia 41–200 Sosnowiec ul. B?edzi´nska 39, Poland
The ?eld ? represents local orientation of ?ngerprint ridges, which occurs on ?ngerprint surface. Let N×M ?ngerprint image be de?ned as I(x,y), where x =1,…,N and y =1,…,M are pixel coordinates of the image.
In the ?rst step, ?ngerprint image I is divided into blocks. Each block ? of dimension W ×W is centered at the pixel (u,v), then for all u,v ? I,? we have:

W = 3, and Gx, Gy are gradient magnitudes towards x and y direction, respectively estimated on the basis of the formulas

The value ?(u,v) determines the local orientation of the ?ngerprint ridge at the image point(u,v). The gradient G can also be displayed in the form of the image

Minutiae Detection: there are quite a number of binary image based methods available which detect minutiae by inspecting the localized pixel patterns. They can be further classified into two classes, those that work on unthinned binarised images and those that work on thinned binarized image

Figure 13: Fingerprint minutiae Extraction
www.matlabsolutions.com Fingerprint Minutiae Extraction
Minutiae Based Matching (A Comparative Study on Fingerprint Matching Algorithms for EVM
D. Ashok Kumar1, T. Ummal Sariba Begum1,
1Department of Computer Science, Government Arts College, Trichy, India
)
If we let T and Q be the feature vectors, representing minutiae points, form the template and query fingerprint. Each element of these feature vectors is a minutiae point, which may be described by different attributes such as location, orientation, type, quality of the neighborhood region, etc. The most used of a minutiae is the triplet x, y, ? where:
x, y is the minutiae location and
? is the minutiae angle.
Let the number of minutiae in T and Q is m and n, respectively.

A minutiae mi in T and m’j in Q are considered matching, if following conditions are satisfied:
Here, r0 and ?0 are the parameters of the tolerance window which is required to compensate for errors in feature extraction and distortions caused due to skin plasticity. The number of “matching” minutiae points can be maximized, if a proper alignment (registration parameters) between query and template fingerprints can be found. Correctly aligning two fingerprints requires finding a complex geometrical transformation function (map ()), that maps the two minutiae set (Q and T) the desirable characteristics of map () functions are: it should be tolerant distortion; it should recover rotation, translation and scale parameters correctly.

Figure 14: Comparing between two fingerprints which are not matching

Figure 15: Comparing between two fingerprints which are matching
Test Procedure
The admin will be given a username and a password in order to login into the system

Figure 16: User maintenance page window
The user maintenance is where user settings will be configured. A username and password will be given, in order to gain access to the system. The username and password can also be edited and saved.

The user will then have to input the username and password, in order to gain access to the voting system. If the password is wrong, access will be denied. It will give you three attempts, thereafter your account will be locked.

Figure 17: Graphical User Interface for logging in
Voter Registration

Figure 18: GUI for voter registration
The above shows the voter registration page. On this page the administrator can register new users that are eligible to vote. The administrator will scan the user’s fingerprint and then take picture of the person and fill all the user information in Name, Last name, DOB, Contact number, Constituency, NationalID and Gender text bars. By clicking save the voter information will be saved on to the database. When administrator wants to add new voters, they will click New and input all the required information and Save. All information should be entered, otherwise a message will pop up saying required parameters are missing.

After Registration

The above figures shows the fingerprint identifying graphical user interface. It will allow the administrator to check the eligibility of the user whether he is allowed or not allowed to cast his vote. The administrator will scan the user fingerprint as a first step. The fingerprint will be called from the fingerprint database due to the absence of the fingerprint scanner. By clicking the compare button the program will search for any similar fingerprint image in the system database, if there is a similar fingerprint the system will allow the person to cast his vote otherwise the person is not eligible to perform his vote.
If a voter is authorized to vote, the voter information will be displayed and the fingerprint images will be retrieved and the voter will be allowed to vote.

Figure 18: GUI voter information extracted from the system
If the fingerprints don’t match, a warning message will appear and no information will about the voter will be found on the system.

Figure 19: GUI voter information extracted from the system if they don’t matchFingerprint Veri?cation
Fingerprint veri?cation is the process of matching two ?ngerprints in order to verify whether they belong to same voter or not. When a ?ngerprint matches with the ?ngerprint of same voter, we say it matches. If they don’t match, we call it a false accept or if it rejects them. False Accept Rate (FAR) and False Reject Rate (FRR) are the error rates which are used to express matching.

FAR is de?ned by the formula:
FAR = FA/N*100
Where:
FA = Number of False Accepts, N = Total number of veri?cations
FRR is de?ned by the formula:
FRR = FR/N*100
Where:
FR = Number of False Rejects, N = Total number of veri?cations
Cost analysis and design implementation schedule
Hardware costing
Item Name Quantity Price
USB Scanner 10 @R2500 each
Laptops 10 @R12000 each
Printer 10 @R2000 each
SQL 1 @15000
Visual Studio 1 @10000
Activity Start Date End Date Schedule Days Staffing Total Cost
Planning 04-04-2018 31-05-2018 10 people R5000
Requirements gathering 15-04-2018 15-05-2018 8 people R10 000
Prototype 01-05-2018 30-05-2018 6 people R8 000
Functional Design 01-06-2018 15-07-2018 7 people R7 000
Detail Design 01-07-2018 15-07-2018 8 people R12 000
Coding 15-07-2018 15-08-2018 10 people R12 000
Coding testing 30-07-2018 30-08-2018 5 people R5 000
Unit Testing 30-08-2018 15-09-2018 6 people R5 000
Function Testing 01-09-2018 18-09-2018 6 people R5 000
System testing 18-09-2018 28-09-2018 5 people R5 000
User documents 25-09-2018 30-09-2018 4 people R6 000
Cost per line of Code