gpt4 book ai didi

c++ - 如何使用 libfacerec Opencv 库获得相似度百分比

转载 作者:太空狗 更新时间:2023-10-29 20:45:18 27 4
gpt4 key购买 nike

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

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

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

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

最佳答案

请确保您使用的是最新版本! 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);

然后您在 predictedLabel 中有预测标签,并且在 confidence 中有此预测的置信度值。

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

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

关于c++ - 如何使用 libfacerec Opencv 库获得相似度百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11010303/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com