使用神经网络查找最相似的图像

时间:2018-02-13 15:21:00

标签: python keras similarity

我正在使用Python,scikit-learn和keras。我有3000张前脸手表的图像,如下图所示: Watch_1Watch_2Watch_3

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

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

例如,通过关注this link,我脑子里有两种不同的解决方案:

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

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

这两个选项是否适用于此任务?或者您是否会提出其他建议?

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

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

1 个答案:

答案 0 :(得分:2)

通过与照片类似的方式来定义你的意思是很困难的。由于它们都是手表,因此您必须决定哪些功能与您最相似(形状,颜色,数字/空白面等)。

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

它至少可以让你开始。