Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在数据库中快速搜索人脸描述符_Database_Machine Learning_Neural Network_Artificial Intelligence_Face Recognition - Fatal编程技术网

Database 在数据库中快速搜索人脸描述符

Database 在数据库中快速搜索人脸描述符,database,machine-learning,neural-network,artificial-intelligence,face-recognition,Database,Machine Learning,Neural Network,Artificial Intelligence,Face Recognition,我想用神经网络实现类似人脸识别的应用程序。所以我找到了 当我们将人脸图像放入OpenFace网络时,我们得到128个测量值,可以用来比较人脸 但这里我们得到了一个主要问题:如何在数据库中快速找到具有最接近的128个值的同一张脸? 如果我们将使用SVM(正如本文中所写的),我们应该在每次将新人脸放入数据库时重新训练分类器,但这并不合适 所以我想知道解决这个问题的最佳方法是什么?像Facebook这样的服务如何在毫秒内比较这些描述符?如果你有一张脸,并且想在一个脸数据库中搜索最接近的匹配项,实际上只

我想用神经网络实现类似人脸识别的应用程序。所以我找到了

当我们将人脸图像放入OpenFace网络时,我们得到128个测量值,可以用来比较人脸

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

如果我们将使用SVM(正如本文中所写的),我们应该在每次将新人脸放入数据库时重新训练分类器,但这并不合适


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

如果你有一张脸,并且想在一个脸数据库中搜索最接近的匹配项,实际上只有两个步骤(假设你已经获得了128个OpenFace测量值——我称之为OpenFaceRep):

  • 对于数据库中的每个面,从种子照片的OpenFaceRep中减去其OpenFaceRep。我们称之为
    diff
  • 获取该
    diff
    自身的点积。如果您使用的是Python,它看起来像
    np.dot(diff,diff)
    ,我们称之为
    相似性

  • 相似性最低的脸将是最佳匹配。请注意,根据照片、灯光等的质量,您的准确度会有很大差异。OpenFace在LFW基准上取得了显著的进步。

    谢谢您的回复!是的,我也认为这是最准确的方法,但是如果我们想用查询面检查数据库中的每个面,这将需要很长时间:我们需要n次减去128个值,其中n次是db表中的行数。我认为这是一种更快捷的方法。或者我误解了你?看来你对我的理解是正确的。我所描述的将非常快(因为它只是减法和乘法),并且可以并行实现。事实上,我一直在想如何扩展它——据我所知,关于这个主题的开源研究并不多。我的猜测是,Facebook能够通过将你照片中的面孔与你的朋友进行比较,在某种程度上“欺骗”。所以,他们最多只能做几千次比较。你也可以去看看,这可以简化你的工作。当然,我完全忘记了Facebook的黑客行为。好的,谢谢!我将尝试测试您描述的方法,并让您了解结果。但我也想澄清一下:我想我也可以使用KD树来实现这个目的,你怎么看?是的,我认为这与我想到的一种方法是一致的。将数据划分为k个簇(我认为是t-SNE),然后只将您的脸与将分配给它的簇中的脸进行比较。祝你好运很抱歉回复太晚。这几周我有很多考试。我想我需要在KD树中使用128维,但你建议将维度减少到3维,然后使用KD树处理这些数据,对吗?我还想知道:PostgreSQL能否以我需要的方式使用KD树?我读过,但我仍然不确定我是否应该把它用于我的目的。