快速搜索数据库

时间:2016-12-21 22:23:03

标签: database machine-learning neural-network artificial-intelligence face-recognition

我想用神经网络实现像人脸识别应用程序这样的东西。所以我找到了this incredible article

当我们将面部图像放入OpenFace网络时,我们可以使用128个测量值来比较面部。

但是在这里我们得到一个主要问题:如何在数据库中快速找到最接近128个值的同一面?

如果我们将使用SVM(正如文章中所述),每当我们将新面孔放入数据库时​​,我们应该重新训练分类器,但这是不合适的。

所以我想知道这个问题的最佳方法是什么? Facebook等服务如何在毫秒内比较这些描述符?

1 个答案:

答案 0 :(得分:3)

如果你有一张脸并且想要搜索最接近匹配的面部数据库,那么实际上只有两个步骤(假设你已经获得了128个OpenFace测量 - 我称之为OpenFaceRep): / p>

  1. 对于数据库中的每个面,从种子照片的OpenFaceRep中减去其OpenFaceRep。我们称之为diff
  2. 获取diff的点积。如果您使用的是Python,它看起来就像np.dot(diff,diff),我们称之为similarity
  3. 最低similarity的面孔将是最佳匹配。请注意,根据照片质量,照明等,您的准确度会有很大差异.OpenFace在LFW基准测试中达到了accuracy of about 92%