【问题标题】:Finding similar Images寻找相似的图像
【发布时间】:2015-06-09 23:58:02
【问题描述】:

我想找到与另一张图片相似的图片。所以在研究之后我发现了两种方法首先是两种方法通过它的属性来表示图像,比如

length = full pattern = check color = blue

但这种方法的局限性在于我无法获得一个包含所有特征的详尽数据集。

我发现的第二种方法是提取特征并进行特征映射。 所以我决定将深度卷积神经网络与 caffe 结合使用,以便通过使用任何现有模型,我可以学习特征,然后执行特征匹配或其他一些操作。我只是想接受一个一般性的建议,还有哪些好的方法值得一试。而且由于我刚刚开始使用 caffe,所以任何人都可以提供一般指导方针如何解决 caffe 的问题? 提前致谢

我看着 phash 只是很好奇它会发现相同的图像,就像有轻微的强度变化和其他一些变化一样,它也可以提供相同的类型(语义上),比如蓝色和红色条纹的 T 恤它会给出相似的黑白条纹吗?它会考虑衬衫的长度、领子的款式等吗

【问题讨论】:

    标签: image-processing similarity caffe


    【解决方案1】:

    确实,经验表明,使用 ConvNets 提取的特征之间的欧几里得距离对于同一类的图像更近,而对于不同类的图像更远 - 但重要的是要了解你的相似性是什么正在寻找。

    可以定义许多类型的相似性度量,并且您使用的特征类型(在 ConvNet 的情况下,它所训练的数据类型)会影响您将获得的相似图像的类型。例如,可能给定一张狗的图像,您想找到其他狗的照片,但不具体是那只狗,或者,您可能有一张教堂的照片,并且您想找到另一张完全相同的教堂的图像,但来自不同的角度 - 这是两个非常不同的问题,您可以使用不同的方法来解决它们。

    您可以查看的一种特殊类型的卷积神经网络是连体网络,它旨在学习两个图像之间的相似性,给定具有标签相同/不同的图像对的数据集。您可以在 Caffe 中寻找此方法 here 的实现。

    另一种方法是,采用在 ImageNet 数据 (see here for options) 上训练的 ConvNet,并使用 python/matlab 接口对图像进行分类,然后提取倒数第​​二层,并将其用作该层的表示图片。现在您可以只取这些表示的欧几里德距离,这将是您的相似性度量。

    与 Caffe 无关,您还可以使用“老派”的特征匹配方法,包括在 OpenCV 等开源库 (an example tutorial of such method) 中。

    【讨论】:

      猜你喜欢
      • 2010-09-09
      • 2014-11-30
      • 2012-12-12
      • 2021-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-23
      • 2019-07-27
      相关资源
      最近更新 更多