gpt4 book ai didi

algorithm - 视觉相似度搜索算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:33:25 26 4
gpt4 key购买 nike

我正在尝试构建这样的实用程序 http://labs.ideeinc.com/multicolr ,但我不知道他们使用的是哪种算法,有人知道吗?

最佳答案

他们所做的只是匹配直方图。

因此,为您的图像构建直方图。按图像大小归一化直方图。 直方图 是一个包含与颜色一样多的元素的向量。您不需要 32,24,甚至可能不需要 16 位的精度,这只会减慢您的速度。出于性能原因,我会将直方图映射到 4、8 和 10-12 位。

  • 在所有 4 位直方图和样本颜色之间进行模糊最小距离比较
  • 然后取该集合并进行 8 位直方图比较。
  • 然后可能会上升到 10 或 12 位直方图与剩余组进行比较。这将是性能最高的搜索,因为您将整个集合与非常少量的计算进行比较,以找到一个小的子集。
  • 然后您处理具有更多计算量的小子集,等等。

真正的大技巧是找到匹配相似直方图的最佳算法。

  • 从距离计算开始。在 3 个维度上,我认为它是:

    SQRT((x1-x2)^2 + (y1-y2)^2 + (z1-z2)^2)

我是凭内存做的,所以查一下以确保。

  • 出于您的目的,您将拥有 3 个以上的维度,因此您将拥有更多项。一个 4 位直方图将有 16 个项,一个 8 位直方图将有 256 个项,等等。请记住,这种数学运算速度很慢,因此实际上不要执行 SQRT 部分。如果您将图像的尺寸规范化得足够小,比如说低至 10,000 像素,那么您知道您只需要为值 0..10,0000 执行 x^2。预先计算 x^2 的查找表,其中 x 从 0..10,000 开始。然后你的计算会很快。

  • 当您从调色板中选择一种颜色时,只需制作一个该颜色 = 10,0000 的直方图。选择2时,制作color1=5000、color2=5000等的直方图。

  • 最后,您将不得不添加软糖因素以使应用程序与现实世界相匹配,但您会通过测试找到这些因素。

关于algorithm - 视觉相似度搜索算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/987830/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com