【问题标题】:How to store Hierarchical K-Means tree for a large number of images, using Opencv?如何使用 Opencv 存储大量图像的分层 K-Means 树?
【发布时间】:2011-07-28 03:29:02
【问题描述】:

我正在尝试制作一个程序,可以从图像数据集中找到相似的图像。步骤是

  • 提取所有图像的 SURF 描述符
  • 存储描述符
  • 对存储的描述符应用 knn
  • 使用 kNN 将存储的描述符与查询图像描述符匹配

现在每个图像 SURF 描述符将存储为分层 k-means 树,现在我是否将每个树存储为单独的文件,或者是否可以使用所有图像描述符构建某种单树并在添加图像时更新到数据集。

This is the paper I am basing the program on.

【问题讨论】:

    标签: algorithm image-processing computer-vision feature-detection


    【解决方案1】:

    您确定要使用 SURF 描述符吗?我自己正在开发一个类似的应用程序,它基于this 论文(Nister,Stewenius),他们发誓 SIFT 描述符是要走的路。但是,我想您也可以使用任何其他描述符来做到这一点。

    查看您引用的论文,我链接到的工作较新,但它没有引用 Nister paper 或 this work(Sivic,Zisserman),据我所知,它们是基础作品适用于所有基于内容的图像检索问题。

    为了更好地理解问题,在开始实施之前,我首先阅读了Sivic, Zisserman 以了解系统背后的总体思路。他们只在从所有特征中提取所有 SIFT 描述符后应用简单的聚类。他们使用两种不同类型的特征来提高准确性,形状适应(以角状特征为中心)和最大稳定(对应于高对比度的斑点 - 你可以在this 论文中查找它们(Matas 等人))。由于每个功能都直接存储,他们系统的可扩展性并不是那么好,但他们引入了反转文件的概念,这是一种来自文本分析的技术(您可以阅读它的基础知识here),它简化了查找过程显着。

    在完成这项工作之后,我建议继续 Nister, Stewenius,他们在 L 级中引入了分层 k-means 聚类的概念,用于存储特征,以及用于图像数据库的后期搜索。现在,除非我非常非常错误,否则您不会将 each 描述符存储为单独的树。相反,您根据现有特征制作树(每个级别中的集群中心实际上是每个集群的代表“中心”特征)。一旦树被构建到所需的深度(他们建议 10 个集群超过 6 层),最后一层的集群中心代表了极少数的特征 - 因此,您实际上可以忘记所有原始特征! (或至少,它们的描述符)。每个原始特征都可以由相应的聚类中心表示,而不是描述符,对于每个图像,您只需要存储有关它包含哪些聚类中心的信息 - 特征 - 即可。这要容易得多,因为您只需要为每个特征存储 一个或两个整数 - 编码它通过树的路径。最简单的查看方法是,如果您只对每个级别的特征所属的集群的编号进行编码 - 其中有 10 个(4 位) - 对于每个级别(其中 6 个,4*6

    此外,如果您用于构建词汇树的图像具有代表性(例如,您正在处理开放空间图片的数据集,并且您仅从图像的代表性部分构建树,但您知道没有其余数据集中的工厂工作场所图片),您可以非常快速地添加新图片。要在数据集中添加任何新图片,您唯一需要做的就是确定哪个计算出的聚类中心最能代表图像特征(如前所述,最后一级的聚类中心非常精确)并存储有关聚类中心(前面提到的整数)。查找聚类中心应该非常快 - 6 个级别中的每个级别只有 10 个比较。

    希望有一天这对某人真的有用,因为这个问题才一年多。 :)

    【讨论】:

      【解决方案2】:

      请改用KD-Tree。您将能够构建分层的 K 维树,您只需要弄清楚将哪种信息发送到树下以进行存储。您可以将图像的向量/描述符保存到磁盘上,每次启动程序时加载 KD-Tree。新的计算机向量/描述符既可以发送到树也可以发送到磁盘

      总结

      • 创建描述符
      • 将新描述符提供给 KD-Tree
      • 将相同的描述符保存到磁盘\
      • 每次重新启动时,将所有描述符加载到树中
      • 查询树以获得最佳匹配

      希望对你有帮助

      【讨论】:

      • 当我这样做时,我确实最终使用了 kd-trees,但还是谢谢。
      • 不过,当你这样做时,你本可以回答自己的问题,而不是让它坐在那里无人回答......
      猜你喜欢
      • 2017-01-29
      • 2012-03-23
      • 2011-07-24
      • 2013-06-23
      • 2017-05-29
      • 2014-06-15
      • 2017-05-23
      • 2010-12-11
      • 2014-04-13
      相关资源
      最近更新 更多