CSE455 Project4: Face Recogition
Veneta Tashev

This project was focused to recognition and more specificaly on face recognition. Fallowing are my 10 eigenfaces proceeded by the average face. They have been enlarged here 4 times for better redability, the originals were 25 by 25 pixels. Certain of them highlight nose, glasses, chin etc. Looking at eigen face 0, it seems to give the completely generic shape of a face.



Experiment 1:
Recogmnizing a smiling user with the nonsmiling eigen faces.

This experiment was relatively sucsessful. I ran the program on every user with variation of 1-27 eigen faces at granularity of 2. The recognition as expected was pretty low at small number of eigen faces, starting with recogizing only 5 out of the 27 users with 1 eigen face. The number recognized peacked at 21 recognitions with 11 eigenfaces and platoed from then on at 20 recognized users.

Studing the results one can conclude that one should use around 10-13 eigenfaces and that using anymore does not improve the results sufficiently and only takes time and computational power. My best run was useing 11 egien faces and I then recoginzed 21 out of the 27 users. That is 78% acurracy, but the average accuracy once it platoes is 74%. Running all the different experiments, I noticed that certain faces never get recognized and that others aways do, with a third set that flunctuates back and forth. For example faces 1, 4, 20, 21 never were recognized at all and faces 2, 3, 5, 6, 7, 8, 22, 23, 24, 25, 26, 27 are consistently recognized once the recognition count platoes.

Face Nonsmiling Smiling
Face 01
Face 04
Face 20
Face 21

Making a closer observation of the results one can notice that for faces 1 and 4 the correct choice is in the list of top 5 likely faces and faces 20 and 21 are not on their top 10 likely fases. Looking at the pictures one can see that Alex (Face 01) blinked and thus it makes sence that his real picture beacomes a slightly less likely choice. Face 04 is often confused with face 26, both are from the same reace, so that mekes some sence. But why the strange results of 20 and 21? My speculation is cropping and color/light sufficiently trow off the model. For face 20, there is a very notisable change in light which wold make him less recognizable to the system. Strangely enough the precence of glasses on face 21 doesn't seem to help at all.

Experiment 2:
Finding faces in a picture

By the deadline of the project my code could not corectly locate a face on the test image and continiousely got stuck at to top corcer of an image and drew 3 x 3 pixels green square there. There ar esome logical errors in my algorythumn. However even if I could not receive credit for this work I wanted to try and correct the errors for my own personal interest. Here are the results.

Here are the errors that I discovered in my code. When drawing boxes or corpping and calculating the length of the box, I was multiping by scle rather then dividing by it. With that small corection my algorythumn now allowed me to see what it was doing. The results were still far from good, but at least they existed. This is what is visible here. Algorythumn is still broken someware, but I have been unable to locate where yet. So the trends are negative and I don't know why my boxes/cropping is offset in the way it is, to my biggest frustration. I did find variouse "mistakes" in my code but they tended to give me worse results for unknown reasons.

I used: --findface elf.tga nosmile_eig10.face 0.10 0.30 0.05 crop 1 cropped_elf.tga
I used: --findface test.tga nosmile_eig10.face 0.10 0.30 0.05 mark 3 test_new.tga
I used: --findface me.tga nosmile_eig10.face 0.10 0.30 0.05 mark 1 me_new.tga
I used: --findface IMG_0031.tga nosmile_eig10.face 0.10 0.30 0.05 mark 3 IMG_0031_new.tga
I used: --findface group4s.tga nosmile_eig10.face 0.10 0.30 0.05 mark 27 group4s_new.tga

Elf

   

test

   

IMG_0031.tga

   

Extra Credit:
Verify face

While working sequentionaly on the tesks I completed one of the extracredit options and implemented verify face function. In the experimentation I used 10 eigen faces and the full folder of smiling pictures against the user set of unsmiling feces. I ran every face picture against itself and recorded the MSE. Below is a chart with the results. It seems that to garantee that every user will recognize self the limit of the MSE must be around 3500. However with this kind of limit most user's pictures would be recognized by other users as well and not just by their user. I ran every user against user 1, then against user 2, then against 3 and lastly against 4. Not every user got the best MSE against their picture. In all the runs the return MSEs were between 600-3500. Setting the limith for recoginzing a picture at around 1000 woks for only 2-3 users, then they will be recoginze their picture and none else, but the rest of the users won't recognize themselvs. Setting the MSE limth around 2000 gets us about half of the pictures recognized by most users (and there is only one picture per user). In conclusion it seems that there is no one limith to garantee that given a picture any user would recognize only self and no one else. Howevr running against other objects such as house or tree, those objects are not recognized by any user consistatly as long as the MSE is 3500, but that functionality is covered by isFace algorythumn. The last coments is that most users tended to have the best scores aginast self, but not all and this is expected from the results in experiment 1.