Face recognition using eigenface

8 次查看(过去 30 天)
hello, i'm been working face regonition using eigenface, how do i know the input doesn't same with database, actually it will show others database image. Is there any others solution that it doesn't found your input in database..

采纳的回答

Image Analyst
Image Analyst 2012-5-2
I'm not sure that I understand what you're saying. So, you have a database and for every face in there, you have the weights of the eigenfaces that it is comprised of. Then you take a test face and get its weights. Then you do some sort of comparison between the test weights and the weights of all the faces in the database. One of those in the database will be the closest to your test face. If it's close enough (and you define how close that is) then you can say "the face is in the database" else you say "the face is not in the database." I think that's basically how it works, but I have no idea what you did and why you can't make a decision on whether or not your test face is in there.
  1 个评论
Halim
Halim 2012-5-2
sorry...im new in matlab, im try to understand how eigenface work. thank for the answers...i want to know how to define that the input face is not in database

请先登录,再进行评论。

更多回答(2 个)

Julie
Julie 2012-5-8
Hello, I'm trying to get started on eigenfaces in Matlab.
I read in images 100 x 100 grey level with imread. Turned each one into single column of data 10,000 data points long. Created a matrix A with four columns (four images) of data 10,000 rows long. I then tried to use
[COEFF, SCORE, latent] = princomp(A);
but it gives me :
_Error using svd
Out of memory. Type HELP MEMORY for your
options.
Error in princomp (line 86)
[U,sigma,coeff] = svd(x0,econFlag); % put in
1/sqrt(n-1) later
Error in face1 (line 37)
[COEFF, SCORE, latent] = princomp(A);_
----------------
size(A) = 4 x 10000
I just wanted to try four pictures before moving on to get fussy about the face images but it's already telling me it's out of memory.
Please help. I know people use Matlab to do Eigenfaces. What am I doing wrong ?
Help please.
  3 个评论
Nattawat Siri
Nattawat Siri 2012-6-12
I'm study in this methodology for Age prediction.I think I can help you with the problem
eigenvector can product covariance matrix follow expression,
[Eig D]=A*A'
so, A =covariance matrix from
A= all of Face images in a column vector minus by mean of class
if you are more detail ,I advise you see this page . http://www.mathworks.com/help/techdoc/ref/eig.html
michael scheinfeild
IF YOU HAVE 50 IMAGES n*n SO each image you do operation img(:) you have matrix (n=100) 10000*50=A if you try C (A*A') IT IMPOSSIBLE 10000*10000 , INSTEAD do the transopse C=A'*A is size of 50*50 you have 50 eigen vectors and 50 eigen valuse to reach the hhigher diomension eigen lamda = smalleig*A (the eigen face !!!)

请先登录,再进行评论。


michael scheinfeild
you can transpose N*M*M*N = COV M*N*N*M

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by