有没有非常好的API来匹配相似的图像?

数据挖掘 机器学习 Python 相似 软件推荐
2022-01-24 23:31:58

我正在使用 Python。我有 300 万张正面手表的图像,例如:Watch1Watch2Watch3

我想找到一个 API,它可以接收这些照片集合,甚至是在不太理想的条件下(不同的背景颜色、较暗的闪电等)拍摄的其他照片,并且可以找到/匹配最相似的手表。

所谓相似,我的意思是我希望圆形、带有细花边的棕色手表只会与圆形、深色和细花边的手表相匹配(来自同一照片集)。

我知道来自Google, Amazon, Microsoft, TinEye,等的此类 API ClarifaiIndico但我不确定它们在如此专业的应用程序中是否会表现得如此出色。例如,这些 API 可用于将汽车图像与汽车图像进行匹配,而不是与食物图像进行匹配,但基于非常高水平的细节(形状、颜色、厚度等)在同类对象(例如手表)之间进行匹配要显着更多要求很高。

例如,这是一个针对特定类型对象的应用程序,例如 Indico 的衣服:https ://indico.io/blog/clothing-similarity-how-a-program-is-more-fashionable-than-me/ 。但是,如果您注意到它,结果并不是那么好,而且基本上即使简单地将 PCA 和 KNN 应用于这些图像,它们也可以在很大程度上被检索到。

因此,我的问题是:是否有任何 API 可以根据高度的细节匹配相似的图像?

1个回答

从来没有用过这个,但http://matelabs.in有一些接近的东西......珠宝上的预训练模型。您可能可以扩展这些模型。新的谷歌数据集也可能有你需要的东西的标记版本。我找不到我最初看到的链接,但它有 20K 类的边界框,直到“茶杯”、“茶杯把手”、“茶”,所以我也不会在测试之前把谷歌写下来。

由于这是 DataScience SE,我也会给出更多 DS 的答案。您正在寻找的东西听起来像一个多类别分类器。您可能可以在这里找到好的资源和预训练模型,最后,sklearn有用于通用分类器的 api 。

总体思路是通过 Convnet 运行您的图像,减去分类部分。然后,您将拥有 1K-8K 的“特征”,其中包含第二组算法分类器、[决策森林](https://pdfs.semanticscholar.org/.../99dff11dcb3a48dee07a19052b07fdd2e7fe.pdf )、逻辑组合模型嵌入等。 . 给出每个二元属性的分数。