Escolar Documentos
Profissional Documentos
Cultura Documentos
On
APPLICATION OF ARTIFICIAL NEURAL NETWORK IN CHARACTER
RECOGNITION
AND
ROBOT KINEMATICS
Submitted By
MIT H. PANDYA
As a part of term work prescribed by North Maharashtra University, Jalgaon
Third Year
in
ELECTRONICS & COMMUNICATION ENGINEERING
INDEX
CHAPTERS
List Of Figures
Page No.
Fig.1
vii
Fig 2.
xi
Fig 3.
xi
Fig 4.
xx
Fig 5.
xxi
Fig 6.
xxii
Fig 7.
xxv
Fig 8.
xxvii
Fig 9.
xxx
Fig 10.
xxx
Fig 11.
xxxi
Fig 12.
xxxi
List Of Tables
Page No.
Table 1.
xii
Table 2.
xiii
1. INTRODUCTION
2.1 Objectives
2.9 results
10
10
11
11
15
3.1 Introduction
15
19
19
23
4.1 Abstract
23
4.2 Introduction
23
25
27
29
5. CONCLUSION
32
6. ACKNOWLEDGEMENT
33
7. REFERENCE
34
1. INTRODUCTION
Character recognition is a trivial task for humans, but to make a computer program that
does character recognition is extremely difficult. Recognizing patterns is just one of those things
humans do well and computers dont. The main reason for this, I believe, is the many sources of
variability. Noise for example, consists of random changes to a pattern, particularly near the
edges and a character with much noise may be interpreted as a completely different character by
a computer program. Another source of confusion is the high level of abstraction; there are
thousands styles of type in common use and a character recognition program must recognize
most of these to be of any use.
There exists several different techniques for recognizing characters. One distinguishes
characters by the number of loops in a character and the direction of their concavities. Another
common technique uses backpropagation in a neural network and this paper will investigate how
good a neural network solves the character recognition problem.
2.1 OBJECTIVES
The objective of this project is to create an easy to use environment in which the user can
draw characters and then let the program try to interpret the characters.
Such a program could be useful when demonstrating how character recognition using
backpropagation works or when demonstrating how many iterations of learning need to be
performed to get a satisfactory result.
Since the biases and weights are also stored in the brainfile the program will remember
which you characters you learned it in previous sessions. There is therefore no need to learn the
program every time you start it.
the
weights
and
biases;
dci=douti*dt,
dbi=dhidi*dt,
dvij=douti*hj*dt
and
dwij=dhidi*sj*dt. The procedure of choosing a random pattern, performing feedforward and then
backprop continues until the total error of the network is less than the error limit or until the user
interrupts the learning. The total error of the network is calculated as the sum square error
between the target and the response value, e=(T-r). The error shown during the learning
procedure is the greatest error of all the patterns.
2.10RESULTS
Before the testing could begin, learning had to be performed on the network. There are
several problems to take into consideration when performing backprop on a neural network, such
as the number of hidden units to use, setting the learning rate etc.
2.14SUGGESTED IMPROVEMENTS
Although the results were surprisingly good, I believe that the results could be improved
even further by implementing character scaling and centering.
+1
+1
-1
-1
+1
-1
+1
-1
-1
+1
-1
+1
-1
-1
+1
+1
This is of course not a random table. Imagine the sensors are on the front of a robot
vehicle, and the motors drive this robot. If both sensors are pressed the robot has made a frontal
collision and should stop both motors. If the left front sensor is pressed the right motor has to
stop (thus the robot turns right), similar for the right front sensor. If none of the sensors is
pressed the motors should run.
Of course this table is simple enough to be programmed into the robot, but for the sake of
this discussion we'll put it into a neural network. We will treat each line in the table as a vector
(yes, you should have paid attention in math). This vector will have the format:
Input (sensor 1)
Input (sensor 2)
Output (motor 1)
Output (motor 2)
So:
+1
+1
-1
-1
A vector can be seen as a 'pathway' in the neural brain. The brain itself is a matrix (a
mathematical representation of all possible pathways between inputs, outputs and neurons), so in
order to turn a single vector into a matrix we'll have to multiply it with itself. For the first line of
the table this yields:
+1 +1 -1
-1
+1
+1 +1 -1 -1
+1
+1 +1 -1 -1
-1
-1 -1 +1 +1
-1
-1 -1 +1 +1
The brain should now have a 'pathway' which leads from 'both sensors pressed' to the
solution 'stop both motors'. In order to check this we first have to turn our question into a vector
again
+1
+1
?
?
The outputs in this vector are question marks, because that's the answer we'd like the
neural brain to give us. To get this answer we'll multiply the brain matrix with the question
vector. Ignore any calculation which has the question mark in it. So the first number of the
resulting vector would be: (1 x 1) + (1 x 1) + (-1 x ?) + (-1 x ?) = (1 x 1) + (1 x 1) = 2. For the
total matrix this would look like this:
+1 +1 -1 -1
+1
+2
+1 +1 -1 -1
+1
+2
-1 -1 +1 +1 x ? = -2
-1 -1 +1 +1
-2
Now these results need to be normalized, which means anything larger than zero becomes
+1 and anything smaller than zero becomes -1. This results in:
+1
+1
-1
-1
And if we compare this result with the vector layout (so we remember what is what):
Input (sensor 1) +1
Input (sensor 2) +1
Output (motor 1) -1
Output (motor 2) -1
We can see that the neural brain just told us to turn off the motors (both get -1 as answer),
which is correct. So the neural brain has correctly remembered that is both sensors are activated
both motors should stop. This is quite remarkable for such a simple matrix. The fact that the
calculated inputs (+1/+1) match the inputs from the question means that this is a valid answers as
far as the neural network is concerned. If this wouldn't match we know we've come across
something the brain hasn't learned yet! We could do the same thing for the second line of the
table, which would result in:
+1 -1 +1 -1
-1 +1 -1 +1
+1 -1 +1 -1
-1 +1 -1 +1
This new matrix can be added to our original neural brain by simply adding the numbers
together, which results in:
2 0 0 -2
0 2 -2 0
0 -2 2 0
-2 0 0 2
By doing this the original brain has in fact 'learned' a new question and answer (if the left
sensor is pushed and the right sensor is not, then the left motor should run and the left motor
should not). You can keep on doing that for each line in the table and eventually you'll end up
with a finished neural brain which can answer all questions you could possibly ask regarding the
two sensors. The completed brain by the way looks like this:
4 0 0 -4
0 4 -4 0
0 -4 4 0
-4 0 0 4
A lot of people use a reduced size matrix (in this case a 2x2 rather than a 4x4). I prefer
the large size because it's much easier to work with and it allows you to find the question for an
answer. If for example you wonder what you would have to to to get both motors running simple
use the vector (? ? 1 1) as input and you'll get the right answer.
In this explanation we have started with a table, and added all questions and answers to
the neural brain. This could be done because we know all questions, and perhaps more important,
we know all answers. In real life the questions may not be so obvious, and the answers unknown.
In that case you would start with an empty neural brain (consisting of all zero's). Now there are
basically two ways for this empty brain to learn:
that it can be done unsupervised. You can compare this with giving a box of Lego's to a child
and wait to see what it does with it. It depends on the situation which method you select.
Until now you had to actually program your robots, but this is no longer necessary. This
robot, if left alone, will program itself! If you want to understand how the neural brain of this
robot works I suggest you read the page on neural networks first. Of course you don't need to
understand it, simply put it on the floor and see what happens. The bumper design still poses me
difficulties, it is possible for the robot to get stuck (even though it is performing the right actions)
simply because the bumpers are stuck.
4.2 INTRODUCTION
Over the last few years, a number of studies were reported concerning a machine
learning, and how it has been applied to help mobile robots to improve their operational
capabilities. One of the most important issues in the design and development of intelligent
mobile system is the navigation problem. This consists of the ability of a mobile robot to plan
and execute collisionfree motions within its environment. However, this environment may be
imprecise, vast, dynamical and either partially or non-structured. Robots must be able to
understand the structure of this environment. To reach their targets without collisions, the robots
must be endowed with perception, data processing, recognition, learning, reasoning, interpreting,
decision-making and action capacities. The ability to acquire these faculties to treat and transmit
knowledge constitutes the key of a certain kind of artificial intelligence. Reproduce this kind of
intelligence is, up to now, a human ambition in the construction and development of intelligent
machines, and particularly autonomous mobile robots. To reach a reasonable degree of autonomy
two basic requirements are sensing and reasoning. The former is provided by onboard sensory
system that gathers information about robot with respect to the surrounding scene. The later is
accomplished by devising algorithms that exploit this information in order to generate
appropriate commands for robot. And with this algorithm we will deal in this paper. We report
on the objective of the motion planning problem well known in robotics. Given an object with an
initial location and orientation, a goal location and orientation, and a set of obstacles located in
workspace, the problem is to find a continuous path from the initial position to the goal position,
which avoids collisions with obstacles along the way. In other words, the motion planning
problem is divided into two sub-problems, called Findspace and Findpath problem. For
related approaches to the motion planning problem see reference (Latombe, J.C. 1991). The
findspace problem is construction the configuration space of a given object and some obstacles.
The findpath problem is in determining a collision-free path from a given start location to a goal
location for a robot. Various methods for representing the configuration space have been
proposed to solve the findpath problem. The major difficulties in the configuration space
approach are: expensive computation is required to create the configuration space from the robot
shape and the obstacles and the number of searching steps increases exponentially with the
number of nodes. Thus, there is a motivation to investigate the use of parallel algorithms for
solving these problems, which has the potential for much increased speed of calculations. A
neural network is a massive system of parallel distributed processing elements connected in a
graph topology. Several researchers have tried to use neural networks techniques for solving the
find path problem.with translational and rotational motion. Our approach basically consists of
two neural networks to solve the findspace and findpath problems respectively. The first neural
network is a modified principal component analysis network, which is used to determine the
free space from ultrasound range finder data. Moving robot is modeled as a two-dimensional
object in this workspace. The second one is a multilayer perceptron, which is used to find a safe
direction for the next robot step on the collision-free path in the workspace from start
configuration to a goal configuration while avoiding the obstacles. The organization of the paper
is as follows: section 2 brings out the briefly description of neural network applications in
robotics. Our approach to solving the robot motion problem is given in section 3. Our method of
motion planning strategy, which depends in using two neural networks for solving the findspace
problem and the findpath problem respectively will be described in section 4. Simulation results
will be included in section 5. Section 6 will summarize our conclusions and gives the notes for
our further research in this area.
of a widely accepted approximation of the Hebbian learning rule is w (t 1) w (t) x (t) y (t) ij ij i j
+ = + (1) where xi and yj are the output values of neurons i and j, respectively, which are
connected by the synapse wij and is the learning rate (note that xi is the input to the synapse).
Survey of types, architectures, basic algorithms and problems that may be solved using some
type of neural networks. The applications of neural networks for classification and pattern
recognition are good known. Some interesting solutions to problems of classification in the robot
navigation domain were succesfully solved by means of competitive type of neural networks.
Using of competitive neural networks in control and trajectory generation for robots we may find
in the book as well as using of neural network for sensor data processing in map updating and
learning of the robot trajectories. For the obstacle avoidance purposes recurrent type of neural
network was used with the gradient back-propagation technique for training the network . 1991).
The using of upervised ural network for robot navigation in partially known environment is
presented in (Chochra 1997). An interesant solution with using of Jordan architecture of neural
network is described in (Tani, J. 1996). Here the robot learns internal model of the environment
by recurrent neural network, it predicts succession of sensors inputs and on the base of the model
it generates navigation steps as a motor commands. The solution of the minimum path problem
with two recurentneural networks is given in (Wang 1998). Solutions that use the learning
ability of the neural network with fuzzy logic for representation of the human knowledge applied
to robot navigation also exists see . The complex view for solution of the navigation problem of
the autonomous vehicles gives . Team of researches CMU here presents results from designing
of autonomous terrain vehicle. For learning the path from vision system data and for obstacle
avoidances algorithms using laser range finder data and different types of neural networks. Our
first work concerned the using neural networks for object classification in the map of the robot
environment was using the cluster analysis with range finder data. This acquiring knowledge we
extend for using neural network in the algorithm of the robot motion planning.
networks to control the operating sequence and to check the reachability of the goal
configuration from the start configuration. Our motion planning algorithm can be summarized as
follows:
1. Specify the object, environment information and the start and goal configurations.
2. Set the current object orientation equal to the goal orientation.
3. Activate range finder via control unit to determine the local part of the map of the
work space.
4. Initialize the first neural network, which will use the measured data from range finder.
The neural network is iterated until the weights and the outputs converged to the returned one
free space segment.
5. Activate the 2nd neural network. It returns the direction k of next robot motion step.
6. Generate the robot motion path in the direction k and go to the step 3.
5.CONCLUSION
Neural network and backpropagation seem to be well suited for character recognition.
Many of the problems that arise when using backpropagation to recognize characters can easily
be eliminated or reduced by adding routines that scales, centers etc. Other problems like noise
and the problem of separating character also exists for the other methods of character recognition
and there is not much one can do about those problems except improving the quality of the
equipment used when scanning/reading characters (i.e. use higher resolution) or using a database
or artificial intelligence to give more accurate interpretations.
Many say that the slow speed of the backpropagation routine is a major drawback, but I
consider this to be a minor drawback only since the speed of new computers doubles every third
year and then speed becomes a less important issue than it is today.
ACKNOWLEDGEMENT
-
I acknowledge my gratitude and thank to Mr.R.P.Singh sir for giving me opportunity to avail all
the best facilities available at through which I have gained practical knowledge in the
environment suitable for harmonic adjustment.
I am also grateful to the Mr.G.A.Kulkarni Sir H.O.D. E.& C. Department and other staff there
for much needed and valuable help rendered by them during the case study.
Finally, a deep thanks to the Mr. G.U.Patil and other faculty members of Department of
Electronics and Communication, friends and my family members for their constant guidance and
encouragement in case study.
- Mit Pandya
-
(T.E E&C)