DEEP LEARNING — HANDWRITTEN DIGIT
RECOGNITION USING PYTHON AND
MNIST
Guided by:
PARAS JAIN
GROUP MEMBERS:
• Sheethal Krishna : 19BAI10149
• Ishani N Binu : 19BAI10067
• Sreya Venugopal : 19BAI10005
• Jibin Variyath : 19BAI10135
• With the advancement in technology, machine learning and
deep learning are playing a crucial role in present times. Now,
machine learning and deep learning techniques are being
employed in handwriting recognition, robotics, artificial
intelligence, and many more fields. Developing such system
requires training our machines with data, making it capable
to learn and make required prediction. This module presents
Introduction:
a Handwritten Equation Solver trained by handwritten digits
and mathematical symbol using Convolutional Neural
Network with some image processing techniques to achieve
a decent accuracy of 98.46%.
• Character and handwriting recognition is one of the most
difficult problems of pattern recognition and artificial
intelligence. Unlike the machine generated character, which
is uniform throughout a document and is often uniform
between machines, each human being has a unique style of
writing characters. With the infinite number of ways to record
a character, it is a wonder that a person can understand his
Abstract:
own script, let alone the script of another. Training a
computer to recognize human-produced characters is a
tremendous task in which researchers are just beginning to
achieve some success. Primarily these methods rely on the
use of algorithms to determine the similarities of two
characters. Neural networks are an alternative technique
now being explored.
• The handwritten digit recognition is the ability of computers
What is to recognize human handwritten digits. It is a hard task for
Handwritten Digit the machine because handwritten digits are not perfect and
can be made with many different flavors. The handwritten
Recognition? digit recognition is the solution to this problem which uses
the image of a digit and recognizes the digit present in the
image.
• The handwritten digits are not always of the same size,
Problems width, orientation and justified to margins as they differ from
writing of person to person, so the general problem would be
with while classifying the digits due to the similarity between
digits such as 1 and 7, 5 and 6, 3 and 8, 2 and 5, 2 and 7, etc.
handwritten This problem is faced more when many people write a single
digit with a variety of different handwritings. Lastly, the
digits
uniqueness and variety in the handwriting of different
individuals also influence the formation and appearance of
the digits.
Examples of 2s in MNIST database
• To make machines more intelligent, the developers are
diving into machine learning and deep learning techniques. A
human learns to perform a task by practicing and repeating it
again and again so that it memorizes how to perform the
Novelty: tasks. Then the neurons in his brain automatically trigger and
they can quickly perform the task they have learned. Deep
learning is also very similar to this. It uses different types of
neural network architectures for different types of problems.
Digit Recognition System(Real time
usage):
• Digit recognition system is the working of a machine to train itself or
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 (say — tax forms) and so on.
System requirements:
Libraries:
*NumPy
*keras.
*Pillow
Methodology:
• MNIST (Modified National Institute of Standards and
Technology database) is probably one of the most popular
datasets among machine learning and deep learning
MNIST enthusiasts.
• The MNIST dataset contains 60,000 small square 28×28
DATASET? pixel grayscale training images of handwritten digits from 0
to 9 and 10,000 images for testing. So, the MNIST dataset
has 10 different classes.
MNIST dataset
.
• Handwritten digit recognition has gained so much popularity from the aspiring beginner of
machine learning and deep learning to an expert who has been practicing for years. Developing
such a system includes a machine to understand and classify the images of handwritten digits
as 10 digits (0–9). Handwritten digits from the MNIST database are already famous among the
community for many recent decades now, as decreasing the error rate with different classifiers
and parameters along with preprocessing techniques from 12% error rate with linear classifier (1
layer NN) to achieving 0.23% error rate with hierarchy of 35 convolution neural networks [Yann
LeCun, MNIST database of handwritten digits]
Extracting Features
[Link] the image and then convert it to a binary image because contour extraction gives the best
result when the object is white and surrounding is black.
[Link] find contours use ‘findContour’ function. For features, we obtain the bounding rectangle of
contour using ‘boundingRect’ function (Bounding rectangle is the smallest horizontal rectangle
enclosing the entire contour).
[Link] each image in our dataset contains only one symbol/digit, we only need the bounding
rectangle of maximum size. For this purpose, we calculate the area of the bounding rectangle of
each contour and select the rectangle with maximum area.
[Link], resize the maximum area bounding rectangle to 28 by 28. Reshape it to 784 by 1. So there
will be now 784-pixel values or features. Now, give the corresponding label to it (For e.g, for 0–9
images same label as their digit, for — assign label 10, for + assign label 11, for times assign
label 12). So now our dataset contains 784 features column and one label column.
OVERALL SYSTEM
ARCHITECTURE
DIAGRAM
.
INPUT Input digit
Mouse gesture
Preprocessing
Feature
extraction
OUTPUT:
Digit recognition Display
recognized digit
REFERENCE
S:
*[Link]
*[Link]
*[Link]
*[Link]