c – 如何使用libfacerec Opencv库获得相似性百分比

这可能是一个简单的问题,但我有点困惑,所以希望有人指导我.

我正在使用openCV libfacerec的人脸识别库,它给出了很好的结果,但我需要估计相似性的百分比.如果我使用未知图像作为输入,那么它仍然根据最后距离值预测好像该人存在于系统中

         if(dist < minDist) {
        minDist = dist;
        minClass = _labels[sampleIdx];
    }

我需要定义一些阈值,然后根据该阈值对某个百分比或距离值验证/无效用户图片,是否有人知道如何使用libfacerec库执行此操作,因为在此库中没有公共变量来查看距离或百分比值?否则我需要在库内为它编码,因为据我所知,它不包含此功能???

解决方法:

请确保您正在处理最新版本! libfacerec的最新版本允许您获得预测的预测值和置信度值.您可以在此处查看方法的签名:

> https://github.com/bytefish/libfacerec/blob/master/include/facerec.hpp

它显示在我随库提供的演示应用程序中,请参阅:

> https://github.com/bytefish/libfacerec/blob/master/samples/facerec_demo.cpp

它就像调用一样简单:

FaceRecognizer::predict(InputArray src, int &label, double &confidence); 

在计算模型上.所以在你的应用程序中你只需写:

Mat testSample; // of course this is set somewhere in your application
int predictedLabel = -1;
double confidence = 0.0;
model.predict(testSample, predictedLabel, confidence);

然后,您在predictLabel中具有预测标签,并且该置信度的置信度值.

其次,这可能更符合您的问题,您现在可以设置一个阈值,低于该阈值时输入图像被视为未知.您可以在模型的构造函数中设置阈值,也可以使用setter / getter方法设置阈值:

> https://github.com/bytefish/libfacerec/blob/master/include/facerec.hpp(参见createEigenFaceRecognizer,createFisherFaceRecognizer,createLBPHFaceRecognizer)

它也随附在库中的演示应用程序中显示:

> https://github.com/bytefish/libfacerec/blob/master/samples/facerec_demo.cpp

上一篇:UOS进tty模式维护系统


下一篇:ubuntu打开/关闭虚拟终端/dev/tty