3

I edited my question trying to make it as short and precise.

I am developing a prototype of a facial recognition system for my Graduation Project. I use Eigenface and my main source is the document Turk and Pentland. It is available here: http://www.face-rec.org/algorithms/PCA/jcn.pdf.

My doubts focus on step 4 and 5.

I can not correctly interpret the number of thresholds: If two types of thresholds, or only one (Notice that the text speaks of two types but uses the same symbol). And again, my question is whether this (or these) threshold(s) is unique and global for all person or if each person has their own default.

I understand the steps to be calculated until an matrix O() of classes with weights or weighted. So this matrix O() is of dimension M'x P. Since M' equal to the amount of eigenfaces chosen and P the number of people.

What follows and confuses me. He speaks of two distances: the distance of a class against another, and also from a distance of one face to another. I call it D1 and D2 respectively. NOTE: In the training set there are M images in total, with F = M / P the number of images per person.

I understand that threshold(s) should be chosen empirically. But there must be a way to approximate. I was initially designing a matrix of distances D1() of dimension PxP. Where the row vector D(i) has the distances from the vector average class O(i) to each O(j), j = 1..P. Ie a "all vs all."

Until I came here, and what follows depends on whether I should actually choose a single global threshold for all. Or if I should be chosen for each individual value. Also not if they are 2 types: one for distance classes, and one for distance faces.

I have a theory as could proceed but not so supported by the concepts of Turk:

Stage Pre-Test:

Gender two matrices of distances D1 and D2: In D1 would be stored distances between classes, and in D2 distances between faces. This basis of the matrices W and A respectively.

Then, as indeed in the training set are P people, taking the F vectors columns D1 for each person and estimate a threshold T1 was in range [Min, Max]. Thus I will have a T1(i), i = 1..P

Separately have a T2 based on the range [Min, Max] out of all the matrix D2. This define is a face or not.

Step Test:

Buid a test set of image with a 1 image for each known person Itest = {Itest(1) ... Itest(P)}

For every image Itest(i) test:

  1. Calculate the space face Atest = Itest - Imean

  2. Calculate the weight vector Otest = UT * Atest

  3. Calculating distances:

dist1(j) = distance(Otest, O (j)), j = 1..P

Af = project(Otest, U)

dist2 = distance(Atest, Af)

  1. Evaluate recognition:

MinDist = Min(dist1)

For each j = 1..P

If dist2 > T2 then "not is face" else:

If MinDist <= T1(j) then "Subject identified as j" else "subject unidentified"

Then I take account of TFA and TFR and repeat the test process with different threshold values until I find the best approach gives to each person.

Already defined thresholds can put the system into operation unknown images. The algorithm is similar to the test.

I know I get out of "script" of the official documentation but at least this reasoning is the most logical place my head. I wondered if I could give guidance.


EDIT:

i No more to say that has not already been said and that may help clarify things.

Could anyone tell me if I'm okay tackled with my "theory"? I'm moving into my project, and if this is not the right way would appreciate some guidance and does not work and you wrong.

  • Hola, welcome to Stack Overflow! Questions that need external sources to be readable aren't welcome here, can you edit your question and add the relevant text and code right here? However, be careful to ask one question per question. If necessary, ask multiple questions. – Pekka Mar 06 '15 at 15:04
  • Hi Pekka. Thanks for responding, and correct some mistakes in my writing. All my doubts are about the same problem. I wrote the document to explain in depth what I have done and as I understand. And I expose my doubts and hypotheses. Are 5 sheets, and had written this here, the page will be very long and boring. I understand that I edit my question and dump everything there. I will linger a bit to sort my ideas and questions shorter and easier. – Marcelo Cuadrado Mar 06 '15 at 15:17
  • @Delphius Two things: 1) External link: if we're going to read it anyways we might as well read it here instead - *however* you may want to try to shorten your question; most importantly because doing so may help you understand the problem more, and 2) SO is more for help with specific coding issues; your question is a fine one but you *may* have better luck on one of the other sites as your question is about interpreting an algorithm in a published paper (I'm just not sure which at the moment; there is math, cstheory, cs, and even programmers). – Jason C Mar 06 '15 at 16:15
  • I've inserted the contents of the link in the question. It is unfortunate that SO does not support MathJax, but it is indicative of this not being the most appropriate forum for this type of question. – Jason C Mar 06 '15 at 16:21
  • 1
    Hi Jason C. Thanks for your edit my message and place the entire text. I was a little rearranging my words and focus on the questions rather than on assumptions. It is much shorter, though perhaps lose sight of some things. I feel sorry for having to explain too much. And if I put link to the paper which I am using as source was to have on hand if needed someone to internalize or refresh something. – Marcelo Cuadrado Mar 06 '15 at 17:24
  • I understand and I know StackOverflow not perhaps the most appropriate place for the form of the question. Yes, it is true is more "mathematical" than programming. But I have come here is for 3 reasons: 1. there are people who have worked on Eigenface. There are questions on the subject. But there is no clarify this situation. 2. Since I joined the community I hope to be contributing to the extent that the more I learn. – Marcelo Cuadrado Mar 06 '15 at 17:26
  • 3. And finally, I understand that in StackOverflow between the types of questions is accepted algorithms. And my question technically it is. The mathematical and programming almost encouraged me to say go together;) – Marcelo Cuadrado Mar 06 '15 at 17:26
  • Pekka, Jason C I have asked this same question in Computer Science. Hope I'm not breaking any rules by having duplicate question. – Marcelo Cuadrado Mar 07 '15 at 14:59

0 Answers0