.: Click here to download :.
In the JPEG image compression algorithm, the input image is divided into
8-by-8 or 16-by-16 blocks, and the two-dimensional DCT is computed for each block.
The DCT coefficients are then quantized, coded, and transmitted. The JPEG receiver
(or JPEG file reader) decodes the quantized DCT coefficients, computes the
inverse two-dimensional DCT of each block, and then puts the blocks back together
into a single image. For typical images, many of the DCT coefficients have values
close to zero; these coefficients can be discarded without seriously affecting
the quality of the reconstructed image. Such algorithm results
particularly robust also for face identification. Moreover the 2D DCT
operator can be applied to overlapping data.
The extracted feature
vectors are used as input to a simple nearest neighbor algorithm.
The k-nearest neighbor algorithm is amongst the simplest of all machine learning algorithms.
An object is classified by a majority vote of its neighbors, with the object being assigned
to the class most common amongst its k nearest neighbors. k is a positive integer, typically small.
If k = 1, then the object is simply assigned to the class of its nearest neighbor.
In binary (two class) classification problems, it is helpful to choose k to be an odd number
as this avoids difficulties with tied votes. The same method can be used for regression,
by simply assigning the property value for the object to be the average of the values
of its k nearest neighbors. It can be useful to weight the contributions of the neighbors,
so that the nearer neighbors contribute more to the average than the more distant ones.
The neighbors are taken from a set of objects for which the correct classification
(or, in the case of regression, the value of the property) is known. This can
be thought of as the training set for the algorithm, though no explicit training
step is required. In order to identify neighbors, the objects are represented
by position vectors in a multidimensional feature space. It is usual to use the
Euclidean distance, though other distance measures, such as the Manhattan
distance could in principle be used instead. The k-nearest neighbor algorithm
is sensitive to the local structure of the data.
The code has been tested with AT&T database achieving an excellent recognition rate of 99.20%
(40 classes, 5 training images and 5 test images for each class, hence there are 200 training images
and 200 test images in total randomly selected and no overlap exists between the training and test images).
Index Terms: Matlab, source, code, face recognition, face matching, face verification, dct, k-nearest
neighbor algorithm, knn, discrete cosine transform.
Figure 1. Example of k-NN classification |
|||||||||||||||
A simple and effective source code for Face Recognition. |
|||||||||||||||
Demo code (protected
P-files) available for performance evaluation. Matlab Image Processing Toolbox is required. |
|||||||||||||||
Release |
Date |
Major features |
|||||||||||||
1.0 |
2007.10.20 |
|
|||||||||||||
We recommend to check the secure connection to PayPal, in order to avoid any fraud. This donation has to be considered an encouragement to improve the code itself. |
|||||||||||||||
Face Recognition Based On Overlapping DCT - Click here for
your donation. In order to obtain the source code you
have to pay a little sum of money: 250 EUROS (less
than 350 U.S. Dollars). |
|||||||||||||||
Once you have done this, please email us luigi.rosa@tiscali.it As soon as possible (in a few days) you will receive our new release of Face Recognition Based On Overlapping DCT. Alternatively, you can bestow using our banking coordinates:
|
The authors have no relationship or partnership
with The Mathworks. All the code provided is written in Matlab
language (M-files and/or M-functions), with no dll or other
protected parts of code (P-files or executables). The code was
developed with Matlab Release 2006a. Matlab Image Processing Toolbox is required.
The code provided has to be considered "as is" and it is without any kind of warranty. The
authors deny any kind of warranty concerning the code as well
as any kind of responsibility for problems and damages which may
be caused by the use of the code itself including all parts of
the source code.