大家晚上好,
我试过用这个
根据OpenCV 3.0文档保留我的Ptr变量类型为BasicFaceRecognizer:http://docs.opencv.org/master/db/d7c/group__face.html#gsc.tab=0
Ptr<BasicFaceRecognizer> model;
int label = -1;
double confidence = 0.0;
this->imageManager = pManager;
this->model = createEigenFaceRecognizer();
this->model->train(pManager->getOpenCVTrainImages(), pManager->getTrainLabels());
for(Mat& imageToTest : pManager->getOpenCVTestImages())
{
this->model->predict(imageToTest, label, confidence);
cout << "Class: " << label
<< " The confidence predicted towards the test image is: " << confidence << endl;
}
运行此代码时,它正确识别标签(这是一件好事)但是,如果测试图像是针对不属于其类的子集运行的,那么我期望得到一个-1或者非常低的类信心。
在这个例子中,我没有将面部识别器设置为10个PCA组件,我没有设置阈值。但是,我试图用createEigenFaceRecognizer(10,123.0)或createEigenFaceRecognizer(10,50.0)或createEigenFaceRecognizer(0,1.0)来运行它......
所有上述情况都给了我一个0的置信度。这似乎不太可能或不可能我期待至少一些数字。
我做错了什么,这是一个错误吗?