当训练图像集中没有面部时,我需要捕捉异常。我正在使用EigenFaceRecognizer进行识别,当我运行它时,如果可用的图像可以预测它,但是如果图像不可用则不会做任何事情,它会预测训练图像集中的最后一个图像。当图像集中没有面部时,如何实现代码以便给出错误?
FaceRecognizer faceRecognizer = createEigenFaceRecognizer();
faceRecognizer.train(images, labels);
int predictedLabel = faceRecognizer.predict(testImage);
System.out.println("Predicted label: " + predictedLabel);
return predictedLabel;
答案 0 :(得分:0)
我想你想做这样的事情:
final double MIN_CONFIDENCE = 0.01; // experiment with this.
int labela[] = new int[1];
double confidence[] = new double[1];
faceRecognizer.predict(testImage,labela, confidence);
int predictedLabel = (confidence[0] > MIN_CONFIDENCE)?labela[0]:-1;
System.out.println("Predicted label: " + predictedLabel);
你需要尝试自己回归的信心值,找到一个能够拒绝失败的好价值而不会拒绝某些合法案件。
答案 1 :(得分:-1)
你离正确的距离不远。你可以这样做。
FaceRecognizer faceRecognizer = createEigenFaceRecognizer();
faceRecognizer.train(images, labels);
int predictedLabel = -1;
predictedLabel = faceRecognizer.predict(testImage);
System.out.println("Predicted label: " + predictedLabel);
return predictedLabel;
这样,如果在预测和预测标签后仍然给你-1,你知道你的训练图像集没有预测到图像。
如果predictLabel返回1,则表示您的图像是根据训练图像集预测的。我假设您输入1作为您添加到训练集中的图像的标签。