You are on page 1of 2

Handwritten Digit Recognition Using Image

and Neural Networks
Handwritten digit recognition and pattern analysis is one of the active research topics in
digital image processing. The technology is leaping into so much advancement that image
recognition will become part and parcel of our daily lives. Applications such as Ultrasound,
MRI use image processing to detect broken bones, tissues, Tumors and various kind of
diseases and are used for various other industrial applications Contemporary it is used for
detecting airport luggage scanning and for detecting the quality of food grains to detect fungi
and other micro diseases.. So now in modern era image processing is used for security
reasons through thumb print recognition, eye retina detection and then for crime detection it
is also used for face recognition.
Different approaches have been used for handwritten recognition, feature extraction , by
using Fourier transformation , using support vector machine (SVM) and using classifier . On
the contrary in this research handwritten digit recognition is done through giving a cognitive
thinking process to a machine by developing a neural network based AI engine, which
recognizes any handwritten digit. The same technique can be further used in any application
for signature verification or hand writing recognition or other biometric applications.

This program is built to the purpose showing all stages of a recognition system including:
create a component network, train a network, test networks on UNIPEN dataset and test
networks on a mouse drawing control. So you can create, train, and test your network on
runtime without change any code or restart the program.


After creating a neural network using "Create network" function, the network will be trained
using UNIPEN database. Depending on the network size we can choose training set is 1a, 1b
or 1c in the UNIPENdata folder. Statistic of training process can show many useful
information such as: No. of epoch, MSE, training time per epoch, success rate
Then in order to train the neural network we make a two dimensional array of 10000 *
95(IN-PUT-ARRAY) elements where 10,000 tells that there are that many records in the
database and 95 represents 94 global histograms and 1 represents. The identification of the
digit. Then we also have an other array of 10000 * 10 (IDEALARRAY) elements where
10000 records and 10 is represented to identify each digit. The 10000 records are filled I su
ch a way that you build a 10000 by 10 and t fill out each row we follow the following
procedures. If we read the first record and the first record is zero then you put 1 in the (1,1)
and put fill all other positions (1,n) by (1*0,0,0,0,0,0,0,0,0,0) by zeros. Similarly we populate
this array for all 10,000 records in the database in the same manner for remaining 9 digits.
We initialize the neural network according to the INPUTARRAY, IDEALARRAY and
number of hidden neurons. As mentioned before. Input neurons of input layer will take input
from the INPUTARRAY. The input neuron will only output what the INPUTARRAY will
feed as input. The hidden layer neurons output will use the following function:
hidden-neuron-output= 1/(1+exp(-input value) The setting of bias and weight were filled
randomly at first to facilitate result. A random seed for bias and weight was first used in the
range of Random-seed= ((=1000 to 1000)/2000)= range (+0.5to 0.5). [4]

SO once the neural network has been trained for all ten digits now it is possible to identify
the meaning of any handwritten digit with the help of the trained neural network. So now
whenever a handwritten digit will be given as sample input the system will calculate its
global histogram and then feed the global histogram to the neural network. This time the
neural network will take the bias and weight from the already stored text files and use that
for detecting the neuron firing sequence. So in the output array it will automatically give the
digit whose corresponding match value is detected. And in case none of the neurons is fired
that means that it is a new digit which is not available in the trained neural network files
which are also called knowledge base library.