Wednesday, January 19, 2011

DCT and Artificial Neural Networks based Face Recognition


Another method of Face Recognition is Neural Network based recognition. In this method we use Discrete Cosine Transforms to reduce the image to a few DCT coefficients which represent the image and then using an Artificial Neural Network we train the image to be identified onto the image-set in the database. We can use DCT coefficients or Eigenfaces alone for face recognition, but as the size of the database increases the time taken for recognizing the faces increases. Due to this we use Artificial Neural Networks for large databases in which the mapping of the coefficients of a test image (i.e. image to be identified) over the entire database takes almost constant time irrespective of the size of the database.

A lot can be learned about Artificial Neural Networks and since it is a vast topic I will not be discussing it in detail here. Although an artificial neural network can be thought of as a hidden layer or rather a program that maps the data from the input to the output. This hidden layer consists of a user defined number of neurons that can be set according to the need of the ANN.

Working:
  1. Adding of images to the database converts the images to their DCT coefficients and stores these coefficients using zig-zag scanning which
    • pushes all lower frequencies of the image in the top left part of the image
    • sets most of the high frequency coefficients to 0.
    • and to set the frequencies coefficients of the transformed matrix whose amplitudes are less than a predefined value to 0.
  2.  Now when an image is selected for identification, instead of comparing the coefficients directly, we use an Artificial Neural Network to train (or map) the DCT coefficients of the image to be identified onto the existing DCT coefficients of the images in the database.
  3. The 'hidden layer' in this case consists of 70 neurons and can be varied for different performances depending on the database.
  4. The number of DCT coefficients used is 35 and can be varied separately for further enhancing performance depending on the database.
  5. Then the DCT coefficients of the unknown image are simulated with the Artificial Neural Network. What the neural network does is somewhat like a race for the source (unknown image) DCT coefficients. The position that the unknown image DCT coefficients reach the fastest, is the closest match from the database.
  6. Depending on the accuracy of the match a threshold value (from 0 to 1) is generated along with the simulation that can be used to identify images that do not belong in the database. In this case it is set to 0.75 but can be varied depending on database requirements.



So basically this provides a faster method for face recognition and allows any coefficient generating technique to be used with Artificial Neural Networks to give varied results.

Requirements: - Matlab (of course), with Neural Network Toolbox.


DOWNLOAD (source code)
DOWNLOAD (ORL face Database)

No comments:

Post a Comment