You are on page 1of 99

A Project-II Report

On
SECURING ATM TRANSACTIONS USING FACIAL
RECOGNITION
Submitted in partial fulfilment of the requirement
For
The award of degree of
BACHELOR OF TECHNOLOGY
In
COMPUTER SCIENCE & ENGINEERING
2019-2023
Submitted by
K.Veronika 19311A05G6
S.Harshitha 20315A0514
J.Kavitha 19311A05H1

Under the Guidance of


Dr. T. Vijaya Saradhi
Professor

Department of Computer Science & Engineering


SREENIDHI INSTITUTE OF SCIENCE AND TECHNOLOGY
(AUTONOMOUS)
Yamnampet (V), Ghatkesar (M), Hyderabad-501301, Telangana
AY-2022-2023

Department of Computer Science & Engineering


Sreenidhi Institute of Science and Technology

CERTIFICATE
This is to certify that this Project-II report on “SECURING ATM TRANSACTIONS
USING FACIAL RECOGNITION”, submitted by K.Veronika (19311A05G6),
S.Harshitha (20315A0514) and J.Kavitha (19311A05H1) in the year 2023 in the partial
fulfilment of the academic requirements of Jawaharlal Nehru Technological University for
the award of the degree of Bachelor of Technology in Computer Science and Engineering,
is a bona fide work that has been carried out by them as a part of their Project- II during
Fourth Year Second Semester, under our guidance. This report has not been submitted to
any other Institute or university for the award of any degree.

Internal guide Project Coordinator Head of the Department


Dr. T. Vijaya Saradhi Mrs. Neha Jhunjhunwala Dr. Aruna Varanasi
Professor Assistant Professor Professor & HOD
Department of CSE Department of CSE Department of CSE

Signature of the External Examiner


Date: -

DECLARATION

We K.Veronika (19311A0G6), S.Harshitha (20315A0514) and J.Kavitha

(19311A05H1) students of SREENIDHI INSTITUTE OF SCIENCE AND

TECHNOLOGY, YAMNAMPET, GHATKESAR, studying IV-year II semester,

COMPUTER SCIENCE AND ENGINEERING solemnly declare that the Project-

II work, titled “SECURING ATM TRANSACTIONS USING FACIAL

RECOGNITION” is submitted to SREENIDHI INSTITUTE OF SCIENCE AND

TECHNOLOGY for partial fulfilment for the award of degree of Bachelor of

technology in COMPUTER SCIENCE AND ENGINEERING.

It is declared to the best of our knowledge that the work reported does not form part
of any dissertation submitted to any other University or Institute for award of any
degree.
ACKNOWLEDGEMENT

I would like to express my gratitude to all the people behind the screen who helped me
to transform an idea into a real application.

I would like to thank my internal guide Dr. T. Vijaya Saradhi, our Coordinator Mrs.
Neha Juhjhunwala for Project-II for their technical guidance, constant guidelines,
encouragement and support in carrying out my project on time at college.

I profoundly thank Dr. Aruna Varanasi, Head of the Department of Computer Science
& Engineering who has been an excellent guide and a great source of inspiration to my
work.

I would like to express my heart-felt gratitude to my parents without whom I would not
have been privileged to achieve and fulfill my dreams. I am grateful to our principal,
DR. T. Ch. Siva Reddy, who most ably runs the institution and has had the major hand
in enabling me to do my project.

The satisfaction and euphoria that accompany the successful completion of the task
would be great but incomplete without the mention of the people who made it possible
with their constant guidance and encouragement crowns all the efforts with success. In
this context, I would like to thank all the other staff members, both teaching and non-
teaching, who have extended their timely help and eased my task.
K.Veronika 19311A05G6
S.Harshitha 20315A0514
J.Kavitha 19311A05H1

ABSTRACT

Anyone can check their balance and make cash withdrawals using an ATM. The quantity
of ATMs a bank has may be taken into account when evaluating its strength. As there are
more ATMs, there are also more fraudulent activities taking place inside of them. The
primary goal of this initiative is to improve the security of ATM usage. The static key is
used as security in the present procedure. The suggested technique incorporates Face-id as
a key with the present method. The fact that each person's face ID is unique and cannot be
used by anyone else except the user is one of the benefits.

The transaction is considered authorized if the cardholder is confirmed to be the user, at


which point they are allowed to carry out any actions, including cash withdrawals and
balance checks. We are utilizing a model and camera together with the Histogram of the
Gradient method, Python modules, and a few machine-learning techniques to identify the
persons. The system manipulates the image using OpenCV to recognize the faces in it. To
recognize faces, one can employ the local binary pattern.
LIST OF FIGURES
S.NO Figure No. Title of Figure Page No
1 1 Architecture 9
2 2 Using UML views to model a system architecture 15
3 3 UML diagram types 17
4 4 Actor and use case 21
5 5 Use Case Diagram 22
6 6 Sequence Diagram 24
7 7 Activity Diagram 26
Collaboration Diagram
8 8 28
9 9 Deployment diagram 30
10 5.2.1 LBPH calculation 33
11 5.2.2 Calculating the pixels value to get the vector 34
12 5.2.3 LBPH Working 35
13 5.2.4 Interpreting face 35
Computation to get the facial features.
14 5.2.5 36
Database
15 5.3.1 52
Input from the user
16 5.3.2 53
Verifying the inputs given
17 5.3.3 53
Face authentication
18 5.3.4 54
No face detected message
19 5.3.5 54
Incorrect pin
20 5.3.6 55
Withdraw option is shown
21 5.3.7 56
Entering amount to be withdrawn
22 5.3.8 56
Final output
23 5.3.9 57

LIST OF TABLES

S NO Table No Title of Table Page No

1 1 Functional Test Cases 64


INDEX
Page No
List of Figures Ii
List of Tables iii
1. INTRODUCTION 1-2
1.1 Project Introduction 1
1.2 Scope 2
1.3 Project Overview 2
1.4 Objectives 2
2. LITERATURE SURVEY 3-5
2.1 Existing System 3
2.2 Proposed System 4
2.3 Feasibility Study 4-5
3. SYSTEM ANALYSIS 6-8
3.1 Functional Requirements 6
3.2 Performance Requirements 7
3.3 Software Requirements 7
3.4 Hardware Requirements 8
4. SYSTEM DESIGN 9-31
4.1 Installing IDE, Tools, and Libraries 9
4.2 System Architecture 9-15
4.3 UML Diagrams 15-19
4.3.1 Class Diagram 19
4.3.2 Use Case Diagram 21-22
4.3.3 Sequence Diagram 23-24
4.3.4 Activity Diagram 25-26
4.3.5 Collaboration Diagram 27-28
4.3.6 Deployment Diagram 29-30
4.4 Modules 31
5. IMPLEMENTATION AND RESUTS 32-52
5.1 Language / Technology Used 32
5.2 Algorithms implemented 33-42
5.3 Sample Code 43-51
5.4 Results (Accuracy) / Output Screens 52-57
6. TESTING 58-62
6.1 Types of Testing 58-61
6.2 Test Cases 62-64
7. CONCLUSION 65
8. FUTURE SCOPE 66
9. BIBLIOGRAPHY 67
APPENDIX-A: 68-74
PLAGIARISM REPORT 75-79
PAPER PUBLICATION 80-83
ABSTRACT 84
PROJECT CORRELATION WITH PO’s AND PSO’s 85
NATURE OF THE PROJECT 86

1. INTRODUCTION

1.1 ABSTRACT

Anyone can check their balance and make cash withdrawals using an ATM.
The quantity of ATMs a bank has may be taken into account when evaluating
its strength. As there are more ATMs, there are also more fraudulent activities
taking place inside of them. The primary goal of this initiative is to improve the
security of ATM usage. The static key is used as security in the present
procedure. The suggested technique incorporates Face-id as a key with the
present method. The fact that each person's face ID is unique and cannot be
used by anyone else except the user is one of the benefits.

The transaction is considered authorized if the cardholder is confirmed to be


the user, at which point they are allowed to carry out any actions, including
cash withdrawals and balance checks. We are utilizing a model and camera
together with the Histogram of the Gradient method, Python modules, and a
few machine-learning techniques to identify the persons. The system
manipulates the image using OpenCV to recognize the faces in it. To recognize
faces, one can employ the local binary pattern.

1.2 Project Introduction

Customers can do particular operations including cash withdrawals, deposits,


money transfers, and account information inquiries anytime they want and
independently of bank employees by using an automated teller machine
(ATM). Physical security measures including CCTV surveillance of the ATM
booth and security guards (human) are already in place to provide secure ATM
service for consumers.

There are also other technologically based security measures in place, such as
firewalls, data encryptions, network security, etc. However, scams like card
theft, card fraud, card cloning, skimming, and other similar schemes have
become more prevalent recently and are easily able to bypass existing security
measures. It is now feasible to recognize a human face from a digital image or
a video frame from a video source and to give each human face a unique
identification thanks to developments in machine learning and computer
vision. The goal of this project is to create an ATM that uses face recognition
technology to confirm that each transaction has been approved by the account's
owner.
1.3 Scope
A face recognition system is a computer program that uses a digital picture or a video frame from a video
source to automatically recognize or confirm a person. Comparing certain face traits from the image and a
facial database is one method for doing this.

1.4 Project Overview


Face recognition technology enables the system to recognize every user separately, turning the face into a
key. By doing this, any potential for ATM card theft and fraud is eliminated. Furthermore, because the
OTP is generated at random, the user is not required to memorize PINs because it serves as a PIN.

1.5 Objectives
The primary goal of this project is to increase security, which will be different because transactions now
depend not only on the right PIN but also on the person carrying out the transaction, whereas the current
system just verifies the PIN and phone number (if necessary).

10
2.LITERATURE SURVEY

Different types of authentication used in ATMs have been explained in numerous research papers that
have been published by numerous authors.

[1].For each automated teller machine (ATM), authentication is crucial. It authenticates often with an ATM
card and pin. In this study, authentication was carried out using a "One Time Password" and a "Personal
Identification Number" to increase security and prevent situations where a card can fall into the wrong
hands and a person might carry out any transaction with the knowledge of the PIN.

[2]. A biometric system has replaced the user signature technique that was previously replaced by an ATM
PIN owing to high risk. The biometric system makes use of the fingerprint, iris, retina, and veins. Cash
will be distributed when it is a legitimate individual.

2.1 Existing System

Entering our username and password is a straightforward authentication that we are all familiar with and
follow. If we forget our password, we may also have a way to use it again and regain access to our
account. A factor authentication method that covers two factors is an SMS message sent to our registered
cell phone number.
The login procedure is made more secure without changing it by employing authentication, but by using
the OpenCV approach, we are recognizing a picture that we put in our database.

Disadvantages
• Low security
• pin code verification is adequate.

11
2.2 Proposed System

To make transactions dependent on both the person making the transaction and the correct PIN on the
card, this project proposes adding a new layer of security to the present ATM system. For instance, in our
project, we used the Open CV Python implementation of the Local Binary Pattern Histogram technique
for face recognition.

Advantages
All industrial personnel may benefit from this proposed strategy because it is efficient in terms of security
and time needs.

2.3 Feasibility Study


This phase includes evaluating the project's viability and presenting a business proposal, along with a
very basic project design and some cost projections. Throughout the system analysis, The feasibility
analysis for the suggested system is completed. This is done to make sure that the planned system won't
cause any issues for the organization. The basic requirements of the system must be understood for the
feasibility analysis.

Three significant factors are included in the feasibility analysis:


ECONOMICAL FEASIBILITY
TECHNICAL FEASIBILITY
SOCIAL FEASIBILITY

12
ECONOMICAL FEASIBILITY
To ascertain how much the system will cost the organization, research is being conducted. The
corporation has a restricted budget to devote to developing and studying the system. Justification of
expenditures is required. As a result, the designed system was completed on time and within budget,
which was made possible by the fact that most of the technologies employed were freely accessible. There
was only one item that needed to be purchased, the personalized goods.

TECHNICAL FEASIBILITY
This research aims to ascertain the technical needs or technological viability of the system. There
shouldn't be a significant strain on technological resources when a system is developed. The demand for
the will, therefore, be very high. Because very minor or no changes are necessary to implement this
system, the designed system must have a low requirement.

SOCIAL FEASIBILITY
Finding out how much the system is accepted by the user is the study's goal. This addresses the procedure
for instructing the user on how to use the technology efficiently. The user should accept the system as a
need rather than be fearful of it. The techniques employed to inform and acquaint users with the system
are entirely to blame for the degree of acceptance by users. He needs to feel better about himself to give
constructive criticism, which is encouraged as he is the system's final user.

13
3. SYSTEM ANALYSIS

3.1 Functional Requirements


A Software Requirements Specification (SRS) is a document that lists the requirements for software. A
software system's black box specification describes how the programming will be written. It is a crucial
document that bridges the communication gap between users and the developed program and helps to
steer clear of fatal software project flops.

The two categories of requirements in the SRS are functional requirements and non-functional
requirements. Functional requirements are concerned with a system's technical characteristics or the
technical operations performed by each module, whereas non-functional requirements examine a system's
operations under certain conditions.

Software Requirements Specification (SRS) objectives:


1. The customer will receive this as feedback.
2. It breaks down a system into modules and provides that information as input to the design
specification.
3. It is used to validate and verify the product.
4. It supports the project management and system review processes.

Software Requirements Specification Advantages :


1. There will be open channels of communication between the client or customer and the system
developers.

2. Because this area serves as a strong foundation for system design, the customer should only
give all needs in this area.

3. This makes the Verification and Validation (V-Model) process easier.

4. This assists in estimating the project's cost, timeframe, and resource requirements.

14
3.2 Performance Requirements
The effectiveness of a software system is described by its performance requirements. The software's
performance includes response time, execution time, storage capacity, and throughput. The majority of
the performance criteria for service levels were designed to support end-user tasks. Similar to other
quality criteria, performance requirements are essential to the design and testing of software.

Even though gathering requirements is a crucial step in the software development process, it can be
difficult. Scope, skill, and stability are the three main obstacles to collecting performance criteria. In the
software development industry, project scope is usually uncertain, or different stakeholders give
inconsistent or false scope assessments.

The scope of a project is frequently unknown in the software development business, or multiple
stakeholders provide conflicting or deceptive scope evaluations. If one stakeholder discusses local needs
while another addresses regional or national coverage, the system's design and performance may be quite
different.

Establish a specified scope with stakeholders to support performance standards. Requirements are only
useful if all stakeholders have a thorough understanding of the project's goals, capabilities, and
restrictions. Users, clients, and other stakeholders may be completely unaware of the problems with
performance. They may leave some details out.

3.3 Software Requirements

Software requirements specify what the client and your team think the program should be able to achieve.
Consumers won't be able to determine if the program will satisfy their demands without a description of
the features that will be included and how they will be implemented, even though the product's
capabilities will work. For the project, the following are required:

Software requirements for construction


Operating system: Windows 7 Ultimate.
Coding Language: Python.
Data Base: CSV/text

15
3.4 Hardware Requirements

Hardware requirements for construction

These requirements include the minimum processor speed, memory, and disk space required to install
Windows. In almost all cases, you will want to make sure that your hardware exceeds these requirements
to provide adequate performance for the services and applications running on the server.

RAM: 4GB or above


Hard Disk: 500 GB and above
Processor: Intel core i3 or above and Internet Connection

16
4. SYSTEM DESIGN

4.1 Installing IDE, Tools, and Libraries


This project is being carried out using the Python programming language. Python 3.8.3 is the version that
is being utilized. PyCharm Community Edition 2021.1.3 is the IDE in use. The project needs the
following libraries: ‘OpenCv’, sqlite3, tkinter, and face_recognition. The picture or video is read using
the ‘OpenCv’, module. The sqlite3 library is used to store consumer information in databases.

For speedier GUI applications for both admins and users, the Tkinter module is employed. To recognize
and confirm the user's identity, a face recognition algorithm is utilized.

4.2 System Architecture

Figure 1: Architecture

17
INPUT DESIGN AND OUTPUT DESIGN

INPUT DESIGN

The interface between the information system and the user is provided by the input
design. It entails creating standards and processes for data preparation as well as the
techniques required to convert transaction data into a format that can be processed. This can
be accomplished by having users directly enter the data into the system or by having them
read it from a written or printed document while gazing at the computer.

Input design aims to reduce the amount of input required, manage mistakes, avoid delays,
eliminate extra processes, and streamline the process. The input is made to offer ease and
security while protecting privacy. Input Design kept the following things in mind:

 Which information should be supplied as input?


 How should the data be organized or coded?
 The conversation to direct the operating staff's input-giving.
 Techniques for creating input validations and procedures to take in the event of a
mistake.

OBJECTIVES

1. Contribute ideas Design is the process of converting an input that is user-focused into a
computer-based system. This design is essential for preventing data entry errors and guiding
management in the correct direction for gathering accurate data from the computerized
system.

2. It is done by creating data input panels with user-friendly interfaces that can process
massive volumes of data. Data entry should be simpler and error-free thanks to input design.
You can perform all data manipulations because of how the data input panel is set up. You
may also view your records using it.

3. Data entry will be followed by data validation. Data entry is possible with
the use of it.

18
OUTPUT DESIGN
The input for a face recognition system is an image or a video stream, and the output is the identification
or confirmation of the subject seen in the picture or video.

A quality output displays information clearly and meets the needs of the end user. The processing
outcomes of any system are communicated to users and other systems via outputs. Additionally, it is
decided how the data will be moved for immediate use.

PSEUDOCODE

Admin:

Start

For every customer insert these into the accounts table of the database

account_number<- Read the account

number account_pin<- Read the account pin

customer_img<- Read the customer image in .jpeg

format contact_number<- Read the customer’s contact

number

End

19
User:

Start

For every user

Card <- Insert the card into the machine

If the card is valid

Pin <- Enter the card pin

If valid pin

video <- capture_video()

Face_match<<- matchFace()

If Face_match = true

Amount <- Enter the amount

Process()

Message <- "Transaction Successful"

Else

response <- "No Face, Could not detect any face\nTry Again?"

if response = true

Start()

else

Quit the transaction

Else

Response <- "Incorrect Pin, Incorrect Pin\n Try Again?"

If response = true

Start()

Else

20
Quit the transaction

Else

Response <- "Invalid Account Number, \n Try Again?"

If Response = true

Start()

Else

Quit the transaction

21
A description of the data set.

• Account number: Each person with a bank account receives a special number; no two banks or people
may have the same account number. It's the main identification for a bank account.

• Account PIN: A personal identification number, or PIN, is a number given to each owner of a debit or
credit card and is necessary to obtain a cash advance or to access funds from a bank account using a debit
card. The PIN must have a minimum of four digits.

• Image: During an ATM transaction, a picture of the customer is utilized to confirm their identification.

Contact information for the customer: This is the phone number that is associated with their bank
account.

22
4.3 UML DIAGRAMS

Using UML, the system architecture is described using the blueprint. The Unified Describing Language
(UML) provides a set of tried-and-true engineering tools for describing big and complex systems. UML is
required for both the development of object-oriented software and the software development process.

UML primarily use graphical notations to explain the creation of software projects. UML DIAGRAMS
may be used by project teams to facilitate communication, test out novel concepts, and assess the
architectural design.

Definition

UML is a visual modelling language that is used to design, develop, and store the artefacts of software
systems. The programming language known as the Unified Modelling Language (UML) allows for a
wide variety of expression.

Figure 2: Using UML views to model a system architecture

23
The Unified Modelling Language is referred to by the acronym UML. Simply said, UML is a state-of-the-
art framework for modelling and describing software. One of the most popular techniques for modelling
business processes is this one. Diagrams are used to represent the components of software. The idiom "a
picture is worth a thousand words" comes to mind. Visual representations help us better understand
possible flaws or issues in software or business processes.

A complete UML diagram, also referred to as a picture, may be made by connecting the component-like
sections in a variety of ways. It is essential to grasp the various diagrams in order to apply the knowledge
to systems found in real-world contexts.

You may better grasp any complex system by creating any form of diagram or drawing. These diagrams
increase our understanding. Diagrams are not a unique concept and are commonly used in a number of
situations and industries, as we can see if we look closely.

To better and more comprehend the system, we create UML diagrams. It would be impossible to depict
every facet of the system in a single graphic. To cover the majority of a system's components, UML
specifies a variety of diagram types.

To suit your needs, you may even design your collection of diagrams. In general, diagrams are created
incrementally and iteratively.

24
Figure 3: UML diagram types

UML applications: The UML is especially designed for systems that demand a lot of software.

Banking and financial services

 Telecommunications,
 Aerospace/Defense,
 Retail,
 Medical Electronics,
 Science, and
 the Dispersed Web are some examples.

Three new types of building blocks are added to the UML language as UML components.

Things,

diagrams, and

relationships are all included.

25
Things: Things are handled as first-class data abstractions in a model. There are four groupings made up
of the items. notions for conduct, grouping, notarial work, and structure.

Relationships: A relationship is the thread that holds everything together. Dependency, association,
generalisation, and specialisation are the UML relationships.

UML Schematics:

A diagram is a visual representation of a group of items, often displayed as a network of connected


objects and connections (vertices and arcs). Diagrams fall into two different categories: diagrams of
structure and diagrams of behaviour.

Structural Diagrams

The static attributes of a system are represented, defined, created, and recorded using the four structural
diagrams of the UML. Using one of the examples below, I can observe the system's static parts. The Class
Diagram, Object Diagram, Component Diagram, and Deployment Diagram are a few examples of
structural diagrams.

Behavioural Diagrams

The dynamic properties of a system are visualised, specified, developed, and described using the UML's
five behavioural diagrams.

The form of the behavioural diagrams in the UML mostly reflects the many techniques for modelling a
system's dynamics. The dynamic components of a system are designed, constructed, and documented
using the UML's five behavioural diagrams.

26
The arrangement of the behavioural diagrams in the UML generally follows the primary techniques for
representing a system's dynamics. Behavioural diagrams include use case diagrams, sequence diagrams,
collaboration diagrams, state chart diagrams, and activity diagrams.

4.3.1 Class Diagram

The static standpoint of an operation is represented by a class illustration. Class plates, which are
extensively used during creation, are the only plates that can be directly counterplotted using object-
acquainted languages. When designing class plates, there are a number of factors to consider, but in this
case the illustration will be viewed from the top down. Class plates give a visual representation of the
stationary view of the system as well as a number of operation-related parcels. As a consequence, a
collection of class plates serve as a representation of the complete system.

The following should be considered while constructing a class illustration

• The name of the class illustration should meetly describe the system point it represents.
• The connections between each piece should be noted.
• easily delineate the parcels and styles of each class.
• For each class, a certain number of characteristics should be handed because supplementary parcels will
make the illustration more delicate.

PURPOSE OF CLASS DIAGRAMS

• stationary view analysis and design for an operation.


• Describe a system's scores.
• The foundation for deployment and element plates.
• Both forward and backward negotiating

27
How Do You Draw a Class Diagram?

Class plates are the most popular UML plates used while developing software systems. Understanding the
class illustration creation process is essential. When designing class plates, there are a number of factors
to consider, but in this case the illustration will be viewed from the top down. Class plates give a visual
representation of the stationary view of the system as well as a number of operation-related parcels. A
collection of class plates serve as a representation of the whole system.

Keep the following in mind while drawing a class illustration

• The name of the class illustration must precisely describe the system point it depicts.
• It's critical to honor each element and their connections in advance.
• The duties(attributes and styles) of each class should be understood easily.
• For each class, a minimal number of traits should be specified because adding further traits than
necessary might make the illustration unclear.
• Take notes while agitating a specific element of the illustration. After it's finished, the inventor or coder
should be suitable to understand the delineation. Before making the final interpretation, the illustration
should be created on plain paper and changed as numerous as necessary to insure delicacy.

Before making the final version, the diagram should be created on plain paper and changed as many as
necessary to ensure accuracy.

28
4.3.2 UseCase Diagrams

Use case illustration

A use case diagram consists of these four components:

The boundary establishes the connection between the environment and the system of interest.

The actors, who are frequently system users recognised by the parts they portray.

interactions between and among actors and use cases, which are the specific roles played by people inside
and outside of the system.

Figure 4: Actor and use case

Actors can include external programmes, internal apps, and even human users. Consequently, it is
necessary to identify the following items when making plans to create a use case diagram.

i. Performers and
ii. use cases for capabilities that will be expressed
iii. How the actors and use cases are related.

Use case diagrams are made to show the functional requirements of a system. The components mentioned
above must first be identified in order to produce a useful use case diagram.

i. The name of the use case must be carefully considered. As a result, it's critical to pick a name
that makes it obvious what tasks are being carried out.
ii. Give the performers a decent name, as well.

iii. The diagram should be clear in illustrating links and interdependence.

iv. Refrain from attempting to include all types of relationships. Because the diagram's main objective
is to identify requirements.

29
If it's necessary to elaborate on a few key points, use a note.

Figure 5: Use Case Diagram

30
4.3.3 Sequence Diagram

A sequence diagram shows the relationship and sequential order of processes. It is an interaction diagram.
It is a build of a message sequence chart. In a sequence diagram, object interactions are arranged in
temporal order. The scenario's classes and objects are depicted, along with the messages that must be sent
and received for the objects to function as intended. Sequence diagrams and use case realizations are
frequently related in the system's logical view. Sequence diagrams are also known as event diagrams and
event scenarios.

In a sequence diagram, different concurrent processes or objects are shown as parallel vertical lines
(lifelines), and the messages sent between them are represented as horizontal arrows, in the order that they
take place.

Why You Should Use a Sequence Diagram

The real-time application is examined.

It shows how messages go between the various objects.

It is simple to maintain.

It is simple to produce.

Both forward and reverse engineering should be used.

It is simple to update by system changes.

Drawbacks of sequence diagrams

The sequence diagram may get more complicated if there are an excessive number of lifelines.

If the flow of communications changes, the outcome might be inaccurate.

The diagram could get more complex as a result of the necessity for unique notations for each sequence to
be represented.

The kind of message determines the kind of sequence.

31
Figure 6: Sequence Diagram

32
4.3.4 Activity Diagram

Activity diagrams show the workflow-related behaviour of a system. Activities resemble state diagrams
because they depict the state of doing something. The visuals, which show the current stages of the
various activities, show how they were finished in order. Activities can be represented as simultaneous or
conditional activities in activity diagrams.

Instructions for Drawing Activity Diagrams

Activity flow diagrams are representations of the system's activities. Diagrams are seen from top to
bottom, and branches and forks stand in for situations and concurrent activities. A fork is used when
several things are happening at once. The fork is moving in the figure below.

The Purposes of Activity Diagrams

The basic goals of activity diagrams are the same as those of the other four diagrams. The system's
dynamic behaviour is recorded. The message flow from one object to another is depicted using the other
four diagrams, but the message flow from one activity to another is depicted using the activity diagram.

A specific system operation is known as an activity. Activity diagrams are used to develop the executable
system and to visualise a system's dynamic nature using forward and reverse engineering approaches. The
message part is the only element the activity diagram is lacking.

It is not possible to see the flow of communications from one activity to another. Sometimes an activity
diagram will take the place of a flowchart.

33
Figure 7: Activity Diagram

34
4.3.5 Collaboration Diagram

The cooperation illustration shows the connections between the factors of a system. Both the sequence
and collaboration plates present the same information in different ways. It illustrates the armature of the
objects living in the system rather than the inflow of dispatches since it's grounded on object-acquainted
programming.

There are colorful rates that make up an object. The several factors of the system are connected. The
collaboration illustration, also known as a communication illustration, displays the armature of the item
inside the system.

The factors of an element illustration are listed below in the following order

1. effects A colon-separated object symbol with its name and class included is used to represent
an object. Objects are used in the collaboration illustration in the following ways

The collaboration illustration uses objects in the following ways The item's name and class are
supplied to represent it.

o Attendance is voluntary in certain classes.

o A class may include a number of objects.

o The cooperation illustration originally generates the object, after which its class is established.

o The particulars must be named in order to be distinguished from one another.

2. Actors: The actor, who starts the commerce, gets centre stage in the collaboration illustration. Each
actor has a unique name and function. The use case in this is initiated by one actor.

3. Links: The association that a connection establishes between actors and effects is an illustration of a
link. It demonstrates a relationship between the mediums utilised to shoot the dispatches. Links enable
communication overflows by easing traversal to other objects and allowing communication between
them.

35
4. Messages: These are instructional exchanges that take place between objects and give a sequence
number that permits the exertion to continue. An arrow with a marker next to a link serves as a visual
representation of it. The dispatches are transferred from the sender to the philanthropist, and their direction
of transmission must be suitable to be followed. The addressee must understand the communication.

Figure 8: Collaboration Diagram

36
4.3.6 Deployment Diagram

Deployment diagrams display the physical component layout of a system, including the locations of the
software components.

The static deployment perspective of a system is represented by deployment diagrams. Nodes and their
connections make up the majority of the diagram in deployment diagrams.

Application of Deployment Diagrams

The goal of the graphic is evident from the term "deployment" alone. The real hardware that software
components are deployed to is displayed on deployment diagrams.

There are numerous parallels between deployment diagrams and component diagrams.

Component diagrams are used to describe the components and show how they are implemented in
hardware.

The main reason UML was developed was to highlight a system's software artefacts. The hardware and
software components are highlighted in these two particular illustrations, though.

Diagrams are meant to concentrate on the physical architecture of a system, as opposed to most UML
diagrams, which are made to handle logical components. The system engineers make use of deployment
diagrams.

Some applications for deployment diagrams include the following:

• identify the nodes responsible for runtime processing, and

• depict the hardware architecture of a system.

37
Figure 9: Deployment diagram

38
Modules Used

Building simple, readable, and intelligible code is the main goal of implementation. A crucial step towards
improved programming or structure is giving the customer a functional structure that produces positive
results. Although it requires more software budgets, clean and clear source code is necessary to make
debugging, modifications, and testing simple. A programmer must specifically deal with code quality,
error elimination, and performance throughout implementation. Additionally, it contains several coding
principles, techniques, and rules.

 Bank
 User

MODULES DESCRIPTION

A. Bank

The datasets must be trained with IDs that match the cardholder's information in the first phase.

B. User

20% of the dataset's images are used for testing. The outcomes are constrained by the accuracy of the
leaping, and the predicted rate depends on the pace of learning and the number of preparation emphasises.
The instances that go with it show the results of testing data under various loads derived from varying
learning rates and cycles.

39
5. IMPLEMENTATION AND RESULTS

5.1 Language/Technology used:


The source code for this project is written in the Python programming language. Several libraries are
available in Python for use in computation. The libraries used in this project include numpy, CV2
(connected to OpenCV), Face recognition, Tkinter, and others. Various features utilised in this project
include the following.

1. Registration of users

In the beginning, a user interface framework is used to collect user data, and the database is then
populated with the appropriate information. When making a cash withdrawal, the store data also includes
an image that is used to verify the cardholder.

2. Data Gathering

A user must enter the necessary information into the user frame to withdraw money from an ATM. This
information includes a user card ID pin code and a time-limited video clip of the user.

3. Data Validation

The user data which is collected will be compared with the corresponding data in the database with the
help of IDs. Using face recognition libraries and algorithms face of the user will be detected and
compared with the existing image of the cardholder in the database. On successful validation, the user is
allowed to continue with the transaction.

40
5.2 Algorithms implemented

The Histogram of Oriented Gradients technique is used to differentiate the human face. Making use of the
dlib package, the relative modification of the face is completed. Support Vector Machine (SVM) for face
classification and a Deep Convolutional Neural Network (Deep CNN) are prepared to obtain impressive
estimates from the human face (128 different estimations from a single face). Here, the Local Binary
Pattern (LBP) serves as the foundation for our face recognition method.

The Local Binary Pattern is successful and has been tweaked for our unique needs and improved face
recognition. It is a powerful algorithm that may be modified as needed to serve our needs. An effective
texturing operator for labelling picture pixels that uses the binary threshold values for each pixel's
immediate neighbours.

The Face-Recognition technique known as Local Binary Pattern Histogram (LBPH) is used to detect a
person's characteristics. It is renowned for its presentation and for making it possible to perceive an
individual's character from both the front and side faces.

Figure 1: LBPH calculation

Before starting the logic behind the LBPH calculation, we should first understand a little bit about the
specifics of Images and Pixels to understand how photos are handled before we start the content of Face-
Recognition. So let's start understanding pictures and pixels.

photographs and Pixel The Matrix designs, as you can see above, which are composed of lines and parts,
address all photographs. The pixel is a picture's main component. An image constitutes of many pixels.
These are all small square objects.

41
We may shape the overall image by putting them side by side and arranging them together. The most
inconceivable piece of information in a photograph is thought to be a single pixel.

For each image, the pixel value lies between 0 and 255.

In addition, if we multiply 32 by 32, we get 1024, which is the total number of pixels in the image. Red,
green, and blue, sometimes known as R, G, and B, are the three primary colours that make up each pixel.
We reason that a single pixel contains three channels, one channel for each of the three fundamental tones
since the combination of these three basic tones will create the wide range of variations seen in the image.

The logic underlying the LBPH algorithm will now be easier to understand because we have started
teaching them about images and pixels. Therefore, we should start with the calculation of the LBPH
instinct.

Figure 2: Calculating the pixels value to get the vector

We should start by dissecting a network that deals with a particular aspect of the situation. Additionally,
as you already know, these arrangements address a picture. In this model, there are three lines, three
segments, and a total of nine pixels. Here, we should select the central pixel, value eight, and set a
restriction. In any situation when the number is more than or equal to 8, the outcome is "1" and when the
value is less than eight, the result is "0". This is how the lattice will first look after applying the
conditioner.

42
Figure 3: LBPH working

Operation of LBPH

To apply this criterion and choose the network component in the centre, the calculation's key estimation
must be made. We are now particularly interested in creating a parallel value.

The binary value is 11100010. In a circle-like pattern, the computation will start by applying the condition
from the top yielded edge component to the first column component.

After completing converting the Binary value to the Decimal value, we obtain Decimal Value = 226. It
demonstrates the 226 value of the several pixels surrounding the focus point.

Regarding lightning, this calculation is reliable. If an electric bulb is placed on the image, the pixels' value
will rise. The picture will be more magnificent the higher the quality, and hazier the lower the value.

Figure 4: Interpreting face

43
We ought to consider this additional image right here. To more easily understand how the calculation
will interpret a person's face.

Figure 5: Computation to get the facial features.

The computation will create a few squares from the facial image that is displayed below. Additionally, the
past is depicted as light inside every each one of these squares. For instance, this square contains several
pixels that are three lines and four segments wide rather than simply one pixel. In each of these squares
here that are twelve pixels, three by four is equal to a total of twelve pixels. Then we apply that
requirement to everyone.

The coding phase is divided into several steps. The process starts with Importing Libraries, during which
the relevant libraries, such as OS, CV2, etc., are imported.

OpenCv

A popular Python package called OpenCV is employed in the fields of artificial intelligence, machine
learning, and facial recognition. OpenCV is an acronym for "open-source computer vision," a library
mostly used for image recognition.

Computer vision is referred to as CV in OpenCV. Computer vision is the field of research used to
comprehend digital visuals such as pictures and movies. The basic goal of OpenCV is to comprehend the
images or videos that are submitted to it, which may include faces, objects, text, or other three-
dimensional objects.

In terms of detecting and pictures, objects, and other things nearby, computer vision will be able to do
duties much like a person. Computer vision performs two primary functions.
44
1. Object description:

We will train a model for object categorization utilising a sizable amount of image-based data.

Now that it has been trained, the model will be able to assign the image to one of the categories. The
model will look for similarities among the training photos and attempt to detect all of the substantially
identical images. The image will then be assigned to one of the training categories.

2.Object Identification: In object identification, our model will be able to recognise the faces or objects
in the images. For instance, if we train our model with images of cats and dogs, and then present it with
an image that contains both a cat and a dog, it will attempt to determine which image is a cat and which
object is a dog.

How OpenCV functions?

Computers are given the same ability to recognise a picture as our human eyes do to identify everything
they view. Binary, which is a mixture of 1s and 0s, is all that a computer can understand. Additionally, it
applies to digital photos in the same manner.

Since a pixel is the smallest unit of a digital image that can be displayed on a display of a device or a
screen, it uses pixels to convert a digital photo into binary form.

There are essentially two ways to recognise a picture based on its colour.

1. Grayscale: Also known as black and white pictures, grayscale images include just the colours white
and black.

2. RGB: Red, blue, and green are the three primary colours that make up this combination. And a new
colour is created by these three.

45
Benefits of OpenCV include:

1. Access to a huge selection of algorithms

2. OpenCV is used by several large tech companies for a variety of tasks.

3. We can change the colour of someone's eyes and extract 3D representations of items using OpenCV.

4. Real-time algorithms can be processed using it best.

Negative aspects of OpenCV:

1. Compared to MATLIB, OpenCV does not offer the same level of usability.

2. OpenCV must overcome a few obstacles, including the backdrop, illusions, facial emotions, and others,
to effectively recognise and identify faces.

46
Some of the packages of Python used in this

project Numpy

A well-known Python package for numerical computing is called NumPy. Due to its high performance
and flexibility, it is frequently used in scientific research, data analysis, and machine learning.

Large volumes of numerical data may be efficiently handled using NumPy's sophisticated array data
structure. A variety of functions for carrying out typical mathematical processes, such as linear algebra,
Fourier transforms, and random number generation, are also included in the library.

The ability of NumPy to communicate with other scientific computing libraries like SciPy and pandas is
one of its main benefits. This makes it possible to seamlessly combine numerical operations with data
visualisation and analysis.

NumPy is particularly performance-optimized due to the fact that many of its functions are written in
low- level languages like C and Fortran. Since performance is important in large-scale numerical
computations, this makes it a good fit.

NumPy offers a variety of helpful tools and features in addition to its fundamental capability, including:

- Broadcasting: NumPy's broadcasting feature makes it simple to process data with various dimensions by
enabling arithmetic operations to be carried out on arrays of various sizes and shapes.

47
Setting up the

Environment pip install

numpy

Tkinter

The common Python GUI (Graphical User Interface) toolkit is called Tkinter. Most Python installations
already come with it, and it offers a straightforward method for developing desktop programmes with
graphical user interfaces. Here's how to prepare your system to use Tkinter:

1. Install Python: Download the most recent version of Python from the official website if you haven't
previously done so.

2. Examine the installation: Open a command prompt or terminal when the installation is finished, and
type the following command to make sure Python was installed properly:

Python version ''' '''

The version of Python that is installed on your system ought should print out as a result.

Install Tkinter: You don't need to install Tkinter individually because it is typically part of Python installs.
To use Tkinter, you might need to install extra packages on some platforms, though. You may use the
following command to install the necessary packages on Ubuntu or Debian-based systems:

sudo apt-get install python3-tk '''

For instructions on installing Tkinter on other platforms, see to your package manager's manual.

Start using Tkinter now: Tkinter may be used in interactive Python sessions or scripts after it has been
installed. ''' import tkinter as tk ''' is the command you may use to import Tkinter to get started.

48
This will let you to use all of Tkinter's capabilities and methods in your work.

A typical Python GUI (Graphical User Interface) toolkit is Tkinter. It comes with almost all Python
installations and offers a straightforward method for creating desktop activities with visual interfaces.
Here is how to prepare the environment for using Tkinter.

Install Python first If Python has never been installed on your computer before, you can get the most
recent version from the official Python website. verify installation You may confirm that Python is
correctly installed when installation is complete by executing the following command at a command
prompt or terminal. python—version. This should publish the Python version that is currently installed on
your computer.

Put in Tkinter.

Most Python installations already come with Tkinter, so you don't need to install it separately. However,
in order to use Tkinter on some systems, you might need to install new packages. You may install the
required packages on Ubuntu or Debian-based computers by using the command sudo apt-get install
python3- tk.

To learn how to install Tkinter on other systems, refer to the attestation for your package directory.

49
5.3 CODE

50
51
52
53
54
55
56
57
58
RESULTS

As previously indicated, in addition to entering card information, a pin, and our image, we added a further
security measure called facial recognition.
Therefore, all information must be entered.

Figure 1: Database

59
Figure 2: Input from the user

If all the information is accurate, our camera will turn on and check the image that is stored in the
database, allowing the two scenarios to be observed.

Figure 17: Verifying the inputs given

60
Figure 3: Face authentication

If face has no match with the image stored in database, we would get the output as:

Figure 4: No face detected message

61
If the entered pin is incorrect, then it will display as follows:

Figure 5: Incorrect pin

62
And if everything is entered correctly and the face matches with the image stored in the database:

Figure 6: Withdraw option is shown

We need to input the amount in this box after clicking the Withdraw button, then click input.

Figure 7: Entering amount to be withdrawn

63
If there are enough funds in our account, the sum is withheld, and we receive the message "Transaction
Successful" as a result.

Figure 8: Final output

64
6.TESTING

The testing methodologies, accompanying test cases, and information used to assess the effectiveness of

the application's modular functions are explained in the following section.

6.1.Types of Testing

Finding errors is the goal of testing. The most popular method for looking for any flaws in a work product
is testing. It provides a mechanism for evaluating the value of components, sub congregations, gatherings,
as well as a full object. It is the most popular method of programming practise with the goal of ensuring
that the software framework satisfies its requirements and client assumptions and does not fail in an
unpleasant manner. There are many exam categories. Each test type favours a certain testing prerequisite.

Unit Testing

Unit testing comprises a set of tests that confirm that the internal logic of the programme is operating
correctly and that programme inputs result in meaningful outcomes. There should be approval for all
decision branches and internal code streams. This testing involves the application's individual
programming modules. Before merging, it is completed once a single unit has reached its full potential.
This intrusive testing is a foundational one that relies on knowledge of its evolution. Unit tests execute
critical tests at the component level and examine a specific business cycle, application, and framework
configuration. Unit tests ensure that each unique business interaction executes exactly as specified by the
documented data and comprises inputs that are well-defined and expected outputs that are clearly
predicted.

Integration Testing

Combination tests are designed to examine integrated programming components to see whether they truly
function as a single programme. The underlying outcome of screens or fields is more important to testing,
which is event-driven. Integration tests prove that, notwithstanding the components' individual fulfilment,
which was successfully demonstrated by unit testing, the combination of the parts is correct and stable.
Mix testing has a specific goal of identifying problems that result from the blending of components.

65
Functional Testing

Functional tests provide intentional evidence that the functionalities are usable in accordance with the
technical and business requirements, framework documentation, and user guides. The grouping and
planning of practical exams is based on requirements, essential skills, or distinctive experiments.
Similarly, testing should take into account effective inclusion relating to identifying Business process
streams, information fields, predefined processes, and progressive cycles. Additional tests are identified
prior to the completion of utilitarian testing, and the success of the current tests is not predetermined. The
following are the main focuses of functional testing:

Valid Input: Acceptance of the indicated valid input types is required.

Input that is invalid must be rejected according to the indicated classifications.

Functions: The assigned functions need to be used.

Application outputs must be tested in the classes that have been identified.

Systems or processes that interface with other systems or procedures must be

used.

System Testing

System testing ensures that the entire integrated programming framework satisfies requirements. To ensure
predictable and unexpected results, it evaluates a design. The design-arranged framework combination
test is a prime example of framework testing. The emphasis of framework testing is on pre-driven process
connections and combination focuses, which are dependent on process representations and streams.

White box Testing

White box testing is a type of testing where the product analyst is aware of the internal workings, design,
and language of the product, as well as maybe its motive. That's why. used to test areas that are not
accessible from a black box level.

Black Box Testing

Black box Testing entails using the product without having little to no knowledge of its internal
workings, design, or language. As with the majority of other types of tests, black box tests should be
66
created from a

67
comprehensive source document, like a detail or requirements report. It is difficult because the test
product is approached as a mysterious black box. It is impossible to "see" inside.

Performance Testing

Performance testing is a testing method that assesses a computer, network, software programme, or other
device's speed, responsiveness, and stability while it is being put through a workload. Performance testing
will be conducted by organisations to locate performance-related bottlenecks.

Performance testing aims to locate and eliminate performance bottlenecks in software applications,
assisting in the maintenance of software quality. Without any sort of performance testing in place, system
performance could be impacted by operating system (OS) inconsistencies and delayed reaction times.

As a result, the user experience (UX) is often bad. Performance testing helps assure a better user
experience by determining if a produced system satisfies speed, responsiveness, and stability
requirements under workloads.

Acceptance Testing

An essential phase of every project is client acceptance testing, which necessitates intense customer
participation. Additionally, it makes sure the framework satisfies the requirements from a utilitarian
standpoint. Results of all the tests mentioned above were successful. There were no defects.

Test Design

The tester will understand each requirement and prepare a corresponding test case to ensure all
requirements are covered.

Each Test case will be mapped to Use cases to Requirements as part of the Traceability matrix.

Each of the Test cases will undergo review by the BUSINESS ANALYST and the review defects are
captured and shared to the Test team.

The testers will rework on the review defects and finally obtain approval and sign-off.

68
During the preparation phase, testers will use the prototype, use case and functional
specification to write step by step test cases.

Testers will maintain a clarification Tracker sheet and the same will be shared periodically with the
Requirements team and accordingly the test case will be updated. The clarifications may sometimes lead
to Change Requests or not in scope or detailing implicit requirements.

Sign-off for the test cases would be communicated through mail by Business Analyst’s.

Any subsequent changes to the test case if any will be directly updated.

Test Execution

Testers will begin an exploratory test of the application to make sure it is stable for testing when
all test cases have been authorised and the test environment is ready for testing.

Test cases are given directly to each tester. In order to update test status and report bugs, testers
must have the appropriate access to the testing environment. If there are any problems, they will
be escalated to the Test Lead, who will then contact the Project Manager. Exploratory testing
showstoppers will be escalated to the appropriate development SPOCs for repairs. Every tester
runs the execution step by step and updates the execution status. For each step, the tester enters a
Pass or Fail status.

A Run chart detailing day-by-day execution will be created by the tester. Failures will be reported as
faults, with instructions to reproduce them and, if necessary, screenshots, according to severity
requirements in the tool. All stakeholders will be informed of the daily test execution status and defect
status. If there are any flaws that are not steps but may be outside the scope of the tests, they must be
recorded and mapped against the test case level or the precise step where they were discovered after
consulting the test lead.

Repeating this procedure results in a Pass/Fail status for each test case when it has been entirely run. Any
faults rectified will be evaluated during the following cycle, and results will be updated throughout the
cycle. Process will be followed for final approval or project completion.
69
6.2 List of Test Cases

The set of test cases below was used to conduct functional testing at various project phases in order to
assess the effectiveness of each module's behaviour and implement prompt fixes for any defects that were
found.

Testcase Testca Categor Feature Pre- Test Input Expect Actual Test Remar
scenario se y Descriptio requisite/ Descri Data/ ed Results (Pas ks
ID n reconditio ption/ Test Result s/Fa
n steps Data il)
to
repro
duce

Validatin TC_00 Functio Validating Enter the Open Details The The user Yes Validati
g the 1 nal the account account the from user details ng the
account number and number script the details entered user
number PIN for and PIN in Databa entered are credenti
and PIN logging in number python se. are verified als and
of the and click enviro verified and a also
user on login nment. and a rectangl face
for further Run rectangl e box is recognit
process. the e box is opened ion is an
script opened for face added
and for face recognit advanta
enter recognit ion. ge for
the ion. improvi
require ng the
details. security
Click .
on
login.

70
Face TC_00 Functio This test A camera Open Video The The face Yes
Detection 2 nal ensures that is the stream face of of the
the face is available script from the person
detected by and in the person is
the connected Python camer is detected
algorithm to the enviro a. detecte and
used computer nment. d and rectangl
Run rectangl es are
the es are drawn
script drawn around
and around the face.
enter the
the face.
require
d
details.
Click
on
login

71
Face TC_00 Functio This test A camera Open Video When Withdra Yes Face
Validatio 3 nal case is the stream the face w button detectio
n ensures that available script from of the is found n can
the person and in the person to improv
face connected Python camer is perform e the
matches to the enviro a. matche transacti safety
with the computer. nment. d with on. in atm
image Run image transact
stored in the that is ions to
database. script stored the
and in the larger
enter databas extent.
the e, it
require allows
d the user
details. for
Click further
on process
login to
withdra
w.

Table 1: Functional test cases

72
7.CONCLUSION

ATM transactions may be secured using several different techniques. To boost security, a new layer is
added on top of the existing one. This may be developed upon and added to ATM locations and financial
systems. With this implementation, ATM fraud can be stopped. This method enables two-factor
authentication to verify that the transaction is being carried out by the authorised party. It prevents those
with access to the PIN from using the card illegally or without permission.

This is made feasible using face recognition. The live camera is used to record the user's footage, which is
then compared to the real picture stored in the bank database.

The problem of cardholder impersonation can be solved by this project. Similar to two-factor
authentication, facial recognition is used to verify that the transaction was carried out by the cardholder or
other individuals they have trusted. It restricts the use of cards by unauthorised individuals who know a
cardholder's password. As a result, this ATM model offers protection against identity exploitation through
the deployment of a verification system that uses facial recognition to check the user's identity and greatly
reduce forced transactions.

The user is able to withdraw their balance after verification if both faces match, and a Transaction
Successful dialogue box will display. If the faces don't match, the user won't be able to access the
withdrawal. As a consequence, this verification technique verifies the permitted user and authenticates
them, which greatly lowers the number of fraudulent transactions.

73
8.FUTURE SCOPE
The facial recognition method seems more challenging than biometrics, enabling the creation of more
potent algorithms. It is possible to correct, erase, or at the very least decrease the drawbacks of facial
recognition technology, such as the inability to discern between a face and a beard, ageing, glasses, or a
cap. If the price drops, retinal or iris recognition could take the place of face recognition.

74
9. BIBLIOGRAPHY

• Other Google Research


1. A Survey on the Security of an ATM Transaction Joyce Soares1, Dr. A. N. Gaikwad2
https://www.ijsr.net/archive/v5i1/NOV153180.pdf
2. A SURVEY ON THEFT PREVENTION DURING ATM TRANSACTION WITHOUT,
ATM CARDS Sistu Sudheer kumar and A.Srinivas Reddy
https://ijret.org/volumes/2015v04/18/IJRET20150418007.pdf
3. E.Derman, Y.K.Gecici and A.A.Salah, Short Term Face Recognition for Automatic Teller
Machine (ATM) Users, in ICECCO 2013, Istanbul,
Turkey,pp.111114.https://dx.doi.org/10.21172/1.841.20
4. JinfangXu, Khan, Rasib and RasibHasan, SEPIA: Secure-PIN-authentication-as-a-service
for ATM using Mobile and wearable devices, 3 rdIEEE International Conference on Mobile
Cloud Computing, Services, and Engineering IEEE, June 2015,pp. 41-50.
5. Marilou O. Espinal, Amel C. Fajardo, Bobby D. Gerardo, RujiP. Medina, Multiple Level
Information Security Using Image Steganography and Authentication, International Journal
of Advanced Trends in Computer Science and Engineering, Volume 8, No.6, November -
December 2019, pp.3297-3303. https://doi.org/10.30534/ijatcse/2019/100862019 .
6.M.Murugesan, S.Thilagamani, Overview Of Techniques For Face Recognition,
International Journal of Life Science and Pharma Reviews, pp.66-71, 2019,
7.ISSN 2250-0480. https://dx.doi.org/10.22376/ijpbs/10.SP01/Oct/2019
8.S.Karthikeyan, S.Sainath, K.P.TharunAswin, K.Abimanyu, An Automated Anti-Theft and
Misusealerting System for ATM, IOSR Journal of Electronics and Communication

67
APPENDIX – A

PYTHON
Python is a high-level programming language known for its simplicity, readability, and
versatility. It offers numerous advantages for developers, including:
1. Easy to Learn and Read: Python's syntax is designed to be intuitive and easy to
understand, making it an excellent choice for beginners and experienced programmers
alike. Its clean and readable code enhances productivity and reduces the time required
for development and maintenance.
2. Large and Active Community: Python has a vast and active community of developers
who contribute to its ecosystem. This community provides extensive documentation,
libraries, frameworks, and resources, making it easier to find support, collaborate, and
leverage existing solutions.
3. Extensive Library Ecosystem: Python boasts a rich library ecosystem, including
standard libraries and third-party packages, covering a wide range of domains such as
web development, data analysis, machine learning, artificial intelligence, scientific
computing, and more. These libraries enable developers to build complex applications
quickly by leveraging existing functionality.
4. Cross-platform Compatibility: Python is a cross-platform language, meaning it can
run on various operating systems like Windows, macOS, and Linux. This portability
allows developers to write code once and deploy it on different platforms without
significant modifications.
5. Integration Capabilities: Python seamlessly integrates with other languages such as C,
C++, and Java. This feature enables developers to utilize existing codebases in those
languages or to optimize performance-critical sections of their Python programs using
lower-level languages.
6. Scalability and Flexibility: Python supports both small-scale scripting and large-scale
application development. Its scalability and flexibility make it suitable for projects of
varying sizes, from small scripts to enterprise-level systems.

68
7. Rapid Prototyping: Python's simplicity and concise syntax make it ideal for rapid
prototyping. Developers can quickly translate ideas into functional code, test
concepts, and iterate on solutions efficiently.

8. Wide Range of Applications: Python is widely used across diverse domains, including
web development, data science, machine learning, scientific computing, automation,
network programming, and more. Its versatility allows developers to tackle a broad
spectrum of projects.

Python's strengths and extensive ecosystem have contributed to its popularity as a


programming language, making it a preferred choice for many developers and organizations
worldwide.

HISTOGRAM OF ORIENTED GRADIENTS

In the HOG feature descriptor plays an important role to identify the distribution (histograms)
of directions of gradients and is used as the features. A feature descriptor is generally a way
of representing an image or an image patch which simplify the image by extracting the useful
and required data and throwing away the unuseful data. A feature descriptor converts an
image with width x height x 3 (channels) to a feature vector / array of length n.

By using HOG feature descriptor the input image is of size 64 x 128 x 3 and the produced
feature is of length 3780.

Calculating the Histogram of Oriented Gradients involves 5 steps they are Preprocessing,

Calculate the Gradient Images, Calculate Histogram of Gradients in 8×8 cells, 16x16 Block
Normalization and Calculate the Histogram of Oriented Gradients feature vector.

1.Preprocessing

In this step, at several locations of an image, patches are made and analyzed. The primary
constraint taken into consideration is the aspect ratio. Those patches which are for analysis
have prefixed aspect ratio.

69
2. Ca
lc ul
ati ng

the Gradients

HOG descriptor can be calculated by finding the latitudinal and longitudinal gradients.
However, they combine to form Histogram of Gradients. We can achieve this by filtering the
image into kernels.

No gradient highlights on smooth surface. X-gradient highlights on longitudinal lines, Y-ity


gradient highlights on latitudinal lines and magnitude gradient highlights on the inter
sharpness. Thus, removing the unnecessary information.

3.Calculating Histogram of Gradients (8x8) cells

70
This step includes dividing of the image into 8x8 cells. Therefore, Histogram of Gradients
will be calculated for each 8x8 cell.

4.Block Normalization

To reduce the affect of lighting variations, we apply normalization to the image.


Normalization of a vector removes the scaling and it is similar to normalizing a vector.
So,scaling down we can normalize any large vector easily.

5.Calculating the Feature Vector

The final feature vector of the entire image patch can be calculated by concatenating vectors
of 36x1 into single vector. This giant vector has 105 positions and 3780 dimension

71
PLAGIARISM REPORT

72
73
PAPER PUBLICATION

74
75
SECURING ATM TRANSACTIONS USING FACIAL RECOGNITION

K.VERONIKA ,S.HARSHITHA,J.KAVITHA, Dr. T. Vijaya Saradhi(Guide)


Sreenidhi Institute of Science and Technology

Abstract:
Anyone can check their balance and make cash withdrawals using an ATM. The quantity
of ATMs a bank has may be taken into account when evaluating its strength. As there are
more ATMs, there are also more fraudulent activities taking place inside of them. The
primary goal of this initiative is to improve the security of ATM usage. The static key is
used as security in the present procedure. The suggested technique incorporates Face-id as
a key with the present method. The fact that each person's face ID is unique and cannot be
used by anyone else except the user is one of the benefits.
The transaction is considered authorized if the cardholder is confirmed to be the user, at
which point they are allowed to carry out any actions, including cash withdrawals and
balance checks. We are utilizing a model and camera together with the Histogram of the
Gradient method, Python modules, and a few machine-learning techniques to identify the
persons. The system manipulates the image using OpenCV to recognize the faces in it.
To recognize faces, one can employ the local binary pattern.

1. INTRODUCTION
Customers can do particular operations including cash withdrawals, deposits, money
transfers, and account information inquiries anytime they want and independently of bank
employees by using an automated teller machine (ATM). Physical security measures
including CCTV surveillance of the ATM booth and security guards (human) are already
in place to provide secure ATM service for consumers.
There are also other technologically based security measures in place, such as firewalls,
data encryptions, network security, etc. However, scams like card theft, card fraud, card
cloning, skimming, and other similar schemes have become more prevalent recently and
are easily able to bypass existing security measures. It is now feasible to recognize a
human face from a digital image or a video frame from a video source and to give each
human face a unique identification thanks to developments in machine learning and
computer vision. The goal of this project is to create an ATM that uses face recognition
technology to confirm that each transaction has been approved by the account's owner.

Objective:
The primary goal of this project is to increase security, which will be different because
76
transactions now depend not only on the right PIN but also on the person carrying out the
transaction, whereas the current system just verifies the PIN and phone number (if
necessary).

2. LITERATURE SURVEY
Different types of authentication used in ATMs have been explained in numerous research
papers that have been published by numerous authors.
[1].For each automated teller machine (ATM), authentication is crucial. It authenticates
often with an ATM card and pin. In this study, authentication was carried out using a "One
Time Password" and a "Personal Identification Number" to increase security and prevent
situations where a card can fall into the wrong hands and a person might carry out any
transaction with the knowledge of the PIN.
[2]. A biometric system has replaced the user signature technique that was previously
replaced by an ATM PIN owing to high risk. The biometric system makes use of the
fingerprint, iris, retina, and veins. Cash will be distributed when it is a legitimate
individual 2.1 Existing System

77
Juni Khyat
ISSN: 2278-4632
(UGC Care Group I Listed Journal) Vol-13, Issue-05, No.03, May : 2023

Entering our username and password is a straightforward authentication that we are all familiar
with and follow. If we forget our password, we may also have a way to use it again and regain
access to our account. A factor authentication method that covers two factors is an SMS message
sent to our registered cell phone number.
The login procedure is made more secure without changing it by employing authentication, but
by using the OpenCV approach, we are recognizing a picture that we put in our database.
Disadvantages
• Low security
• pin code verification is adequate.
2.2 Proposed System
To make transactions dependent on both the person making the transaction and the correct PIN
on the card, this project proposes adding a new layer of security to the present ATM system. For
instance, in our project, we used the Open CV Python implementation of the Local Binary
Pattern Histogram technique for face recognition. Advantages
All industrial personnel may benefit from this proposed strategy because it is efficient in terms of
security and time needs.

3. SYSTEM ANALYSIS & DESIGN


3.1 Functional Requirements:
A Software Requirements Specification (SRS) is a document that lists the requirements for
software. A software system's black box specification describes how the programming will be
written. It is a crucial document that bridges the communication gap between users and the
developed program and helps to steer clear of fatal software project flops.
The two categories of requirements in the SRS are functional requirements and nonfunctional
requirements. Functional requirements are concerned with a system's technical characteristics or
the technical operations performed by each module, whereas nonfunctional requirements
examine a system's operations under certain conditions.
Software Requirements Specification (SRS) objectives:
The customer will receive this as feedback.
1. It breaks down a system into modules and provides that information as input to the design
specification.
2. It is used to validate and verify the product.
3. It supports the project management and system review processes.
Software Requirements Specification Advantages :
1. There will be open channels of communication between the client or customer and the
system developers.
2. Because this area serves as a strong foundation for system design, the customer should
only give all needs in this area.
3. This makes the Verification and Validation (V-Model) process easier.
4. This assists in estimating the project's cost,timeframe, and resource requirements.
3.2 Performance Requirements:
The effectiveness of a software system is described by its performance requirements. The
software's performance includes response time, execution time, storage capacity, and throughput.
The majority of the performance criteria for service levels were designed to support end-user
tasks. Similar to other quality criteria, performance requirements are essential to the design and
testing of software.
Even though gathering requirements is a crucial step in the software development process, it
can be difficult. Scope, skill, and stability are the three main obstacles to collecting performance
criteria. In the software development industry, project scope is usually uncertain, or different
stakeholders give inconsistent or false scope assessments.

Page | 78 Copyright @ 2023 Author


Juni Khyat
ISSN: 2278-4632
(UGC Care Group I Listed Journal) Vol-13, Issue-05, No.03, May : 2023

The scope of a project is frequently unknown in the software development business, or multiple
stakeholders provide conflicting or deceptive scope evaluations. If one stakeholder discusses
local needs while another addresses regional or national coverage, the system's design and
performance may be quite different.
Establish a specified scope with stakeholders to support performance standards. Requirements
are only useful if all stakeholders have a thorough understanding of the project's goals,
capabilities, and restrictions. Users, clients, and other stakeholders may be completely unaware
of the problems with performance. They may leave some details out.

3.3 System Architecture:

Figure 1: Architecture

INPUT DESIGN AND OUTPUT DESIGN


INPUT DESIGN
The interface between the information system and the user is provided by the input design. It
entails creating standards and processes for data preparation as well as the techniques required to
convert transaction data into a format that can be processed. This can be accomplished by having
users directly enter the data into the system or by having them read it from a written or printed
document while gazing at the computer.
Input design aims to reduce the amount of input required, manage mistakes, avoid delays,
eliminate extra processes, and streamline the process. The input is made to offer ease and
security while protecting privacy. Input Design kept the following things in mind:
• Which information should be supplied as input?
• How should the data be organized or coded?

Page | 79 Copyright @ 2023 Author


Juni Khyat
ISSN: 2278-4632
(UGC Care Group I Listed Journal) Vol-13, Issue-05, No.03, May : 2023

• The conversation to direct the operating staff's input-giving.


• Techniques for creating input validations and procedures to take in the event of a mistake.

3.4 Data Flow Diagram :


Use case diagrams are made to show the functional requirements of a system. The components
mentioned above must first be identified in order to produce a useful use case diagram.
i. The name of the use case must be carefully considered. As a result, it's critical to pick a
name that makes it obvious what tasks are being carried out.
ii. Give the performers a decent name, as well.

Figure 5: Use Case Diagram

4. IMPLIMENTATION AND RESUTS


The Histogram of Oriented Gradients technique is used to differentiate the human face. Making
use of the dlib package, the relative modification of the face is completed. Support Vector
Machine (SVM) for face classification and a Deep Convolutional Neural Network (Deep CNN)
are prepared to obtain impressive estimates from the human face (128 different estimations from
a single face). Here, the Local Binary Pattern (LBP) serves as the foundation for our face
recognition method.
The Local Binary Pattern is successful and has been tweaked for our unique needs and improved
face recognition. It is a powerful algorithm that may be modified as needed to serve our needs.
An effective texturing operator for labelling picture pixels that uses the binary threshold values
for each pixel's immediate neighbours.
The Face-Recognition technique known as Local Binary Pattern Histogram (LBPH) is used to
detect a person's characteristics. It is renowned for its presentation and for making it possible to
perceive an individual's character from both the front and side faces.

Page | 80 Copyright @ 2023 Author


Juni Khyat
ISSN: 2278-4632
(UGC Care Group I Listed Journal) Vol-13, Issue-05, No.03, May : 2023

Figure 1: LBPH calculation

Before starting the logic behind the LBPH calculation, we should first understand a little bit
about the specifics of Images and Pixels to understand how photos are handled before we start
the content of FaceRecognition. So let's start understanding pictures and pixels.
photographs and Pixel The Matrix designs, as you can see above, which are composed of lines
and parts, address all photographs. The pixel is a picture's main component. An image constitutes
of many pixels.
These are all small square objects.
As previously indicated, in addition to entering card information, a pin, and our image, we added
a further security measure called facial recognition.
Therefore, all information must be entered.

Figure 1: Database

Figure 2: Input from the user


If all the information is accurate, our camera will turn on and check the image that is stored in
the database, allowing the two scenarios to be observed.

Page | 81 Copyright @ 2023 Author


Juni Khyat
ISSN: 2278-4632
(UGC Care Group I Listed Journal) Vol-13, Issue-05, No.03, May : 2023

Figure 3: Face authentication

If face has no match with the image stored in database, we would get the output as If the entered
pin is incorrect, then it will display as follows:

Figure 4: No face detected message

And if everything is entered correctly and the face matches with the image stored in the database:

Figure 6: Withdraw option is shown

We need to input the amount in this box after clicking the Withdraw button, then click
Page | 82 Copyright @ 2023 Author
Juni Khyat
ISSN: 2278-4632
(UGC Care Group I Listed Journal) Vol-13, Issue-05, No.03, May : 2023
input.

Page | 83 Copyright @ 2023 Author


Juni Khyat
ISSN: 2278-4632
(UGC Care Group I Listed Journal) Vol-13, Issue-05, No.03, May : 2023

Page | 84 Copyright @ 2023 Author


Juni Khyat
ISSN: 2278-4632
(UGC Care Group I Listed Journal) Vol-13, Issue-05, No.03, May : 2023

Figure 7: Entering amount to be withdrawn

If there are enough funds in our account, the sum is withheld, and we receive the message
"Transaction Successful" as a result.

Figure 8: Final output

5. CONCLUSION

ATM transactions may be secured using several different techniques. To boost security, a new
layer is added on top of the existing one. This may be developed upon and added to ATM
locations and financial systems. With this implementation, ATM fraud can be stopped. This
method enables two-factor authentication to verify that the transaction is being carried out by the
authorised party. It prevents those with access to the PIN from using the card illegally or without
permission.
This is made feasible using face recognition. The live camera is used to record the user's footage,
which is then compared to the real picture stored in the bank database.
The problem of cardholder impersonation can be solved by this project. Similar to two-factor
authentication, facial recognition is used to verify that the transaction was carried out by the
cardholder or other individuals they have trusted. It restricts the use of cards by unauthorised
individuals who know a cardholder's password. As a result, this ATM model offers protection
Page | 85 Copyright @ 2023 Author
Juni Khyat
ISSN: 2278-4632
(UGC Care Group I Listed Journal) Vol-13, Issue-05, No.03, May : 2023
against identity exploitation through the deployment of a verification system that uses facial
recognition to check the user's identity and greatly reduce forced transactions.

Page | 86 Copyright @ 2023 Author


Juni Khyat
ISSN: 2278-4632
(UGC Care Group I Listed Journal) Vol-13, Issue-05, No.03, May : 2023

The user is able to withdraw their balance after verification if both faces match, and a
Transaction Successful dialogue box will display. If the faces don't match, the user won't be able
to access the withdrawal. As a consequence, this verification technique verifies the permitted
user and authenticates them, which greatly lowers the number of fraudulent transactions.

6. FUTURE SCOPE
The facial recognition method seems more challenging than biometrics, enabling the creation of
more potent algorithms. It is possible to correct, erase, or at the very least decrease the
drawbacks of facial recognition technology, such as the inability to discern between a face and a
beard, ageing, glasses, or a cap. If the price drops, retinal or iris recognition could take the place
of face recognition.

7. REFERENCES
• www.w3schools.com
• https://www.jetbrains.com/pycharm/

Sreenidhi Institute of Science and Technology


Department of Computer Science and Engineering
PROJECT-II(7E885)

Batch No: C02


Title of the Project
Roll No Name
19311A05G K.Veronika
6 Securing ATM transactions using facial
20315A0514 S.Harshitha recognition

19311A05H1 J.Kavitha

• • https://thinkingneuron.com/face-recognition-using-deep-learningcnn-in-python/
• Machine learning - Wikipedia

ABSTRACT
Anyone can check their balance and make cash withdrawals using an ATM. The quantity of ATMs a
bank has may be taken into account when evaluating its strength. As there are more ATMs, there are
also more fraudulent activities taking place inside of them. The primary goal of this initiative is to
improve the security of ATM usage. The static key is used as security in the present procedure. The
suggested technique incorporates Face-id as a key with the present method. The fact that each
person's face ID is unique and cannot be used by anyone else except the user is one of the benefits.

Page | 87 Copyright @ 2023 Author


Juni Khyat
ISSN: 2278-4632
(UGC Care Group I Listed Journal) Vol-13, Issue-05, No.03, May : 2023
The transaction is considered authorized if the cardholder is confirmed to be the user, at which
point they are allowed to carry out any actions, including cash withdrawals and balance checks. We
are utilizing a model and camera together with the Histogram of the Gradient method, Python
modules, and a few machine-learning techniques to identify the persons. The system manipulates
the image using OpenCV to recognize the faces in it. To recognize faces, one can employ the local
binary pattern.

K.Veronika Internal Guide Head of the Department


S.Harshitha Dr. T. Vijaya Saradhi Dr. Aruna Varanasi
J.Kavitha Professor Professor, HOD
Department of CSE Department of CSE

Batch No: C02


Title
Roll No Name
19311A05G6 K.Veronika
Securing ATM Transactions using facial
20315A0514 S,Harshitha recognition
19311A05H1 J.Kavitha

Table 1: Project correlation with appropriate POs/PSOs (Please specify level of Correlation, H/M/L
against POs/PSOs)

H High M Moderate L Low

SREENIDHI INSTITUTE OF SCIENCE AND


TECHNOLOGY
DEPARTMENT OF COMPUTER SCIENCE AND
ENGINEERING
Project Correlation with POs/PSOs

PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PSO3

Page | 88 Copyright @ 2023 Author


Juni Khyat
ISSN: 2278-4632
(UGC Care Group I Listed Journal) Vol-13, Issue-05, No.03, May : 2023

K.Veronika Internal Guide Head of the Department


S.Harshitha Dr. T. Vijaya Saradhi Dr. Aruna Varanasi
J.Kavitha Professor Professor, HOD
Department of CSE Department of CSE

Batch No: C02


Title
Roll No Name
19311A05G6 K.Veronika
Securing ATM transactions using facial
20315A0514 S.Harshitha recognition
19311A05H1 J.Kavitha

Table 2: Nature of the Group Project (Please tick √ Appropriate for your project)

Nature of the Project


Batch
No. Title of the Project Others
Product Applicatio Research (Please
n specify)
Securing ATM
C02 transactions using
facial recognition

Page | 89 Copyright @ 2023 Author


Juni Khyat
ISSN: 2278-4632
(UGC Care Group I Listed Journal) Vol-13, Issue-05, No.03, May : 2023
K.Veronika Internal Guide Head of the Department
S.Harshitha Dr. T. Vijaya Saradhi Dr. Aruna Varanasi
J.Kavitha Professor Professor, HOD
Department of CSE Department of CSE

Table 3: Domain of the Group Project (Please tick √ Appropriate for your project)

Domain of the Project

Batch No.
Title of the
Project ARTIFICIAL
COMPUTER
DATA
CLOUD
SOFTWARE
NETWORKS, COMPUTING,
INTELLIGENCE, WAREHOUSING, ENGINEERING,
INFORMATION INTERNET OF
MACHINE DATA MINING, BIG IMAGE
SECURITY, THINGS
LEARNING AND DATA ANALYTICS PROCESSING
CYBER
DEEP LEARNING
SECURITY

Securing ATM
C02 transactions 
using facial
recognition

K.Veronika Internal Guide Head of the Department


S.Harshitha Dr. T. Vijaya Saradhi Dr. Aruna Varanasi
J.Kavitha Professor Professor, HOD
Department of CSE Department of CSE

Page | 90 Copyright @ 2023 Author


Juni Khyat
ISSN: 2278-4632
(UGC Care Group I Listed Journal) Vol-13, Issue-05, No.03, May : 2023

Page | 91 Copyright @ 2023 Author

You might also like