【发布时间】:2012-04-28 14:44:59
【问题描述】:
我有一个图片库,里面有大约 5000 张图片和大约 150 个特征。现在我有了另一张具有大约 300 个特征的图像,我想在我的库中找到 5 个最相似的图像。
蛮力大约需要 300 * 5000 * 150 * 128 次操作,花费太多时间。所以我为我库中每个图像的特征构建了一个 kd-tree,这意味着大约 5000 个 kd-tree。我使用bbf search 来表示近似最近的邻居,就像其他筛选库所做的那样。但是性能变得比我的蛮力算法还要慢。为了确保这不是我的实现的错,我将其他库的匹配算法修改为蛮力,它们的性能也有所提高。
我的问题是,有没有可能将 ~5000 kd-trees 组合成一棵树?或者有没有其他方法可以在匹配多个图像时提高性能?
【问题讨论】:
-
我不确定你为每个图像的特征制作一个 kd 树是什么意思。每张图像的特征不是形成一个 150 维的向量吗?您应该在 kdtree 中插入向量来进行搜索。但是在 kdtree 中进行 150 维搜索可能并不比蛮力搜索好多少。