# Eigen Values and Eigen Vectors in Image Processing

I have been reading about eigen values and eigen vectors but I haven't been able to find any decent explanation relating their application in Image Processing / Computer Vision.

For example, How can those be used for face detection and eye detection? Can somebody please through some light on this?

• en.wikipedia.org/wiki/Eigenface Apr 16 '14 at 9:02
• Is there anything missing in my question? If yes, please specify, if not, could you please mark it?
– Royi
Jan 19 at 18:42

I will try giving you some intuition.
The SVD says each matrix can be decomposed into 3 operations - Rotation, Stretching (Scaling) and the another Rotation.

What matters is which directions are scaled and how.
Directions are vectors (Pointing some direction).

The SVD has many uses in Linear Algebra.
One its most known use is Low Rank Approximation of a matrix.
Low rank meaning to try represent the same data with lower number of degrees of freedom.

It is immediately rings a bell for compression and dimensionality reduction (Also the SVD is practically the basis for Karhunen Loève Compression).

## Image Compression

Think of decomposing the image into patches of $n \times n$ (Where usually $n = 8$ or $n = 16$).
Now build a matrix of those patches (Each patch as a column).
Then, using the SVD you will be able to find a low rank representation of this image which is basically a compression.
Why isn't it used?
Because this is the most effective compression in ${L}_{2}$ sense yet the base it uses is adaptive to the image. Namely with each compressed image you'll have also to deliver the base which hurts the practical compression ratio.
But this is the idea.

## Eigen Faces

This is a nice implementation of idea using SVD.
You can read about in the great article on Wikipedia - Eigen Face (Including Code).
Basically, again, you can use the low rank representation either to compress the data base of faces and / or use it as a method to recognize faces.

## Compressed Sensing

The SVD is heavily used in the Compressed Sensing frame work.
For instance have a look on the Dictionary Learning method called - K-SVD.

The Wikipedia article about the SVD is really great place start reading about it - Singular Value Decomposition (SVD).

It is an essential component in Principal Component Analysis(PCA) that allows to reduce the number of dimensions by projecting less dimensions of this sort of data, thus narrowing it down faster to finding a pattern.

The projection operation characterizes an individual face by a weighted sum of the Eigen faces features and so to recognize a particular face it is necessary only to compare these weights to those individuals.$^1$

I'd recommend looking into some example code of this application like here. Just copy and paste it to a folder, read/run ex7_pca in octave, and its steps.