header photo

Level 4a - Getting Ready For FACE RECOGNITION - the BASICS

January 25, 2012

Welcome my dear readers! at requests of my regular readers, i've started working on the face RECOGNITION tutorial series! hope that makes you happy! ^_^
 

1.KNOW THE BASICS BEFORE IMPLEMENTING THE TECHNOLOGY!
As ALWAYS i shall stress my readers to NEVER skip out the basics whenever learning or implementing something NEW to you! Reason being that there are bits of vital information in basics that ALWAYS  help us do our best and more efficiently!

i have made this tutorial as a 19min video in two parts below, covering all the content of this tutorial - i think video makes "theory" LESS boring :P  for clear readability, you can read the slides from the below video, HERE.





OR, go ahead with the geeky version of the tutorial below, and read the whole tutorial by starting off with knowing what exactly is Face Recognition by "definition" :)

1.1.WHAT IS FACE RECOGNITION?
frankly you'd find tons of answers to this question.  but here's my short version:

Face recognition is the task of identifying an already detected object as a KNOWN or UNKNOWN face, and in more advanced cases, telling EXACTLY WHO'S face it is!


1.2.DIFFERENCE BETWEEN FACE RECOGNITION & FACE DETECTION?
Often the problem of face recognition is confused with the problem of face detection.
Ok, in 1.1, the above definition, note the stress i placed on the object being "detected already". in short:

Face detection
is to identify an object as a "face" and locate it in the input image.
Face Recognition on the other hand is to decide if this "face" is someone KNOWN, or UNKNOWN, basing on the database of faces it uses to validate this input face.

so face detection's output( the face) is in fact recognition's input. and recognition's output is the final decision: face known/face unknown! clear enough i hope? here's a "visual" explanation:
Photobucket

its a bit rough, but i hope you got the picture? :) Right then, moving ON!

1.3.WHY USE FACE RECOGNITION - NEED FOR ITS EMERGENCE?

 

Positive identification of individuals is a very basic societal requirement. In small tribes and villages, everyone knew and recognized everyone else. You could easily detect a stranger or identify a potential breach of security. In today's larger, more complex society, it isn't that simple. In fact, as more interactions take place electronically, it becomes even more important to have an electronic verification of a person's identity. Until recently, electronic verification took one of two forms:
1- It was based on something the person had in their possession, like a magnetic swipe card, or
2- something they knew, like a password.

The problem is, these forms of electronic identification aren't very secure, because they can be given away, taken away, or lost and motivated people have found ways to forge or circumvent these credentials.
So, the ultimate form of electronic verification of a person's identity is biometrics; using a physical attribute of the person to make a positive identification.

There are many robust biometric techniques like fingerprinting which can be used for human authentication then why go for face recognition?

In many applications like the surveillance and monitoring ,say, of a public place, the traditional biometric techniques will fail as for obvious reasons we can not ask everyone to come and put his/her thumb on a slide or something similar. So we need a system which is similar to the human eye in some sense to identify a person. To cater this need and using the observations of human psychophysics, face recognition as a field emerged.

Different approaches have been tried by several groups, working world wide, to solve this problem. Many commercial products have also found their way into the market using one or the other technique. But so far no system / technique exists which has shown satisfactory results in all circumstances [^]

1.4.DIFFERENT APPROACHES OF FACE RECOGNITION:
well here's a great document for you. just read page 1-4. yep! that's it and you'll know the briefest possible vital info on approaches of Face Recognition! DO READ all that i've highlighted in this document at ALL costs please! 



So, here's what we learnt:
A.Recognition algorithms can be divided into two main approaches:

1- geometric: which looks at distinguishing features.
2- photometric: which is a statistical approach that distill an image into values and comparing the values with templates to eliminate variances.
B.Popular recognition algorithms include
1. Principal Component Analysis using Eigenfaces
,(OUR HERO :P )
2. Linear Discriminate Analysis,
3. Elastic Bunch Graph Matching using the Fisherface algorithm
,
4. the Hidden Markov model, and
5. the neuronal motivated dynamic link matching.


2.OUR SELECTED ALGORITHM FOR IMPLEMENTATION:
Ah yes! we'll be using Principal Component Analysis using Eigenfaces !

2.1.WHY SELECT 'PCA based Eigenfaces' method?
well, PCA based Eigenface method is at the most primary level and simplest of efficient face recognition algorithms --- and is therefore a great place for beginners to start learning face recognition!
You see, PCA based Eigenfaces method for recognition is as supported by EmguCV library as is Viola-Jones method for detection is! So, implementing it in ASP.NET is SIMPLE: Plug-n-Play!
i.e, load the classes, call their functions and TADA! you're done! YES-- you DO NOT NEED TO CODE the algorithm! - simple enough?! :)
in other words "Why start in a HARD way when you CAN start it in a SIMPLE, EASY WAY?!"

2.1.1. IS 'PCA BASED EIGENFACES' METHOD 100% EFFICIENT???
FIRSTLY: NO, and i mean NO face RECOGNITION algorithm is YET 100% efficient  ! yes, it could reach 100% efficiency but NOT ALWAYS! So, NO EXISTING face recognition algorithm is 100% foolproof!!!
THAT is why, its a very hot topic of research today: to optimize face recognition such that it gives near-perfect efficiency in REAL-TIME and CRITICAL environment!
Therefore Secondly:  NO, on an average, PCA based Eigenfaces method is NOT 100% efficient! in fact, on the average, it goes up to 70% to 75% efficiency honestly.

2.1.2."cheh! then why even use it?!"
well, indeed you won't see security level recognition from Eigenface. However, It works good enough, to be used in a beginner or hobbyist robotics/computer vision project. because, just remember, that even though there are other better existing algorithms for face recognition, they are still NOT 100% efficient!
And those other recognition algorithms, though better than PCA based EigenFace, have a BIGGER overhead of "coding" effort you need to put in to implement them in your project if you're using EmguCV(or OpenCV), AND the results won't be "To Die For", considering the extra effort you will put in!

2.2. SHOULD I "NOT" TRY THE OTHER ALGORITHMS THEN?!
im NOT saying that don't go for other algorithms! its just that i suggest you to start SIMPLE please :) SO
1- IF you're a newbie to implementing face recognition, start with PCA based Eigenfaces Method! then if you'd like, move on to the better ones and see the difference and betterment yourself :)

2- BUT if you're an advanced user, doing research and all, Dear sir/madam, how can i even stop you from trying all that is more complex and demanding?? its ALL worth your effort! :)

2.3 WORKING OF PCA BASED EIGENFACES METHOD:
Please start watching the video above at 13:19  that part inroduces you to this method in brief.
To understand how PCA Eigenfaces works to recognize a face calls for details , so let us continue that in our next topic, talking solely about PCA Eigenfaces method.

See you in the next Tutorial :) 

Go Back

will i be using the same concept when i will do a hand recognition program?

i have been using your tutorials its really amazing how much i learnt in a day through this. when will the rest be up though?

thank you very much..
but i want the face recognition tutorial quickly..
it is very important to my project.

i am also waiting for the tutorials. hope you could really released it soon. this tuesday is the checking of our project. hope i can have the tutorial by then. thanks.:)

your current level4a tutorial is best tutorial available on net
Sir , please upload the tutorial i need to complete and submit the project on 20 April so please please

ı dont understnad :(

Thank you so much Mahvish for these tutorials. Thankful for your effort, but I really do hope the face recognition will be up soon :(. Or maybe just the source code for us to test and play around. I can see you are the most sincere in helping beginners/advance. Thank You Very Much

This tutorial make me smile.



Comment