两个特征向量之间的相似度度量

数据挖掘 喀拉斯 相似 距离 特征
2021-10-07 02:55:26

我有具有以下详细信息的面部识别系统:

  1. VGG16特征提取模型
  2. 512维度特征向量(归一化)

我需要计算similarity两个特征向量之间的度量。到目前为止,我已经尝试过difference衡量:

  1. 成对余弦,欧几里得距离
  2. 点积(两个向量都是标准化的,所以它们的点积应该在 range [-1, 1]

feature vector当我想从集合中找到最接近的Feature Vectors. 通过排序difference(距离)测量。但这种方法是相对测量。

我想要百分比similarity所以我可以说给定的图像Person XXX具有一定程度的确定性x percentage

假设我有 2 个特征向量(人 a 和 b)。

我想通过某个百分比的概率计算出person a确实是的准确度水平(以百分比表示)。person b

2个回答

所以,谢谢你澄清这个问题。只是为了确认问题是询问如何为面部特征向量设置适当的阈值(例如表示 aab)。

我建议查看您已实现的余弦相似度或欧几里德距离。从这里开始,我将查看所有面部向量配对的相似性度量的分布。在这里,这可以让您了解所有面部矢量配对的一般相似性水平(例如,如果大部分分布偏向于降低面部相似度,那么这可能表明面部矢量配对之间总体缺乏相似性)。

如果分布偏向更高的相似性值,那么您可以将这个分布的第 90 个百分位作为确定是否a==的阈值b

另一个想法是通过以下方式使用softmax的想法。这种方法将允许其他人精确地复制您的方法:

对于每一张脸 F一世F,您计算之间的人脸向量配对的softmaxF一世FjF,一世j. 然后,从中选择索引j它具有最高的值,然后可以假设它是这样的F一世==Fj( a== b)

所以你想通过人脸特征向量的相似性来识别一个人,用一些已知人的数据库,对吧?

您所说的相似性度量将帮助您识别该人而不是评估该识别的结果。要做到这一点,您需要一组您认识的人(即被贴上标签的人)。然后你需要执行你的方法:提取特征,测量相似度并识别那个人。然后您需要将此标识与他们的实际标签进行比较。在这里,您可以通过测量识别系统的准确度、精确度、召回率等来评估您的表现。