【问题标题】:How to compute similarity score between two images using their feature vectors?如何使用特征向量计算两幅图像之间的相似度得分?
【发布时间】:2017-11-19 16:35:26
【问题描述】:

我正在使用深度学习架构进行人脸识别项目,将图像分类为相应的类别。 softmax 层的网络输出是预测的类标签,而密集层最后一层的输出是输入图像的特征表示。这里的特征向量是每个图像大小为 1000 的一维矩阵。预测类是识别类型的问题,但我对验证问题感兴趣。

所以给定两个样本图像,我需要使用它们的特征表示来比较两个给定图像之间的相似度/不相似度得分。如果匹配分数大于阈值,则为命中,否则不命中。请让我知道是否有任何标准方法?

相似面孔的示例(理想情况下应该生成匹配分数>阈值):https://3c1703fe8d.site.internapcdn.net/newman/gfx/news/hires/2014/yvyughbujh.jpg

【问题讨论】:

  • “图像相似度”绝不是一个微不足道的定义,因此是一项非常分散的任务。与计算机视觉相比,人脑在这方面仍有许多优势。
  • 我正在研究 LFW 数据集,所以这里的相似性是指生物识别角度的匹配分数。训练分类器和分类是一个识别问题。但在这里我试图解决验证类型问题。
  • 你能添加一些相似和不相似图像的示例图像吗?存在什么样的“特征向量”,你在标题中提到过。
  • 在编辑中提到。

标签: opencv machine-learning computer-vision keras pattern-recognition


【解决方案1】:

您的项目有两种解决方案:

  • 使用 1000 个类的输出训练您自己的网络(使用预训练的网络)。这种方法并不是最简单的方法,因为每个类都需要有足够(比如大量)数据,每个类大约有 1000 个样本。
  • 另一种方法是使用距离度量学习。通过这个“距离”,我们通常指的是欧几里得范数。这种方法比仅仅提取特征并将它们匹配到最近的特征更广泛和更深入。尝试搜索它。 祝你好运!

【讨论】:

  • 感谢您的回答。您提到的第二种方法是有意义的,并且实施起来很有效。那么通过这种方式,我们能否清晰地区分同一类和不同类的图像呢?类间距离和类内距离是否清晰可辨?
  • 在大多数情况下,是的,它们是可以区分的。但无论如何,这完全取决于您要区分的对象类型。面对面孔,这是一个可以解决的任务。
猜你喜欢
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 2010-12-02
  • 1970-01-01
  • 2017-08-22
  • 2014-11-14
  • 1970-01-01
相关资源
最近更新 更多