【发布时间】: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