【问题标题】:Image Similarity - Deep Learning vs hand-crafted features图像相似性 - 深度学习与手工制作的特征
【发布时间】:2015-08-04 21:41:27
【问题描述】:

我正在计算机视觉领域进行研究,并且正在研究与查找与查询图像视觉相似的图像相关的问题。例如,寻找具有相似图案(条纹/格子)的相似颜色的T恤,或相似颜色和形状的鞋子,等等。

我探索了手工制作的图像特征,例如颜色直方图、纹理特征、形状特征(定向梯度直方图)、SIFT 等。我还阅读了有关深度神经网络(卷积神经网络)的文献,这些文献已经过大量数据的训练,目前在图像分类方面处于最先进的水平。

我想知道相同的特征(从 CNN 提取的)是否也可以用于我的项目 - 寻找图像之间的细粒度相似性。据我了解,CNN 已经学习了可以帮助对图像进行分类的良好代表性特征——例如,无论是红色衬衫、蓝色衬衫还是橙色衬衫,它都能识别出图像是衬衫。然而,它不明白橙色衬衫看起来比蓝色衬衫更类似于红色衬衫,因此它无法捕捉到这些相似之处。

如果我错了,请纠正我。我想知道是否有任何深度神经网络能够捕捉到这些相似之处,并已被证明优于手工制作的特征。提前致谢。

【问题讨论】:

  • 我不太明白这是否是您的意思,但是 CNN 是作为分类器进行端到端训练的,它们学习的特征基本上是由此产生的副产品。您通常不会将 CNN 简单地用作特征提取器(尽管有可能)。但也许我误解了你。
  • 是的,CNN 被用作分类器。有一些可用的预训练模型,例如 Overfeat、Caffe,它们已经在 imagenet 数据集上进行了训练,其中包含 1000 个类别的超过 100 万张图像。我读过从这些网络的最后一层提取的特征可用于训练自定义分类器(用于您自己的数据集),并且在分类arxiv.org/abs/1403.6382 方面已被证明优于手工制作的特征。这些特征可以用于相似度计算(根据问题),还是必须对这些模型进行不同的训练?
  • 是的,这当然值得一试。如果您有非常具体的需求,例如区分橙色/红色衬衫和蓝色衬衫的示例等,那么 CNN 可能根本不需要学习这些非常具体的特征,在这种情况下,您需要进行更好的训练您的用例的功能。但是,如果不尝试,这很难说。
  • 有很多搜索引擎提供用户上传图片和查找相似图片(例如,在时尚领域)。我知道他们可能会使用深度学习来识别图像的内容,但要实际建议视觉上相似的图像,他们是否有不同的训练模型,或者是图像特征比较?
  • 也许他们使用来自fully connected layer的特征,并使用这些特征来计算特征距离。

标签: image-processing computer-vision neural-network feature-extraction deep-learning


【解决方案1】:

对于您的任务,CNN 绝对值得一试!

许多研究人员使用了针对图像分类进行预训练的网络,并在细粒度分类方面获得了最先进的结果。例如,尝试对birds species 或汽车进行分类。

现在,您的任务不是分类,而是相关的。您可以将相似性视为特征之间的某种几何距离,它们基本上是向量。因此,您可以进行一些实验,计算所有训练图像(参考)的特征向量与从查询图像中提取的特征向量之间的距离。

从网络的第一层提取的 CNN 特征应该与颜色或其他图形特征更相关,而不是更多“语义”特征。

另外,还有一些工作是通过 CNN 直接学习相似度度量,例如参见 here

【讨论】:

    【解决方案2】:

    有点过时了,但对其他人仍然有用。是的,CNN 可以用于图像相似性,我之前也使用过。正如 Flavio 指出的那样,作为一个简单的开始,您可以使用您选择的预训练 CNN,例如 Alexnet、GoogleNet 等。然后将其用作特征提取器。您可以根据距离比较特征,相似的图片的特征向量之间的距离会更小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      • 2017-12-25
      • 2016-09-11
      • 2017-08-30
      相关资源
      最近更新 更多