3

我正在做计算机视觉领域的研究,并且正在研究与查找图像的视觉相似图像相关的问题。例如,找到具有类似图案的相似颜色的T恤(条纹/方格)或类似颜色和形状的鞋子等等。图像相似度 - 深度学习与手工制作功能

我已经探索了手工制作的图像特征,如颜色直方图,纹理特征,形状特征(面向梯度直方图),SIFT等。我还阅读了关于深度神经网络(卷积神经网络)的文献,这些网络已经接受了海量数据的培训,目前是图像分类领域的最新技术。

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

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

+0

我不太明白这是你的意思,但是CNN是作为分类器进行端对端培训的,他们学到的功能基本上是这个的副产品。您通常不会将CNN仅用作特征提取器(尽管可能)。但也许我误解了你。 – cfh

+0

是的,CNN被用作分类器。有一些预先训练过的模型可用,例如Overfeat,Caffe,它们已经在imagenet数据集上进行了训练,1000个类别中有超过一百万个图像。我已经读过,从这些网络的最后一层提取的特征可以用来训练自定义分类器(针对您自己的数据集),并且在分类http:// arxiv时,这些特征已经被证明优于手工特征。组织/ ABS/1403.6382。这些特征是否可以用于相似性计算(按照每个问题),还是这些模型必须进行不同的训练? – user3705926

+0

是的,这当然值得一试。如果你有非常特殊的需求,比如你将橙色/红色衬衫与蓝色衬衫区别开来的例子等等,那么CNN根本就不需要学习这些非常具体的功能,在这种情况下,你需要更好地训练功能为您的用例。但是如果不尝试,这很难说。 – cfh

回答

1

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

许多研究人员使用经过预训练的图像分类网络,并获得了细粒度分类的最新结果。例如,试图分类birds species或汽车。

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

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

或者,通过CNN直接学习相似性度量有一些工作,例如参见here

0

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