我正在使用Python,scikit-learn和keras。我有3000张前脸手表的图像,如下图所示: Watch_1,Watch_2,Watch_3。
我喜欢编写一个程序,它接收一张真实手表的照片,这张照片可能在不太理想的条件下拍摄,而不是上面的照片(不同的背景颜色,更暗的闪电等),并在3000个之中找到最相似的手表它。相似之处,我的意思是,如果我将一条带有薄蕾丝的圆形棕色手表的照片作为输入,那么我期待作为输出手表的圆形,深色和薄蕾丝。
最有效的机器学习算法是什么?
例如,通过关注this link,我脑子里有两种不同的解决方案:
1)使用CNN作为特征提取器,并参照输入图像比较每对图像的这些特征之间的距离。
2)在Siamese神经网络中使用两个CNN来比较图像。
这两个选项是否适用于此任务?或者您是否会提出其他建议?
您是否知道此任务的任何预先训练的神经网络(具有预先确定的超参数)?
答案 0 :(得分:2)
通过与照片类似的方式来定义你的意思是很困难的。由于它们都是手表,因此您必须决定哪些功能与您最相似(形状,颜色,数字/空白面等)。
这是一种使用tensorflow库与最近邻居库混合的方法,示例代码为:http://douglasduhaime.com/posts/identifying-similar-images-with-tensorflow.html
它至少可以让你开始。