2013-03-24 3 views
0

대상 이미지에서 실제로 얼굴을 인식 할 때 자신감 레벨을 수집하는 방법을 찾으려합니다. 몇 가지 예제를 통해 검색했지만 구현 방법을 볼 수있는 것을 찾지 못했습니다. 모든 도움을 주셔서 감사합니다.JAVACV 프로그램을 통한 자신감 수집

public static void facecompare() { 
    String trainingDir = "C:/TrainingDirectory";  //training directory 
    IplImage testImage = cvLoadImage("C:/TargetImages/boland_straight_happy_open_4.pgm"); //the target image 

    File root = new File(trainingDir); 

    FilenameFilter pngFilter = new FilenameFilter() { 
     public boolean accept(File dir, String name) { 
      return name.toLowerCase().endsWith(".pgm"); 
     } 
    }; 

    File[] imageFiles = root.listFiles(pngFilter); 

    MatVector images = new MatVector(imageFiles.length); 

    int[] labels = new int[imageFiles.length]; 

    int counter = 0; 
    int label; 

    IplImage img; 
    IplImage grayImg; 

    for (File image : imageFiles) { 
     img = cvLoadImage(image.getAbsolutePath()); 

     label = Integer.parseInt(image.getName().split("\\-")[0]); 

     grayImg = IplImage.create(img.width(), img.height(), IPL_DEPTH_8U, 1); 

     cvCvtColor(img, grayImg, CV_BGR2GRAY); 

     images.put(counter, grayImg); 

     labels[counter] = label; 

     counter++; 
    } 

    IplImage greyTestImage = IplImage.create(testImage.width(), testImage.height(), IPL_DEPTH_8U, 1); 



    // FaceRecognizer faceRecognizer = createFisherFaceRecognizer(); 
    // FaceRecognizer faceRecognizer = createEigenFaceRecognizer(); 
    FaceRecognizer faceRecognizer = createLBPHFaceRecognizer(); 

    faceRecognizer.train(images, labels); 

    cvCvtColor(testImage, greyTestImage, CV_BGR2GRAY); 

    int predictedLabel = faceRecognizer.predict(greyTestImage); 

    System.out.println("Predicted label: " + predictedLabel); 
} 

답변

1

다른 는 자신감을 반환 방법을 예측할 수있다 :

// pointer-like output parameters 
// only the first element of these arrays will be changed 
int[] plabel = new int[1]; 
double[] pconfidence = new double[1]; 

faceRecognizer.predict(greyTestImage, plabel, pconfidence); 

int predictedLabel = plabel[0]; 
double confidence = pconfidence[0]; 
+0

나는 그런 방법은 학습 집합의 모든 이미지에 대한 모든 신뢰 값을 반환 기대. 그러나 적어도 저에게는 예측 된 이미지에 대한 신뢰도 만 제공됩니다. 정상입니까? –