38
136 Chapter 5 Face Recognition Using Vector Quantization (VQ) Techniques 5.1 Introduction Automatic facial recognition is an attractive solution for the problem of automatic personal identification systems. In order to facilitate a cost effective solution high levels of data reduction are required when storing the facial information. Image compression is a fast paced and dynamically changing field with many different varieties of compression methods available. Image compression using Vector Quantization (VQ) [97-105] has received great attention in the last decades because it‘s promising compression ratio and relatively simple structure. This analyzes the image as a two dimensional signal and takes advantage of redundancies associated with the human visual system (HVS). Vector Quantization (VQ) can be used as data reduction technique for the encoding of facial images. 5.2 Definition of Vector Quantization A vector quantizer Q of dimension k and size N is a mapping from a point in k-dimensional Euclidean space, R k into a finite set C containing N output or reproduction points that exist in the same Euclidean space as the original point. These reproduction points are known as code-words and these set of code-words are called a codebook C with N distinct code- vectors in the set. Thus the mapping function Q is defined as, Q : R k C 5.1

Chapter 5 Face Recognition Using Vector Quantization (VQ ...shodhganga.inflibnet.ac.in/bitstream/10603/9103/9/09_chapter 5.pdf · Face Recognition Using Vector Quantization (VQ) Techniques

Embed Size (px)

Citation preview

136

Chapter 5

Face Recognition Using Vector Quantization

(VQ) Techniques

5.1 Introduction

Automatic facial recognition is an attractive solution for the problem

of automatic personal identification systems. In order to facilitate a

cost effective solution high levels of data reduction are required

when storing the facial information. Image compression is a fast

paced and dynamically changing field with many different varieties

of compression methods available.

Image compression using Vector Quantization (VQ) [97-105] has

received great attention in the last decades because it‘s promising

compression ratio and relatively simple structure. This analyzes the

image as a two dimensional signal and takes advantage of

redundancies associated with the human visual system (HVS).

Vector Quantization (VQ) can be used as data reduction technique

for the encoding of facial images.

5.2 Definition of Vector Quantization

A vector quantizer Q of dimension k and size N is a mapping from a

point in k-dimensional Euclidean space, Rk into a finite set C

containing N output or reproduction points that exist in the same

Euclidean space as the original point. These reproduction points are

known as code-words and these set of code-words are called a

codebook C with N distinct code- vectors in the set. Thus the

mapping function Q is defined as,

Q : Rk C

5.1

137

The number of codevectors (N) depends on two parameters

Rate (R) (bits/pixel)

Dimension (L)(grouping)

The number of code vectors required is calculated using following

equation

Number of code vector (N)= 2R.L 5.2

When the rate increases the codebook size as well as complexity

also increases.

Vector quantization in its entirety is quite a simple concept. The

major complexity comes about in selecting a codebook C of size N

that best represents original vectors or training set X in Rk

Euclidean space.

The representative codeword is determined to be the closest in

Euclidean distance from the input vector. The Euclidean distance is

defined by

k

j

ijji yxyxd1

2)(),(

5.3

where xj is the jth component of the input vector and yij is the jth is

component of the codeword yi. [117]

5.3 Advantages of Vector Quantization

A vector can be used to describe almost all types of patterns that

arise in digital images. Vector Quantization can be viewed as a form

of pattern recognition where an input pattern is approximated by a

138

vector contained in a stored set of code-words. If this codebook has

less patterns in it than in the original training set then compression

can be achieved. For all these reasons several vector quantization

schemes have been developed to take advantage of the inherent

redundancies in digital images. Vector Quantization is commonly

used to compress data that have been digitized from an analog

source such as sampled sound and scanned images. VQ is based on

two facts:

1. Compression method that compresses strings rather

than individual symbols can in principle produces better

results.

2. Adjacent data blocks in an image are correlated.

Based on the above characteristics VQ has following advantages

1. Using VQ very high compression ratio can be obtained.

So saving of storage space can be achieved.

2. Multimedia applications make extensive use of images

and video. Such multimedia applications will only be

feasible with compression methods. The storage space

saved due to compression allows a greater number of

images to be stored.

3. High Transmission rates are possible because in VQ

method only index is transmitted for a particular block

and receiver can reconstruct the massage using this

index.

4. Compression increases transmission rate that in turn

improves the utility of bandwidth and time saving.

139

5. In VQ image decompression is very quick since it

consists mainly of look up table operation. In a typical

type of image database application an image is

compressed once when it is first archived into the

system. It is subsequently decompressed many times.

Vector quantization algorithms for reducing bit storage have been

extensively investigated over recent years. To accomplish the VQ

techniques a vector quantizer is designed which is a system for

mapping a sequence of continuous or discrete vectors into a digital

sequence suitable for storage. The main reason for doing this is to

reduce the rate for transmission of an image while maintaining an

acceptable image quality. The reason this method of compression

has gained such interest over conventional means for compression

(i.e. Digital Pulse Code Modulation (DPCM), Transform coding etc.)

is that these conventional methods usually employ scalar

quantization in some manner. Scalar quantization is not optimal as

successive samples in a digital signal are usually correlated or

dependent.

VQ exploits the correlation existing between neighbouring signal

samples by quantizing them together. In general VQ scheme can be

divided into two parts:

The encoding procedure

The decoding procedure

A simple block diagram of vector quantizer is shown in following Fig

5.1

140

The Encoder The Decoder

Fig. 5.1 Block diagram of Vector Quantizer

At the encoder the input image is partitioned into a set of non

overlapping image blocks. The closest code word in the codebook is

then found for each image block using Euclidean distance as a

similarity measure. The corresponding index for each searched

closest code words in the code book are sent to the decoder as

shown in Fig.5.1.

A number of different vector quantization (VQ) schemes exists that

take advantage of different characteristics of a digital signal

depending on the type of pattern matching technique required. This

is very useful as images contain areas that are more perceptually

important than other regions of that same image. Using these

varied vector quantization techniques it is possible to take

advantage of some of the psychovisual redundancies that exist in

digitally stored images. The goal of VQ code book generation is to

find an optimal code book that yields the lowest possible distortion

when compared with all other code books of same size. The VQ

performance is directly proportional to code book size and the

vector size. The minimization of this distortion is the key that makes

Search

Engine

Output Vector Input Vector

Code-book Indices Indices Code-book

Channel

141

vector quantization work so well and as with all other compression

schemes. This minimization is closely related to the statistics of the

vectors to be quantized.

5.4 Algorithm Development

The performance of VQ relies on having a good set of vectors in its

codebook. For image compression these vectors are chosen to

minimize the overall pixel level error introduced. However for face

recognition other considerations are also important. For example

individuality may be more significant than pixel error when encoding

facial features. There are many different algorithms available which

perform codebook generation.

In this particular thesis following algorithms are studied and its

performance is compared in terms of percentage accuracy for face

recognition under normal conditions, Occlusion and also in presence

of different noise.

Codebook Design Algorithms

1. LBG Algorithm

2. K-Means Algorithm

3. Kekre‘s Fast codebook Generation Algorithm (KFCG)

5.4.1 LBG Algorithm

The Linde, Buzo, Gray (LBG) algorithm [106] is used to design the

codebook. The algorithm iteratively minimizes the total distortion by

representing the training vectors by their corresponding code

vectors. The LBG algorithm is an iterative algorithm in which the

142

codebook C is obtained by splitting method. In this algorithm

centroid is computed as the first codevector C1 for the training set.

In Fig.5.2 two vectors v1 & v2 are generated by adding constant

error to the centroid C1. Euclidean distances of all the training

vectors are computed with vectors v1 & v2 and two clusters are

formed based on nearest of v1 or v2. This procedure is repeated for

every new cluster until the required size of codebook is reached or

specified Mean Square Error (MSE) is reached.

Fig 5.2 Graphical representation of cluster generation for LBG

algorithm

5.4.1.1 Face Recognition using LBG Algorithm

The LBG algorithm is a clustering algorithm. This algorithm is

applied first on the whole database for preparation of a code book

of various sizes

143

Fig.5.3 Code book preparation using LBG algorithm for the

facial databases.

As shown in the Fig. 5.3 the database images are divided into the

block of 2x2 pixels from each block are arranged in a single row.

Then the mean of the each column is calculated. This mean value is

a coordinate for the first codevector C1. After that a constant error

of +1 and -1 is added to the C1 to get two more code vectors. The

existing blocks are now compared with the newly generated code

vectors C1‘ and C1‘‘ respectively and for each of them the

Euclidiean distance is calculated. Whichever code vector gives

minimum Euclidiean distance the blocks are place in that particular

cluster. So after first iteration two different and non overlapping

clusters are formed. For these clusters now the procedure is

repeated to get clusters in multiple of two and code book is

prepared.

In this particular chapter the code book size of 32, 64, 128 and 256

are generated using LBG algorithm.

Following are the steps for LBG technique for face recognition

(image size is 64x64)

The test image is divided into blocks of 2*2

The pixels are then arranged into an array of 1024*4 vectors.

144

Then the mean of these vectors is calculated.

Mean+1 and mean-1 is taken as code vectors Euclidean

distance of each training vector from training set of 1024 *4

vectors is compared to form two clusters.

Mean of these new clusters is calculated individually. Add

mean+1 and mean-1 to form 4 clusters. The process is

repeated till we get desired number of clusters (32, 64, 128,

256).

This forms the final codebook. Then the codebook of the test

image is compared with the codebook of the images in the

database and depending on the pre decided threshold value

the image is accepted or rejected.

Disadvantages of LBG algorithm are:

Since fixed error is added (Є=+1), the MSE is higher. The

generated codevectors have slope of 45o

If a particular point is equidistant from two clusters then

which cluster should include the point is not mentioned in the

algorithm.

Cluster elongation is +135o to horizontal axis in two

dimensional cases. This results in inefficient clustering.

5.4.1.2 LBG Result Analysis

The LBG clustering algorithm is tested on locally generated

unconstrained Local database and standard ORL database of At&T

lab [118]. In Indian database there were 100 persons from that 7

poses per person is taken in training set and codebook is generated

for different sizes and stored separately. The testing is done on

another 3 poses of the same person. Just for comparison two poses

at random from training set is also checked which makes total

145

(3+2=5*100) 500 testing images in all. The ORL database has 40

individuals with 10 poses each. Out of these 7 poses are selected as

training set to generate the codebook and remaining 3 poses are

selected to create a testing set.

To check the performance of LBG algorithm various codebook sizes

like 32, 64, 128 and 256 are generated. Following Fig. 5.4 shows

the comparative study of percentage accuracy at each codebook

size for local and ORL databases.

0

10

20

30

40

50

60

70

80

90

100

32 64 128 256

Par

cen

tage

A

ccu

racy

Codebook Size

Local

ORL

Fig. 5.4 Performance of LBG algorithm for different codebook

sizes in Local and ORL database.

Observation: As the codebook size increases the accuracy also

improves in both databases. The ORL database shows slightly better

performance than local database except for code book size 256

where local database shows better performance.

146

LBG Results for Different Percentage of Occluded Images

The robustness of LBG clustering algorithm is tested under different

percentage of occlusion. In practical situation occlusion can be a

mask on a face, spectacles on a face or it might be hair on a face.

Following are the graphs (Fig5.4-Fig5.8) showing in general

performance of the LBG algorithm for the code book size 32,64, 128

and 256 for both databases under various occluded conditions.

Fig 5.5 Percentage accuracy under occlusion introduced as

%length x %width of image for codebook size 32 in both database for LBG algorithm.

0

10

20

30

40

50

60

70

80

90

100

10x10 20X20 30X30 40X40 50X50

Pe

rce

nta

ge A

ccu

racy

Percentage Occlusion

Local

ORL

147

Fig5.6 Percentage accuracy under occlusion introduced as

%length x %width of image for codebook size 32 in both database for LBG algorithm.

Fig 5.7 Percentage accuracy under occlusion conditions introduced as %length X %width in image for codebook size 128

in both database for LBG algorithm.

0

10

20

30

40

50

60

70

80

90

100

10X10 20X20 30x30 40X40 50X50

Pe

rce

nta

ge A

ccu

racy

Percentage Occlusion

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

10X10 20X20 30X30 40X40 50x50

Pe

rce

nta

ge A

ccu

racy

Percentage Occlusion

Local

ORL

148

Fig 5.8 Percentage accuracy under occlusion introduced as %length X %width in image for codebook size 256 in

both database for LBG algorithm.

Observations: The graphs show that as occlusion increase on

image the recognition accuracy reduces drastically. The ORL

database gives better accuracy in all codebook sizes. The code book

size 256 can withstand the occlusion upto 20%X20% only.

LBG Results for various types of Noise

The LBG algorithm for face recognition is tested for the various

types of noise introduced to the image like Speckle Noise, Salt and

pepper noise and Gaussian noise. Following are the graphs showing

in general performance of the LBG algorithm for the various

codebook sizes.

0

10

20

30

40

50

60

70

80

90

100

10X10 20X20 30X30 40X40 50X50

Pe

rce

nta

ge A

ccu

racy

Percentage Occlusion

Local

ORL

149

Speckle Noise:

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nta

ge A

ccu

racy

Percentage Speckle Noise

Local

ORL

Fig 5.9 Performance of LBG algorithm for Speckle Noise for codebook size 32 for both databases.

Observation: As shown in graph Fig 5.9 the LBG withstand 10%

Speckle Noise for local and ORL database for codebook size of 32.

Higher codebook sizes do not support the noise addition.

150

Gaussian Noise:

Fig5.10 Performance of LBG

algorithm for

Gaussian noise for

codebook size 32 in

both databases.

Fig 5.11 Performance of

LBG algorithm for

Gaussian noise for

codebook size 128 in

both databases.

Fig 5.12 Performance of LBG algorithm for Gaussian noise for codebook

size 256 in both databases

Observation: As shown in graphs (Fig 5.10-Fig 5.12) the LBG

withstand 1% Gaussian noise addition for local and ORL database

for codebook size of 32. Codebook size 64 does not support noise

addition at all. Codebook size 128 withstands the 1% Gaussian

noise in local database where as codebook size 256withstand 1%

Gaussian noise in ORL database.

0

10

20

30

40

50

60

70

80

90

100

1 5 10

Pe

rce

nta

ge A

ccu

racy

Percentage Gaussian Noise

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

1 5 10

Pe

rcn

tage

Acc

ura

cy

Percentage Gaussian Noise

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

1 5 10

Pe

rce

nta

ge A

ccu

racy

Percentage Gaussian Noise

Local

ORL

151

Salt and Pepper Noise:

Fig 5.13 Performance of LBG

algorithm for Salt and

Pepper noise for

codebook size 32 in

both databases

Fig 5.14 Performance of LBG

algorithm for Salt

and Pepper noise for

codebook size 128

for both databases.

Fig 5.15 Performance of LBG

algorithm for Salt and

Pepper noise for codebook

size 256 in both databases

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nta

ge A

ccu

racy

Percentage Salt and Pepper Noise

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nta

ge A

ccu

racy

Salt and Pepper Noise

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nta

ge A

ccu

racy

Percentage Salt and Pepper Noise

Local

ORL

152

Observation: The Salt and pepper noise addition is not tolerated

by 64 codebook size at all in both the databases. The codebook size

32 (Fig 5.13)withstands the noise addition less than 20% for both

the databases, 128 codebook size(Fig 5.14) shows good result for

local database and 256(Fig 5.15) shows the better result for ORL

database.

Table 5.1 is a overall performance table for the LBG. The data

given for accuracy of algorithm is for various codebook sizes like 32,

64, 128, and 256. Under occlusion and noise addition conditions

accuracy below 50% is not considered.

Table 5.1 LBG Performance Table

Codebook 32 64 128 256

Database Local ORL Local ORL Local ORL Local ORL

Accuracy 78% 91% 88% 91% 89% 92% 95% 92%

% Occlusion withstand

10%X10% 20%X20% 10%X10% 10%X10% 10%X10% 20%X20% 20%X20% 20%X20%

Speckle Noise

0 10% 0 0 0 0 0 0

Gaussian 1% 1% 0 0 0 0 0 1%

Salt & Pepper

10% 10% 0 0 10% 0 0 10%

FAR 60% 60% 60% 60% 60% 60% 60% 60%

FRR 0% 0% 0% 0% 0% 0% 0% 0%

The Table 5.1 shows overall performance of LBG algorithm. The ORL

database due to its controlled nature performs better than local

database. As codebook size increases the accuracy for recognition

also improves. As far as attack like occlusion and noise addition is

concern the smaller codebook size withstands better due to its

larger size of clusters. FAR is 60% which is very high and FRR is

zero for all codebook sizes.

153

5.4.2 K-Means Algorithm

The K-Means algorithm takes the input parameter k, and partitions

a set of n objects into k clusters so that the resulting intra cluster

similarity is high but the inter cluster similarity is low. [107]

Similarity criterion for cluster is decided based on the mean value of

object in a cluster.

K-means algorithm randomly selects k of the objects. This is taken

as initial codebook. Each of the remaining objects is assigned to the

cluster based on the distance between the object and a code vector.

It then calculates a new mean for each cluster and the process

iterates until the minimum error stabilizatizes. The K-means

procedure is summarized in following diagram (Fig 5.16).

(a) (b) (c)

Fig 5.16 Cluster formation based on the K-means method.

(The red point in diagram is a mean of each cluster.)

Disadvantages of K-Means algorithm are :

K-Means finds a local optimum and may actually miss the

global optimum.

K-Means does not work on categorical data because the mean

must be defined on the attribute type.

Only convex shaped clusters are found.

154

The K-Means algorithm is not time efficient and does not scale

well.

5.4.2.1 K-Means Algorithm Applied to Face Recognition

The initial codebook of size 32, 64,128 and 256 is prepared for

both local and ORL database. The test image or a query image is a

facial image either from testing database or outside the database.

Following are the steps for K-Means clustering algorithm for face

recognition (image size is 64x64)

Initially the test image is divided into blocks of 2*2.

Then the pixels are arranged into an array of 1024*4.

Out of these 1024 vectors, 256 random vectors are chosen

and this forms the initial codebook.

Now the 1024 vectors are compared with the initial codebook

on the basis of the Euclidean distance between the two

vectors. And then depending on the minimum Euclidean

distance, the 1024 vectors are divided into 256 clusters.

Now the average of each of these clusters is taken to form

the revised codebook.

Then the codebook of the test image is compared with the

codebook of the images in the database and depending on the

pre decided threshold value the image is accepted or rejected.

5.4.2.2 K-means Results Analysis

To check the performance of K-Means algorithm various codebook

sizes are tried like 32, 64, 128 and 256. Following Fig. 5.17 shows

155

the comparative study of percentage accuracy at each codebook

size for both the datasets local and ORL.

0

10

20

30

40

50

60

70

80

90

100

32 64 128 256

Pe

rce

nta

ge A

ccu

racy

Codebook Size

Local

ORL

Fig 5.17 Performance of K-Means algorithm for different

codebook sizes in Local and ORL database.

K-Means Results for Different Percentage of Occluded

Images

The robustness of K-Means clustering algorithm is tested under

different percentage of occlusion. In practical situation occlusion can

be a mask on a face, spectacles on a face or it might be hair growth

on a face.

Following are the graphs (Fig 5.18-Fig 5.21) showing in general

performance of the K-Means algorithm for the code book size

32,64,128 and 256 for both databases under various occluded

conditions.

156

Fig 5.18 Percentage accuracy under occlusion introduced as

%length x %width of image for codebook size 32

in both databases.

Fig 5.19 Percentage accuracy under occlusion introduced as

%length x %width of image for codebook size 64 in

both databases.

0

10

20

30

40

50

60

70

80

90

100

10x10 20X20 30X30 40X40 50X50

Pe

rce

nta

ge A

ccu

racy

Percentage Occlusion

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

10X10 20X20 30X30 40X40 50X50

Pe

rce

nta

ge A

ccu

racy

Percentage Occlusion

Local

ORL

157

Fig5.20 Percentage accuracy under occlusion introduced as

%length x %width of image for codebook size 128

in both databases.

Fig 5.21 Percentage accuracy under occlusion introduced as

%length x %width of image for codebook size 256

in both databases.

Observation: K-Means algorithm can withstand occlusion

introduced in length and width as 50%X50% for both databases. It

0

10

20

30

40

50

60

70

80

90

100

10X10 20X20 30x30 40x40 50X50

Pe

rce

nta

ge a

ccu

racy

Percentage occlusion

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nta

ge A

ccu

racy

Percentage Occlusion

Local

ORL

158

is showing better performance compared to LBG algorithm under

occlusion.

K-Means Results for various types of Noise:

The K-Means algorithm for face recognition is tested for the various

types of noise introduced to the image like Speckle Noise, Salt and

pepper noise and Gaussian noise. Following are the graphs showing

in general performance of the K-Means algorithm for the various

codebook sizes under noise addition condition.

Speckle Noise:

Fig 5.22 Performance of K-means algorithm for Speckle noise

for various codebook sizes in local database

Observation: As shown in graph (Fig 5.22) the K-Means withstand

10% Speckle Noise addition for local database for codebook size 32

and 256 but the accuracy is not acceptable. Other codebook sizes

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

32

64

128

256

159

does not support the noise addition.ORL database cannot withstand

the Speckle Noise addition at all and fails to recognize the correct

face.

Gaussian Noise:

Fig 5.23 Performance of K-means algorithm for Gaussian

noise for various codebook sizes in ORL database.

Observation: As shown in graph (Fig 5.23) the K-Means withstand

1% Gaussian noise addition for ORL database for codebook size of

32. The local database is very sensitive to this noise and fails to

recognize the face correctly. Higher order codebooks also do not

support the noise addition.

0

10

20

30

40

50

60

70

80

90

100

1 5 10

Pe

rce

nta

ge A

ccu

racy

Percentage Gaussian Noise

32

64

128

256

160

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nta

ge A

ccu

racy

Percentage Salt & Pepper Noise

Local

ORL

Salt and Pepper Noise:

Fig 5.24 Performance of K-

means algorithm for Salt and Pepper noise

for codebook size 32 in both the databases.

Fig 5.25 Performance of K-

means algorithm for Salt

and Pepper noise for

codebook size 64 in both

the databases.

Fig 5.26 Performance of K-

means algorithm for

Salt and Pepper noise

for codebook size 128

in both the databases.

Fig 5.27 Performance of K-

means algorithm for Salt

and Pepper noise for

codebook size 256 in

both the databases.

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nta

ge A

ccu

racy

Percentage Salt & Pepper Noise

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nta

ge A

ccu

racy

Percentage Salt & pepper noise

Local

ORL

0102030405060708090

100

10 20 30 40 50

Pe

rce

nta

ge A

ccu

racy

Percentage Salt & pepper noise

Local

ORL

161

Observation: Graphs (Fig 5.24-Fig 5.27) show performance of K-

means algorithm for Salt and Pepper noise analysis. The codebook

size 256 is very sensitive for addition of Salt & Pepper noise. For

10% noise addition the accuracy is only 1%.

Table 5.2 is a overall performance table for the K-Means algorithm.

The data given for accuracy of algorithm is for various codebook

sizes like 32, 64, 128, and 256. Under occlusion and noise addition

conditions the cutoff point is 50% accuracy below which algorithm is

not considered.

Table 5.2 K-Means Performance Table

Codebook 32 64 128 256

Database Local ORL Local ORL Local ORL Local ORL

Accuracy 77% 79% 82% 83% 89% 91% 92% 93%

%

Occlusion

withstand

40%X40% 40%X40% 40%X40% 40%X40% 50%X50% 50%X50% 50%X50% 50%X50%

Speckle

Noise

10% 0% 0% 0% 0% 0% 1% 0%

Gaussian 0% 1% 0% 0% 0% 0% 0% 0%

Salt &

Pepper

30% 20% 10% 0% 20% 10% 0% 0%

FAR 0% 0% 0% 0% 0% 0% 0% 0%

FRR 8% 9% 12% 12% 20% 20% 30% 30%

The Table 5.2 shows overall performance of K-Means Algorithm. The

ORL database performs better than local database for all codebook

sizes.

K-Means algorithm is sensitive to noise addition and performs

poorly in noisy conditions. It can withstand reasonable amount of

occlusion with different codebook sizes. As codebook size increase

robustness towards occlusion also increases. FAR is zero for all

codebook sizes and FRR increases with codebook size.

162

5.4.3 Kekre’s Fast Codebook Generation Algorithm

(KFCG)

The Kekre‘s Fast Codebook Generation (KFCG) algorithm [116] is a

newly suggested clustering algorithm. As its name suggest it is the

fast codebook generation method compared to existing algorithms

like LBG and K-Means.

Initially only one cluster is present with entire training vectors and

the codevector C1 which is centroid.

In the first iteration of the algorithm, the clusters are formed by

comparing first element of training vector with first element of code

vector C1. The vector Xi is grouped into the cluster-1 if xi1< c11

otherwise vector Xi is grouped into cluster-2 as shown in Fig.5.28

where codevector dimension space is 2.

In second iteration, the cluster 1 is split into two by comparing

second element xi2 of vector Xi belonging to cluster 1 with that of

the second element of the codevector. Cluster 2 is split into two by

comparing the second element xi2 of vector Xi belonging to cluster 2

with that of the second element of the codevector as shown in Fig.

5.29.

This procedure is repeated till the codebook size is reached to the

size specified by user.

163

Fig 5.28 KFCG algorithm for 2 dimensional case after first iteration.

Fig 5.29 KFCG algorithm for 2 dimensional case after second

iteration.

It is observed that this algorithm gives less error as compared to

LBG and requires least time to generate codebook as compared to

164

other algorithms as it does not require any computation of

Euclidean distance.

The general diagram for KFCG codebook generation for multiple

iteration is shown in Fig.5.29.

Following Fig 5.30 is a pictorial representation of KFCG algorithm for

multiple iterations.

Fig 5.30 KFCG algorithm for 2 dimensional case after

multiple iterations.

165

5.4.3.1 KFCG Algorithm Applied for Face Recognition

The initial codebook of size 32, 64,128 and 256 is prepared for

both local and ORL database. The test image or a query image is a

facial image either from database or outside the database.

Explanation

Initially we have all the vectors forming one cluster

In the first iteration of the algorithm, the cluster is divided by

comparing first member of training vector with mean of first

column denoted by c11.

The vector Xi is grouped into the cluster 1 if Xi (1) < c11

otherwise vector Xi is grouped into cluster2.

In second iteration, the cluster 1 is split into two by

comparing second member Xi(2) of vector Xi belonging to

cluster 1 with that of the member c12 of the codevector C1.

Cluster 2 is split into two by comparing the member xi2 of

vector Xi belonging to cluster 2 with that of the member c22

of the codevector C2.

This procedure is repeated till the codebook size is increased

to the size specified by user.

5.4.3.2 KFCG Result Analysis

To check the performance of KFCG algorithm various codebook sizes

are tried like 32, 64, 128 and 256. Following Fig. 5.31 shows the

comparative study of percentage accuracy at each codebook size for

both the datasets, local and ORL.

166

Fig 5.31 Performance of KFCG algorithm for different codebook sizes

in Local and ORL database

Fig 5.32 Percentage accuracy under occlusion introduced in

%length x %width for image conditions for codebook

size 32 in both databases

0

20

40

60

80

100

120

32 64 128 256

Pe

rce

nta

ge A

ccu

racy

Codebook size

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

10x10 20x20 30X30 40x40 50X50

Pe

rce

nta

ge A

ccu

racy

Percentage Occlusion

Local

ORL

167

Fig 5.33 Percentage accuracy under occlusion introduced in

%length x %width for image conditions for codebook

size 64 in both databases

Fig 5.34 Percentage accuracy under occlusion introduced in

%length x %width for image conditions for codebook

size 128 in both databases

0

10

20

30

40

50

60

70

80

90

100

10X10 20X20 30X30 40X40 50X50

Pe

rce

nta

ge A

ccu

racy

Percentage Occlusion

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

10X10 20x20 30x30 40x40 50x50

Pe

rce

nta

ge A

ccu

acy

Percentage Occlusion

Local

ORL

168

5.35 Percentage accuracy under occlusion introduced in

%length x %width for image conditions for codebook

size 256 in both databases

Observations: The graphs (Fig 5.32-Fig 5.53) show that as

occlusion increase on image the recognition accuracy reduces

drastically. The local database gives better accuracy and range

compared to ORL database for codebook size 64.

KFCG Results for various types of Noise

The KFCG algorithm for face recognition is tested for the various

types of noise introduced to the image like Speckle Noise, Salt and

pepper noise and Gaussian noise. Following are the graphs showing

in general performance of the KFCG algorithm for the various

codebook sizes.

0

10

20

30

40

50

60

70

80

90

100

10X10 20X20 30X30 40X40 50X50

Pe

rce

nta

ge A

ccu

racy

Percentage Occlusion

Local

ORL

169

Speckle Noise:

Fig 5.36 Performance of

KFCG algorithm for

Speckle Noise for

codebook size 32 for

both databases

Fig 5.37 Performance of

KFCG algorithm for

Speckle Noise for

codebook size 64 for

both databases

Fig 5.38 Performance of KFCG

algorithm for Speckle Noise

for codebook size 128 for

both databases

Observation: As shown in graphs (Fig 5.36-Fig 5.38) the KFCG

withstand 10% Speckle Noise for local database and ORL database.

Codebook size 32 performs better in local database. In ORL

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nta

ge A

ccu

racy

Percentage Speckle Noise

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nta

ge A

ccu

racy

Percentage Speckle Noise

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nat

ge A

ccu

racy

Percentage Speckle Noise

Local

ORL

170

database only 128 codebook respond well to noise addition.

Codebook size 256 cannot withstand Speckle Noise addition in

either of the databases.

Gaussian Noise:

Fig 5.39 Performance of KFCG

algorithm for Gaussian

noise for codebook size

32 for both databases

Fig 5.40 Performance of KFCG

algorithm for Gaussian

noise for codebook size

64 for both databases

Fig 5.41 Performance of KFCG

algorithm for Gaussian

noise for codebook size

128 for both databases

Fig 5.42 Performance of KFCG

algorithm for Gaussian

noise for codebook size

256 for both databases

0102030405060708090

100

1 5 10

Pe

rce

nta

ge A

ccu

racy

Percentage Gaussian Noise

Local

ORL

0102030405060708090

100

1 5 10P

erc

en

tage

Acc

ura

cy

percentage Gaussian Noise

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

1 5 10

Pe

rce

nta

ge A

ccu

racy

Percenatage Gaussian Noise

Local

ORL

0102030405060708090

100

1 5 10

Pe

rce

nta

ge a

ccu

racy

Percentage Gaussian Noise

Local

ORL

171

Observation: As shown in graphs (Fig 5.39-Fig 5.42) the KFCG

withstand 1% Gaussian noise addition for local database for

codebook size of 32. ORL database does not support noise addition

at all. As codebook size increases the ORL shows better

performance than local database.

Salt and Pepper Noise:

Fig 5.43 Performance of KFCG

algorithm for Salt and

Pepper noise for

codebook size 32 for

both databases.

Fig 5.44 Performance of KFCG

algorithm for Salt and

Pepper noise for codebook

size 64 for both databases.

Fig 5.45 Performance of KFCG

algorithm for Salt and

Pepper noise for codebook

size 128 for both databases

Fig 5.46 Performance of KFCG

algorithm for Salt and

Pepper noise for codebook

size 256 for both databases

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nta

ge A

ccu

racy

Percentage Salt & Pepper noise

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nta

ge A

ccu

racy

Percentage Salt & Pepper Noise

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nta

ge A

ccu

racy

Percentage Salt & Pepper Noise

Local

ORL

0

10

20

30

40

50

60

70

80

90

100

10 20 30 40 50

Pe

rce

nta

ge a

ccu

raac

y

Percentage Salt & Pepper Noise

Local

ORL

172

Observation: The graphs (Fig 5.43-Fig 5.46) shows Salt and

Pepper noise addition. This noise is not tolerated by codebook size

32 in ORL database and codebook size 256 in local database. The

codebook size 64 can withstand noise addition upto 10%. The

codebook size 128 withstands the noise addition up to 40% for ORL

database. Local database does not support noise addition beyond

10%

Table 5.3 is a overall performance table for the KFCG. The data

given for accuracy of algorithm is for various codebook sizes like 32,

64, 128, and 256. Under occlusion and noise addition conditions the

accuracy below 50% is not considered.

Table 5.3 Overall Performance of KFCG

Codebook 32 64 128 256

Database Local ORL Local ORL Local ORL Local ORL

Accuracy 86% 93% 87% 98% 93% 99% 95% 99%

% Occlusion withstand

50%X50% 50%X50% 50%X50% 50%X50% 50%X50% 50%X50% 50%X50% 50%X50%

Speckle Noise

10% 0% 10% 0% 10% 10% 0% 0%

Gaussian 1% 0% 0% 1% 0% 1% 0% 1%

Salt&

Pepper

0% 10% 10% 10% 20% 20% 10% 10%

The Table 5.3 shows overall performance of KFCG algorithm. The

ORL database due to its controlled nature performs better than local

database. This method strongly supports the occlusion introduced

on images. It is sensitive to noise addition but gives good result for

salt and pepper noise for codebook size 128 in both databases.

173

5.5 Summary

In this chapter the face recognition based on various VQ techniques

is studied for standard as well as locally created unconstrained

database. The newly suggested Kekre‘s Fast Codebook Generation

(KFCG) method gives better performance than LBG and K-Means.

As the codebook size increases the recognition accuracy improves

as well as algorithm becomes more robust against occlusion

condition. The smaller codebook size gives better performance for

noise addition conditions due to its larger size of cluster. LBG has

high FAR and K-Means has high FRR ratio but KFCG has good

discrimination power and gives zero FAR and FRR.