Optical Character

47
INDEX S.NO. TOPIC PAGE NO. 1 . INTRODUCTION TO MATLAB 5 2. HAMMING NET 12 3 . .INTRO TO OCR 16 4. NEURAL NETWORK 20 5. FUNCTIONS USED 21 floor max sprintf disp char 6. OPERATION OF THE PROJECT 28 7. LIMITATIONS 35

Transcript of Optical Character

Page 1: Optical Character

INDEX

S.NO. TOPIC PAGE NO.

1 . INTRODUCTION TO MATLAB 5

2. HAMMING NET 12

3 . .INTRO TO OCR 16

4. NEURAL NETWORK 20

5. FUNCTIONS USED 21

floor

max

sprintf

disp

char

6. OPERATION OF THE PROJECT 28

7. LIMITATIONS 35

8. ADVANTAGES 37

9. APPLICATIONS AND FUTURE ASPECTS 38

10. CONCLUSION 39

11. REFERENCES 40

Page 2: Optical Character

INTRODUCTION TO MATLAB

MATLAB is a high-performance language for technical computing. It integrates

computation, visualization, and programming in an easy-to-use environment

where problems and solutions are expressed in familiar mathematical notation.

Typical uses include :-

Math and computation

Algorithm development

Data acquisition

Modeling, simulation, and prototyping

Data analysis, exploration, and visualization

Scientific and engineering graphics

Application development, including graphical user interface building.

MATLAB is an interactive system whose basic data element is an array that

does not require dimensioning. This allows you to solve many technical

computing problems, especially those with matrix and vector formulations, in a

fraction of the time it would take to write a program in a scalar non-interactive

language such as C or Fortran.

The name MATLAB stands for matrix laboratory. MATLAB was originally

written to provide easy access to matrix software developed by the LINPACK

and EISPACK projects. Today, MATLAB engines incorporate the LAPACK

and BLAS libraries, embedding the state of the art in software for matrix

computation.

Page 3: Optical Character

MATLAB has evolved over a period of years with input from many users. In

university environments, it is the standard instructional tool for introductory and

advanced courses in mathematics, engineering, and science. In industry,

MATLAB is the tool of choice for high-productivity research, development, and

analysis.

MATLAB features a family of add-on application-specific solutions called

toolboxes. Very important to most users of MATLAB, toolboxes allow you to

learn and apply specialized technology. Toolboxes are comprehensive

collections of MATLAB functions (M-files) that extend the MATLAB

environment to solve particular classes of problems. Areas in which toolboxes

are available include signal processing, control systems, neural networks, fuzzy

logic, wavelets, simulation, and many others.

Page 4: Optical Character

The MATLAB System

The MATLAB system consists of five main parts:

Development Environment:-

This is the set of tools and facilities that help you use MATLAB functions and

files. Many of these tools are graphical user interfaces. It includes the

MATLAB desktop and Command Window, a command history, an editor and

debugger, and browsers for viewing help, the workspace, files, and the search

path.

The MATLAB Mathematical Function Library:-This is a vast collection of computational algorithms ranging from elementary

functions, like sum, sine, cosine, and complex arithmetic, to more sophisticated

functions like matrix inverse, matrix eigenvalues, Bessel functions, and fast

Fourier transforms.

The MATLAB Language:-

This is a high-level matrix/array language with control flow statements,

functions, data structures, input/output, and object-oriented programming

features. It allows both "programming in the small" to rapidly create quick and

dirty throw-away programs, and "programming in the large" to create large and

complex application programs.

Graphics:-

MATLAB has extensive facilities for displaying vectors and matrices as graphs,

as well as annotating and printing these graphs. It includes high-level functions

Page 5: Optical Character

for two-dimensional and three-dimensional data visualization, image

processing, animation, and presentation graphics. It also includes low-level

functions that allow you to fully customize the appearance of graphics as well

as to build complete graphical user interfaces on your MATLAB applications.

The MATLAB Application Program Interface (API):-This is a library that allows you to write C and Fortran programs that interact

with MATLAB. It includes facilities for calling routines from MATLAB

(dynamic linking), calling MATLAB as a computational engine, and for reading

and writing MAT-files.

Matrices in MATLABA matrix is a two-dimensional array of real or complex numbers. Linear algebra

defines many matrix operations that are directly supported by MATLAB. Linear

algebra includes matrix arithmetic, linear equations, eigen values, singular

values, and matrix factorizations.

Multiplying MatricesMultiplication of matrices is defined in a way that reflects composition of the

underlying linear transformations and allows compact representation of systems

of simultaneous linear equations. The matrix product C = AB is defined when

the column dimension of A is equal to the row dimension of B, or when one of

them is a scalar. If A is m-by-p and B is p-by-n, their product C is m-by-n. The

product can

actually be defined using MATLAB for loops, colon notation, and vector dot

products. A = pascal(3);

B = magic(3);

Page 6: Optical Character

m = 3; n = 3;

for i = 1:m

for j = 1:n

C( i , j) = A( i ,:)*B(:,j);

end

end

MATLAB uses a single asterisk to denote matrix multiplication. The next two

examples illustrate the fact that matrix multiplication is not commutative; AB is

usually not equal to BA. X = A*B

X =

15 15 15

26 38 26

41 70 39

Y = B*A

Y =

15 28 47

15 34 60

15 28 43

A matrix can be multiplied on the right by a column vector and on the left by a

row vector. u = [3; 1; 4];

x = A*u

x = 8

Page 7: Optical Character

17

30

v = [2 0 -1];

y = v*B

y = 12 -7 10

Rectangular matrix multiplications must satisfy the dimension compatibility

conditions. C = fix(10*rand(3,2));

X = A*C

X = 17 19

31 41

51 70

Y = C*A

Error using ==> *

Inner matrix dimensions must agree.

Anything can be multiplied by a scalar. s = 7;

w = s*v

w = 14 0 -7

Page 8: Optical Character

SOFTWARE AND HARDWARE REQUIRED

Software Required : MATLAB 7.0.1 with Image Processing and Neural

Network toolboxes.

Hardware Required : Scanner and PC

HAMMING NET

Theory:Lippmann worked on the hamming net during 1987.In hamming net, Max net is used as a

subnet to find the unit with the largest net input. It is a max likelihood classifier net that

Page 9: Optical Character

determines which of several exemplar vectors is most similar to an input vector. The weight

of the net in this case is determined by the exemplar vectors.

HAMMING DISTANCE:The hamming distance between two vectors is the no. of components in which the vector

differs. It can also be defined as the number of differences between two binary or bipolar

vectors (x ,y). It can be denoted as H(x , y) .

The average hamming distance is given as,

= H(x ,y) / n

where ‘n’ is the number of components in each vector.

In Hamming net the measure of similarity between the input vector and the stored exemplar

is minus the Hamming distance between the vectors.

Consider two bipolar vectors x and y,

If ‘a’ = number of components in which the vector agree.

and ‘d’ = number of components in which the vector differ (hamming distance)

Then, x . y = a – d

If ‘n’ is the number of components, then,

n = a + d

(or) d = n – a

As a result, x . y = a – d = a – (n – a)

x . y = 2a – n

2a = x . y + n

From these results, it is understood that, if the weights are set to one-half of the exemplar

vector and the bias to one-half of the number of components, the net will find the unit with

the closest exemplar simply by finding the unit with the largest net input.

ARCHITECTURE:The architecture is shown in figure assuming input vector with 4-tuples and the output to be

classified to one of the 2 classes given.

Page 10: Optical Character

The architecture consists of ‘n’ input modes in the lower net, with each input node connected

to the ‘m’ output nodes. These output nodes are connected to an upper net (i.e. Max net –

acting as subnet for Hamming net) which calculates the best exemplar matched to the input

vector. The ‘m’ in the output nodes represents the number of exemplar vectors stored in the

net. It is important to note that the input vector and the exemplar vector are bipolar.

For a given set of exemplar vectors, the hamming net finds the exemplar vector that is closest

to the bipolar input vector ‘x’. The number of components in which the input vector and the

exemplar vector agree is given by the net input.

APPLICATION PROCEDURE:-The parameters used are

n = number of input nodes (input vectors)

m = number of output nodes (exemplar vectors)

e(j) = jth exemplar vector

The application procedure is as follows:

Step1 : Weights are to be initialized for storing ‘m’ exemplar vectors

Wij= ei(j) / 2, (i = 1,2,3…….n, j = 1,2,3…….m)

Initializing the bias

bj= n / 2 (j = 1,2,3……..m)

Step2 : For each vector ‘x’, perform steps 3-5

Step3 : Compute the net input to each unit Yj.

Y-inj = bj+ ∑(Xi Wij) (j = 1,2,3....m) i

Step4 : Initialize activations for Max net

Yj(0)= Y-inj (j = 1,2,3……..m)

Step5 : Max net iterates to find the best match exemplar.

Page 11: Optical Character

n input nodes

{

{

x2 x1 x3 x4

y1 y2

Max Net

m output nodes

Fig. 6 : Hamming Net

INTRODUCTION TO OCR

The goal of Optical Character Recognition (OCR) is to classify optical patterns (often

contained in a digital image) corresponding to alphanumeric or other characters. The process

of OCR involves two steps for classification: training and testing. These steps can be broken

down further into sub-steps:

1. Training a. Pre-processing: These are the pre-processing steps often performed in OCR:

i. Manual Cropping – This allows the user to crop the image manually, which is an

important process to manipulate the data more in details.

Page 12: Optical Character

ii. Resizing – This cell of codes magnify the image for 5 times. Resize function is

important when the size of the characters are not standard.

iii. Colour to Black n White (Grayscale) – Presence of the character stroke is marked

by black and rest of the background by white.

b. Feature extraction :

i. Segmentation – It divides the image into square grids representing pixels to extract

features from each individual pixel.

ii. Binarization – Usually presented with a grayscale image, binarization is then simply

a matter of choosing a threshold value, and depending on the average light intensity of

each pixel, assigning logic 1 if its value is above threshold, otherwise logic -1.

c. Classification : An input vector consisting of values (-1,1) and its output pair

corresponding to each character is presented to a Heteroassociative Neural Network to

train it to recognize given character set by updating its weights accordingly.

2. Recognition or Testing a. Pre-processing -- Testing image of a character may now be partial or noisy.

b. Feature extraction – (both same as above)

c. Classification – Compare feature vectors to the various models and find the closest match.

Page 13: Optical Character

Fig. 4 : The Pattern Classification Process

Detailed Block Diagram for Training and Testing :

Before OCR can be used, the source material must be scanned using an optical scanner (and

sometimes a specialized circuit board in the PC) to read in the page as a bitmap (a pattern of

dots). Software to recognize the images is also required.

The OCR software then processes these scans to differentiate between images and text and

determine what letters are represented in the light and dark areas.

Older OCR systems match these images against stored bitmaps based on specific fonts. The

hit-or-miss results of such pattern-recognition systems helped establish OCR's reputation for

inaccuracy.

Today's OCR engines add the multiple algorithms of neural network technology to analyze

the stroke edge, the line of discontinuity between the text characters, and the background.

Allowing for irregularities of printed ink on paper, each algorithm averages the light and dark

along the side of a stroke, matches it to known characters and makes a best guess as to which

o/p corres to i/p

Input vector

Scana

character

Store as .bmp

file

Crop imageand

fit to size

Change colour image to grayscale

Divide image into

grids

Binarize the image acc. to average

intensity of each pixel

HeteroassociativeNeural

Network

Page 14: Optical Character

character it is. The OCR software then averages or polls the results from all the algorithms to

obtain a single reading.

NEURAL NETWORKS

Neural networks are composed of simple elements operating in parallel. These elements are

inspired by biological nervous systems. As in nature, the network function is determined

largely by the connections between elements. We can train a neural network to perform a

particular function by adjusting the values of the connections (weights) between elements.

Inputs arrive from other neurons, or from the environment. By taking the inner product, the

neuron essentially multiplies each input it receives by a weight which is specific to that input.

(This is loosely based on the fact that real neurons are connected by synapses that vary in

strength. Any given neuron in the brain receives inputs from as many as thousands of other

neurons, and it pays more "attention" to some than to others.) The neuron adds all of these

weighted activations together, along with any bias that it might have, to form the inner

product. The inner product is then subjected to a transfer function which is preferably

nonlinear. The result is the neuron's output.

Page 15: Optical Character

Fig. 5 : A single neuron in a neural network

FUNCTIONS USED

floor :-

Round towards minus infinity

Syntax

B = floor(A)

Description:-

B = floor(A) rounds the elements of A to the nearest integers less than or equal to A.

For complex A, the imaginary and real parts are rounded independently.

Page 16: Optical Character

Examples:-

a = [-1.9, -0.2, 3.4, 5.6, 7.0, 2.4+3.6i]

a =

Columns 1 through 4

-1.9000 -0.2000 3.4000 5.6000

Columns 5 through 6

7.0000 2.4000 + 3.6000i

floor(a)

ans =

Columns 1 through 4

-2.0000 -1.0000 3.0000 5.0000

Columns 5 through 6

7.0000 2.0000 + 3.0000i

Page 17: Optical Character

max :- Maximum elements of an array

Syntax :-

C = max(A)

C = max(A,B)

C = max(A,[],dim)

[C,I] = max(...)

Description:-

C = max(A) returns the largest elements along different dimensions of an array.

If A is a vector, max(A) returns the largest element in A.

If A is a matrix, max(A) treats the columns of A as vectors, returning a row vector

containing the maximum element from each column.

If A is a multidimensional array, max(A) treats the values along the first non-singleton

dimension as vectors, returning the maximum value of each vector.

Page 18: Optical Character

C = max(A,B) returns an array the same size as A and B with the largest elements

taken from A or B.

C = max(A,[],dim) returns the largest elements along the dimension of A specified by

scalar dim. For example, max(A,[],1) produces the maximum values along the first

dimension (the rows) of A.

[C,I] = max(...) finds the indices of the maximum values of A, and returns them in

output vector I. If there are several identical maximum values, the index of the first

one found is returned.

sprintf :- Write formatted data to a string

Syntax

[s, errmsg] = sprintf(format, A, ...)

Description

[s, errmsg] = sprintf(format, A, ...) formats the data in matrix A (and in any additional

matrix arguments) under control of the specified format string and returns it in the

MATLAB string variable s. The sprintf function returns an error message string

errmsg if an error occurred. errmsg is an empty matrix if no error occurred.

sprintf is the same as fprintf except that it returns the data in a MATLAB string

variable rather than writing it to a file.

Format String

The format argument is a string containing C language conversion specifications. A

conversion specification controls the notation, alignment, significant digits, field

width, and other aspects of output format. The format string can contain escape

characters to represent nonprinting characters such as newline characters and tabs.

Page 19: Optical Character

Conversion specifications begin with the % character and contain these optional and

required elements:

Flags (optional)

Width and precision fields (optional)

A subtype specifier (optional)

Conversion character (required)

disp :- Display text or array

Syntax

disp(X)

Description :-

disp(X) displays an array, without printing the array name. If X contains a text string,

the string is displayed.

Another way to display an array on the screen is to type its name, but this prints a

leading "X =," which is not always desirable.

Note that disp does not display empty arrays.

Examples

One use of disp in an M-file is to display a matrix with column labels:

disp (' Corn Oats Hay')

disp(rand(5,3))

which results in

Corn Oats Hay

Page 20: Optical Character

0.2113 0.8474 0.2749

0.0820 0.4524 0.8807

0.7599 0.8075 0.6538

0.0087 0.4832 0.4899

0.8096 0.6135 0.7741

char :- Create character array (string)

Syntax

S = char(X)

S = char(C)

S = char(t1,t2,t3...)

Description

S = char(X) converts the array X that contains positive integers representing character

codes into a MATLAB character array (the first 127 codes are ASCII). The actual

characters displayed depend on the character set encoding for a given font. The result

for any elements of X outside the range from 0 to 65535 is not defined (and can vary

from platform to platform). Use double to convert a character array into its numeric

codes.

S = char(C), when C is a cell array of strings, places each element of C into the rows

of the character array s. Use cellstr to convert back.

S = char(t1,t2,t3,..) forms the character array S containing the text strings T1,T2,T3,...

as rows, automatically padding each string with blanks to form a valid matrix. Each

text parameter, Ti, can itself be a character array. This allows the creation of arbitrarily

large character arrays. Empty strings are significant.

Remarks

Page 21: Optical Character

Ordinarily, the elements of A are integers in the range 32:127, which are the printable

ASCII characters, or in the range 0:255, which are all 8-bit values. For noninteger

values, or values outside the range 0:255, the characters printed are determined by

fix(rem(A,256)).

Examples :-

To print a 3-by-32 display of the printable ASCII characters, ascii =

char(reshape(32:127,32,3)')

ascii =

! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _

' a b c d e f g h i j k l m n o p q r s t u v w x y z { |

Page 22: Optical Character

Operation of the project

In this project, we have made two separate programs to recognize alphabets and

digits. For this, we have used the operating principle of Hamming net.

We have designed and trained one network to recognize the 26 letters of the

alphabet and another for the 10 digits i.e. 0 to 9. An imaging system that

digitizes each letter centered in the system's field of vision is available. The

result is that each letter is represented as a 7 by 5 grid of boolean values(1 and -

1).

For example, here are some of the letters and digits

1 1 1 1 -1 1 1 1 1 -11 -1 -1 -1 1 1 -1 -1 -1 11 -1 -1 -1 1 1 -1 -1 -1 1 1 1 1 1 -1 1 -1 -1 -1 11 -1 -1 -1 1 1 -1 -1 -1 11 -1 -1 -1 1 1 -1 -1 -1 11 1 1 1 -1 1 1 1 1 -1

(B) (D)

-1 1 1 1 -1 -1 1 1 1 -1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 1 -1 1 1 -1 -1 -1 1 1 -1 -1 1 -1-1 1 1 1 -1 -1 1 1 -1 1

Page 23: Optical Character

(O) (Q)

1 1 1 1 -1 1 1 1 1 -1 1 -1 -1 -1 1 1 -1 -1 -1 11 -1 -1 -1 1 1 -1 -1 -1 11 1 1 1 -1 1 1 1 1 -1 1 -1 -1 -1 -1 1 -1 1 1 -11 -1 -1 -1 -1 1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 1

(P) (R)

-1 1 1 1 -1 1 1 1 1 1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 -1 1 1 1 -1 -1 -1 1 -1 -1

(I) (T)

1 1 1 1 1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 1 -1 -1 -1 1 1 1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 -1 1 1 1 -1 -1 1 1 1 -1

Page 24: Optical Character

(5) (6) -1 1 1 1 -1 -1 1 1 1 -1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1-1 1 1 1 -1 -1 1 1 1 1 1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 -1 1 -1 -1 1 1 1 -1 -1 1 1 -1 -1

(8) (9)

The network receives the 35 Boolean values as a 35-element input vector. It is

then required to identify the letter by responding with a 26-element output

vector. The 26 elements of the output vector each represent a letter.

To operate correctly, the network should respond with the maximum output

value in the position of the letter being presented to the network. All other

values in the output vector should be lesser.

The Hamming net works on the principle of ‘Competitive learning’.In the first

layer, the input pattern activates at most one output layer neuron or “winner”.

The “winner” is the neuron which gives maximum output. The underlying

association principle is minimum Hamming distance.

The proposed structure exhibits the following favorable characteristics:

Page 25: Optical Character

it operates in one-shot which implies no convergence-time requirements;

it does not require any feedback; and

The network also exhibits

3) it does not require any hidden layer interconnections or tree-search

operations, hence it exhibits low structural as well as operational complexity

However, the imaging system is not perfect and the characters may suffer from

noise. The project does perfect classification of ideal input vectors, and

reasonably accurate classification of noisy vectors.

Page 26: Optical Character

The first MATLAB program performs “Alphabet Recognition”.

35 elements

of a character

matrix

representation

presented as

input to

the netBias b26

Bias b2

Bias b1

.

.

.

.

1

2

3

A

B

Z

.

.

.

N = 35

M = 26

Only the

neuron with

maximum

output value

fires

and turns ON

Hamming Net for Alphabet Recognition

Page 27: Optical Character

The matrices that represent these alphabets are two-dimensional (7x5 elements),

but more conveniently have been written as single row (35 positions) vectors.

The twenty-six 35-element input vectors have been defined in the matrix ‘x’.

This has been used to calculate the 35x 26 weight matrix ‘w’ according to the

Hamming net algorithm. The bias matrix is a 1x26 row vector named ‘b’. It

contains the bias values for the output nodes. The floor() function has been used

for accomplishing this.

The input is presented as a 1x35 row vector named ‘t’ with bipolar values 1 and

-1.

The output matrix ‘y’ has been calculated using the weight matrix ‘w’, the input

vector ‘t’, and the bias matrix ‘b’.

The maximum value among the 26 elements of ‘y’ has been found using the

max() function. The corresponding index value is stored in variable ‘q1’, and

‘q2’, in case two equal outputs are maximum.

Using ‘q1’, the alphabet identified is displayed .The char(), sprintf() and disp()

functions have been used for this.

The second MATLAB program performs “Digit Recognition”.

It utilizes the same procedure as the first program. Here, ‘x’ is a 10x35 matrix,

each row representing a digit. Accordingly, the dimensions of ‘w’ and ‘b’ have

been modified. Here, the output matrix ‘y’ contains 10 elements.

Parameters affecting recognition of character:

Page 28: Optical Character

1. The first step toward better recognition begins with the scanner. The quality of its

charge-coupled device light arrays will affect OCR results. The more tightly

packed these arrays, the finer the image and the more distinct colors the scanner

can detect.

2. Smudges or background color can fool the recognition software. Adjusting the

scan's resolution can help refine the image and improve the recognition rate, but

there are trade-offs.

For example, in an image scanned at 24-bit color with 1,200 dots per inch (dpi),

each of the 1,200 pixels has 24 bits' worth of color information. This scan will take

longer than a lower-resolution scan and produce a larger file, but OCR accuracy

will likely be high.

A scan at 72 dpi will be faster and produce a smaller file—good for posting an

image of the text to the Web—but the lower resolution will likely degrade OCR

accuracy.

Most scanners are optimized for 300 dpi, but scanning at a higher number of dots

per inch will increase accuracy for type under 6 points in size.

3. Bilevel (black and white only) scans are the rule for text documents. Bilevel scans

are faster and produce smaller files, because unlike 24-bit color scans, they require

Page 29: Optical Character

only one bit per pixel. Some scanners can also let you determine how subtle to

make the color differentiation.

Which method will be more effective depends on the image being scanned. A

bilevel scan of a shopworn page may yield more legible text. But if the image to be

scanned has text in a range of colors, as in a brochure, text in lighter colors may

drop out.

Limitations of the project Although the project works satisfactorily, following limitations are encountered

while implementing it :-

Page 30: Optical Character

1. The project utilizes two different programs to process and identify character and

digit input.

2. The project recognizes every input presented to it as at least one of the

characters/digits.

Advantages of OCROften abbreviated OCR, optical character recognition refers to the branch of computer

science that involves reading text from paper and translating the images into a form

that the computer can manipulate (for example, into ASCII codes). An OCR system

Page 31: Optical Character

enables you to take a book or a magazine article, feed it directly into an electronic

computer file, and then edit the file using a word processor.

All OCR systems include an optical scanner for reading text, and sophisticated

software for analyzing images. Most OCR systems use a combination of hardware

(specialized circuit boards) and software to recognize characters, although some

inexpensive systems do it entirely through software. Advanced OCR systems can read

text in large variety of fonts, but they still have difficulty with handwritten text.

The potential of OCR systems is enormous because they enable users to harness the

power of computers to access printed documents. OCR is already being used widely in

the legal profession, where searches that once required hours or days can now be

accomplished in a few seconds.

Advances have made OCR more reliable; expect a minimum of 90% accuracy for

average-quality documents. Despite vendor claims of one-button scanning, achieving

99% or greater accuracy takes clean copy and practice setting scanner parameters and

requires you to "train" the OCR software with your documents.

Applications and Future Prospects

A few examples of OCR applications are listed here. The most common use

for OCR is the first item; people often wish to convert text documents to some

sort of digital representation.

1. Scanning a document and have the text of that document available in a

word processor.

Page 32: Optical Character

2. Recognizing license plate numbers

3. Recognizing zip-codes in post-office

Today, OCR software can recognize a wide variety of fonts, but handwriting

and script fonts that mimic handwriting are still problematic. Developers are

taking different approaches to improve script and handwriting recognition.

OCR software can be first made to identify the font and then run its character-

recognition algorithms. Advances are being made to recognize characters

based on the context of the word in which they appear. The next step can be

document recognition, in which the software can use knowledge of the parts of

speech and grammar to recognize individual characters.

This project can be further developed to perform other types of pattern

recognition, like handwriting recognition.

CONCLUSION

Engineering students will have to serve in the public or private sector industries,

labs. Workshop based training and teaching in classroom have their own

limitations .The lack of exposure to real life material processes and functioning

of industrial organization is the major hindrance in the student’s development .

Project is a major step to remove this hindrance. Through this project, we have

gained knowledge about MATLAB and NEURAL NETWORKS.

Page 33: Optical Character

This project helps an individual in gaining new practical concepts and this is the

practical knowledge which helps one in their respective jobs

The purpose of OPTICAL CHARACTER RECOGNITION is to provide an

efficient way to recognize pattern of various types given by the user. We can

conclude that OCR provides ease of performance, saves time, and at the same

time, it is user friendly.