【问题标题】:How to do face recognition using euclidean distance in python如何在python中使用欧几里得距离进行人脸识别
【发布时间】:2020-07-28 13:56:44
【问题描述】:

我有一个项目需要在其中包含face recognition。我指的是这个article。本文使用open-face 获取面部embeddings 并将所有嵌入保存在pickle 文件中。然后将人脸嵌入数据传递给support vector machine,从而生成另一个pickle文件。该文件稍后用于识别和预测人脸。

这一直有效,并且给了我超过 80% 的准确率。但是这篇文章并没有解释如何计算euclidean distance。这是我自己的研究工作所需要的。

我可以轻松地在测试图像的人脸嵌入和 pickle 文件中存在的人脸嵌入之间计算 euclidean distance,但我无法理解如何设置阈值,以便将任何超过该值的距离标记为 @987654328 @。

谁能给我指出一些解释过的文章,我可以从那里跟进。我试过搜索很多文章,但没有得到太多的结果。请帮忙。谢谢

【问题讨论】:

    标签: python-3.x opencv face-recognition euclidean-distance


    【解决方案1】:

    您可以构建 2 个(正态)分布。

    1. 同一个人的脸之间的距离
    2. 不同面之间的距离

    这些分布的交集将是阈值。

    小图:

    【讨论】:

    • 图表中的蓝色代表personA,图表中的红色代表personB。对吗?
    • 不,左边代表A=B,右边代表A!=B。因此,如果您需要比较 2 个人,则需要将欧几里得距离与阈值进行比较。
    • 所以你的意思是,这基本上是我们人脸识别的结果,可以是5张图片不匹配,10张图片匹配,蓝色代表那5张图片的距离,红色代表10张图片的距离。这次我说对了吗?
    • 是的,左边是已知相同人物图像的距离分布,右边是不同距离的分布。这些分布是通过计算一组已知对与训练数据集的距离来生成的。
    • 或者更好的验证数据集,而不是训练。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 2010-12-15
    • 2011-07-04
    相关资源
    最近更新 更多