【问题标题】:How does Image-Based search works?基于图像的搜索如何工作?
【发布时间】:2017-08-31 07:26:30
【问题描述】:

我一直在从事电子商务项目,现在我正在尝试实现基于图像的搜索。我已经在网上搜索了可能的解决方案。我知道 google 和 yahoo 已经停止了对图像搜索 API 的支持。我会想知道需要从图像中提取什么以及基于我需要在我的数据库中搜索的内容。任何建议都会有所帮助。谢谢

【问题讨论】:

    标签: php image google-image-search


    【解决方案1】:

    如果你想要一个蛮力方法,你可以计算每个图像的哈希值,将其存储在数据库中并计算要搜索的文件的哈希值,将其与数据库匹配,然后......现在你找到了图片完全匹配。

    这在某些情况下可能很有用,但在大多数情况下,您会希望找到“相似”的图像。您可以从图像中提取元数据,例如拍摄日期、文件名等。如果您想搜索自己的相册,很可能是在同一时间拍摄的图像,位于同一位置附近,因此包含相同的内容。

    Google 使用一种(据我所知)未知方法获取图像的一部分并使用该信息进行搜索。例如:如果您将图像拆分为 X x Y 网格并计算平均颜色值,则可以在数据库中搜索匹配项(显然,您必须对每张图像执行此操作并将结果存储在数据库中) .如果您允许搜索图像和数据库值之间存在一定的差异,您很可能会找到另一个相似的图像。在数据库中仅搜索图像的一部分,可以找到看起来相同但已移动的图片。

    Microsoft 已经创建了 photoDNA,这种方法可以找到图片中对象的“边缘”,并将其变成黑白图像。然后他们将其调整为较小的分辨率并计算出一个。使用此方法,您可以找到几乎相同但略有不同的照片。如果您想查找已编辑的图像和调整大小的图像,这是理想的选择。

    另一种方法是计算图像的色谱,对其进行归一化并在数据库中搜索(变化很小)。你会得到颜色接近相同的图像,但内容可能完全不同!

    如果您分配了同一对象的图像,也可以选择深度学习。通过训练计算机(例如使用 nVidea cuda),您可以使模型识别对象。如果您搜索的不是带有狗的照片,您的结果可能是其他带有狗的图像。

    总结:方法有很多种,各有优缺点,但有一个共同点:做起来不容易!

    【讨论】:

    • 感谢您的建议,我遇到了第三方“VISENZE”,想看看它是如何工作的。
    猜你喜欢
    • 2012-01-18
    • 1970-01-01
    • 2011-05-12
    • 2011-03-04
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    相关资源
    最近更新 更多