当前位置: 首页 > 知识库问答 >
问题:

如何在OpenCV中获得最相似的特征面或Fisherfaces?

阮鸿煊
2023-03-14

我试图找到两张脸相似度的度量方法。我使用OpenCV。为此,我用1000张不同的人的1000张照片训练Eigenfaces/Fisherfaces(所以每个人1张照片)。所以我在训练集中也有1000个标签。

现在我可以使用预测方法得到最相似的脸。

我想输入2个未知的人脸图像,以找出他们是否都与训练集中的相同向量的人脸相似。

下面是openCV返回最相似标签(距离最低)的代码。

for(size_t sampleIdx = 0; sampleIdx < _projections.size(); sampleIdx++) {
    double dist = norm(_projections[sampleIdx], q, NORM_L2);
    if((dist < minDist) && (dist < _threshold)) {
        minDist = dist;
        minClass = _labels.at<int>((int)sampleIdx);
    }

问题:

在训练中:我应该把所有的脸放在同一个标签上还是放在不同的标签上?那么我应该有1个标签还是1000个?

干杯

共有1个答案

夔博
2023-03-14

我是这么做的。注意:我非常擅长perl,非常擅长C++(事实上,这是我的第一个C++项目!)所以我在命令行中输出了很多内容,并用Perl对其进行了解析。

我和您一样转到facerec.cpp,并将for循环的内容更改为:

for(size_t sampleIdx = 0; sampleIdx < _projections.size(); sampleIdx++) {
    double dist = norm(_projections[sampleIdx], q, NORM_L2);
    int labelClass = _labels.at<int>((int)sampleIdx);
    cout << dist << " " << labelClass << endl;
    if((dist < minDist) && (dist < _threshold)) {
        minDist = dist;
        minClass = _labels.at<int>((int)sampleIdx);
    }
}

这现在输出每个脸的距离和标签。由于predict函数所做的一切似乎都是以最短的距离(最低的数字)拍摄图片,并将其作为答案返回,因此现在可以获取结果列表,对其进行排序,并获取前10个结果。或者你可以拿前十个标签什么的。这只允许您访问所有数据,而不是前X个结果。

#include <iostream>

using namespace std;

到文件的顶部,这样我就可以使用cout了。

 类似资料:
  • 问题内容: 我正在处理高度不平衡的数据集,我的想法是从我的 libSVM 模型中获取特征权重的值。到目前为止,我对线性内核还可以,我可以在其中获得特征权重,但是当我使用或时,我无法达到目标。 在这里,我正在使用我的模型,并且可以使用轻松获得线性核的特征权重。谁能帮助我可以做同样的事情还是?到目前为止,我已尝试执行以下操作: 问题答案: 正如文档中所述,这不仅是不可能的: 权重分配给特征(原始问题的

  • 是否有可能(通过宏、某种形状的automagic或其他方式)获得封闭特征的子类列表: 在编译时 在运行时

  • 我是使用Kotlin开发Firebase android的初学者,我的问题是我想使用Kotlin检测特定的。我如何达到预期的结果。 我看到过使用Java的例子,但我不知道如何使用Kotlin实现它。任何帮助都是非常感谢的。下面是我在代码中写的内容: 如果电话号码已经存在,我希望用一个toast向用户显示。

  • 我有一个设计问题,当使用类似的东西时: 我认为应该有一些更好的方法来实现这种参数化的特性。 我在std中没有找到好的示例(例如,在具有类似的关联类型的traits中没有实现)?

  • 我浏览了有效的scala幻灯片,在幻灯片10中提到,不要在抽象成员的中使用,而是使用。幻灯片没有详细提到为什么在中使用抽象是反模式。如果有人能解释在抽象方法的特征中使用val vs def的最佳实践,我将不胜感激

  • 问题内容: 在我的ASP.net Web项目中,我在.js文件中编写了以下Javascript代码: 直到我尝试将此.js文件加载到子目录中的页面中,效果一直很好。 假设我的项目名称为。 当我在主虚拟目录中使用此代码时,Javascript解释为意思,一切都很好。但是,在子目录中的页面上,Javascript将其解释为意思,因此它不起作用。 如何编写Javascript代码,以便可以从应用程序中任