问题标签 [cbir]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
228 浏览

c++ - 二进制描述符:使用 LSH 在 OpenCV 中找到最相似的图像

flannIndex在 openCV 中旨在通过二进制描述符匹配 2 个图像。

无论如何,LSH 在 CBIR 中被大量使用,不是为了“比较两个图像”而是“在数据集中找到最相似的图像”,这显然是不同的。

我们如何在 OpenCV 中实现这样的事情?

0 投票
0 回答
783 浏览

image-processing - 平均精度 (MAP)

我正在使用平均精度 (MAP) 来评估基于内容的图像检索系统的性能。如图所示,是查询精度的平均值。 在此处输入图像描述

在我的数据库中,我有 200 个包含 4 个类别的图像,每个类别 50 个图像,我想用 4 个查询(每个类别,一个查询)进行检索,我可以只计算检索到的前 10 个图像的 MAP 吗?还是我必须为 50 张相关图像计算它?

0 投票
1 回答
340 浏览

image-processing - 基于内容的图像检索功能

我正在尝试在我的应用程序中实现基于内容的图像检索。我发现了一个看起来不错的 LIRE 库。

我需要分析我的图像集合中的相似(从人类的角度)图像。在我的目录中,我有大量完全不同的未分类/非结构化图像

为了分析图像 LIRE 包含以下算法列表:

根据您的经验,您能否推荐一个最适合(从人类角度)此类图像套件(未分类图像的混合)的图像,以便找到相似的图像?

0 投票
1 回答
349 浏览

opencv - SIFT尺度参数,解释

在我的 opencv 项目中,我尝试计算筛选特征,检测关键点并计算描述符。我知道它应该包含 4 个参数:X、Y、比例和方向。opencv关键点结构有pt(X,Y坐标)和角度(方向),但我不明白Scale参数在哪里!你能解释一下这个参数吗?

0 投票
0 回答
90 浏览

neural-network - 用于图像检索的近似最近邻中的神经网络描述符

Disclamer:我对神经网络或深度学习一无所知。

VLAD 和 Fisher Vectors with Product Quantization 是Approximate Nearest Neighbor如何用于良好图像检索的一个很好的例子。然而,已经证明神经网络方法比 Bag of Words 或 VLAD 更精确。

我的问题是:

  1. 创建 NN 描述符比经典方法(例如 VLAD 或 Fisher Vectors)更快?
  2. 我们可以使用带有 NN 代码的经典 ANN 方法来查找相似图像吗?如果不是,如何索引 NN 代码?
  3. 我们可以使用度量距离来测量 NN 代码之间的相似性吗?
0 投票
1 回答
101 浏览

image - LireSolr 在查询时会给出不相关的结果,并且每次使用的相同数据集的结果都会发生变化

我使用了 LireSolr 并索引了大约 1000 张图像。现在我尝试从谷歌获取类似的图像,也就是说,如果索引数据中有一个黑色包,我会得到一个黑色包,我尝试使用上述流程和 JCD、ColorLayout、PHOG 和边缘直方图获取直方图,但是结果无关紧要,结果每次都在变化。在搜索与索引相同的图像时,返回的结果图像也不同。以前有人遇到过同样的问题吗?我在这里先向您的帮助表示感谢..!!!

0 投票
1 回答
261 浏览

c++ - 匹配描述符后opencv程序崩溃

我正在使用 SIFT 描述符和 FLANN 匹配器来获得两张图片之间匹配的最小距离。第一张图片是查询图片,第二张图片来自数据集。我想使用循环一个一个地加载第二张图片,但是在第一次迭代之后,程序在显示第一次迭代的结果后在运行时崩溃并且无法进入第二次迭代。我正在使用 opencv 2.4.13 和 vs2017。下面是我的代码:

我已经尝试了很多,这是我的问题和观察:

  1. 这不是因为我使用迭代。如果我只运行matcher.match(descriptors1, descriptors2, matches);,它也会在执行后崩溃。
  2. 它也不适用于 SURF 描述符或 BruteForceMatcher,两者都与上面的代码有相同的问题。我使用 SURF 使用了 opencv 教程中的不同代码段,但在显示结果后它仍然崩溃。opencv 教程中的示例代码请参见此处
  3. 我也尝试initModule_nonfree();过一些答案,但仍然没有帮助。
  4. 显示“完成!”后程序崩溃 并且不进入下一次迭代。
  5. 如果我删除matcher.match(descriptors1, descriptors2, matches);下面的和相关代码,它可以正常工作。所以问题一定出在“匹配”功能上。

提前非常感谢!

- - - - - - - - - - - - - - -更新 - - - - - - - - - - ---------

我的包含和链接库如下所示:

C:\Program Files (x86)\opencv\build\include C:\Program Files (x86)\opencv\build\include\opencv C:\Program Files (x86)\opencv\build\include\opencv2

C:\Program Files (x86)\opencv\build\x64\vc12\staticlib C:\Program Files (x86)\opencv\build\x64\vc12\lib

opencv_objdetect2413.lib opencv_ts2413.lib opencv_video2413.lib opencv_nonfree2413.lib opencv_ocl2413.lib opencv_photo2413.lib opencv_stitching2413.lib opencv_superres2413.lib opencv_videostab2413.lib opencv_calib3d2413.lib opencv_contrib2413.lib opencv_core2413.lib opencv_features2d2413.lib opencv_flann2413.lib opencv_gpu2413.lib opencv_highgui2413.lib opencv_imgproc2413.库 opencv_legacy2413.lib opencv_ml2413.lib

我认为配置可能没有问题...我在x86下以release模式使用它,谢谢!

0 投票
0 回答
632 浏览

python - 如何为图像检索应用程序 (CBIR) 的庞大数据集存储大型特征向量?

我正在构建一个 CBIR 应用程序。我正在使用从深度卷积网络中提取的特征。特征向量非常大(大约 100,000 大小)。并且数据集有超过 10k 的图像。我已经完成了这个问题的答案,我不想使用同样提到的库。

我尝试使用 cPickle 和 hdf5 来存储特征向量。我在具有 4GB RAM 和 2Ghz Intel Core i3 处理器的 PC 上运行它。

以下代码构建索引:

每当我运行程序为我的图像数据集构建索引时,在创建大约 16MB 的索引文件后,我都会收到错误“ Python.exe 已停止工作”。我是 hdf5 的新手,答案可能微不足道,但任何帮助将不胜感激。

0 投票
1 回答
1265 浏览

python - 用于 CBIR 的视觉词袋(从特征中获得)。脚步?

我对使用 BOVW 进行 CBIR 的步骤感到非常困惑。我找到了很多关于分类、机器学习和 SVM 的文献,但这并不是我想要的。
我的问题与使用图像查询在数据库中搜索图像相似性有关。

到目前为止我的步骤:

  1. 提取特征(例如:ORB、BRISK、SIFT...)。
  2. 将所有图像的特征存储到磁盘。
  3. 读取特征并计算 K-means 以获得质心(我的词汇,对吗?)

现在我被困住了。我发现了许多不同的方法来进行。

这是我的假设:

  1. 对于每个 k-means 计算最近邻(FLANN?)
  2. 用一组最近邻构建直方图

我是否还必须为每个图像提取字典,然后对图像进行索引?
为什么需要矢量量化(步骤 4 和 5)?

你能建议我一种可能的方法,或者关于这个主题的任何文章、教程吗?

注意:对于 BOVW 的实现,我不能使用 OpenCV,因为它不适用于二进制描述符,所以我需要尝试使用sklearn库。

0 投票
1 回答
469 浏览

python - 如何使用 FLANN 进行标记和聚类?

我读了一篇论文,他们的检索系统基于 SIFT 描述符和快速近似 k-means 聚类。我安装了pyflann. 如果我没记错的话,下面的命令只会找到特定样本的接近数据点的索引(例如,这里是从datasetto的 5 个最近点的索引testset

但是,我浏览了用户手册,可以找到如何k-means使用FLANN. 以及如何根据集群中心拟合测试。因为我们可以在scikitlearnkmeans++中使用聚类,然后我们根据模型拟合数据集:

稍后我们可以使用KDTree例如为测试集分配标签。

有人可以帮助我如何使用相同的程序FLANN吗?(我的意思是对数据集进行聚类(找到聚类中心并量化特征),然后根据上一步找到的聚类中心量化测试集)。