I have been reading about eigen values and eigen vectors but i haven't be able to find any decent explanation relating their application in image processing/computer Vision for example say face detection and eye detection. Can somebody please through some light on this?


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.



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).


Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.