任何人都可以为CBIR建议好的算法吗?

时间:2012-11-22 07:17:03

标签: machine-learning artificial-intelligence computer-vision image-recognition cbir

项目:基于内容的图像检索 - 半监督(在训练时对图像进行手动标记)

描述

我在数据库中有1000000个图像。培训是手动(监督) - 为每个图像提供标题和标签。 例: coke.jpg 标题:可乐 标签:可乐,可以

使用图像和标签,我必须训练系统。在训练之后,当我给出新图像(已经在数据库中/全新)时,系统应输出图像可能属于的可能标签并显示属于每个标签的少量图像。系统也可能说未找到匹配项。

问题:

1)图像指纹是什么意思?预期的图像指纹大小是多少? (这很重要,因为数据库中将插入数百万张图片)

2)数据库中该指纹的字段格式是什么? (这很重要,因为需要快速搜索......脚本应该在不到1秒的时间内在1M图像数据库中搜索)

3)我们用来分析它们的描述符(算法)是什么?

提前致谢

3 个答案:

答案 0 :(得分:3)

嗯,这个主题非常大,但这里是一个可能的解决方案的简要概述

  1. 图像指纹是SIFT描述符的集合 这些都被量化以减小尺寸,并允许索引

  2. 构建数据库的倒排索引,以允许通过量化描述符查找图像(您可以使用任何全文搜索引擎\ DB)

  3. 给定图像,查找共享大量常用描述符的图像

  4. 对于那些潜在的候选人,您应该验证描述符的空间排列是否足够相似

  5. 有些文章可以帮助您入门:

      

    Philbin, James, et al. "Object retrieval with large vocabularies and fast spatial matching." Computer Vision and Pattern Recognition, 2007. CVPR'07. IEEE Conference on. IEEE, 2007.

         

    Philbin, James, et al. "Lost in quantization: Improving particular object retrieval in large scale image databases." Computer Vision and Pattern Recognition, 2008. CVPR 2008. IEEE Conference on. IEEE, 2008.

         

    Mikulík, Andrej, et al. "Learning a fine vocabulary." Computer Vision–ECCV 2010 (2010): 1-14.

答案 1 :(得分:2)

我建议在训练图像中提取的图像特征列表上训练SVM模型

答案 2 :(得分:1)

  1. 图像指纹:图像的有意义表示。当然,你不能使用单个像素。最合理的方法是尽量减少基础之间的相关性。简单来说,如果您拍摄64x64图像,左上角的两个像素可能相同或相似。将每个64 ^ 2像素用作输入是没用的,你需要更好的东西。试着看看主成分分析的作用。
  2. 这完全取决于你。对它进行限制,您可以使用一点,告诉您图像是否暗。更好的是,你在图像上进行PCA并尝试不同数量的功能(并不总是更多功能更好)
  3. 无论您想要什么,都可以使用很多算法。我推荐支持向量机。易于使用和良好支持。如果您有许多不同的标签,则可能需要为每个标签托管一个SVM。这可能不太理想,你可能想尝试别的东西。