Face recognition using eigenface
显示 更早的评论
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..
采纳的回答
更多回答(2 个)
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 个评论
Walter Roberson
2012-5-9
Analyzing a 4 x 10000 matrix for principle components requires creating a 10000 by 10000 correlation matrix and analyzing that. Each entry requires 8 bytes (double precision) so that requires about 800 megabytes of memory. You will not be able to handle an array that large on a 32 bit version of MATLAB under MS Windows, especially if it turns out to be necessary to make a copy of the array -- 800 megabytes happens to be about the limit of the _consecutive_ memory with the way storage is arranged in MATLAB. A 64 bit version of MATLAB should be able to handle the situation.
Consider trying something like imresize() to a smaller matrix.
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
2014-3-17
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
2014-3-11
0 个投票
you can transpose N*M*M*N = COV M*N*N*M
类别
在 帮助中心 和 File Exchange 中查找有关 Semantic Segmentation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!