Project
Project
on
Submitted to
Sant Gadge Baba Amravati University
In partial Fulfillment of the Requirement
For the Degree of
Bachelor of Engineering in
Computer Science and Engineering
Submitted by:
Anand Agrawal, Vinita Tiwari,
Himanshu Jamwal, Nikita Shrinath,
Priya Diwnale
CERTIFICATE
This is to certify that Mr. Anand Agrawal, Ms. Vinita Tiwari, Ms. Nikita
Shrinath, Mr. Himanshu Jamwal and Ms. Priya Diwnale, students of final year B.E. in
the year 2020-21 of Computer Science and Engineering Department of this institute has
M. Mankar
Project Guide
.-l -(5o-'
Dr Dr. S"B. Somani
of Department Principal
Head of Department Principal
CERTIFICATE
This is to certify that the project work entitled “Currency Detector
Android Application for Visually Impaired People” submitted by Mr.
Anand Agrawal, Ms. Vinita Tiwari, Ms. Nikita Shrinath, Mr. Himanshu Jamwal
and Ms. Priya Diwnale students of final year B.E. in the year 2020-21 of Computer
Science and Engineering Department of this institute, is a satisfactory account of his
work based on the syllabus which is recommended for the partial fulfillment of the
degree of Bachelor of Engineering in Computer Science and Engineering.
Not everyone in this world can see the colors or even the light from his/her eyes.
These people are known as visually impaired people. Visually disabled people are
partially sighted or completely blind. These types of people face many problems in
their day-to-day life, including transactions through money. Every category of
currency is different from the others, and the difference can be noticed through the
naked eye. For visually challenged people, it is hard for them to differentiate
between the notes. Higher organizations or institutions like Banks have expensive
hardware machines that can easily determine the difference between original and
fake notes. The technology used in those machines is not handy or cost-efficient. So,
to overcome this issue, this project can help the visually disabled person recognize
the currency notes using a mobile camera. The system will be developed as an
Android application and will use image processing techniques to achieve high
accuracy.
The real spirit of achieving a goal is through the way of excellence and lustrous
discipline. I would have never succeeded in completing my task without the
cooperation, encouragement, and help provided to me by various personalities.
I extend my thanks to Dr. S.B. Patil Head of the Computer Science &
Engineering Department, Shri Sant Gajanan Maharaj College of Engineering,
Shegaon for their valuable support that made me a consistent performer.
Also, I would like to thank all teaching and non-teaching staff of the department
for their encouragement, cooperation, and help. My greatest thanks are to all who
wished me success, especially my parents, and my friends whose support and care make
me stay on earth.
Abstract i
Acknowledgment ii
Contents iii
List of Figures & Tables v
Abbreviations vi
1. Introduction 1
1.1 Preface 1
1.2 Background of the story 1
1.3 Problem Statement 2
1.4 Objectives 2
1.5 Scope 3
1.6 Organization of Project 3
2. Literature Survey 4
3. Methodology 5
4. Working of System 16
4.1 System architecture 16
4.2 Model Building 17
4.3 Machine Learning 18
4.4 Machine Learning Algorithms 19
4.4.1 K-Nearest Algorithm 19
4.4.2 Logistic Regression 22
4.4.3 Random Forest 23
4.4.4 Support Vector Machine 26
4.5 Deep Learning Algorithms 28
4.5.1 Convolutional neural network 29
4.5.2 Recurrent neural network 30
4.6 Algorithm 31
5. Analysis 34
5.1 System Configuration 34
5.2 Dataset Details 34
5.3 Performance Analysis 36
7. Implementation 43
7.1 Implementation Strategy 43
7.2 Testing 45
8. Reference 48
8. Research Paper 49
9. Certificate of Publication 57
List of Figures
BP Back Propagation
GD Gradient Descent
RL Reinforcement Learning
Chapter 1
INTRODUCTION
1.1 PREFACE
Of the 295 million visually disabled people in the world, 62 million are from India (about 18 million are
completely blind). A petition by NGO called All India Confederation of Blind said that visually impaired people
were affected and recognized the new Rs 50, Rs 200, Rs 500, Rs 2000 banknotes. They showed that the new currency
is different in size. The plea said that this trouble can lead to difficulty in the transaction for the visually impaired.
Identifying each note correctly is a challenge for anyone with visual impairment. Because they are disabled, they
are repeatedly scammed with fake currency.
Therefore, the need for a simple system to help in detecting notes is important. In August 2019, RBI also realized
this problem and came up with the idea to offer an Android app for the visually impaired. The concept of this
Android application is that it will work on voice command, firstly the user will open the application through voice
command and then the user will simply take out the note and place it behind the camera, within 2-3 seconds, a voice
will be heard telling which note the user had held. Hence, our motivation is to help visually disabled people in India.
This application will be easy to use and hence require less computation power.
In modern society, cashless transactions are becoming increasingly popular. However, paper currency still
plays an essential role in everyday life. For visually impaired individuals, distinguishing between different
denominations of paper currency can be a challenging and time-consuming task. This can lead to errors,
inconvenience, and even vulnerability to fraud.
Therefore, there is a need for a solution that can assist visually impaired individuals in recognizing different
denominations of paper currency. One possible solution is the development of a currency detector app for
smartphones. This app would use the phone's camera to scan and recognize currency notes and then provide
audio feedback to the user, announcing the denomination of the note.
Several technologies can be used to develop such an app, including computer vision and machine learning.
Computer vision can be used to analyze the features of different currency notes, such as size, shape, and color,
and distinguish between them. Machine learning can be used to train the app to recognize various currencies
accurately, even as new notes are introduced.
There have been some previous attempts to develop currency detector apps for visually impaired individuals.
However, these apps have had limited success due to issues such as low accuracy and slow response time.
Therefore, this study aims to develop an accurate and efficient currency detector app using advanced computer
vision and machine learning techniques.
The currency detector app has the potential to provide significant benefits to visually impaired
individuals, improving their independence, confidence, and safety in handling paper currency. It can also
promote financial inclusion, ensuring that everyone can participate in financial transactions equally.
The problem statement for the currency detector app for visually impaired people is that they face
difficulties in identifying currency notes due to their inability to see. This leads to potential fraud and
inconvenience as they rely on others for help in identifying the currency. Traditional methods of identifying
currency, such as relying on tactile features or asking for assistance, are not always reliable or practical. As a
result, visually impaired individuals face challenges in performing routine tasks and maintaining
independence. Therefore, there is a need for an accessible and reliable solution to help visually impaired
people identify currency notes. The proposed solution is to develop a mobile app using machine learning
algorithms that can accurately identify different currency notes and communicate the information to the user
through audio or haptic feedback. The app should also be user-friendly and accessible to visually impaired
individuals, taking into consideration their unique needs and limitations. The goal is to improve the quality
of life for visually impaired individuals by providing them with a tool to easily and independently identify
currency notes.
1.4 OBJECTIVES
1. The prime goal of this project is to help visually disabled people to help recognize the currency.
2. Another goal is to get precise results in different lighting conditions and follow the Android app
using voice commands with a simple Graphical User Interface (GUI).
3. The system will work completely with voice commands, so it will be easy to use, practical, and
economical for the visually disabled.
When we use this approach to focus on the blind, many additional problems arise. Users are unaware of c
onditions such as lighting, contrast, saturation or even whether the paper is visible in the camera. The
system requires changes to many of the images that will be taken by the user. Using the app should be easy
for visually impaired people. It must have cameras that must be activated by voice command, and they must
not have a single-user login. Therefore, the issue requires innovative ideas that can trust and validate
invoices in various environments.
1.5 SCOPE
1. Develop a mobile application that can detect currency and convert it into speech for visually impaired
people.
3. Train and test various machine learning models such as Support Vector Machines (SVM) and
Convolutional Neural Networks (CNN) to improve the accuracy of currency detection.
4. Design a user-friendly interface for the currency detection app, including features such as text-to-
speech conversion, vibration feedback, and a simple user guide.
5. Conduct user testing and feedback sessions to evaluate the usability and effectiveness of the currency
detection app.
6. Explore the possibility of integrating the currency detection app with other assistive technologies for
visually impaired people, such as voice assistants and navigation systems.
The scope of this project is to develop a practical and reliable solution for currency detection for visually
impaired people using machine learning and image processing techniques. The project aims to improve the
quality of life and independence of visually impaired individuals by providing them with a tool to accurately
identify and manage currency.
Chapter 2: Literature Survey of the research papers referred to get an idea of the previous work
Chapter 3: After reviewing, the methodology of how the project can be executed.
Chapter 2
LITERATURE SURVEY
Many researchers have made distinct contributions to the advancement of currency recognition techniques.
The research by Pratiksha Ganjave et al.,[1] focused on various algorithms for image processing (SIFT-Scale Invariant
Future Transform, FAST- Features from Accelerated Segment Test, ORB- Oriented Fast and Rotated Brief, and
SURF- Speeded Up Robust Feature) for an image-processing-based currency detection system. In feature extraction
and matching, these methods are applied. This particular study concentrates on Indian currency notes. The algorithms
have been studied, and it has been discovered that each algorithm has benefits and drawbacks.
To address the issue of visually challenged persons being able to recognize notes, Srushti Samant et al.,[2] created a
system wherein cash recognition is achievable by employing several image processing techniques.
To assist blind people in their daily lives, Snehal Saraf et al.,[3] proposed a mobile app for currency recognition that
can recognize Indian currency form solving blind people’s difficult problems. Regional audio is the output format for
this project. The SIFT algorithm outperforms the current HOG in terms of performance and recall. Compared to other
algorithms, the SIFT algorithm is reasonably efficient.
Shweta Yadav et al.,[4] developed a solution to help blind people in their daily life, solve problems faced by blind
users, and created a smart cash app for Indian rupee detection. YoloV3 has a superior recall value and performance.
Venkata Sai Teja et al.,[5] proposed a system that would allow a visually impaired person to know the accuracy of
the results shown when using the proof. When my MATLAB method is executed with a scanner or camera on a
Raspberry Pi, it will capture the paper currency and process the image as defined in the project to determine the true
and false HSV values of the currency, which in front gives the ability to a person with disabilities to detect it.
CHAPTER 3
METHODOLOGY
Mostly the methods of currency recognition are hardware methods, so to make it more feasible for people,
having a software system will be beneficial. A software solution includes a camera that can be activated
by voice command and does not require user input once activated.
Some constraints for image identification are Fluorescence, Intaglio, Serial number, and Reserve Bank of
India logo.
1)Image Acquisition
2)Pre-processing
3)Image segmentation
4)Feature Extraction
5)Matching of images
Image acquisition:
Image acquisition is the process of capturing images using a camera or other imaging device. In the
case of currency detection, the image acquisition process would involve taking a picture of a piece of
currency using a camera or a smartphone camera. The camera should be positioned directly over the
currency to minimize distortion and ensure that the image is as clear as possible.
It's important to ensure that the lighting conditions are optimal for capturing high-quality images of
currency. Adequate lighting can help to minimize shadows, glare, and other distortions that can affect the
accuracy of currency detection. To achieve this, a well-lit area with consistent lighting conditions is
recommended.
In addition to lighting, the camera settings should be optimized for capturing high-quality images.
This might include adjusting the focus, exposure, and other settings to ensure that the image is clear and
detailed.
Once the image has been captured, it can be used as input for the pre-processing, segmentation, feature
extraction, and matching steps of the currency detection process. These steps involve various algorithms
and techniques to analyze the image and extract relevant features, such as color, texture, and shape, that
can be used to identify the currency.
Pre-processing:
Pre-processing is a crucial step in any computer vision application, including currency detection. The
purpose of pre-processing is to enhance the quality of the input image by removing any noise or distortions
that may affect the accuracy of the detection algorithm. Here are some common pre-processing techniques
used in currency detection:
[Link] resizing: This involves resizing the input image to a specific size to ensure consistency across all
images. This also reduces the computational load required for subsequent image processing steps.
[Link] normalization: This involves adjusting the contrast and brightness of the input image to improve
its overall quality. This can be done using techniques such as histogram equalization, where the image's
intensity distribution is stretched to cover the full range of pixel values.
[Link] reduction: Images acquired from real-world environments can often contain noise and other
artifacts that can interfere with currency detection. Techniques such as Gaussian smoothing and median
filtering can be used to reduce these artifacts.
[Link] detection: This involves identifying the edges of objects in the image, which is useful for detecting
the edges of currency notes. Common edge detection techniques include Canny edge detection and Sobel
edge detection.
[Link] conversion: In currency detection, it is important to distinguish between different types of currency
notes based on their color. Color conversion techniques such as RGB to grayscale or RGB to HSV can be
used to extract color information from the input image.
Overall, pre-processing plays a critical role in currency detection by improving the quality of the input
image and preparing it for subsequent processing steps
Image Segmentation:
Image segmentation is the process of dividing an image into multiple segments or regions, each of which
correspond to a different object or part of the image. In the case of currency detection, the objective of
image segmentation is to identify the regions in the image that contain the currency note, and separate them
from the background and any other irrelevant objects.
The following steps can be used for image segmentation in currency detection:
[Link]: The first step is to convert the input image to grayscale and apply thresholding to obtain a
binary image where the currency note is in white and the background is in black.
[Link] operations: Morphological operations such as erosion and dilation can be applied to the
binary image to remove noise and fill gaps in the currency note region.
[Link] detection: Contours can be detected in the binary image using edge detection algorithms like
Canny edge detection. These contours can be used to identify the boundary of the currency note region.
[Link] filtering: Contours that do not correspond to the currency note can be filtered out based on their
size and shape.
[Link] box: A bounding box can be created around the remaining contour to mark the location and
size of the currency note region in the image.
By performing these steps, the currency note region can be identified and separated from the background
in the input image, which can be further processed for feature extraction and matching to identify the
currency denomination.
Feature Extraction:
Features are special properties that describe the image. Extract features to distinguish images.
Images are made up of pixels. So, in feature extraction, we find which parts of the image are special, suc
h as lines, corners, and special patches, which can uniquely identify the image. Feature extraction helps r
educe the amount of redundant information in a dataset.
The ORB (Oriented FAST and Rotated BRIEF) algorithm is a good example of feature detection.
Feature extraction is the process of selecting and extracting specific information from an image that is
relevant for a particular task. In the case of currency detection, this involves identifying and extracting
features that are unique to each denomination of currency, such as the size, shape, color, and texture of the
banknotes.
One common approach to feature extraction in currency detection is to use image processing techniques
such as edge detection, corner detection, and blob analysis to identify the boundaries and key features of
the banknotes. For example, edge detection can be used to extract the outline of the banknote, while corner
detection can identify the corners and edges of the banknote that are unique to each denomination.
Another approach to feature extraction is to use machine learning algorithms such as deep neural networks
to automatically learn and extract relevant features from the images.
This approach can be particularly effective for detecting subtle differences between banknotes that may be
difficult to identify using traditional image processing [Link], the goal of feature extraction in
currency detection is to extract a set of features that are unique to each denomination of currency and can
be used to accurately classify and identify the banknotes.
Based on the parameters mentioned, the feature extraction process for currency detection can involve the
following steps:
3) Security Thread:
Security threads are embedded in currency notes as a security feature to prevent counterfeiting. The thread
can be extracted by using image segmentation techniques such as thresholding and morphological
operations.
4) Serial number:
The serial number is a unique identifier that is printed on each currency note. It can be extracted by using
OCR (optical character recognition) techniques that can recognize the text in the image.
Once all these features are extracted, they can be used for matching the images of the currency notes. This
can be done by using machine learning algorithms such as Support Vector Machines (SVM), Random
Forest, and Convolutional Neural Networks (CNN). These algorithms can be trained on a dataset of
authentic currency note images to learn the features and patterns that are specific to each note.
Once trained, the algorithm can be used to match the features of a new currency note image with those in
the dataset and determine whether it is authentic or counterfeit.
Matching of images:
Matching of images is the final step in the proposed methodology for currency detection. This step involves
comparing the features extracted from the query image with the features extracted from the reference
images of known currency notes. The similarity score between the query image and the reference images
is calculated using a matching algorithm, and the currency note with the highest similarity score is
identified as the result.
There are several matching algorithms that can be used for this task, such as Euclidean distance, correlation
coefficient, and normalized cross-correlation. The choice of the matching algorithm depends on the type
of features extracted and the characteristics of the images.
One common approach for matching images is to use a nearest neighbor search, where the query image is
compared to a database of reference images, and the image with the closest feature vector is selected as the
match. Another approach is to use machine learning techniques such as support vector machines or neural
networks to learn a mapping between the feature space and the class labels (currency notes).
Matching of images is the final step in the proposed methodology for currency detection. This step involves
comparing the features extracted from the query image with the features extracted from the reference
images of known currency notes. The similarity score between the query image and the reference images
is calculated using a matching algorithm, and the currency note with the highest similarity score is
identified as the result.
There are several matching algorithms that can be used for this task, such as Euclidean distance, correlation
coefficient, and normalized cross-correlation. The choice of the matching algorithm depends on the type
of features extracted and the characteristics of the images.
One common approach for matching images is to use a nearest neighbor search, where the query image is
compared to a database of reference images, and the image with the closest feature vector is selected as the
match. Another approach is to use machine learning techniques such as support vector machines or neural
networks to learn a mapping between the feature space and the class labels
(currencynotes).During this matching, the best value that matches the data tells it to match the currency. I
t also provides audio information for visually impaired people.
Proposed System:
The methods that can be used to detect currency notes are generally non-public hardware systems.
The novelty of the system is that it is cheap and easy to use for blind people in India. For the visually
impaired, the app should be easy to use. It will have a camera that will be activated by voice command and
will not require user input when activated. In short, the challenge requires new cost-effective, robust, and
efficient models in many areas. Newer systems with better GUIs may well meet these needs.
Authentication results are quite easy to use, as shown in Figure 3, with the Android app open, tap the screen
to open the camera. After opening the mobile phone's camera, the user can tap anywhere on the screen to
take a picture. The application system will be designed to detect different notes of 10, 20, 50, 100, 200,
500, and 2000 rupees. The app will provide audio output of the results. The system only outputs satisfactory
results that match the original results and displays results instantly and accurately.
Here are some additional details that could be added to the proposed system:
1) The app could have a user-friendly interface with clear audio instructions and feedback to help visually
impaired users navigate the app and understand the results.
2) The app could also have a feature that allows users to save and organize their currency detection results
for future reference.
3) To enhance the accuracy of the currency detection, the system could use machine learning algorithms
such as convolutional neural networks (CNN) for feature extraction and classification.
4) The system could also include a database of images of genuine currency notes to use as a reference for
comparison, and perform image analysis and processing techniques such as edge detection and image
enhancement to improve the accuracy of the results.
5) The app could be designed to work offline, without requiring an internet connection, to ensure that it
can be used in areas with limited connectivity.
6) To ensure the security and authenticity of the results, the app could use encryption and authentication
protocols to protect user data and prevent fraud or misuse.
System Flowchart:
In the flowchart of the system, the first target user captures images. In this case, there are two major
decisions that the system must make to work. The first is to check if the photo taken by the user is free of
noise and if there are unique features in the photo that identifies the note. Otherwise, the user will receive
an error message of sound type. This flowchart is a physical tool that summarizes the activities to be
performed in the currency recognition system.
After the user takes a picture, the image goes through a pre-processing step to enhance the image quality
and remove any noise present in the image. Then, the image is segmented into different regions based on
the parameters that were previously identified as important for currency detection, such as the currency
value area, Reserve Bank of India logo, security thread, serial number, Mahatma Gandhi logo, and
Satyamev Jayate logo.
Next, feature extraction techniques are applied to the segmented regions to extract relevant information,
such as the color, texture, shape, and size of the regions. The extracted features are then compared to a pre-
defined set of features for different denominations of Indian currency notes using image matching
algorithms, such as template matching or feature matching.
If the extracted features match with any of the pre-defined features, the system will provide an audio output
to inform the user about the denomination of the currency note. If there is no match, the user will receive
an error message of sound type.
Overall, the system flowchart outlines the step-by-step process of how the currency recognition system
works and how it helps visually impaired individuals identify different denominations of Indian currency
notes.
START
Click
Picture of
note
No
Is the An error message is sent
picture to the user in Audio
taken format
correctly?
Yes
Pre-processing
Matching with
Dataset
Is the match No
found in
Dataset?
Ye
s
Recognition of
note
Audio
format
Output
END
CHAPTER 4
WORKING OF SYSTEM
The currency recognition system is designed to detect different denominations of Indian currency notes
using image processing and machine learning algorithms. The first step in the system architecture is to
capture images of the currency notes using a camera. The captured images are then processed using image
processing techniques to extract important features such as the currency value area, Reserve Bank of India
logo, security thread, serial number, Mahatma Gandhi logo, and Satyamev Jayate logo. These features are
then used for classification of the currency notes.
In the next step, the preprocessed images are fed into a machine learning model that has been trained on a
dataset of different denominations of Indian currency notes. The machine learning model uses a set of
processing nodes that represent mathematical operations, with edges representing the multidimensional data
(tensors) that communicate between them. The model makes predictions based on the extracted features and
outputs the denomination of the currency note.
The proposed system is designed to be cost-effective and user-friendly for visually impaired users. The
system is activated using voice commands and requires no user input when activated. The system is designed
to provide audio output of the prediction results for easy use by the visually impaired. The accuracy of the
system is evaluated based on the performance of different machine learning algorithms such as logistic
regression, support vector machine, random forest, and K nearest neighbors. The algorithm with the best
accuracy is selected as the model for predicting the denomination of Indian currency notes.
Data Collection
Data Preprocessing
Results
The currency recognition system architecture consists of four major components: input module, image processing
module, feature extraction module, and classification module.
Input Module: The input module is responsible for capturing the image of the currency note using a camera or
scanner. The captured image is then fed to the image processing module.
Image Processing Module: The image processing module is responsible for preprocessing the captured image to
remove noise, correct orientation, and adjust lighting conditions. This module enhances the quality of the image to
make it suitable for further processing.
Feature Extraction Module: The feature extraction module extracts relevant features from the preprocessed image.
The extracted features are used to identify the currency note. Feature extraction algorithms used in the system
include Histogram of Oriented Gradients (HOG), Local Binary Patterns (LBP), and Scale Invariant Feature
Transform (SIFT).
Classification Module: The classification module is responsible for classifying the currency note based on the
extracted features. The system uses machine learning algorithms such as Support Vector Machines (SVM),
Random Forest, and K-Nearest Neighbors (KNN) to classify the currency note. Once the note is classified,
the system provides the denomination of the currency note as output.
Overall, the system architecture includes the four major components working together to recognize the currency
note accurately.
development of algorithms which allow a computer to learn from the data and past experiences on their own.
The term machine learning was first introduced by Arthur Samuel in 1959. We can define it in a summarized
way as: Machine learning enables a machine to automatically learn from data, improve performance from
experiences, and predict things without being explicitly programmed.
With the help of sample historical data, which is known as training data, machine learning algorithms build
a mathematical model that helps in making predictions or decisions without being explicitly programmed.
Machine learning brings computer science and statistics together for creating predictive models. Machine learning
constructs or uses the algorithms that learn from historical data. The more we will provide the information, the
higher will be the performance.
We have also use various algorithms in our project to train the model and they are following:
1) K-Nearest Neighbors.
2) Logistic Regression.
3) Random Forest.
4) Support Vector Machine.
K-Nearest Neighbour is one of the simplest Machine Learning algorithms based on Supervised Learning
technique.
K-NN algorithm assumes the similarity between the new case/data and available cases and put the new case
into the category that is most similar to the available categories. K-NN algorithm stores all the available data
and classifies a new data point based on the similarity. This means when new data appears then it can be easily
classified into a well suite category by using K- NN algorithm.K-NN algorithm can be used for Regression as
well as for Classification but mostly it is used for the Classification problems.
K-NN is a non-parametric algorithm, which means it does not make any assumption on underlying data. It
is also called a lazy learner algorithm because it does not learn from the training set immediately instead it
stores the dataset and at the time of classification, it performs an action on the dataset. KNN algorithm at the
training phase just stores the dataset and when it gets new data, then it classifies that data into a category that
is much similar to the new data.
Example: Suppose, we have an image of a creature that looks similar to cat and dog, but we want to know
either it is a cat or dog. So for this identification, we can use the KNN algorithm, as it works on a similarity
measure. Our KNN model will find the similar features of the new data set to the cats and dogs images and
based on the most similar features it will put it in either cat or dog category.
KNN is also a supervised machine learning algorithm. KNN helps to solve both the classification and
regression problems. KNN is lazy prediction technique. KNN assumes that similar things are near to each
other. Many times data points which are similar are very near to each other. KNN helps to group new work
based on similarity measure. KNN algorithm record all the records and classify them according to their
similarity measure. For finding the distance between the points uses tree like structure. To make a prediction
for a new data point, the algorithm finds the closest data points in the training data set — it’s nearest neighbors.
Here K= Number of nearby neighbors, it’s always a positive integer. Neighbor’s value is chosen from set of
class. Closeness is mainly defined in terms of Euclidean distance. The Euclidean distance between two points
P and Q i.e. P (p1,p2, …. Pn) and Q (q1, q2,..qn) is defined by the following equation:
ALGORITHM :
● Take a sample dataset of columns and rows named as Pima Indian Diabetes data set.
● Take a test dataset of attributes and rows.
● Find the Euclidean distance by the help of formula :-
ADVANTAGE OF KNN :
• It is simple to implement.
• It is robust to the noisy training data
• It can be more effective if the training data is large.
Logistic regression is one of the most popular Machine Learning algorithms, which comes under the
Supervised Learning technique. It is used for predicting the categorical dependent variable using a given set
of independent variables. Logistic regression predicts the output of a categorical dependent variable. Therefore
the outcome must be a categorical or discrete value. It can be either Yes or No, 0 or 1, true or False, etc. but
instead of giving the exact value as 0 and 1, it gives the probabilistic values which lie between 0 and 1.
Logistic Regression is much similar to the Linear Regression except that how they are used. Linear Regression
is used for solving Regression problems, whereas Logistic regression is used for solving the classification
[Link] Logistic regression, instead of fitting a regression line, we fit an "S" shaped logistic function,
which predicts two maximum values (0 or 1).The curve from the logistic function indicates the likelihood of
something such as whether the cells are cancerous or not, a mouse is obese or not based on its weight, etc.
Logistic Regression is a significant machine learning algorithm because it has the ability to provide
probabilities and classify new data using continuous and discrete datasets. Logistic Regression can be used to
classify the observations using different types of data and can easily determine the most effective
variables used for the classification. The below image is showing the logistic function:
LR is a type of regression analysis. So, before we delve into logistic regression, let us first introduce the general
Regression analysis is a type of predictive modeling technique which is used to find the relationship between
a dependent variable (usually known as the “Y” variable) and either one independent variable (the “X”
variable) or a series of independent variables. When two or more independent variables are used to predict or
explain the outcome of the dependent variable, this is known as multiple regression.
1. Forecasting the effects or impact of specific changes. For example, if a manufacturing company
wants to forecast how many units of a particular product they need to produce in order to meet the
current demand.
2. Forecasting trends and future values. For example, how much will the stock price of Lufthansa be
in 6 months from now?
3. Determining the strength of different predictors—or, in other words, assessing how much of an
impact the independent variable(s) has on a dependent variable. For example, if a soft drinks company
is sponsoring a football match, they might want to determine if the ads being displayed during the
match have accounted for any increase in sales.
Regression analysis can be broadly classified into two types: Linear regression and logistic regression.
In statistics, linear regression is usually used for predictive analysis. It essentially determines the extent to
which there is a linear relationship between a dependent variable and one or more independent variables. In
terms of output, linear regression will give you a trend line plotted amongst a set of data points. You might
use linear regression if you wanted to predict the sales of a company based on the cost spent on online
advertisements, or if you wanted to see how the change in the GDP might affect the stock price of a company.
The second type of regression analysis is logistic regression, and that’s what we’ll be focusing on in this post.
Logistic regression is essentially used to calculate (or predict) the probability of a binary (yes/no) event
occurring. We’ll explain what exactly logistic regression is and how it’s used in the next section.
[Link] FOREST
Random Forest is a popular machine learning algorithm that belongs to the supervised learning technique. It
can be used for both Classification and Regression problems in ML. It is based on the concept of ensemble
learning, which is a process of combining multiple classifiers to solve a complex problem and to improve the
performance of the model.
As the name suggests, "Random Forest is a classifier that contains a number of decision trees on various
subsets of the given dataset and takes the average to improve the predictive accuracy of that dataset." Instead
of relying on one decision tree, the random forest takes the prediction from each tree and based on the majority
votes of predictions, and it predicts the final output.
The greater number of trees in the forest leads to higher accuracy and prevents the problem of overfitting.
The below diagram explains the working of the Random Forest algorithm:
Below are some points that explain why we should use the Random Forest algorithm:
ALGORITHM
Random Forest works in two-phase first is to create the random forest by combining N decision tree, and
second is to make predictions for each tree created in the first phase.
Step-2: Build the decision trees associated with the selected data points (Subsets).
Step-3: Choose the number N for decision trees that you want to build.
Step-5: For new data points, find the predictions of each decision tree, and assign the new data points to the
category that wins the majority votes.
Random forest is a commonly-used machine learning algorithm trademarked by Leo Breiman and Adele
Cutler, which combines the output of multiple decision trees to reach a single result. Its ease of use and
flexibility have fueled its adoption, as it handles both classification and regression problems.
Decision trees
Since the random forest model is made up of multiple decision trees, it would be helpful to start by describing
the decision tree algorithm briefly. Decision trees start with a basic question, such as, “Should I surf?” From
there, you can ask a series of questions to determine an answer, such as, “Is it a long period swell?” or “Is the
wind blowing offshore?”. These questions make up the decision nodes in the tree, acting as a means to split
the data. Each question helps an individual to arrive at a final decision, which would be denoted by the leaf
node. Observations that fit the criteria will follow the “Yes” branch and those that don’t will follow the
alternate path. Decision trees seek to find the best split to subset the data, and they are typically trained through
the Classification and Regression Tree (CART) algorithm. Metrics, such as Gini impurity, information gain,
or mean square error (MSE), can be used to evaluate the quality of the split.
This decision tree is an example of a classification problem, where the class labels are "surf" and "don't surf."
While decision trees are common supervised learning algorithms, they can be prone to problems, such as bias
and overfitting. However, when multiple decision trees form an ensemble in the random forest algorithm, they
predict more accurate results, particularly when the individual trees are uncorrelated with each other.
Ensemble methods
Ensemble learning methods are made up of a set of classifiers—e.g. decision trees—and their predictions are
aggregated to identify the most popular result. The most well-known ensemble methods are bagging, also
known as bootstrap aggregation, and boosting. In 1996, Leo Breiman (link resides outside [Link]) (PDF,
810 KB) introduced the bagging method; in this method, a random sample of data in a training set is selected
with replacement—meaning that the individual data points can be chosen more than once. After several data
samples are generated, these models are then trained independently, and depending on the type of task—i.e.
regression or classification—the average or majority of those predictions yield a more accurate estimate. This
approach is commonly used to reduce variance within a noisy dataset.
A support vector machine is a supervised learning algorithm that sorts data into two categories. It is trained
with a series of data already classified into two categories, building the model as it is initially trained. The task
of an SVM algorithm is to determine which category a new data point belongs in. This makes SVM a kind of
non-binary linear classifier.
An SVM algorithm should not only place objects into categories, but have the margins between them on a
graph as wide as possible.
It is a supervised machine learning problem where we try to find a hyperplane that best separates the two
classes. Note: Don’t get confused between SVM and logistic regression. Both the algorithms try to find the
best hyperplane, but the main difference is logistic regression is a probabilistic approach whereas support
vector machine is based on statistical approaches.
Now the question is which hyperplane does it select? There can be an infinite number of hyperplanes passing
through a point and classifying the two classes perfectly. So, which one is the best?
Well, SVM does this by finding the maximum margin between the hyperplanes that means maximum distances
Linear SVM
When the data is perfectly linearly separable only then we can use Linear SVM. Perfectly linearly separable
means that the data points can be classified into 2 classes by using a single straight line(if 2D).
Non-Linear SVM
When the data is not linearly separable then we can use Non-Linear SVM, which means when the data points
cannot be separated into 2 classes by using a straight line (if 2D) then we use some advanced techniques like
kernel tricks to classify them. In most real-world applications we do not find linearly separable datapoints
Now let’s define two main terms which will be repeated again and again in this article:
Support Vectors: These are the points that are closest to the hyperplane. A separating line will be defined
Margin: it is the distance between the hyperplane and the observations closest to the hyperplane (support
vectors). In SVM large margin is considered a good margin. There are two types of margins hard
margin and soft margin. I will talk more about these two in the later section.
Deep learning is a subset of machine learning that involves the use of artificial neural networks with
multiple layers to model and learn from data. The key difference between deep learning and traditional
machine learning is the use of multiple layers of non-linear processing units in deep learning algorithms,
allowing them to learn complex and hierarchical representations of data.
Deep learning algorithms have been widely successful in a variety of domains, including computer vision,
natural language processing, speech recognition, and robotics. They have been used to achieve
state-of-the-art performance on a range of tasks such as image classification, object detection,
speech recognition, machine translation, and game playing.
Some of the most popular deep learning architectures include Convolutional Neural Networks (CNNs),
Recurrent Neural Networks (RNNs), and Generative Adversarial Networks (GANs).
These architectures have been used to solve a range of problems, from image and
speech recognition to natural language processing and autonomous driving.
One of the key advantages of deep learning is that it can automatically learn relevant features
and representations from raw data, without the need for manual feature engineering. This makes it a
powerful tool for processing large amounts of complex data, and has enabled breakthroughs in many fields.
We have also use various algorithms in our project to train the model and they are following:
1) Convolutional neural network:
2) Recurrent neural network
Convolutional Neural Networks (CNNs) are a type of deep learning algorithm that are particularly well-suited for
image and video processing tasks, but can also be used for other types of data such as audio and text. CNNs use a
multi-layer architecture that is specifically designed to process and analyze visual data.
The key innovation of CNNs is the use of convolutional layers, which are specialized layers that learn to detect and
extract local features from input images. These convolutional layers are followed by pooling layers, which
aggregate and downsample the output of the convolutional layers, reducing the spatial size of the input and
improving computational efficiency. The resulting feature maps are then flattened and fed into one or more fully
CNNs have achieved state-of-the-art performance on a wide range of image and video processing tasks, including
image classification, object detection, semantic segmentation, and image captioning. They have also been used for
speech recognition, natural language processing, and other types of data analysis tasks.
Some popular CNN architectures include AlexNet, VGG, ResNet, and Inception, which have achieved
groundbreaking results on various computer vision tasks.
Recurrent Neural Networks (RNNs) are a type of neural network that are particularly well-suited for sequence data,
such as text, speech, and time series data. RNNs are designed to process sequential inputs of variable length, and
they are able to capture the temporal dependencies and context in the input data.
The key innovation of RNNs is the use of recurrent connections, which allow information to be passed from one
time step to the next. This means that the hidden state of the network can encode the context and history of the
input sequence, which makes RNNs well-suited for tasks such as language modeling, speech recognition, and
machine translation.
One limitation of basic RNNs is that they can suffer from the vanishing gradient problem, which occurs when the
gradients used to update the weights during training become too small to be useful. To address this issue, various
RNN variants have been proposed, including Long Short-Term Memory (LSTM) and Gated Recurrent Units
(GRU), which use specialized gating mechanisms to control the flow of information through the network and avoid
the vanishing gradient problem.
RNNs have achieved state-of-the-art performance on a wide range of sequence modeling tasks, including natural
language processing, speech recognition, and time series forecasting. They are also used in combination with other
types of neural networks, such as Convolutional Neural Networks (CNNs) and Transformers, to process complex
inputs with multiple modalities.
4.6 ALGORITHM
TensorFlow is a powerful framework that works using a set of processing nodes, each representing a
mathematical operation, the entire series of nodes called "graphs". TensorFlow is a software library for
computing in graphics systems, where: The nodes in the graph represent mathematical operations. The
edges in the diagram represent multidimensional data (called tensors) communicating between them.
TensorFlow is an open-source machine learning framework developed by Google. It was first released in
2015 and has since become one of the most popular deep learning frameworks in use today. TensorFlow
is designed to allow developers to build and deploy machine learning models quickly and easily, using a
wide range of high-level APIs and tools.
The core of TensorFlow is its computational graph engine, which allows users to define and execute
complex mathematical operations on multi-dimensional arrays called tensors. The graph engine is
highly optimized, and can efficiently distribute computations across multiple CPUs or GPUs for faster
training and inference.
One of the key advantages of TensorFlow is its flexibility and scalability. TensorFlow can be used for
a wide range of machine learning tasks, including deep learning, reinforcement learning, and
probabilistic programming. It supports a variety of programming languages, including Python, C++,
and Java, and can be used on a wide range of platforms, including desktop computers, mobile devices,
and cloud servers.
TensorFlow also includes a number of high-level APIs and tools that make it easier to build and
deploy machine learning models. These include:
TensorFlow has been used to build a wide range of machine learning applications, including image and speech
recognition, natural language processing, autonomous driving, and robotics. It has also been used in research to
achieve state-of-the-art results on a number of benchmark tasks.
Algorithm Steps:
A large number of images should be collected so that the comparison is easier, and the system becomes
more precise. In the case of analyzing the results, several clusters of 5, 10, 20, 50, 100, 200, 500, and 2000
are captured at different angles in different lighting to get superior results. With these, dataset decision
images should be created, and this dataset should be fast.
When enough images have been collected, the next step is to train the model. A Docker container can be
used to get a TensorFlow installation. This process will take few minutes depending on the number of
images available and the number of training steps specified.
This model is now available. To use the training model on a mobile device, it must be optimized using a
tool called inference optimization, removing all unnecessary nodes and other optimizations.
The optimized model will now be included in the app. Once the Android app is ready, it can be effectively
used to identify Indian currency notes.
Install the build package (APK) on the user's mobile phone. Check out how it works on paper currency in
different situations. This step is necessary as it helps measure usability. If problems are found with these
steps, they should be corrected by reviewing or adding training materials for better results.
CHAPTER 5
ANALYSIS
Sample Code:-
This Dataset contains 1050 images of 7 categories of Indian Currency Notes, this data is collected from Phone
camera.
This Dataset looks forward, as a Image Classification Data, which contains 7 Distinct types of Indian Currency
Notes, the images are not reduced to any single size, they may have different proportions.
Dataset Size Time Required for Dataset Time required for matching
Preprocessing (in seconds) (in seconds)
20 0.61 3.02
40 1.13 5.27
60 1.72 7.02
80 2.10 9.21
• Background: This attribute would indicate the color and design of the background of the currency note,
which could also be used to differentiate it from other denominations.
5.3PERFORMANCE ANALYSIS
In this project, various machine learning algorithms like SVM, Decision Tree, Random Forest, and K-Nearest
Neighbors (KNN) were used to recognize currency notes from images. The dataset consisted of images of
different Indian currency notes, and the algorithms were trained to recognize the denomination of each note.
The input dataset attributes for the currency recognition system included:
Accuracy: Accuracy is the ratio of the number of correct predictions to the total number of inputs in the dataset.
It is expressed as:
Confusion Matrix: It gives us a matrix as output and gives the total performance of the system. The confusion
matrix for the currency recognition system is as follows:
Recall: Recall is the ratio of true positive predictions to the total number of actual positive cases. It is expressed
as:
F1-Score: F1-score is the harmonic mean of precision and recall. It is expressed as:
The evaluation metrics were calculated for each algorithm, and the algorithm with the highest accuracy was
selected for currency recognition.
Chapter 6
DESIGN AND IMPLEMENTATION
Design goal:
Design is a meaningful engineering representation of something that is to be built. It can be traced to a
customer’s requirements and at the same time assessed for quality against a set of predefined criteria for
―good design. In the software engineering context, design focuses on four major areas of concern: data,
architecture, interfaces, and components. The design process translate requirement into representation of
software that can be accessed for a quality before core generation. Design is the process through which
requirement are translated to blue print for constructing into software. Initially the blueprint depicts the holistic
view of software. This is the design represented at the high level of abstraction. During various stages of
system development and design following goals have been setup for a complete architecture.
• Analysis
• Design
• Development
• Testing
• Implementation
Design Strategy:
System design is the process of planning a new system or to replace the existing system. Simply, system design
is like the blueprint for building, it specifies all the features that are to be in the finished product. System
design phase follows system analysis phase. Design is concerned with identifying functions, data streams
among those functions, maintaining a record of the design decisions and providing a blueprint for the
implementation phase. Design is the bridge between system analysis and system implementation. Some of the
essential fundamental concepts involved in the design of application software are:
ABSTRACTION
Abstraction is used to construct solutions to problems without having to take account of the intricate details of
the various component sub problems. Abstraction allows system designers to make stepwise refinement, which
at each stage of design may hide unnecessary details associated with representation or implementation from
the surrounding environment.
MODULARITY
Modularity is concerned with decomposing the main module into well-defined manageable units with well-
defined interfaces among the units. This enhances design clarity, which in turn eases implementation,
Debugging, Testing, Documenting and Maintenance of the software product. Modularity viewed in this sense
is a vital tool in the construction of large software projects.
VERIFICATION
Verification is a fundamental concept in software design. A design is verifiable if it can be demonstrated that
the design will result in implementation that satisfies the customer’s requirements. Verification is of two types
namely.
Verification that the software requirements analysis satisfies the customer’s needs.
Verification that the design satisfies the requirement analysis.
Some of the important factors of quality that are to be considered in the design of application software are:
Reliability:
The software should behave strictly according to the original specification and should function smoothly under
normal conditions.
Extensibility:
The software should be capable of adapting easily to changes in the specification.
Reusability:
The software should be developed using a modular approach, which permits modules to be reused by other
applications, if possible.
The System Design briefly describes the concept of system design and it contains four sections. The first
section briefly describes the features that the system is going to provide to the user and the outputs that the
proposed system is going to offer.
The second section namely Logical Design describes the Data Flow Diagrams, which show clearly the data
movements, the processes and the data sources, and sinks, E-R diagrams which represent the overall logical
design of the database, and high-level process structure of the system. The process of design involves
“conceiving and planning out in the mind” and making a drawing pattern, or sketch of the system.
In software design there are two types of major activities, Conceptual Design and Detailed Design.
Conceptual or logical or external design of software involves conceiving, planning out, and specifying the
externally observable characteristics of a software product. These characteristics include user displays,
external data sources, functional characteristics and high-level process structure for the product
Details or internal design involves conceiving, planning out, and specifying the internal structure and
processing details of the software product. The goal of internal design is to specify internal structure,
processing details, blueprint of implementation, testing, and maintenance activities.
One of the important fundamental concepts of software design is modularity. A modularity system consists of
interfaces among the units. Modularity enhances design clarity, which in turn eases implementation,
debugging, testing, documentation, and maintenance of the software product.
The other fundamental concepts of software design include abstraction, structure, information hiding,
concurrency and verification. The use of structuring permits decomposition of a large system into smaller,
more manageable units with well-defined relationships to the other units. The system design is verifiable if it
can be demonstrated that the design will result in an implementation that satisfies the customer’s requirements.
Preliminary Design:
Preliminary design is basically concerned with deriving an overall picture of the system. Deriving the entire
system into modules and sub-modules while keeping Cohesion and Coupling factors in mind. Tools, which
assist in the preliminary design process, are Data Flow Diagrams.
Code design:
The purpose of code is to facilitate the identification and retrieval for items of information. A code is an
ordered collection of symbols designed to provide unique identification of an entity or attribute. To achieve
unique identification there must be only one place where the identified entity or the attribute can be entered in
the code; conversely there must be a place in the code for everything that is to be identified. This mutually
exclusive feature must be built into any coding system.
The codes for this system are designed with two features in mind. Optimum human
oriented use and machine efficiency. Length of the code range from length of one to length of five
characteristics:
The code structure is unique; ensuring that only one value of the code with a single
meaning may be correctly applied to a given entity or attribute.
The code structure is extensible allowing for growth of its set of entities and attributes.
The code is concise and brief for recording, communication, and transmission and storage efficiencies.
They have a uniform size and format.
The codes are simple so that the user can easily understand it.
The codes are also versatile i.e., it is easy to modify to reflect necessary changes in condition, chart eristic and
relationships of the encode entities.
The codes are also easily storable for producing reports in a predetermined order of format.
The codes are also stable and do not require being frequently updated thereby promoting user efficienct.
MODULE DIAGRAM
STATE DIAGRAM
The name of the diagram itself clarifies the purpose of the diagram and other details. It describes different states
of a component in a system. The states are specific to a component/object of a system. A State Chart diagram
describes a state machine. State machine can be defined as a machine which defines different states of an object
and these states are controlled by external or internal events. As State Chart diagram defines the states, it is used
to model the lifetime of an object. State Chart diagrams are also used for forward and reverse engineering of a
system. State Chart diagram is one of the five UML diagrams used to model the dynamic nature of a system.
They define different states of an object during its lifetime and these states are changed by events. State Chart
diagrams are useful to model the reactive systems. However, the main purpose is to model the reactive system.
Following are the main purposes of using State Chart diagrams.
State diagrams are used to give an abstract description of the behaviour of a system. This behaviour is analyzed
and represented as a series of events that can occur in one or more possible states. State diagrams can be used to
graphically represent finite state machines. Classic state diagrams require the creation of distinct nodes for every
valid combination of parameters that define the state. This can lead to a very large number of nodes and
transitions between nodes for all but the simplest of systems. This complexity reduces the readability of the state
diagram.
Chapter 7
IMPLEMENTATION
• RAM: 8.00GB
• HARD DISK: 1 TB
It should be noted that better the hardware facilities available, higher would be responsetime of the
system.
The software requirement document is the specification of the system. The software requirement provides a
basis for creating the software requirements specification.
OPERATING SYSTEM: Windows
TECHNOLOGIES: Python
LIBRARIES: Flask, pandas, NumPy, pickle, sklearn
Python
Python is an interpreted, high-level, general purpose programming language created by Guido Van Rossum
and first released in 1991, Python's design philosophy emphasizes code Readability with its notable use of
significant White space. Its language constructs and object oriented approach aim to help programmers write
clear, logical code for small and large-scale projects. Python is dynamically typed and garbage collected. It
supports multiple programming paradigms, including procedural, object-oriented, and functional
programming.
Sklearn
Scikit-learn (Sklearn) is the most useful and robust library for machine learning in Python. It provides a
selection of efficient tools for machine learning and statistical modeling including classification, regression,
clustering and dimensionality reduction via a consistent interface in Python. This library, which is largely
written in Python, is built upon NumPy, SciPy and Matplotlib.
Numpy
NumPy is a library for the python programming language, adding support for large, multi- dimensional
arrays and matrices, along with a large collection of high level mathematical functions to operate on these
arrays. The ancestor of NumPy, Numeric, was originally created by Jim with contributions from several
other developers. In 2005, Travis created NumPy by incorporating features of the competing Numarray into
Numeric, with extensive modifications. NumPy is open source software and has many contributors.
Librosa
Librosa is a Python package for music and audio analysis. Librosa is basically used when we work with
audio data like in music generation(using LSTMs), Automatic Speech Recognition. It provides the building
blocks necessary to create the music information retrieval systems. Librosa helps to visualize the audio
signals and also do the feature extractions in it using different signal processing techniques.
Matplotlib :
Matplotlib is a plotting library for the Python programming language and its numerical mathematics
extension NumPy. It provides an object-oriented API for embedding plots into applications using general-
purpose GUI toolkits like Tkinter, wxPython, Qt, or GTK. There is also a procedural "pylab" interface based
on a statemachine (like OpenGL), designed to closely resemble that of MATLAB, though its use is
discouraged.
Seaborn
Seaborn is a Python data visualization library based on matplotlib. It provides a highlevel interface for
drawing attractive and informative statistical graphics. Seaborn is a library in Python predominantly used for
making statistical graphics. Seaborn is a data visualization library built on top of matplotlib and closely
integrated with pandas data structures in Python. Visualization is the central part of Seaborn which helps in
exploration and understanding of data.
SciPy
SciPy contains modules for optimization, linearalgebra, integration, interpolation, special functions, FFT,
signal and imageprocessing, ODE solvers and other tasks common in science and engineering. SciPy is also
a family of conferences for users and developers of these tools: SciPy (in the United States), EuroSciPy (in
Europe) and [Link] (in India). Enthought originated the SciPy conference in the United States and
continues to sponsor many of the international conferences as well as host the SciPy website. SciPy is a
scientific computation library that uses NumPy undserneath. It provides more utility functions for
optimization, stats and signal processing.
Flask:
Flask is a micro web framework written in Python. It is classified as a microframework because it does not
require particular tools or libraries. It has no database abstraction layer, form validation, or any other components
where pre-existing third-party libraries provide common functions. However, Flask supports extensions that can
add application features as if they were implemented in Flask itself. Extensions exist for object-relational
mappers, form validation, upload handling, various open authentication technologies and several common
framework related tools.
7.2 Testing:
System testing is the stage before system implementation where the system is made error free and all the needed
modifications are made. The system was tested with test data and necessary corrections to the system were carried
out. All the reports were checked by the user and approved. The system was very user friendly with online help
to assist the user wherever necessary.
Test Plan:
A test plan is a general document for the entire project, which defines the scope, approach to be taken, and
schedule of testing, as well as identifying the test item for the entire testing process, and the personnel responsible
for the different activities of
testing. This document describes the plan for testing, the knowledge management tool. A Test Plan is a detailed
document that describes the test strategy, objectives, schedule, estimation, deliverables, and resources required to
perform testing for a software product. Test Plan helps us determine the effort needed to validate the quality of the
application under test. The test plan serves as a blueprint to conduct software testing activities as a defined process,
which is minutely monitored and controlled by the test manager.
Test units:
Test Case specification is a major activity in the testing process. In this project, we have performed two levels of testing.
Unit testing
System testing
The basic units in Unit testing are:
● Exception handling
How can you test a product without any information about it? The answer is [Link] must learn a product
thoroughly before testing it.
The product under test is educational website/system. You should research clients andthe end users to know
their needs and expectations from the application
Who will use the website/system?What is it used for?
How will it work?
Chapter 8
SSGMCE Shegaon(session 2022-2023) page | 47
Currency detector android application for visually impaired people
REFRENCE
[1]. Pratiksha Ganjave1, Rushikesh Markad2, Gaurav Rasal3, Yash Kalekar4 "Currency Detector
for Visually Impaired (Study of The System Which Identifies Indian Currency for Blind
People)" International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-
0181 IJERTV10IS110073 (This work is licensed under a Creative Commons Attribution 4.0
International License.) Vol. 10 Issue 11, November-2021.
[2]. Srushti Samant1, Sakshi Sonawane2, Rohini Thorat3, Parsika Shah Bera4, Dr. N. P. Kulkarni5
"CURRENCY RECOGNITION SYSTEM FOR VISUALLY IMPAIRED PEOPLE" international journal
of advanced scientific research and engineering trend Volume 5 Issue 3 March 2020.
[3]. Shweta Yadav, Mr. Zulfikar Ali Ansari, Kaushiki Gautam Singh "CURRENCY DETECTION FOR
VISUALLY IMPAIRED" 2020 JETIR May 2020, Volume 7, Issue 5.
[4]. Gerrit J. J. van den Burg, Christopher K. I. Williams - “An Evaluation of Change Point
Detection Algorithms - May 2020”.
Chapter 9
RESEARCH PAPER
Chapter 9
CERTIFICATE OF PUBLICATION