我正在使用 Python、scikit-learn 和 keras。我有 300 万张正面手表的图像,例如: Watch_1、Watch_2、Watch_3。
我想编写一个程序,它接收一张真实手表的照片作为输入,这张照片可能是在比上面的照片不太理想的条件下拍摄的(不同的背景颜色、较暗的闪电等),并在 3000 块手表中找到最相似的手表。所谓相似性,我的意思是,如果我输入一张带有细花边的圆形棕色手表的照片,那么我期望输出的是圆形、深色和细花边的手表。
最有效的机器学习算法是什么?
例如,通过点击此链接,我想到了两种不同的解决方案:
1) 使用 CNN 作为特征提取器,并参考输入图像比较每对图像的这些特征之间的距离。
2) 在连体神经网络中使用两个 CNN 来比较图像。
这两个选项是完成这项任务的最佳选择,还是您会提出其他建议?
您是否知道任何用于此任务的预训练神经网络(具有预先确定的超参数)?