2015-06-07 11 views
1

Я использую Emgucv для распознавания лиц, но метод Predict FaceRecognizer не работает. Каждый раз, когда я запускал эти коды ниже, я не получил никакого результата. Кто-нибудь знает, как это исправить? Заранее спасибо. Версия Emgucv является Emgu.CV-3.0.0-rc1Используйте Emgucv для распознавания лиц, не показывайте результат прогноза

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Drawing; 

using Emgu.CV.UI; 
using Emgu.CV; 
using Emgu.CV.Structure; 
using Emgu.CV.CvEnum; 

namespace ConsoleFaceRecognition 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     //training variables    
     Image<Bgr, Byte>[] images = new Image<Bgr, Byte>[20]; 
     int[] labels = new int[20]; 


     for (int i = 0; i < 10; i++) 
     { 
      images[i] = new Image<Bgr, Byte>("D:/visual studio 2013 projects/ConsoleFaceRecognition/ConsoleFaceRecognition/trainingImages/s1/11" + i.ToString() + ".png"); 
      images[i + 10] = new Image<Bgr, Byte>("D:/visual studio 2013 projects/ConsoleFaceRecognition/ConsoleFaceRecognition/trainingImages/s2/21" + i.ToString() + ".png"); 
      labels[i] = 1; 
      labels[i + 10] = 2; 
     } 

     FaceRecognizer recognizer = new FisherFaceRecognizer(0, 3500); 
     recognizer.Train(images, labels); 

     Image<Bgr, Byte> testImage = new Image<Bgr, Byte>("D:/visual studio 2013 projects/ConsoleFaceRecognition/ConsoleFaceRecognition/trainingImages/s2/213.png"); 
     FaceRecognizer.PredictionResult result = recognizer.Predict(testImage); 


     Console.Write(result.Label); 
    } 
} 
} 

ответ

0

Я не думаю, что 20 изображений достаточно для обучения, увеличить число образцов, если это возможно. Также важны размер и содержание ваших образцов. Все лица на этих изображениях должны иметь одинаковый размер и быть, например, лобовыми для вашего обучения.

Надеюсь, это поможет.

+0

Спасибо за ответ, изображения работают для opencv C++. Размеры изображения одинаковы. – Joey