You are on page 1of 5

Project Proposal CS 327 - Software Engineering 2 Semester Project (Spring 2011)

BASE INFORMATION:
Student 1: Luqman ul Khair Student 2: Bilal Owais Student 3: Sarah Khalid 2009118 2009125 2009251

PROJECT TITLE:
Implementation of optical character recognition using neural networks.

COURSE INSTRUCTOR:
Mr.Zaheer Ahmed. HOME PAGE (if any) :< > STUDENT 1 SUITABILITY: Computer Science courses completed (or in process) relevant for this project: C/C++, Java, OOP, Artificial Intelligence, C#, Data Structures, Databases (SQL). STUDENT 2 SUITABILITY: Computer Science courses completed (or in process) relevant for this project: C/C++, Java, OOP, Artificial Intelligence, C#, Data Structures, Databases (SQL).

STUDENT 3 SUITABILITY: Computer Science courses completed (or in process) relevant for this project: C/C++, Java, OOP, Artificial Intelligence, C#, Data Structures, Databases (SQL).

BACKGROUND:
Developing proprietary OCR system is a complicated task and requires a lot of effort. Such systems usually are really complicated and can hide a lot of logic behind the code. The use of artificial neural network in OCR applications can dramatically simplify the code and improve quality of recognition while achieving good performance. Another benefit of using neural network in OCR is extensibility of the system ability to recognize more character sets than initially defined. Most of traditional OCR systems are not extensible enough. Why? Because such task as working with tens of thousands Chinese characters, for example, is not as easy as working with 68 English typed character set. The Artificial Neural Network (ANN) is a wonderful tool that can help to resolve such kind of problems. The ANN is an information-processing paradigm inspired by the way the human brain processes information. Artificial neural networks are collections of mathematical models that represent some of the observed properties of biological nervous systems and draw on the analogies of adaptive biological learning. The key element of ANN is topology. The ANN consists of a large number of highly interconnected processing elements (nodes) that are tied together with weighted connections (links). Learning in biological systems involves adjustments to the synaptic connections that exist between the neurons. This is true for ANN as well. Learning typically occurs by example through training, or exposure to a set of input/output data (pattern) where the training algorithm adjusts the link weights. The link weights store the knowledge necessary to solve specific problems.

PROBLEM FOCUS:
A lot of people today are trying to write their own OCR (Optical Character Recognition) System or to improve the quality of an existing one. This project will use artificial neural networks to simplify development of an optical character recognition application, while achieving highest quality of recognition and good performance. Here we will make use of training patterns. Those patterns will be used for teaching the neural network to recognize images and
characters.

GOALS/TARGETS:

There are many different approaches to optical character recognition problem. One of the most common and popular approaches is based on neural networks, which can be applied to different tasks, such as pattern recognition, time series prediction, function approximation, clustering, etc. On-line character recognition is sometimes confused with Optical Character Recognition. OCR is an instance of off-line character recognition, where the system recognizes the fixed static shape of the character, while on-line character recognition instead recognizes the dynamic motion during handwriting. For example, on-line recognition, such as that used for gestures in the Penpoint OS or the Tablet PC can tell whether a horizontal mark was drawn right-to-left, or left-to-right. On-line character recognition is also referred to by other terms such as dynamic character recognition, real-time character recognition, and Intelligent Character Recognition or ICR. Therefore, for the present our main goal is to create an application that would be able to recognize static characters given as input to the application.

METHOD/APPROACH:
y The most popular and simple approach to OCR problem is based on feed forward neural network with backpropagation learning. The main idea is that we should first prepare a training set and then train a neural network to recognize patterns from the training set. In the training step we teach the network to respond with desired output for a specified input. For this purpose each training sample is represented by two components: possible input and the desired network's output for the input. After the training step is done, we can give an arbitrary input to the network and the network will form an output, from which we can resolve a pattern type presented to the network. For each possible input we need to create a desired network's output to complete the training samples. After having such training samples for all letters, we can start to train our network. Another idea is based on using the so called receptors.. What are these receptors? Receptors are represented by a set of lines with arbitrary size and direction. The size of an input vector will be the same as receptors count. The different technologies that are to be used to achieve this project will be learned. Various books on how to program neural networks will have to be studied and explored. Working with the artificial neural networks will have to be learned. Coding artificial neural networks will have to be learned. Once we are familiar with the technologies used, we will start of by making small modules and testing them. Once our coding is done in java we will put our application through rigorous testing. Finally a Documentation of the features of our software/code will be made &maintained.

y y y

y y y y y y y

RISKS/PROBLEMS:
Training never completes because: 1. The network topology is too simple to handle amount of training patterns that we might provide. We will have to create bigger network. 2. The training patterns are not clear enough, not precise or are too complicated for the network to differentiate them. 3. Our training expectations are too high and/or not realistic. Threats Possible solution Add more nodes into middle layer or add more middle layers to the network. As a solution you can clean the patterns or you can use different type of network /training algorithm. Lower your expectations. The network could be never 100% "sure" Solutions

Inconsistency of code

By following the standard coding practices for the artificial neural networks it can be avoided. Again by following all the mentioned Standards and practices during the training of the artificial neural network this can be avoided.

Inability to recognize characters

PROBABLE TECHNICAL REQUIREMENTS:


Java, JavaScript.

REFERENCES:
[1]Introduction to neural networks for java 2nd edition by Heaton research.

BIBLIOGRAPHY:
[1] Application of Neural Networks to Character Recognition
csis.pace.edu/~ctappert/srd2007/c4.pdf

[2] Java Neural Networks | Jeff Heaton


www.jeffheaton.com/ai

[3] A neural network based artificial vision system for licence plate ...
vortex.cs.wayne.edu/papers/ijns1997.pd

[4]

OCR using Nearest Neighbor and Neural Networks


www.ai.sri.com/~goldwate/OCR.ps

[5] OCR with the Kohonen Neural Network | Heaton Research


www.heatonresearch.com/articles/7

[6] Optical character recognition - Wikipedia, the free encyclopedia


en.wikipedia.org/wiki/Optical_character_recognition

[7] NeuroSolutions: What is a Neural Network?


www.neurosolutions.com/products/ns/whatisNN.htm

[8] Applying Neural Networks to Character Recognition


www.ccs.neu.edu/home/feneric/charrecnn.html

You might also like