Mit EigenObjectRecognizer

Ich versuche, mit EmguCV eine Gesichtserkennung durchzuführen. Ich habe mich gefragt, ob ich EigenObjectRecognizer für diese Aufgabe verwenden kann. Kann mir jemand erklären, wie man es benutzt? Denn wenn es ein nicht passendes Foto gibt, wird auch ein Wert zurückgegeben. Hier ist ein Beispiel

    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 gibt "Brad" zurück. Aber wenn ich das Foto im Testbild ändere, gibt es auch einen Namen oder sogar Brad zurück. Ist es gut für die Gesichtserkennung, diese Methode zu verwenden? Oder gibt es eine bessere Methode?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage