draft

76
FACE RECOGNITION USING NEURAL NETWORK Chapter 1 INTRODUCTION 1.1 Motivation: "Friend, the old days were better when the instructor use to call out the names and take the attendance. Now the proxy attendance has become a dream by the advent of this new automated system". Well, the day is not far when the students will be talking likewise while coming out of the lecture halls. Here, we present one such attempt towards making this dream come true. Positive identification of individuals is a very basic societal requirement. In small tribes and villages, everyone knew and recognized everyone else. You could easily detect a stranger or identify a potential breach of security. In today’s larger, more complex society, it isn’t that simple. In fact, as more interactions take place electronically, it becomes even more important to have an electronic verification of a person’s identity. Until recently, electronic verification took one of two forms. It was based on something the person had in their possession, like a magnetic swipe card, or something they knew, like a password. 1.2 Problem Statement: DEPT OF CSE,PESITM SHIMOGGA Page 1

Upload: rohitbr1

Post on 27-Nov-2014

170 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Draft

FACE RECOGNITION USING NEURAL NETWORK

Chapter 1

INTRODUCTION

1.1 Motivation:

"Friend, the old days were better when the instructor use to call out the

names and take the attendance. Now the proxy attendance has become a dream by the

advent of this new automated system".

Well, the day is not far when the students will be talking likewise while

coming out of the lecture halls. Here, we present one such attempt towards making this

dream come true. Positive identification of individuals is a very basic societal

requirement. In small tribes and villages, everyone knew and recognized everyone else.

You could easily detect a stranger or identify a potential breach of security. In today’s

larger, more complex society, it isn’t that simple. In fact, as more interactions take place

electronically, it becomes even more important to have an electronic verification of a

person’s identity. Until recently, electronic verification took one of two forms. It was

based on something the person had in their possession, like a magnetic swipe card, or

something they knew, like a password.

1.2 Problem Statement:

The problem is, these forms of electronic identification aren’t very secure,

because they can be given away, taken away, or lost and motivated people have found

ways to forge or circumvent these credentials. The ultimate form of electronic

verification of a person’s identity is biometrics; using a physical attribute of the person

to make a positive identification. There are many robust biometric techniques like

fingerprinting which can be used for human authentication then why go for face

recognition? In many applications like the surveillance and monitoring ,say, of a public

place, the traditional biometric techniques will fail as for obvious reasons we can not ask

everyone to come and put his/her thumb on a slide or something similar. So we need a

system which is similar to the human eye in some sense to identify a person.

DEPT OF CSE,PESITM SHIMOGGA Page 1

Page 2: Draft

FACE RECOGNITION USING NEURAL NETWORK

To cater this need and using the observations of human psychophysics, face

recognition as a field emerged. Different approaches have been tried by several groups,

working world wide, to solve this problem. Many commercial products have also found

their way into the market using one or the other technique.

But so far no system / technique exists which has shown satisfactory results in all

circumstances. A comparison of these techniques needs to be done. Reliable automatic

recognition of persons has long been an attractive goal.

In face recognition, difficulties arise from the fact that the face is a changeable

social organ displaying a variety of expressions, as well as being an active 3D object

whose image varies with viewing angle, pose, illumination, accoutrements, and age.

It has been shown that for facial images taken at least one year apart, even the best

current algorithms have error rates of 43% to 50% . An Artificial Neural Network

(ANN) system provides automatic recognition of an individual based on some sort of

unique feature or characteristic possessed by the individual.ANN systems have

been developed based on fingerprints, facial features, voice, hand geometry,

handwriting, the retina etc.

1.3 Computer vision:

Till the date all the methods in Digital image processing is based on mathematical

operations shapes and the other properties of the object. For the real world problems these

methods are inefficient with low accuracy and least adapted for the changing

environment, these problems have given way for the brand new area of interest called

computer vision which mainly a combination of digital image processing, artificial

intelligence, statistics, machine learning, data mining and lot of neuron biological

domains. This has shifted digital image processing from object oriented properties to the

more complicated concepts like learning, knowledge, common sense, prediction and lots

other characteristics of a human.

1.4 Overview of the system:

ANN systems work by first capturing a sample of the feature, such as

recording a digital sound signal for voice recognition, or taking a digital color image

for face recognition. The sample is then transformed using some sort of mathematical

function into a biometric template.

DEPT OF CSE,PESITM SHIMOGGA Page 2

Page 3: Draft

FACE RECOGNITION USING NEURAL NETWORK

The biometric template will provide a normalized, efficient and highly

discriminating representation of the feature, which can then be objectively compared

with other templates in order to determine identity. Most ANN systems allow two

modes of operation. An enrolment mode for adding templates to a database, and an

identification mode, where a template is created for an individual and then a match is

searched for in the database of pre-enrolled templates.

Fig:A Generic representation of face detection system

A good ANN is characterized by use of a feature that is; highly unique – so

that the chance of any two people having the same characteristic will be minimal,

stable – so that the feature does not change over time, and be easily captured – in

order to provide convenience to the user, and prevent misrepresentation of the feature.

1.5 Applications:

Fig 1. Application areas of Face Recognition

DEPT OF CSE,PESITM SHIMOGGA Page 3

Page 4: Draft

FACE RECOGNITION USING NEURAL NETWORK

1.7 Report organization:

Chapter 2: Literature survey

Chapter 3: Describes the methodologies for Database creation and loading the images to

network and training the loaded face sets and recognition of face sets using Artificial

Neural Network. It also includes the basics of Matlab and GUI.

Chapter 4: Implementation steps and Experiments of different input image on a system

and there test results with different test cases.

Chapter 5: It concludes our work and provides the way for future enhancement in this

project.

DEPT OF CSE,PESITM SHIMOGGA Page 4

Page 5: Draft

FACE RECOGNITION USING NEURAL NETWORK

Chapter 2

REVIEW OF LITERATURE

Existing Biometrics

Fingerprint Recognition

Voice Recognition

Signature Recognition

Fingerprint

Fingerprint scan method is gaining a lead ahead of other biometric systems, as it is

least intrusive and less harmful to the user.  It needs a high-resolution snapshot of the

finger, which is easy and effective.  Common examples are criminal records, forensic and

access-control mechanisms in high-security establishments.  It is based on the uniqueness

of one’s fingerprint.

This process however began as a highly manual function where individuals would

spend weeks or months trying to match the hard copy fingerprints that were on file with

those obtained elsewhere.  In many cases matches were difficult if not impossible to make

and it was not uncommon for misidentifications to occur.  With advancements in

computer technology, electronic archives that allow the matching process to occur much

faster and with a much lower error rate were procured.

The below figure2.1 shows the example of finger print recognition system.

Figure 2.1 Image of a finger print

DEPT OF CSE,PESITM SHIMOGGA Page 5

Page 6: Draft

FACE RECOGNITION USING NEURAL NETWORK

Signature recognition

Signature Recognition technology consists primarily of a pen and a specialized

writing tablet, which are then connected to a local or central computer for template

processing and verification.  In order to start the data acquisition phase of the enrollment

process, the individual must sign their name multiple times on the writing tablet.  The

robustness of the Signature Recognition enrollment template is a direct function of the

quality of the writing tablet that is utilized.

A high quality writing tablet will be able to capture all of the behavioral variables

(timing, pressure, and speed) of the signature, whereas a lower end writing tablet may not

be able to capture all of the variables.  However, there are a number of constraints in the

data acquisition phase.  First, a signature cannot be too long or too short.  If a signature is

too long, there will be too much behavioral data presented, and as a result, it will be

difficult for the Signature Recognition system to identify consistent and unique data

points.  If a signature is too short, there will not be enough data present, and as a result,

this will lead to a higher False Accept Rate (for example, an impostor being authorized by

the Signature Recognition system).  Second, the individual must complete the enrollment

and verification processes in the same type of environment and conditions. 

For example, if the individual was standing in the enrollment phase, but sitting in

the verification phase, and resting their arm in one phase and not in the other phase while

signing, can cause the enrollment and verification templates to be substantially different

from each other. This constraint of a consistent environment is also faced by another

biometric technology-Facial Recognition.

Voice recognition

Today, when we call most large companies, a person doesn't usually answer the

phone. Instead, an automated voice recording answers and instructs you to press buttons

to move through option menus. Many companies have moved beyond requiring you to

press buttons, though. Often you can just speak certain words (again, as instructed by a

recording) to get what you need. The system that makes this possible is a type of speech

recognition program -- an automated phone system.

DEPT OF CSE,PESITM SHIMOGGA Page 6

Page 7: Draft

FACE RECOGNITION USING NEURAL NETWORK

2.1. Limitations of the above mentioned biometric systems

Fingerprint

This process began as a highly manual function, where individuals would spend

weeks or months trying to match the hard copy fingerprints that were on file with

those obtained elsewhere.

Signature recognition

If a signature is too long, there will be too much behavioral data presented, it will

be difficult for the Signature Recognition system to identify consistent and unique

data points.

If a signature is too short, there will not be enough data present, and as a result,

this will lead to a higher False Accept Rate.

Voice recognition

Small-vocabulary/many-users: usage is limited to a small number of

predetermined commands and inputs, such as basic menu options or numbers.

Large-vocabulary/limited-users: These systems work best in a business

environment where a small number of users will work with the program.

While these systems work with a good degree of accuracy (85 percent or higher

with an expert user) and have vocabularies in the tens of thousands, you must train

them to work best with a small number of primary users. The accuracy rate will

fall drastically with any other user.

DEPT OF CSE,PESITM SHIMOGGA Page 7

Page 8: Draft

FACE RECOGNITION USING NEURAL NETWORK

Limitations of Existing System

Ø Existing system is unable to adapt to the external conditions.

Ø Accuracy of identification is less.

Ø Time consuming.

But in the case of proposed system we are extracting a pattern and create NN files

rather than a complete image and it is from this pattern that the Neural Networks does

the identification.

2.2. Advantages of the Face recognition system

Face recognition has many advantages over the other forms of biometric identification.

1.Accuracy: Simply put, Face recognition is the most accurate form of identification

known to man. More accurate than even DNA matching.

Due to the process of chaotic morphogenesis, every iris is unique to a degree that the

probability of 2 irises being identical is 1 in 10 to the power of 78. Additionally, our iris

recognition system captures over 249 'degrees of freedom' or points of interest.

2.Speed: No other biometric technology is designed to deliver 1-n searching of large

databases in real time. This technology has nearly 20 times more matches per minute

than its closest competitor. Looking at speed in conjunction with accuracy, there's

simply no other technology that can deliver high accuracy authentication in anything

close to the real-time performance of Face recognition.

3.Stability: The Face image remains stable from the age of about 10 months up until

death.

This means that an face image need only be captured once and does not need to be

updated. Other biometric measures change over time. Hands and fingers grow, our

voices change, our skin degrades and other biometric measures are subject to labor,

health, genetics, climate and age. What this means is that the performance of such

systems is unreliable and frequent re-enrolments are required to accommodate these

changes.

DEPT OF CSE,PESITM SHIMOGGA Page 8

Page 9: Draft

FACE RECOGNITION USING NEURAL NETWORK

4. Robust recognition: face recognition system works well, even with gazing-away eyes

or narrowed eyelids and scrapped faces.

2.3. Applications

The face recognition system covers a wide range of application in authenticating persons

It can be deployed in:

Border control system

Airports

Biometric passports

Banking systems, ATM’s

Authorized access to healthcare records, intellectual property, etc

Identification of criminals

In Govt. organization where restricted access exists.

Productivity enhancing applications like time and attendance.

DEPT OF CSE,PESITM SHIMOGGA Page 9

Page 10: Draft

FACE RECOGNITION USING NEURAL NETWORK

Chapter 3

METHODOLOGY

3.1 Basics of image color models:

3.1.1 RGB color model:

The RGB color model is an additive color model in which red, green, and blue

light are added together in various ways to reproduce a broad array of colors.

Fig 3.1 RGB color model

The RGB model, this is represented by a cube using non-negative values within a

0–1 range, assigning black to the origin at the vertex (0, 0, 0), and with increasing

intensity values running along the three axes up to white at the vertex (1, 1, 1),

diagonally opposite black.

An RGB triplet (r, g, b) represents the three-dimensional coordinate of the point

of the given color within the cube or its faces or along its edges.

Below is a original RGB image with each of red, green and blue frames extracted

from the image separately.

DEPT OF CSE,PESITM SHIMOGGA Page 10

Page 11: Draft

FACE RECOGNITION USING NEURAL NETWORK

Fig 3.2 Original image and RGB extract

3.1.2 Grayscale color model:

Grayscale images are distinct from one-bit bi-tonal black-and-white images,

which in the context of computer imaging are images with only the two colors, black,

and white (also called bilevel or binary images). Grayscale images have many shades of

gray in between.

Fig 3.3 Grayscale image

The intensity of a pixel is expressed within a given range between a minimum

and a maximum, inclusive.

DEPT OF CSE,PESITM SHIMOGGA Page 11

Page 12: Draft

FACE RECOGNITION USING NEURAL NETWORK

This range is represented in an abstract way as a range from 0 (total absence,

black) and 1 (total presence, white), with any fractional values in between. This notation

is used in academic papers, but it must be noted that this does not define what "black" or

"white" is in terms of colorimetric.

3.1.3 Binary image color model:

A binary image is a digital image that has only two possible values for each

pixel. Typically the two colors used for a binary image are black and white though any

two colors can be used. The color used for the object(s) in the image is the foreground

color while the rest of the image is the background color.

Fig 3.4 Binary image

Binary images often arise in digital image processing as masks or as the result of

certain operations such as segmentation, thresholding, and dithering.

3.1.4 Thresholding:

Thresholding is the simplest method of image segmentation. From a grayscale

image, thresholding can be used to create binary images.

Fig 3.5 Original image Fig 3.6 image obtained after using thresholding

DEPT OF CSE,PESITM SHIMOGGA Page 12

Page 13: Draft

FACE RECOGNITION USING NEURAL NETWORK

The fig3.5 is the original image which is the converted into fig3.6 using the

thresholding method.

During the thresholding process, individual pixels in an image are marked as

“object” pixels if their value is greater than some threshold value (assuming an object to

be brighter than the background) and as “background” pixels otherwise. This convention

is known as threshold above. Variants include threshold below, which is opposite of

threshold above; threshold inside, where a pixel is labeled "object" if its value is between

two thresholds; and threshold outside, which is the opposite of threshold inside.

Typically, an object pixel is given a value of “1” while a background pixel is given a

value of “0.” Finally, a binary image is created by coloring each pixel white or black,

depending on a pixel's labels.

3.2 MATLAB:

The proposed system can be developed in any platform, C#/C++, MATLAB and

Java. We have chosen to develop the program in MATLAB, a high-performance

programming language, good in matrix manipulation and numerical computing with an

easy-to-use environment. The main reason of the current choice is MATLAB’s Image

Processing Toolbox which provides a comprehensive set of graphical tools and

reference-standard algorithms ideal for image processing.

The toolbox comes with the programming language and it is highly integrated

with it. All of its functions are carefully planned and developed to keep performance

high and produce accurate results. As the proposed project mainly deals with images,

MATLAB is the ideal language to be used. No other programming language offers such

a large collection of built-in functions supporting image analysis and enhancement.

Overall MATLAB is an excellent programming language which enables us to

write efficient code and develop GUIs fast with comparatively little effort. It has two

main disadvantages; The first disadvantage of the language is that it can be considered

slow compared to C#/C++ and Java, as these languages can compute calculations,

execute methods and return results faster. MATLAB’s GUI is particularly slow as it

needs some time to update all the fields when this is required in an application. A

DEPT OF CSE,PESITM SHIMOGGA Page 13

Page 14: Draft

FACE RECOGNITION USING NEURAL NETWORK

complete installation of the programming language occupies a large amount of hard

drive space.

Features of MATLAB:

High-level language for technical computing.

Development environment for managing code, files, and data .

Interactive tools for iterative exploration, design, and problem solving.

Mathematical functions for linear algebra, statistics, Fourier analysis, filtering,

optimization, and numerical integration .

2-D and 3-D graphics functions for visualizing data .

Tools for building custom graphical user interfaces .

Functions for integrating MATLAB based algorithms with external applications and

languages, such as C, C++, Fortran, Java, COM, and Microsoft Excel.

3.3 Artificial Neural Network

An artificial neural network (ANN) or commonly just neural network (NN) is

an interconnected group of artificial neurons that uses a mathematical model or

computational model for information processing based on a connectionist approach to

computation. In most cases an ANN is an adaptive system that changes its structure

based on external or internal information that flows through the network.

Artificial neural networks are made up of interconnecting artificial neurons

(usually simplified neurons) designed to model (or mimic) some properties of

biological neural networks. Artificial neural networks can be used to model the modes

of operation of biological neural networks; whereas cognitive models are theoretical

models that mimic cognitive brain functions without necessarily using neural

networks while artificial intelligence are well-crafted algorithms that solve specific

intelligent problems (such as chess playing, pattern recognition, etc.) without using

neural network as the computational architecture.

It consists of interconnected processing elements called nodes or neurons that

work together to produce an output function. The output of a neural network relies on

the cooperation of the individual neurons within the network to operate.

These are essentially simple mathematical models defining a function .

DEPT OF CSE,PESITM SHIMOGGA Page 14

Page 15: Draft

FACE RECOGNITION USING NEURAL NETWORK

Each type of ANN model corresponds to a class of such functions.

Fig 3.42 Multilayer perceptron

A neural network is an interconnected group of nodes, akin to the vast network

of neurons in the human brain. The most significant feature of neural networks is the

possibility of learning, which in practice means the following:

Given a specific task to solve, and a class of functions F, learning means using a

set of observations, in order to find which solves the task in an optimal

sense.

There are three major learning paradigms, each corresponding to a particular

abstract learning task. These are supervised learning, unsupervised learning and

reinforcement learning.

3.3.1 The Neuron:

The neuron will consist of synapses set, an adder and an activation function.

There is weight allocate to each synapse. The function of the adder will add the input

signal and weight then by the neuron synapse. The function of the activation will control

the amplitude of the neuron output.

DEPT OF CSE,PESITM SHIMOGGA Page 15

Page 16: Draft

FACE RECOGNITION USING NEURAL NETWORK

Fig 3.43 Synaptic weights

Neuron mathematically can be determined by the equations:

The annotation of (X1…Xn) represents the input signal, Wkn represents the

neuron synaptic weights, Uk is the adder output, Yk represents the output and psi function

represent the activation function.

Sigmoid function is one of the most common activation function used in neural

network. It is a increasing function of S-shaped graph.

3.3.2 Training Modes:

The learning results from the multiple presentation of the training set to the

network. “Epoch” is the complete training set during the whole process of learning.

DEPT OF CSE,PESITM SHIMOGGA Page 16

Page 17: Draft

FACE RECOGNITION USING NEURAL NETWORK

The learning process will still be in progress unless an error signal hit the

predestined minimum value. Thus, we need to shuffle the order of the presentation of the

training examples between epochs.

There are two type of back propagation learning for the given training set:

The “sequential mode” referred as online, pattern mode and the weights will

be updated after the training example

The “batch mode” referred to weights will update after the training is

presented to the network.

3.3.3 Teaching the Neural Network

Supervised learning

In supervised learning, we are given a set of example pairs

and the aim is to find a function f in the allowed class of

functions that matches the examples. In other words, we wish to infer the mapping

implied by the data; the cost function is related to the mismatch between our mapping

and the data and it implicitly contains prior knowledge about the problem domain. A

commonly used cost is the mean-squared error which tries to minimise the average

error between the network's output, f(x), and the target value y over all the example

pairs. When one tries to minimise this cost using gradient descent for the class of

neural networks called Multi-Layer Perceptrons, one obtains the well-known

backpropagation algorithm for training neural networks.

Fig 3.44 Supervised learning

DEPT OF CSE,PESITM SHIMOGGA Page 17

Page 18: Draft

FACE RECOGNITION USING NEURAL NETWORK

Tasks that fall within the paradigm of supervised learning are pattern

recognition (also known as classification) and regression (also known as function

approximation). The supervised learning paradigm is also applicable to sequential

data (e.g., for speech and gesture recognition). This can be thought of as learning with

a "teacher," in the form of a function that provides continuous feedback on the quality

of solutions obtained thus far.

Unsupervised learning

In unsupervised learning we are given some data x, and the cost function to be

minimised can be any function of the data x and the network's output, f. The cost

function is dependent on the task (what we are trying to model) and our a priori

assumptions (the implicit properties of our model, its parameters and the observed

variables). As a trivial example, consider the model f(x) = a, where a is a constant and

the cost C = (E[x] − f(x))2. Minimising this cost will give us a value of a that is equal

to the mean of the data. The cost function can be much more complicated. Its form

depends on the application: For example in compression it could be related to the

mutual information between x and y. In statistical modelling, it could be related to the

posterior probability of the model given the data. (Note that in both of those examples

those quantities would be maximised rather than minimised).

Fig3.45 Unsupervised learning

Tasks that fall within the paradigm of unsupervised learning are in general

estimation problems; the applications include clustering, the estimation of statistical

distributions, compression and filtering.

DEPT OF CSE,PESITM SHIMOGGA Page 18

Page 19: Draft

FACE RECOGNITION USING NEURAL NETWORK

3.4 Types of neural networks

3.4.1 Feedforward neural network

The feedforward neural networks are the first and arguably simplest type of

artificial neural networks devised. In this network, the information moves in only one

direction, forward, from the input nodes, through the hidden nodes (if any) and to the

output nodes. There are no cycles or loops in the network.

3.4.2 Single-layer perceptron

The earliest kind of neural network is a single-layer perceptron network,

which consists of a single layer of output nodes; the inputs are fed directly to the

outputs via a series of weights. In this way it can be considered the simplest kind of

feed-forward network. The sum of the products of the weights and the inputs is

calculated in each node, and if the value is above some threshold (typically 0) the

neuron fires and takes the activated value (typically 1); otherwise it takes the

deactivated value (typically -1). Neurons with this kind of activation function are also

called McCulloch-Pitts neurons or threshold neurons.

Fig: Single Neuron example neural network

The above Figure shows an example of a single neural processor, or neuron.

DEPT OF CSE,PESITM SHIMOGGA Page 19

Page 20: Draft

FACE RECOGNITION USING NEURAL NETWORK

Neurons have many weighted inputs, that is to say each input (p1, p2, p3… pm)

has a related weighting (w1, w2, w3… wm) according to its importance.

Each of these inputs is a scalar, representing the data. In the case of face

detection, the shade of GRAY of each pixel could be presented to the neuron in parallel

(thus for a 10x10 pixel image, there would be 100 input lines p1 to p100,with respective

weightings w1 to w100, corresponding to the 100 pixels in the input image).The

weighted inputs are combined together, and if present, a bias (b) is added.

This is then passed as the argument to a transfer function (typically a pure linear,

hardlimit, or log-sigmoid function),which outputs a value (a) representing the chosen

classification.

3.4.3 Multi-layer perceptron

A two-layer neural network capable of calculating XOR. The numbers within

the neurons represent each neuron's explicit threshold (which can be factored out so

that all neurons have the same threshold, usually 1). The numbers that annotate

arrows represent the weight of the inputs. This net assumes that if the threshold is not

reached, zero (not -1) is output. Note that the bottom layer of inputs is not always

considered a real neural network layer

This class of networks consists of multiple layers of computational units,

usually interconnected in a feed-forward way. Each neuron in one layer has directed

connections to the neurons of the subsequent layer. In many applications the units of

these networks apply a sigmoid function as an activation function. Multi-layer

networks use a variety of learning techniques, the most popular being back-

propagation. Here the output values are compared with the correct answer to compute

the value of some predefined error-function.

By various techniques the error is then fed back through the network.

Using this information, the algorithm adjusts the weights of each connection in

order to reduce the value of the error function by some small amount. After repeating

this process for a sufficiently large number of training cycles the network will

usually converge to some state where the error of the calculations is small. In

this case one says that the network has learned a certain target function.

DEPT OF CSE,PESITM SHIMOGGA Page 20

Page 21: Draft

FACE RECOGNITION USING NEURAL NETWORK

Fig 3.42 Multilayer perceptron

The majority implementations of neural networks available are however

custom implementations in various programming languages and on various platforms.

Basic types of neural networks are simple to implement directly.

There are also many programming libraries that contain neural network

functionality and that can be used in custom implementations. The tasks to which

artificial neural networks are applied tend to fall within the following broad

categories:

• Function approximation, or regression analysis, including time series

prediction and modeling.

• Classification, including pattern and sequence recognition, novelty detection

and sequential decision making.

• Data processing, including filtering, clustering, blind source separation and

compression.

Application areas include system identification and control, game-playing and

decision making , pattern recognition , sequence recognition, medical diagnosis,

financial applications, data mining , visualization and e-mail spam filtering.

DEPT OF CSE,PESITM SHIMOGGA Page 21

Page 22: Draft

FACE RECOGNITION USING NEURAL NETWORK

3.4.4 Eigen VectorIn mathematics, eigenvalue, eigenvector, and eigenspace are related concepts

in the field of linear algebra. The prefix eigen is the German word for innate, distinct,

self. Linear algebra studies linear transformations, which are represented by matrices

acting on vectors. Eigenvalues, eigenvectors and eigenspaces are properties of a

matrix. They are computed by a method described below, give important information

about the matrix, and can be used in matrix factorization. They have applications in

areas of applied mathematics as diverse as finance and quantum mechanics.

In general, a matrix acts on a vector by changing both its magnitude and its

direction. However, a matrix may act on certain vectors by changing only their

magnitude, and leaving their direction unchanged (or possibly reversing it). These

vectors are the eigenvectors of the matrix.

A matrix acts on an eigenvector by multiplying its magnitude by a

factor, which is positive if its direction is unchanged and negative if its direction is

reversed. This factor is the eigenvalue associated with that eigenvector. An

eigenspace is the set of all eigenvectors that have the same eigenvalue, together

with the zero vector. The concepts cannot be formally defined without

prerequisites, including an understanding of matrices, vectors, and linear

transformations. The technical details are given below.

Formally, if A is a linear transformation, a vector x is an eigenvector of A if

there is a scalar λ such that

The scalar λ is said to be an eigenvalue of A corresponding to the eigenvector

x..

Neural network applications:

Aerospace

High performance aircraft autopilot, flight path simulation, aircraft control

systems, autopilot enhancements, aircraft component simulation, aircraft

component fault detection.

Automobile control

Automobile automatic guidance system, warranty activity analysis.

DEPT OF CSE,PESITM SHIMOGGA Page 22

Page 23: Draft

FACE RECOGNITION USING NEURAL NETWORK

Banking

Check and other document reading credit application evaluation.

Credit card activity checking

Neural networks are used to spot unusual credit card activity that might

possibly be associated with loss of a credit card

Defense

Weapon steering, target tracking, object discrimination, facial recognition,

new kinds of sensors, sonar, radar and image signal processing including data

compression, feature extraction and noise suppression, signal/ image

identification.

Electronics

Code sequence prediction, integrated circuit chip laying, process control, chip

failure analysis, machine vision voice synthesis, nonlinear modeling.

Entertainment

Animation, special effects, market forecasting.

Financial

Real estate appraisals, loan advisor, mortgage screening, corporate bond

rating, credit-line use analysis, and portfolio trading program, corporate

financial analysis, and currency price prediction.

Industrial

Neural networks are being trained to predict the output gasses of furnaces and

other industrial process. They then replace complex and costly equipment

used for this purpose in the past.

Insurance

Neural networks are used in policy application evaluation, product

optimization.

Manufacturing

Neural networks are used in manufacturing process control, product design

and analysis, process and machine diagnosis, real-time particle identification,

visual quality analysis, paper quality prediction, computer – chip quality

analysis, analysis of grinding operations, chemical product design analysis,

DEPT OF CSE,PESITM SHIMOGGA Page 23

Page 24: Draft

FACE RECOGNITION USING NEURAL NETWORK

machine maintenance analysis, project bidding, planning and management,

dynamic modeling of chemical process system.

Medical

Neural networks are used in breast cancer cell analysis, EEG and ECG

analysis, prosthesis design, optimization of transplant times, hospital expense

reduction, hospital quality improvement, and emergency room test

advisement.

Oil and Gas

Neural networks are used in exploration of oil and gas.

Robotics

Neural networks are used in trajectory control, forklift robot, manipulator

controllers, vision systems

Other application

Artificial intelligence

Character recognition

Image understanding

Logistics

Optimization

Quality Control

Visualization

Advantages and disadvantages Of ANN:

Advantage : --

1. It involve human like thinking.

2. They handle noisy or missing data.

3. They create their own relationship amongst information – no equations!

4. They can work with large number of variables or parameters.

5. They provide general solutions with good predictive accuracy.

6. System has got property of continuous learning.

7. They deal with the non-linearity in the world in which we live.

Disadvantage :–

1. In learning process time required may be in several months or years.

2. It is hard to implement.

DEPT OF CSE,PESITM SHIMOGGA Page 24

Page 25: Draft

FACE RECOGNITION USING NEURAL NETWORK

3.5 MATLAB toolbox for ANN:

Following are the toolboxes we used in this project:

Tansig

Purpose

Hyperbolic tangent sigmoid transfer function

Graph and Symbol

Fig:Tan-Sigmoid Transfer Function

Syntax

A = tansig(N,FP)

dA_dN = tansig('dn',N,A,FP)

info = tansig(code)

Description

tansig is a neural transfer function. Transfer functions calculate a layer's

output from its net input.

tansig(N,FP) takes N and optional function parameters,

N S x Q matrix of net input (column) vectors

FP Struct of function parameters (ignored)

and returns A, the S x Q matrix of N's elements squashed into [-1 1].

DEPT OF CSE,PESITM SHIMOGGA Page 25

Page 26: Draft

FACE RECOGNITION USING NEURAL NETWORK

tansig('dn',N,A,FP) returns the derivative of A with respect to N. If A or

FP is not supplied or is set to [], FP reverts to the default parameters, and A is

calculated from N.

tansig('name') returns the name of this function.

tansig('output',FP) returns the [min max] output range.

tansig('active',FP) returns the [min max] active input range.

tansig('fullderiv') returns 1 or 0, depending on whether dA_dN is S x S x

Q or

S x Q.

tansig('fpnames') returns the names of the function parameters.

tansig('fpdefaults') returns the default function parameters.

Examples

Here is the code to create a plot of the tansig transfer function.

n = -5:0.1:5;

a = tansig(n);

plot(n,a)

Assign this transfer function to layer i of a network.

net.layers{i}.transferFcn = 'tansig';

initnw

DEPT OF CSE,PESITM SHIMOGGA Page 26

Page 27: Draft

FACE RECOGNITION USING NEURAL NETWORK

Purpose

Nguyen-Widrow layer initialization function

Syntax

net = initnw(net,i)

Description

initnw is a layer initialization function that initializes a layer's weights and biases

according to the Nguyen-Widrow initialization algorithm. This algorithm chooses values

in order to distribute the active region of each neuron in the layer approximately evenly

across the layer's input space. The values contain a degree of randomness, so they are

not the same each time this function is called.

initnw requires that the layer it initializes have a transfer function with a finite active

input range. This includes transfer functions such as tansig and satlin, but not purelin,

whose active input range is the infinite interval [-inf, inf]. Transfer functions, such as

tansig, will return their active input range as follows:

activeInputRange = tansig('active')

activeInputRange =

-2 2

initnw(net,i) takes two arguments,

net Neural network

i Index of a layer

and returns the network with layer i's weights and biases updated.

There is a random element to Nguyen-Widrow initialization. Unless the default random

generator is set to the same seed before each call to initnw, it will generate different

weight and bias values each time.

Network Use

DEPT OF CSE,PESITM SHIMOGGA Page 27

Page 28: Draft

FACE RECOGNITION USING NEURAL NETWORK

You can create a standard network that uses initnw by calling newff or newcf.

To prepare a custom network to be initialized with initnw,

1. Set net.initFcn to 'initlay'. This sets net.initParam to the empty matrix [], because

initlay has no initialization parameters.

2. Set net.layers{i}.initFcn to 'initnw'.

To initialize the network, call init.

Initlay

Purpose

Layer-by-layer network initialization function

Syntax

net = initlay(net)

info = initlay(code)

Description

initlay is a network initialization function that initializes each layer i according to its

own initialization function net.layers{i}.initFcn.

initlay(net) takes

net Neural network

and returns the network with each layer updated. initlay(code) returns useful information

for each code string:

'pnames' Names of initialization parameters

'pdefaults' Default initialization parameters

DEPT OF CSE,PESITM SHIMOGGA Page 28

Page 29: Draft

FACE RECOGNITION USING NEURAL NETWORK

initlay does not have any initialization parameters.

Network Use

You can create a standard network that uses initlay by calling newp, newlin,

newff, newcf, and many other new network functions.

To prepare a custom network to be initialized with initlay,

1. Set net.initFcn to 'initlay'. This sets net.initParam to the empty matrix [], because

initlay has no initialization parameters.

2. Set each net.layers{i}.initFcn to a layer initialization function. (Examples of such

functions are initwb and initnw.)

To initialize the network, call init.

msereg

Purpose

Mean squared error with regularization performance function

Syntax

perf = msereg(E,Y,X,FP)

dPerf_dy = msereg('dy',E,Y,X,perf,FP)

dPerf_dx = msereg('dx',E,Y,X,perf,FP)

info = msereg(code)

Description

msereg is a network performance function. It measures network performance as the

weight sum of two factors: the mean squared error and the mean squared weight and bias

values.

msereg(E,Y,X,FP) takes E and optional function parameters,

DEPT OF CSE,PESITM SHIMOGGA Page 29

Page 30: Draft

FACE RECOGNITION USING NEURAL NETWORK

E Matrix or cell array of error vectors

Y Matrix or cell array of output vectors (ignored)

X Vector of all weight and bias values

FP.ratio Ratio of importance between errors and weights

and returns the mean squared error plus FP.ratio times the mean squared weights.

msereg('dy',E,Y,X,perf,FP) returns the derivative of perf with respect to Y.

msereg('dx',E,Y,X,perf,FP) returns the derivative of perf with respect to X.

msereg('name') returns the name of this function.

msereg('pnames') returns the names of the training parameters.

msereg('pdefaults') returns the default function parameters.

Examples

Here a two-layer feed-forward network is created with a one-element input ranging from

-2 to 2, four hidden tansig neurons, and one purelin output neuron.

net = newff([-2 2],[4 1]

  {'tansig','purelin'},'trainlm','learngdm','msereg');

The network is given a batch of inputs P. The error is calculated by subtracting

the output A from target T. Then the mean squared error is calculated using a ratio of

20/(20+1). (Errors are 20 times as important as weight and bias values).

p = [-2 -1 0 1 2];

t = [0 1 1 1 0];

y = sim(net,p)

e = t-y

net.performParam.ratio = 20/(20+1);

DEPT OF CSE,PESITM SHIMOGGA Page 30

Page 31: Draft

FACE RECOGNITION USING NEURAL NETWORK

perf = msereg(e,net)

Network Use

You can create a standard network that uses msereg with newff, newcf, or newelm.

To prepare a custom network to be trained with msereg, set net.performFcn to 'msereg'.

This automatically sets net.performParam to msereg's default performance parameters.

In either case, calling train or adapt results in msereg's being used to calculate

performance.

• trainscg

Purpose

Scaled conjugate gradient backpropagation

Syntax

[net,TR,Ac,El] = trainscg(net,TR,trainV,valV,testV)

info = trainscg('info')

Description

trainscg is a network training function that updates weight and bias values according to

the scaled conjugate gradient method.

trainscg(net,TR,trainV,valV,testV) takes these inputs,

net Neural network

TR Initial training record created by train

trainV Training data created by train

valV Validation data created by train

DEPT OF CSE,PESITM SHIMOGGA Page 31

Page 32: Draft

FACE RECOGNITION USING NEURAL NETWORK

testV Test data created by train

and returns

net Trained network

TR Training record of various values over each epoch.

Each argument trainV, valV, and testV is a structure of these fields:

X N x TS cell array of inputs for N inputs and TS time steps. X{i,ts} is an Ri x Q

matrix for the ith input and TS time step.

Xi N x Nid cell array of input delay states for N inputs and Nid delays. Xi{i,j} is an Ri

x Q matrix for the ith input and jth state.

Pd N x S x Nid cell array of delayed input states.

T No x TS cell array of targets for No outputs and TS time steps. T{i,ts} is an Si x Q

matrix for the ith output and TS time step.

Tl Nl x TS cell array of targets for Nl layers and TS time steps. Tl{i,ts} is an Si x Q

matrix for the ith layer and TS time step.

Ai Nl x TS cell array of layer delays states for Nl layers, TS time steps. Ai{i,j} is an Si

x Q matrix of delayed outputs for layer i, delay j.

Network Use

You can create a standard network that uses trainscg with newff, newcf, or newelm. To

prepare a custom network to be trained with trainscg,

1. Set net.trainFcn to 'trainscg'. This sets net.trainParam to trainscg's default

parameters.

2. Set net.trainParam properties to desired values.

In either case, calling train with the resulting network trains the network with trainscg.

DEPT OF CSE,PESITM SHIMOGGA Page 32

Page 33: Draft

FACE RECOGNITION USING NEURAL NETWORK

Examples

Here is a problem consisting of inputs p and targets t to be solved with a network.

p = [0 1 2 3 4 5];

t = [0 0 0 1 1 1];

Here a two-layer feed-forward network is created. The network's input ranges from [0 to

10]. The first layer has two tansig neurons, and the second layer has one logsig neuron.

The trainscg network training function is to be used.

net = newff([0 5],[2 1],{'tansig','logsig'},'trainscg');

a = sim(net,p)

Here the network is trained and retested.

net = train(net,p,t);

a = sim(net,p)

See newff, newcf, and newelm for other examples.

3.6 GRAPHICAL USER INTERFACE (GUI)

The graphical user interface allows people to interact with a computer. The GUI

consists of graphical icons and special widgets. The icons are label with text to guide

the user. In our project we designed GUI with the help of Mat Lab. Mat lab has the rich

toolbars and objectives makes GUI with highly efficient. We are using GUIDE to create

GUI in Mat lab.

3.6.1 What is GUIDE?

GUI Layout:

DEPT OF CSE,PESITM SHIMOGGA Page 33

Page 34: Draft

FACE RECOGNITION USING NEURAL NETWORK

GUIDE, the MATLAB graphical user interface development environment,

provides a set of tools for creating graphical user interfaces (GUIs). These tools simplify

the process of laying out and programming GUIs.

Using the GUIDE Layout Editor, you can populate a GUI by clicking and

dragging GUI components—such as axes, panels, buttons, text fields, sliders, and so on

—into the layout area. You also can create menus and context menus for the GUI. From

the Layout Editor, you can size the GUI, modify component look and feel, align

components, set tab order, view a hierarchical list of the component objects, and set GUI

options.

GUI Programming:

GUIDE automatically generates a program file containing MATLAB functions

that controls how the GUI operates. This code file provides code to initialize the GUI

and contains a framework for the GUI callbacks—the routines that execute when a user

interacts with a GUI component. Use the MATLAB Editor to add code to the callbacks

to perform the actions you want the GUI to perform.

GUIDE Tools Summary:

The GUIDE tools are available from the Layout Editor shown in the figure

below. The tools are called out in the figure and described briefly below. Subsequent

sections show you how to use them.

DEPT OF CSE,PESITM SHIMOGGA Page 34

Page 35: Draft

FACE RECOGNITION USING NEURAL NETWORK

Fig 3.43 Layout Editor

3.6.2 List of tools:

Layout Editor: Select components from the component palette, at the left side of the

Layout Editor, and arrange them in the layout area.

Figure Resize Tab: Set the size at which the GUI is initially displayed when you run it.

Menu Editor: Create menus and context, i.e., pop-up, menus.

Align Objects: Align and distribute groups of components. Grids and rulers also enable

you to align components on a grid with an optional snap-to-grid capability.

Tab Order Editor: Set the tab and stacking order of the components in your layout.

Toolbar Editor: Create Toolbars containing predefined and custom push buttons and

toggle buttons.

Icon Editor: Create and modify icons for tools in a toolbar.

Property Inspector: Set the properties of the components in your layout. It provides a

list of all the properties you can set and displays their current values.

Object Browser: Display a hierarchical list of the objects in the GUI.

DEPT OF CSE,PESITM SHIMOGGA Page 35

Page 36: Draft

FACE RECOGNITION USING NEURAL NETWORK

Run: Save and run the current GUI.

M-File Editor: Display, in your default editor, the code file associated with the GUI.

Position Readouts: Continuously display the mouse cursor position and the positions of

selected objects

This GUI has 2 tools as shown in figure. They are,

Push Button

Static Text

Push Button:

Each of the push buttons creates a different type of plot using the data specified

by the current selection in the pop-up menu. The push button callbacks get data from the

handles structure and then plot it.

Static text:

Display text in window with same background of the window.

DEPT OF CSE,PESITM SHIMOGGA Page 36

Page 37: Draft

FACE RECOGNITION USING NEURAL NETWORK

3.6.4 Graphical User Interface Specification:

Generate Network:

Click on the “Generate Network” Button , It Creates the custom neural network

as shown bellow.

Syntax

• net = network

net = network(numInputs,numLayers,biasConnect,inputConnect,

layerConnect,outputConnect)

Description

network creates new custom networks. It is used to create networks that are then

customized by functions such as newp, newlin, newff, etc.

network takes these optional arguments (shown with default values):

numInputs Number of inputs, 0

numLayers Number of layers, 0

biasConnect numLayers-by-1 Boolean vector, zeros

inputConnect numLayers-by-numInputs Boolean matrix, zeros

layerConnect numLayers-by-numLayers Boolean matrix, zeros

outputConnect 1-by-numLayers Boolean vector, zeros and returns

net New network with the given property values

Load Database:

Click on the “load database” Button, It will Loading all faces to the database db,

it will load the each face sets in a separate folders. after completion of the loading

process it will print the message as ‘Database Created’.

DEPT OF CSE,PESITM SHIMOGGA Page 37

Page 38: Draft

FACE RECOGNITION USING NEURAL NETWORK

Train Network:

Click on the ‘Train Network’ button. Here trainscg is a network training function

that updates weight and bias values according to the scaled conjugate gradient method

and neural network tool will be displayed as shown bellow.

Training occurs according to trainscg's training parameters, shown here with their

default values:

net.trainParam.epochs 500 Maximum number of epochs to train

net.trainParam.show 25 Epochs between displays (NaN for

nodisplays)

net.trainParam.showCommandLine 0 Generate command-line output

net.trainParam.showWindow 1 Show training GUI

DEPT OF CSE,PESITM SHIMOGGA Page 38

Page 39: Draft

FACE RECOGNITION USING NEURAL NETWORK

net.trainParam.goal 0 Performance goal

net.trainParam.time inf Maximum time to train in seconds

net.trainParam.min_grad 1e-6 Minimum performance gradient

net.trainParam.max_fail 5 Maximum validation failures

net.trainParam.sigma 5.0e-

5

Determine change in weight for second

derivative approximation

net.trainParam.lambda 5.0e-

7

Parameter for regulating the indefiniteness

of the Hessian

trainscg('info') returns useful information about this function.

trainscg can train any network as long as its weight, net input, and transfer functions

have derivative functions. Backpropagation is used to calculate derivatives of

performance perf with respect to the weight and bias variables X.

The scaled conjugate gradient algorithm is based on conjugate directions, as in traincgp,

traincgf, and traincgb, but this algorithm does not perform a line search at each iteration.

Training stops when any of these conditions occurs:

The maximum number of epochs (repetitions) is reached.

The maximum amount of time is exceeded.

Performance is minimized to the goal.

The performance gradient falls below min_grad.

Validation performance has increased more than max_fail times since the last

time it decreased (when using validation).

Test on Faces:

Click on the “Test on Faces” button. It opens the testface folders to test

on the faces which are given and display the result in a separate window with file

name and corresponding person number.

Exit:

DEPT OF CSE,PESITM SHIMOGGA Page 39

Page 40: Draft

FACE RECOGNITION USING NEURAL NETWORK

Click on the “Exit” button. Function is to clear all the things which parameters

stored as a variables and it clears all the data’s and exit the window.

Following code is to clear all functions and variables.

close all;

clear all;

clc

DEPT OF CSE,PESITM SHIMOGGA Page 40

Page 41: Draft

FACE RECOGNITION USING NEURAL NETWORK

Chapter 4

IMPLEMENTATION AND TESTING

4.1 IMPLEMENTATION

Implementation is the stage in the project where the theoretical design of the

project is turned into a working system. The images are extracted and compared with

the original image stored in a file. It is a stage where the operation of the system is

monitored to ensure that it continues to work effectively. Education and training of

the users are also essential to ensure smooth functioning of the system.

The main aim of the system is to implement how the persons are identified by

using their face patterns. First the image is captured and then the identifiable patterns

from the captured image are extracted. An identifiable pattern is obtained for each

image in the image extraction phase. For storing these face patterns, here we are using

the concept of Neural Network. In this it stores the pattern as binary values and from

this an NN file is generated. When a subject wishes to be identified the system checks

the NN file. If any match is found it shows his/her details along with his photograph

or else the subject remains unidentified. The “Face Recognition Using Neural

Network” is implemented in matlab platform.

4.1.1 System design and Architecture:

Project Schema

DEPT OF CSE,PESITM SHIMOGGA Page 41

Page 42: Draft

FACE RECOGNITION USING NEURAL NETWORK

Face Recognition Flow Chart

DEPT OF CSE,PESITM SHIMOGGA Page 42

Page 43: Draft

FACE RECOGNITION USING NEURAL NETWORK

4.2.1 Image Capture Phase:

In this Phase we are capturing the images of peoples from digital camera or web

camera with different facial expressions of the same persons and save them in a

particular folders of separate persons. in this phase we are created the data bases of face

sets and loaded them to database.

4.2.2 Image Processing:

In this phase we are converting the stored color images into the Gray scale

image by using matlab toolkit. image processing is the use of computer algorithms to

perform image processing on digital images. As a subcategory or field of digital signal

processing, image processing has many advantages over analog image processing. It

allows a much wider range of algorithms to be applied to the input data and can avoid

problems such as the build-up of noise and signal distortion during processing. Since

images are defined over two dimensions (perhaps more) image processing may be

modeled in the form of Multidimensional Systems. image processing allows the use of

much more complex algorithms for image processing, and hence, can offer both more

sophisticated performance at simple tasks.

4.2.3 Network Transformation:

In this phase we are sending the stored data base of different face sets to neural

network and the faces will be trained in this phase with the input neuron layers taken as

25 and the number of iterations will be set to 500 initially to get the more accurate result

for the given input faces. Training of the network is using neural network tool which is

present within the matlab kit.

4.2.4 Recognition Process:

In this phase we are giving the image of particular person to identify from all

face sets of stored database, then that image will be compared with all the faces in the

database and gives probability of matching to each faces after this which face gets

maximum probability value that will be considered as exact face of the given input,

otherwise it will gives output as unknown face.

DEPT OF CSE,PESITM SHIMOGGA Page 43

Page 44: Draft

FACE RECOGNITION USING NEURAL NETWORK

4.3 TESTING:

When a system is developed, it is hoped that it performs properly. In practice,

however some errors always occur. The main purpose of testing an information

system is to find the error and correct them. A successful test is one that finds an

error. System testing is a critical aspect of Software Quality Assurance and represents

the ultimate review of specification, design and coding. Testing is the process of

executing a program with the intent of finding an as yet undiscovered error. Nothing

is complete without testing. Testing is vital to the success of the system.

The main objectives of the system testing are:

• To ensure during operation the system will perform as per specification.

• To make sure that the system meets user requirements during operation.

• To verify that the controls incorporated in the system function as intended.

If the testing conducted successfully, it will uncover errors in the software. As

a secondary benefit, testing demonstrates that the software functions appear to be

working according to specification and that performance requirements appear to have

been satisfied.

The system “Face Recognition Using Neural Networks” is tested in such a way

that almost all errors that may occur are found and corrected. The test process carried

out in this system includes the following:

4.3.1 Code testing:

In code testing the logic of the developed system is tested. For this every

module of the program is executed to find any error. To perform specification test, the

examination of the specifications stating what the program should do and how it

should perform under various conditions.

This testing was done side by side with coding. This examines the logic of the

program. In Java special test cases are used for testing the code. Every part of the

program was tested in this phase.

DEPT OF CSE,PESITM SHIMOGGA Page 44

Page 45: Draft

FACE RECOGNITION USING NEURAL NETWORK

4.3.2 Unit Testing:

Unit testing is done in the system in which each module is checked separately.

It focuses on the modules in the proposed system to locate errors. This enables to

detect errors in the coding and logic that are contained within that module alone.

These resulting from the interaction between modules are initially avoided. The

modules that are tested include Neural Network and Identification.The working of

Neural Network is implemented and tested first and then it is applied to the Iris

Recognition and the second module is tested.

4.3.3 Integration testing

System testing does not test the software as a whole, but rather than

integration of each module in the system. The primary concern is the compatibility

of individual modules. One has to find areas where modules have been designed

with different specifications of data lengths, type and data element name. Testing and

validation are the most important steps after the implementation of the developed

system. The system testing is performed to ensure that there are no errors in the

implemented system. The software must be executed several times in order to find out

the errors in the different modules of the system.

4.3.4 Validation testing

Validation refers to the process of using the new software for the developed

system in a live environment i.e., new software inside the organization, in order to

find out the errors. The validation phase reveals the failures and the bugs in the

developed system. It will come to know of the practical difficulties the system faces

when operated in the true environment. By testing the code of the implemented

software, the logic of the program can be examined. A specification test is

performed to check whether the specifications stating the program are performing

under various conditions. Apart from these tests, there are some special tests

conducted which are given below:

• Peak load test This determines whether the new system will handle the volume

of activities when the system is at the peak of its processing demand. The test

has revealed that the new software for the agency is capable of handling the

demands at the peak time.

DEPT OF CSE,PESITM SHIMOGGA Page 45

Page 46: Draft

FACE RECOGNITION USING NEURAL NETWORK

• Storage testing This determines the capacity of the new system to store

transaction data on a disk or on other files. The proposed software has the

required storage space available.

• Performance time testing. This test determines the length of the time used by

the system to process transaction data.

4.3.5 Output Testing:

After the performance of unit testing, the next step is output testing. No

system would be useful if it does not produce the required output in the specific

format, thus output format on the screen is found to be correct when the format was

designed in the system phase according to the user need.

The output testing in this system is carried out by checking whether the person

is identified or not. The output screens are also tested to check whether it meets all the

requirements of the user.

The maintenance of software is the time period in which software product

performs useful works. Maintenance activities involve making enhancement to

software product, adapting product to new environment and correcting problems. It

includes both the improvement of the system function.

It may involve the continuing involvement of a large proportion of computer

department resources. The main task may be to adapt existing system in a changing

environment. System should not be changed casually following informal requests.

To avoid unauthorized amendments, all requests for change should be channeled

to a person nominated by management. The nominated person has sufficient

knowledge of the organization’s computer based systems to be able to judge the

relevance of each proposed change.

There are no required annual costs for support or maintenance required. Of

course, the individual system components come with limited warranties from the

manufacturers, i.e., the PC, camera, etc. There is no obligation to purchase or pay for

any extended maintenance or support.

DEPT OF CSE,PESITM SHIMOGGA Page 46

Page 47: Draft

FACE RECOGNITION USING NEURAL NETWORK

Chapter 5

CONCLUSION

Face recognition is a very valuable technology as it enables to achieve non-

intrusive and convenient security system. It is challenging as the projected image

depends on the person’s pose, expression, lighting conditions, perspective angle and

distance with respect to the camera. We intend to address the problem using Artificial

Neural Network, a technology inspired by human brain mechanism, which is capable of

solving complex problems such as face recognition by feed-back and learning

techniques. There are two main approaches to accomplish this task: estimation of

distances between the facial landmarks, or performing geometrical analysis over gray-

level appearances. We choose to use the gray-level analysis approach based on eigen

faces, as it is proven to be 96% accurate for classification compared to 77.9-90.3%

accuracy of geometric approach.

We are considering three types of neural network architectures: Perceptron,

Linear Associator and Neocognitron. Perceptron is the most commonly used neural

network architecture and considerably easy to implement. Using multilayer perceptron

along with back propagation algorithm would help achieve a reliable system with ability

to learn and classify with high accuracy. Neocognitron is a complex multilayer neural

network architecure specifically made for image processing applications. So,

Neocognitron is considerably complicated, but it can handle positional shifts and

distortion more effectively. The third possible approach is the Linear Associator which

uses basic feed forward mechanism to produce output in a single computation. It is the

simplest and firststudied model of associative memory in neural network. It can be

implemented easily and due to its singular and linear computational feasibility, it can

provide integration for a large number of cells in a network. Linear associator can

perform poorly when a lot of noise is added to the input. However, pre-processing of

input helps drastically overcome noise problem.

The Face Recognition System system successfully overcomes strict and

severe validation checks performed using the test data. The Face Recognition System

can be used in Airport for avoiding the terrorists’ entry in a country.

DEPT OF CSE,PESITM SHIMOGGA Page 47

Page 48: Draft

FACE RECOGNITION USING NEURAL NETWORK

5.1 FUTURE SCOPE

Future enhancements while implementing face recognition are as follows:

• Incremental training can be employed

• More advanced face detection methods can be used.

5.2 APPLICATIONS

• Security/Counter terrorism: Access control, comparing surveillance images to

Known terrorists.

• Immigration: Rapid progression through Customs.

• Correctional institutions/prisons: Inmate tracking, employee access.

• Day Care: Verify identity of individuals picking up the children.

• Gaming Industry: Find card counters and thieves.

• Residential Security: Alert homeowners of approaching personnel.

• Internet, E-commerce: Verify identity for Internet purchases.

DEPT OF CSE,PESITM SHIMOGGA Page 48

Page 49: Draft

FACE RECOGNITION USING NEURAL NETWORK

APPENDIX A:

imshow(RGB) displays the true color image RGB

imshow(BW) displays the binary image BW. imshow displays pixels with the value 0

(zero) as black and pixels with the value 1 as white.

imshow(I) displays the grayscale image I.

I = rgb2gray(RGB) converts the truecolor image RGB to the grayscale intensity

image I. rgb2gray converts RGB images to grayscale by eliminating the hue and

saturation information while retaining the luminance.

info = trainscg('info') trainscg is a network training function that updates weight and

bias values according to the scaled conjugate gradient method.

A = tansig(N,FP) tansig is a neural transfer function. Transfer functions calculate a

layer's output from its net input. tansig(N,FP) takes N and optional function

parameters,

net = initnw(net,i) initnw is a layer initialization function that initializes a layer's

weights and biases according to the Nguyen-Widrow initialization algorithm. This

algorithm chooses values in order to distribute the active region of each neuron in the

layer approximately evenly across the layer's input space. The values contain a degree

of randomness, so they are not the same each time this function is called.

net = initlay(net) initlay is a network initialization function that initializes each layer

i according to its own initialization function net.layers{i}.initFcn.

perf = msereg(E,Y,X,FP) msereg is a network performance function. It measures

network performance as the weight sum of two factors: the mean squared error and

the mean squared weight and bias values. msereg(E,Y,X,FP) takes E and optional

function parameters,

info = initlay(code) initlay(code) returns useful information for each code string,

initlay does not have any initialization parameters.

DEPT OF CSE,PESITM SHIMOGGA Page 49

Page 50: Draft

FACE RECOGNITION USING NEURAL NETWORK

Bibliography

References books:--

“Introduction to Artificial Neural Network”, by Jacek M. Zurada; Jaico Publishing

House, 1999.

“An Introduction to Neural Network”, by James A. Anderson; PHI, 1999.

“Elements of Artificial Neural Network”, K. Mehrotra, C.K. Mohan and Sanjay

ranka, MIT Press, 1997.

“Neural Network nad Fuzzy System”, by Bart Kosko; PHI, 1992.

“Neural Network – A comprehensive foundation”, Simon Haykin, Macmillan

Publishing Co., Newyork, 1993.

www.google.com

www.wikipedia.org

MATLAB user community

Optical character recognition using novel feature extraction and neural network

classification technique. B. Gatos, D. Karras.

Character recognition using neural networks a MATLAB tutorial.

A feature extraction technique based on character geometry for character recognition

by Dinesh Dileep.

Reference sites –

http://www.cs.stir.ac.uk/~lss/NNInro/invSlides.htm

http://www.bitstar.com/nnet.htm

http://www.pmsi.fr/sxcxmpa.htm

http://www.pmsi.fr/neurinia.htm

DEPT OF CSE,PESITM SHIMOGGA Page 50