【问题标题】:how to get percentage of similarity using libfacerec Opencv library如何使用 libfacerec Opencv 库获取相似度百分比
【发布时间】:2012-06-16 03:22:33
【问题描述】:

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

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

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

我需要定义一些阈值,然后根据该阈值针对某个百分比或距离值验证/无效用户图片,有没有人知道如何使用 libfacerec 库来做到这一点,因为在这个库中没有公共变量可以查看距离还是百分比值?否则我是否需要在库中为它编写代码,因为据我了解它不包含此功能???

【问题讨论】:

  • 嗨。我在文档中进行了搜索,但也找不到一种简单的方法来获得它,而无需挖掘代码。您可能想直接在托管项目的 Gituh 上发布问题:github.com/bytefish/libfacerec/issues。我相信开发人员会尽快回复您!

标签: c++ opencv percentage face-recognition


【解决方案1】:

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

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

就像调用一样简单:

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 方法:

它也显示在我随库提供的演示应用程序中:

【讨论】:

  • 感谢字节鱼!它就像一个魅力 GIT 没有更新整个源主干目录的另一件事。我不得不通过 libfacerec 库的 zip 存档更新整个主干。也感谢您的提议,我一定会与您联系以做出贡献。
  • 酷!我已经准备了一个更新版本,我会在周日之前上传。如果你能通读并告诉我你在哪里看到了改进/有什么令人困惑的地方,那就太棒了。
  • 先生您好。字节鱼。我也一直在使用 libfacerec 的最新版本,但在 python 中。有没有办法在 python 的预测中也使用这个置信度值?如果某个特定的人未知,这对我的应用程序会很有帮助。
  • 先生。字节鱼。哈哈哈,不用那么客气!你是说http://github.com/bytefish/facerec
  • 好吧 bytefish 先生:p 我正在使用该软件包中的 facerec 示例之一 - apps/videofacerec/videofacerec.py 来尝试我的面部识别,但是,在那个文档中我找不到任何涉及接受人的认可的门槛(我对此有点陌生,抱歉)。
猜你喜欢
  • 1970-01-01
  • 2016-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-14
相关资源
最近更新 更多