我正在尝试找到两张面孔相似度的度量。我使用 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);
}
问题:
谁能告诉我如何重写它以输出前 10 个面孔而不仅仅是前 1 个?我正在考虑将它们推入优先队列,但也许有更简单的方法?!
在训练中:我应该把所有的脸都放在同一个标签上还是放在不同的标签上?那么我应该有 1 个标签还是 1000 个?
干杯