【问题标题】:Find most similar images by using neural networks使用神经网络查找最相似的图像
【发布时间】:2018-02-13 15:20:59
【问题描述】:

我正在使用 Python、scikit-learn 和 keras。我有 300 万张正面手表的图像,如下所示: Watch_1, Watch_2, Watch_3.

我喜欢编写程序,它接收一张真实手表的照片作为输入,这张照片可能是在比上面的照片不太理想的条件下拍摄的(不同的背景颜色、较暗的闪电等),并在 3000 块手表中找到最相似的手表它。所谓相似性,我的意思是,如果我将一张带有细蕾丝的圆形棕色手表的照片作为输入,那么我期望输出的是圆形、深色和带有细蕾丝的手表。

最有效的机器学习算法是什么?

例如,通过关注this link,我想到了两种不同的解决方案:

1) 使用 CNN 作为特征提取器,并参考输入图像比较每对图像的这些特征之间的距离。

2) 在连体神经网络中使用两个 CNN 来比较图像。

这两个选项是完成这项任务的最佳选择还是您会提出其他建议?

您是否知道任何用于此任务的预训练神经网络(具有预先确定的超参数)?

我在 StackOverflow 上发现了一些有趣的帖子,但它们已经很老了:Post_1Post_2Post_3

【问题讨论】:

    标签: python keras similarity


    【解决方案1】:

    要准确定义与照片相似的含义是很困难的。由于它们都是手表,因此您必须确定哪些特征与您最相似(形状、颜色、数字/空白面等)

    这是一种将 tensorflow 库与最近邻库混合使用的方法,示例代码:http://douglasduhaime.com/posts/identifying-similar-images-with-tensorflow.html

    它至少可以让你开始。

    【讨论】:

    • 这是 Keras 中的另一种方法:blog.ethanrosenthal.com/2016/12/05/recasketch-keras
    • 感谢您的回复。是的,相似性比看起来更不确定。从这个意义上说,我在想,根据花边的形状、颜色、厚度来标记我的图像是否有效,并在此基础上应用连体神经网络。我还没有决定,但我正在寻找最准确的方法来做到这一点,但不会花费太多时间来标记图像等......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    相关资源
    最近更新 更多