PROJECT REPORT
A NOVEL METHOD FOR
HANDWRITTEN DIGIT RECOGNITION
submitted by
PNT2022TMID37575
Nishanth R J - 312019205020
Dineshkumar E - 312019205002
Hari Haran S - 312019205005
Lokesh Raj D - 312019205012
TABLE OF CONTENTS
1 INTRODUCTION 1
1.1 PROJECT OVERVIEW 1
1.2 PURPOSE 1
2 LITERATURE SURVEY 2
2.1 EXISTING PROBLEM 2
2.2 REFERENCES 2
2.3 PROBLEM STATEMENT DEFINITION 5
3 IDEATION AND PROPOSED SOLUTION 6
3.1 EMPATHY MAP CANVAS 6
3.2 IDEATION & BRAINSTORMING 7
3.3 PROPOSED SOLUTION 8
3.4 PROBLEM SOLUTION FIT 9
4 REQUIREMENT ANALYSIS 10
4.1 FUNCTIONAL REQUIREMENTS 10
4.2 NON FUNCTIONAL REQUIREMENTS 11
5 PROJECT DESIGN 12
5.1 DATA FLOW DIAGRAM 12
5.2 SOLUTION & TECHNICAL ARCHITECTURE 13
5.3 USER STORIES 15
6 PROJECT PLANNING AND SCHEDULING 16
6.1 SPRINT PLANNING AND ESTIMATION 16
6.2 SPRINT DELIVERY SCHEDULE 17
7 CODING & SOLUTIONING 18
8 TESTING 20
8.1 TEST CASES 20
8.2 USER ACCEPTANCE TESTING 22
8.2.1 DEFECT ANALYSIS 22
8.2.2 TEST CASE ANALYSIS 22
9 RESULTS 23
9.1 PERFORMANCE METRICS 23
10 ADVANTAGES & DISADVANTAGES 29
ADVANTAGES 29
DISADVANTAGES 29
11 CONCLUSION 30
12 FUTURE SCOPE 31
APPENDIX 32
SOURCE CODE 32
GITHUB 41
PROJECT DEMO 41
CHAPTER 1
INTRODUCTION
1.1 PROJECT OVERVIEW
Machine learning and deep learning play an important role in computer
technology and artificial intelligence. With the use of deep learning and machine
learning, human effort can be reduced in recognizing, learning, predictions and in
many more areas.
Handwritten Digit Recognition is the ability of computer systems to recognise
handwritten digits from various sources, such as images, documents, and so on. This
project aims to let users take advantage of machine learning to reduce manual tasks
in recognizing digits.
1.2 PURPOSE
Digit recognition systems are capable of recognizing the digits from different
sources like emails, bank cheque, papers, images, etc. and in different real-world
scenarios for online handwriting recognition on computer tablets or system,
recognize number plates of vehicles, processing bank cheque amounts, numeric
entries in forms filled up by hand (tax forms) and so on.
1
CHAPTER 2
LITERATURE SURVEY
2.1 EXISTING PROBLEM
The fundamental problem with handwritten digit recognition is that
handwritten digits do not always have the same size, width, orientation, and margins
since they vary from person to person. Additionally, there would be issues with
identifying the numbers because of similarities between numerals like 1 and 7, 5 and
6, 3 and 8, 2 and 5, 2 and 7, etc. Finally, the individuality and variation of each
individual's handwriting influence the structure and appearance of the digits.
2.2 REFERENCES
Improved Handwritten Digit Recognition Using Convolutional Neural Networks
(CNN) (2020)
Ahlawat, Savita and Choudhary, Amit and Nayyar, Anand and Singh, Saurabh and Yoon, Byungun
This paper's primary goal was to enhance handwritten digit recognition ability. To
avoid difficult pre-processing, expensive feature extraction, and a complex
ensemble (classifier combination) method of a standard recognition system, they
examined different convolutional neural network variations. Their current work
makes suggestions on the function of several hyper-parameters through thorough
evaluation utilizing an MNIST dataset. They also confirmed that optimizing
hyper-parameters is crucial for enhancing CNN architecture performance. With the
Adam optimizer for the MNIST database, they were able to surpass many previously
published results with a recognition rate of 99.89%. Through the trials, it is made
2
abundantly evident how the performance of handwritten digit recognition is
affected by the number of convolutional layers in CNN architecture. According to
the paper, evolutionary algorithms can be explored for optimizing convolutional filter
kernel sizes, CNN learning parameters, and the quantity of layers and learning rates.
An Efficient And Improved Scheme For Handwritten Digit Recognition Based On
Convolutional Neural Network (2019)
Ali, Saqib and Shaukat, Zeeshan and Azeem, Muhammad and Sakhawat, Zareen and Mahmood, Tariq
and others
This study uses rectified linear units (ReLU) activation and a convolutional neural
network (CNN) that incorporates the Deeplearning4j (DL4J) architecture to
recognize handwritten digits. The proposed CNN framework has all the necessary
parameters for a high level of MNIST digit classification accuracy. The system's
training takes into account the time factor as well. The system is also tested by
altering the number of CNN layers for additional accuracy verification. It is important
to note that the CNN architecture consists of two convolutional layers, the first with
32 filters and a 5x5 window size and the second with 64 filters and a 7x7 window
size. In comparison to earlier proposed systems, the experimental findings show that
the proposed CNN architecture for the MNIST dataset demonstrates great
performance in terms of time and accuracy. As a result, handwritten numbers are
detected with a recognition rate of 99.89% and high precision (99.21%) in a short
amount of time.
3
Improved Handwritten Digit Recognition Using Quantum K-Nearest Neighbor
Algorithm (2019)
Wang, Yuxiang and Wang, Ruijin and Li, Dongfen and Adu-Gyamfi, Daniel and Tian, Kaibin and Zhu,
Yixin
The KNN classical machine learning technique is used in this research to enable
quantum parallel computing and superposition. They used the KNN algorithm with
quantum acceleration to enhance handwritten digit recognition. When dealing with
more complicated and sizable handwritten digital data sets, their suggested method
considerably lowered the computational time complexity of the traditional KNN
algorithm. The paper offered a theoretical investigation of how quantum concepts
can be applied to machine learning. Finally, they established a fundamental
operational concept and procedure for machine learning with quantum acceleration.
Handwritten Digit Recognition Using Machine And Deep Learning Algorithms
(2021)
Pashine, Samay and Dixit, Ritik and Kushwah, Rishika
In this study, they developed three deep and machine learning-based models for
handwritten digit recognition using MNIST datasets. To determine which model was
the most accurate, they compared them based on their individual properties.
Support vector machines are among the simplest classifiers, making them faster
than other algorithms and providing the highest training accuracy rate in this
situation. However, due to their simplicity, SVMs cannot categorize complicated and
ambiguous images as accurately as MLP and CNN algorithms can. In their research,
they discovered that CNN produced the most precise outcomes for handwritten
digit recognition. This led them to the conclusion that CNN is the most effective
4
solution for all types of prediction issues, including those using picture data. Next,
by comparing the execution times of the algorithms, they determined that
increasing the number of epochs without changing the configuration of the
algorithm is pointless due to the limitation of a certain model, and they discovered
that beyond a certain number of epochs, the model begins over-fitting the dataset
and provides biased predictions.
2.3 PROBLEM STATEMENT DEFINITION
For years, the traffic department has been combating traffic law violators.
These offenders endanger not only their own lives, but also the lives of other
individuals. Punishing these offenders is critical to ensuring that others do not
become like them. Identification of these offenders is next to impossible because it
is impossible for the average individual to write down the license plate of a reckless
driver. Therefore, the goal of this project is to help the traffic department identify
these offenders and reduce traffic violations as a result.
5
CHAPTER 3
IDEATION AND PROPOSED SOLUTION
3.1 EMPATHY MAP CANVAS
6
3.2 IDEATION & BRAINSTORMING
7
3.3 PROPOSED SOLUTION
S.NO PARAMETER DESCRIPTION
To create an application that
1 Problem Statement
recognizes handwritten digits
The application takes an image
2 Idea / Solution Description as the input and accurately
detects the digits in it.
Instead of recognizing every
3 Novelty / Uniqueness text, the application accurately
recognizes only the digits
This application reduces the
Social Impact / Customer manual tasks that need to be
4
Satisfaction performed. This improves
productivity in the workplace.
The application can be
integrated with traffic
surveillance cameras to
recognize vehicle number plates
5 Business Model
The application can be
integrated with Postal systems
to recognize the pin codes
effectively
The application can easily be
scaled to accept multiple inputs
6 Scalability of the Solution
and process them parallelly to
further increase efficiency
8
3.4 PROBLEM SOLUTION FIT
9
CHAPTER 4
REQUIREMENT ANALYSIS
4.1 FUNCTIONAL REQUIREMENTS
FR.NO FUNCTIONAL REQUIREMENTS SUB REQUIREMENTS
Get access the MNIST dataset
Analyze the dataset
FR-1 Model Creation
Define a CNN model
Train and Test the Model
Create a website to let the user
recognize handwritten digits.
Create a home page to upload
images
FR-2 Application Development
Create a result page to display
the results
Host the website to let the users
use it from anywhere
Let users upload images of
various formats.
Let users upload images of
various size
FR-3 Input Image Upload Prevent users from uploading
unsupported image formats
Pre-Process the image to use it
on the model
10
Create a database to store all
the input images
Display the result from the
model
Display input image
FR-4 Display Results Display accuracy the result
Display other possible
predictions with their respective
accuracy
4.2 NON FUNCTIONAL REQUIREMENTS
NFR NON-FUNCTIONAL REQUIREMENTS DESCRIPTION
The application must be usable
NFR-1 Usability
in all devices
The application must protect
NFR-2 Security
user uploaded image
The application must give an
NFR-3 Reliability accurate result as much as
possible
The application must be fast and
NFR-4 Performance
quick to load up
The application must be
NFR-5 Availability
available to use all the time
The application must scale along
NFR-6 Scalability
with the user base
11
CHAPTER 5
PROJECT DESIGN
5.1 DATA FLOW DIAGRAM
12
5.2 SOLUTION & TECHNICAL ARCHITECTURE
13
14
5.3 USER STORIES
User
Functional
User Type Story User Story / Task Acceptance Criteria Priority Release
Requirements
Number
As a user, I should be
able to access the User can access the
Accessing the
USN-1 application from application using the High Sprint-4
Application
anywhere and use on browser on any device
any devices
As a user, I should be
Uploading User can upload
USN-2 able to upload images High Sprint-3
Image images
to predict the digits
As a user, I should be
Viewing the The result of the
Customer USN-3 able to view the High Sprint-3
Results prediction is displayed
results
As a user, I should be The accuracy of other
Viewing Other
USN-4 able to see other values must be Medium Sprint-4
Prediction
close predictions displayed
As a user, I should
have a usage The usage instruction is
Usage
USN-5 instruction to know displayed on the home Medium Sprint-4
Instruction
how to use the page
application
15
CHAPTER 6
PROJECT PLANNING AND SCHEDULING
6.1 SPRINT PLANNING AND ESTIMATION
STORY
SPRINT USER STORY / TASK PRIORITY TEAM MEMBERS
POINTS
Get the dataset 3 High Lokesh Raj D
Lokesh Raj D
Explore the data 2 Medium
Dinesh Kumar E
Sprint - I
Nishanth R J
Data Pre-Processing 3 High
Hari Haran S
Prepare training and Nishanth R J
3 High
testing data Hari Haran S
Create the model 3 High Nishanth R J
Sprint - II Train the model 3 High Hari Haran S
Test the model 3 High Dinesh Kumar E
Nishanth R J
Improve the model 2 Medium
Hari Haran S
Save the model 3 High Lokesh Raj D
Sprint - III
Dinesh Kumar E
Build the Home Page 3 High
Lokesh Raj D
Setup a database to
2 Medium Nishanth R J
store input images
Dinesh Kumar E
Sprint - IV Build the results page 3 High
Lokesh Raj D
16
Integrate the model Dinesh Kumar E
3 High
with the application Nishanth R J
Hari Haran S
Test the application 3 High
Dinesh Kumar E
6.2 SPRINT DELIVERY SCHEDULE
STORY
POINTS SPRINT
TOTAL SPRINT SPRINT
COMPLETED RELEASE
SPRINT STORY DURATION START END DATE
(AS ON DATE
POINTS DATE (PLANNED)
PLANNED (ACTUAL)
DATE)
24 Oct 29 Oct 29 Oct
Sprint - I 11 6 Days 11
2022 2022 2022
31 Oct 05 Nov 05 Nov
Sprint - II 9 6 Days 9
2022 2022 2022
07 Oct 12 Nov 12 Nov
Sprint - III 10 6 Days 10
2022 2022 2022
14 Nov 19 Nov 19 Nov
Sprint - IV 9 6 Days 9
2022 2022 2022
17
CHAPTER 7
CODING & SOLUTIONING
18
19
CHAPTER 8
TESTING
8.1 TEST CASES
Test case Feature Test
Component Expected Result Actual Result Status
ID Type Scenario
Verify UI
The Home page
elements in Working as
HP_TC_001 UI Home Page must be displayed PASS
the Home expected
properly
Page
Check if the UI The UI is not
elements are displayed
The Home page
displayed properly in
HP_TC_002 UI Home Page must be displayed FAIL
properly in screen size
properly in all sizes
different 2560 x 1801
screen sizes and 768 x 630
The input image
Check if user should be
Working as
HP_TC_003 Functional Home Page can upload uploaded to the PASS
expected
their file application
successfully
Check if user The application
cannot upload should not allow User is able to
HP_TC_004 Functional Home Page FAIL
unsupported user to select a upload any file
files non image file
Check if the
page redirects The page should
Working as
HP_TC_005 Functional Home Page to the result redirect to the PASS
expected
page once the results page
input is given
20
Check if all the
All the routes
routes are Working as
BE_TC_001 Functional Backend should properly PASS
working expected
work
properly
Check if the The model should
model can rescale the image Working as
M_TC_001 Functional Model PASS
handle various and predict the expected
image sizes results
Check if the
The model should
model Working as
M_TC_002 Functional Model predict the PASS
predicts the expected
number
digit
The model fails
Check if the
The model should to identify the
model can
predict the digit since the
M_TC_003 Functional Model handle FAIL
number in the model is not
complex input
complex image built to handle
image
such data
Verify UI
The Result page
elements in Working as
RP_TC_001 UI Result Page must be displayed PASS
the Result expected
properly
Page
The size of the
Check if the
The input image input image
input image is
RP_TC_002 UI Result Page should be exceeds the FAIL
displayed
displayed properly display
properly
container
Check if the
The result should
result is Working as
RP_TC_003 UI Result Page be displayed PASS
displayed expected
properly
properly
Check if the
The other
other
predictions should Working as
RP_TC_004 UI Result Page predictions PASS
be displayed expected
are displayed
properly
properly
21
8.2 USER ACCEPTANCE TESTING
8.2.1 DEFECT ANALYSIS
Resolution Severity 1 Severity 2 Severity 3 Severity 4 Total
By Design 1 0 1 0 2
Duplicate 0 0 0 0 0
External 0 0 2 0 2
Fixed 4 1 0 1 6
Not Reproduced 0 0 0 1 1
Skipped 0 0 0 1 1
Won’t Fix 1 0 1 0 2
Total 6 1 4 3 14
8.2.2 TEST CASE ANALYSIS
Total Not
Section Fail Pass
Cases Tested
Client Application 10 0 3 7
Security 2 0 1 1
Performance 3 0 1 2
Exception Reporting 2 0 0 2
22
CHAPTER 9
RESULTS
9.1 PERFORMANCE METRICS
9.1.1 MODEL SUMMARY
23
9.1.2 ACCURACY
CONTENT VALUE
Training Accuracy 99.14%
Training Loss 2.70%
Validation Accuracy 97.76%
Validation Loss 10.36%
24
9.1.3 CONFUSION MATRIX
25
9.1.4 CLASSIFICATION REPORT
26
9.1.5 APPLICATION TEST REPORT
27
28
CHAPTER 10
ADVANTAGES & DISADVANTAGES
ADVANTAGES
● Reduces manual work
● More accurate than average human
● Capable of handling a lot of data
● Can be used anywhere from any device
DISADVANTAGES
● Cannot handle complex data
● All the data must be in digital format
● Requires a high performance server for faster predictions
● Prone to occasional errors
29
CHAPTER 11
CONCLUSION
This project demonstrated a web application that uses machine learning to
recognise handwritten numbers. Flask, HTML, CSS, JavaScript, and a few other
technologies were used to create this project. The model predicts the handwritten
digit using a CNN network. During testing, the model achieved a 99.61% recognition
rate. The proposed project is scalable and can easily handle a huge number of users.
Since it is a web application, it is compatible with any device that can run a browser.
This project is extremely useful in real-world scenarios such as recognizing number
plates of vehicles, processing bank cheque amounts, numeric entries in forms filled
up by hand (tax forms) and so on. There is so much room for improvement, which
can be implemented in subsequent versions.
30
CHAPTER 12
FUTURE SCOPE
This project is far from complete and there is a lot of room for improvement.
Some of the improvements that can be made to this project are as follows:
● Add support to detect from digits multiple images and save the results
● Add support to detect multiple digits
● Improve model to detect digits from complex images
● Add support to different languages to help users from all over the world
This project has endless potential and can always be enhanced to become better.
Implementing this concept in the real world will benefit several industries and
reduce the workload on many workers, enhancing overall work efficiency.
31
APPENDIX
SOURCE CODE
MODEL CREATION
32
FLASK APP
RECOGNIZER
33
34
HOME PAGE (HTML)
HOME PAGE (CSS)
35
36
37
HOME PAGE (JS)
PREDICT PAGE (HTML)
38
39
40
GITHUB
https://github.com/IBM-EPBL/IBM-Project-133-1658212729
PROJECT DEMO
https://www.dropbox.com/s/0tpix1k6e0uhmcr/Project%20Demo%20%28PNT2022T
MID37575%29.mp4
41