Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using EigenObjectRecognizer

Tags:

c#

emgucv

I am trying to do some facial recognition using EmguCV. I was wondering if I can use EigenObjectRecognizer for this task? Can someone can explain me how to use it? Because if there is a no no-match photo, it also returns a value. Here is an example:

    Image<Gray, Byte>[] trainingImages = new Image<Gray,Byte>[5];  
        trainingImages[0] = new Image<Gray, byte>("brad.jpg");
        trainingImages[1] = new Image<Gray, byte>("david.jpg");
        trainingImages[2] = new Image<Gray, byte>("foof.jpg");
        trainingImages[3] = new Image<Gray, byte>("irfan.jpg");
        trainingImages[4] = new Image<Gray, byte>("joel.jpg");
 String[] labels = new String[] { "Brad", "David", "Foof", "Irfan" , "Joel"}
  MCvTermCriteria termCrit = new MCvTermCriteria(16, 0.001); 

    EigenObjectRecognizer recognizer = new EigenObjectRecognizer(
       trainingImages,
       labels,
       5000,
       ref termCrit);
        Image<Gray,Byte> testImage = new Image<Gray,Byte>("brad_test.jpg");

     String label = recognizer.Recognize(testImage);
     Console.Write(label);

It returns "brad" .But if I change photo in testimage it also returns some name or even Brad.Is it good for face recognition to use this method? Or is there any better method?

like image 820
Ercan Avatar asked May 14 '10 20:05

Ercan


1 Answers

I made some practice and found that when it does not found it returns empty string. Changing value 5000 to 1000 it gives more close value but ıf you are usıng web cam your photo for testing and in database must be almost same .

like image 185
Ercan Avatar answered Oct 12 '22 02:10

Ercan