我正在计算机视觉领域进行研究,并且正在研究与查找图像的视觉上相似的图像相关的问题。例如,找到具有相似图案的相似颜色的T恤(条纹/方格),或类似颜色和形状的鞋子,等等。
我探索了手工制作的图像特征,如颜色直方图,纹理特征,形状特征(方向梯度直方图),SIFT等。我还阅读了有关深度神经网络(卷积神经网络)的文献,这些文献已经过大量数据的培训,目前是图像分类领域的最新技术。
我想知道相同的功能(从CNN中提取)是否也可以用于我的项目 - 在图像之间找到细粒度的相似性。根据我的理解,CNN已经学会了很好的代表性功能,可以帮助分类图像 - 例如,无论是红色衬衫或蓝色衬衫或橙色衬衫,它能够识别图像是衬衫。然而,它不明白橙色衬衫看起来更像红色衬衫而不是蓝色衬衫,因此它无法捕捉到这些相似之处。
如果我错了,请纠正我。我想知道是否有任何深度神经网络可以捕捉这些相似之处,并且已被证明优于手工制作的功能。提前谢谢。
答案 0 :(得分:1)
对于你的任务,CNN绝对值得一试!
许多研究人员使用预先训练用于图像分类的网络,并获得细粒度分类的最新结果。例如,尝试对birds species或汽车进行分类。
现在,您的任务不是分类,而是相关的。您可以将相似性视为要素之间的几何距离,这些几何距离基本上是向量。因此,您可以进行一些实验来计算所有训练图像(参考)的特征向量与从查询图像中提取的特征向量之间的距离。
从网络的第一层提取的CNN功能应该与颜色或其他图形特征更相关,而不是更“语义”的特征。
或者,通过CNN直接学习相似性度量有一些工作,例如见here。
答案 1 :(得分:0)
有点过时,但对其他人来说仍然有用。是的,CNN可用于图像相似性,我之前使用过。正如Flavio指出的那样,一个简单的开始,你可以使用你选择的预先训练的CNN,如Alexnet,GoogleNet等。然后将它用作特征提取器。您可以根据距离比较要素,类似图片的特征向量之间的距离会更小。