Computer Vision

We have just begun talking about matrix computations and linear algebra, but one of the largest topics in this field has to be eigenvectors and there use in the “real world.” With the ever growing interest in artificial intelligence, one of the leading fields of research is in computer vision. Beginning in 1987, one approach to making computer face recognition possible was using eigenfaces, which are simply a set of eigenvectors derived from the near infinite dimension covariance matrix of the possible faces of human beings. This research, ideally, would lead toward a computer being able to differentiate between any two people it meets using a highly complex data set it gathers in a similar manner to our ray tracing assignment; however, it can be used for in a variety of other fields, including handwriting analysis, voice recognition, and medical imaging.

 

Eigenfaces                        Eigenfaces

The whole idea behind eigenfaces is to create a sort of normalized list of recognizable faces within a system that when redisplayed to the system, the particular entry in this database could be retrieved and thus “recognized” by the computer. The way this database is created is by taking a large sample of digitalized faces and lining them up so the eyes, mouth, and various other facial features line up. Using these normalized faces, the average “depths” across the images are calculated and the images are then adjusted by subtracting the calculated averages from each image. The results are then put in a covariance matrix and the eigenvectors and eigenvalues are calculated.

An interesting side note: while a huge amount of eigenvectors are created across the data set (1 per pixel, so in a 100 x 100 picture there are 10,000 eigenvectors and eigenvalues calculated), the number can be reduced extensively since most individuals are be identified using a small number of these vectors. There is such a large variance in facial structure across any group of people that it does not take a large number of known vectors to narrow down the choices to a particular person.

One problem does arise in the use of eigenfaces to identify humans, and this is in the recognition of faces in varying light or at varying angles. Imagine if you had to look somebody straight on in direct sunlight to gather enough information to process who that person was, and if you saw them from the side or in the shade, you would be clueless to their identity. While distorted slightly, this is generally the complication that has stalled the use of eigenfaces for computer vision. One possible solution is to narrow the searching field down from the entire face of an individual to a specific feature that is unique about them.

 

Eigenfeatures                  features.gif

Eigenfeatures are used in a technique that takes a large database of image data and seperates them in a manner that allows for recognition of individuals. Like eigenfaces, these images contain a lot of noise in the form of varying angles and brightness variance, but their advantage lies in efficiency and grouping of images, where images with similar features have a high likely hood of belonging to the same face. The most efficient way of doing this is to take the algorithm used in determining the eigenvectors mentioned for eigenfaces, and instead trimming it to exclude the computation for eigenvectors that are known to be excluded in the final database. As stated before, in an image of size 100 x 100 pixels, 10,000 eigenvectors must be calculated, but as little as 100 may be important to the computation of facial recognition. To hasten the computation, instead of calculating the covariance matrix and then finding the eigenvectors, the following algorithm is used:

L = ATA L n,m = PmTP n

ul =  sum k-1Mv lkPk l = 1,…,M

(I apologize for the equation’s notation, it didn’t format well)

where L is an M x M matrix, v are eigenvectors of L, and u are eigenfaces. These changes in the algorithm reduce the number of calculations from the number of pixels (n2 * n2) to the number of images in the training set (M). Therefore, each image has its own distinct representation without the clutter of the outlying points in the image that do not influence the computational visualization. When adding a new face to this database, the newly processed image can be compared to the current database. Using an Eucldiean distance between two weight vectors, the similarity between the new face and the known faces can be checked, and if the distance ever exceeds some tolerance, the image can be identified to not be a face at all!

 

The Future of Face Recognition

Hollywood can spice up artificial intelligence all it wants with face scanning and human like robot interactions.  But the reality of the matter is, with the introduction of computers to the world in the 20th century, and the extensive research being done in universities and corporations worldwide, the possibility of artificial life being able to interact fully with humans has become more and more real. While the process seems slow and arduous, the monumental accomplishments can already be seen: from Cornell’s DARPA Urban challenge team building a car that could navigate crowded city streets to automated Mars rovers able to navigate the terrain of an unknown planet. Signal processing of all kinds has advanced beyond anything imagined by early programmers and scientists alike.

 

 

References:

http://openbio.sourceforge.net/resources/eigenfaces/eigenfaces-html/facesOptions.html

http://en.wikipedia.org/wiki/Eigenface

http://en.wikipedia.org/wiki/Computer_vision

http://ieeexplore.ieee.org/iel1/34/11231/00531802.pdf

http://www.ansatt.hig.no/erikh/papers/scia99/node5.html

Posted in Topics: Uncategorized

Jump down to leave a comment.

Leave a Comment

You must be logged in to post a comment.



* You can follow any responses to this entry through the RSS 2.0 feed.