问题标签 [flann]

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 投票
1 回答
915 浏览

c++ - cv::flann::knnSearch 返回的距离单位是多少?

我正在搜索SURF 描述符k的最近邻居。我通过在描述符矩阵上n创建对象来计算最近的邻居。cv::flann::index

在此之后,我必须将每个最近邻居的返回距离与中心特征点的大小进行比较。现在的问题是中心特征点的大小存储在其对应cv::KeyPoint的位置,单位cv::KeyPoint::size是像素,因为距离都是浮点数,小于零。

问题:如何将返回的距离cv::flann::knnSearch转换为像素或转换cv::KeyPoint::size为距离单位?

我很抱歉这个问题的措辞不佳,我的英语不是很好。

0 投票
0 回答
368 浏览

opencv - 如何创建自定义描述符以在 opencv 中与 FlannBasedMatcher 一起使用?

我一直在使用FlannBasedMatcherin opencv 并希望创建自定义描述符来描述,例如,保存在两个数组中的单独图像的平均颜色等,并使用 匹配它们FlannBasedMatcher,有没有办法做到这一点?

是否可以一次匹配多个描述符(即平均颜色、亮度、对比度)并同时匹配它们?我已经在这里看到了类似的问题。谢谢

0 投票
1 回答
6857 浏览

c++ - Opencv Flannbasedmatcher

我遇到了一个问题: cv::FlannBasedMatcher 更准确地说是使用 knnMatch 方法。我的程序将 IplImage* 作为输入并检测人脸,然后剪切人脸并将创建的人脸与存储在我的计算机上的图像进行比较。如果我得到超过 10 个好的匹配,它会在标准输出上写入 Matched。

加载的图像不是灰度的。那很重要吗?

我的问题是它的工作原理是随机的,时间从 1 分钟到 3 分钟不等。

错误消息总是出现在 knnMatch 方法上。它们在这里(请注意,每次只有一个):

我不明白为什么会抛出这个异常......

这是我的代码:

}

在此先感谢您的帮助

0 投票
1 回答
792 浏览

c++ - C++/OpenCV - 使用 flann::index 后如何获取图像?(与 BoF)

我使用带有 SURF 和 FlannBasedMatcher 的 BoW 在数据库中检索图像。我使用 SURF 提取了我的数据库(训练)的所有特征,然后我建立了词汇表,最后我得到了数据库中每张图片的 BOF 频率直方图(训练)。

需要明确的是,我没有列出所有这些过程的细节,但如果您需要一些细节,请告诉我。

所以在这一步我有:

  • cv::Mat allDescriptors --> 我所有数据库的描述符(训练)

  • cv::Mat Vocabulary --> 码本表示

  • cv::Mat responseDatabase --> 我的数据库中每张图片的频率直方图

然后我使用一个查询并根据之前计算的词汇表计算它的响应。最后我有这个数据:

  • cv::Mat responseQuery --> 我的查询的频率直方图

现在我有一些困难。我用了

它运作良好,我得到了这个结果:

  • cv::Mat 结果 --> [38, 117] -
  • cv::Mat dist --> [0.0010655867, 0.013091294]

但是现在有了这些结果,我怎样才能恢复对应于我的 2 个最近邻居的两张图片?事实上,我的每个数据中的图片都没有任何痕迹。

也许,我错过了一步,但哪一步?

感谢

0 投票
0 回答
3010 浏览

c++ - C++/OpenCV - 为什么带有 ORB 和 LSH 的 FLANN::index 效果很差?

我正在寻找数据库中的图片(1000 张图片)。为了做到这一点,我使用带有 ORB 的功能包。然后,我使用 LSH。

有一点我完全不明白。有了 KD-TREE,我在我最近的 3 个邻居中得到了一个很好的匹配,其他结果非常糟糕。我认为这是因为 KD-TREE 在高维数据中的表现非常糟糕。

索引:[47、194、1118] 距离:[0、0.01984383、0.021690277]

然后,当我使用带有汉明距离的 LSH 时,无论我的查询图像如何,我总是得到相同的坏结果。

索引 : [0, 1, 2] 距离 : [0, 0, 0]

responseQuery --> cv::Mat 包含查询的响应直方图 databaseQuery --> cv::Mat 包含我数据库中所有图片的响应直方图

我想念什么吗?也许对于 ORB,除了其他事情之外我还必须做一些事情?我确切地说,首先我将 SIFT 和 SURF 与 LSH 和 KD-TREE 一起使用,即使它并不完美,我也得到了很好的结果。

谁能解释我为什么?我真的不明白为什么。

但是我使用 BruteForce-Hamming 作为匹配器。

0 投票
0 回答
634 浏览

python - 使 FLANN 匹配器可编辑并保存到磁盘?

我在这里有我的 FLANN 匹配器:

我循环添加训练图像的描述符,然后训练它:

几个相关的方法:

两者都清除了火车描述符集合(对吗?)

但我真正想要的是:

  1. 将描述符存储到磁盘并简单地将它们加载到匹配器中,然后对其进行训练

    将匹配器数据保存到磁盘,这样我就不必每次运行程序时都训练图像。

  2. 使匹配器可编辑:如果我从磁盘上删除图像,匹配器不应该找到它。也许像matcher.clear(index_of_image_deleted)

0 投票
2 回答
3247 浏览

javascript - JavaScript 的最近邻库

我需要对 JavaScript 中的一堆序列执行 kNN 算法。我遇到了 FLANN 库来执行此操作,但它是一个 C++ 库,仅包含 MATLAB、Python 和 C 的绑定。是否有一个库可以更好地使用 JavaScript?如果没有,有没有办法可以将 FLANN 库用于我的脚本?

0 投票
1 回答
354 浏览

c++ - 复制构造函数后 flann::Index 的析构函数产生访问冲突

编辑(感谢 Barry 在评论中)我需要复制 FLANN 搜索索引以在向量中使用它们,但是当副本进入范围时它会产生访问冲突。崩溃的最小代码是:

如果有人能告诉我如何阻止这种情况,我将不胜感激

0 投票
1 回答
2809 浏览

visual-studio-2012 - 在 vs2012 中构建 pcl 时 C++ CMake FLANN 失败

尝试在 Windows 8.1 中的 VS2012 上构建 PCL,以便我可以尝试将我的 Kinect for Windows v2 传感器与其集成,但是我似乎遇到了一堆我不知道该怎么处理的 CMake 错误。这部分是因为我对 CMake 不是很熟悉,所以我正在关注这里的教程,其中概述了使用 CMake GUI 构建依赖项。但是,在整个过程中,我发现唯一正确构建的东西是我在命令行中使用 cmake 构建的东西。错误是:

对于弗兰:

当尝试在 VS2012 中构建 INSTALL 时(这甚至没有进入其他构建错误,但让我们从这里开始)我得到:

错误 21 错误 C2228: '.serialize' 左侧必须有类/结构/联合 D:\flann-1.8.4-src\flann-1.8.4-src\src\cpp\flann\util\serialization.h 第 18 行: type.serialize(ar); 错误 24 错误 LNK1181:无法打开输入文件 '..\lib\Release\flann.lib' D:\flann-1.8.4-src\flann-1.8.4-src\build\examples\LINK 错误 25 错误 MSB3073:命令“setlocal C:\CMake\bin\cmake.exe -DBUILD_TYPE=Release -P cmake_install.cmake if %errorlevel% neq 0 goto :cmEnd :cmEnd endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone :cmErrorLevel exit / b %1 :cmDone if %errorlevel% neq 0 goto :VCEnd :VCEnd" exited with code 1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets 134

对于 VTK:

VTK_USE_QTOPENGL 选项没有出现,即使我已经首先启用了 VTK_USE_QT,并且 VS2012 的项目生成崩溃了几次,但能够克服崩溃(我担心这对于实际使用 VTK 来说不是好兆头)

对于 Qhull:

与 FLANN 类似的错误:

错误 1 ​​错误 MSB3073:命令“setlocal C:\CMake\bin\cmake.exe -DBUILD_TYPE=Debug -P cmake_install.cmake if %errorlevel% neq 0 goto :cmEnd :cmEnd endlocal & call :cmErrorLevel %errorlevel% & goto : cmDone :cmErrorLevel exit /b %1 :cmDone if %errorlevel% neq 0 goto :VCEnd :VCEnd" exited with code 1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft. CppCommon.targets 134

但它的其余部分构建得很好。任何的建议都受欢迎。

0 投票
1 回答
216 浏览

python - Python:如何获得对称的相似矩阵

我在 k-nearest-neighbors 模式下使用 FLANN ( http://www.cs.ubc.ca/research/flann/ ) 来构建稀疏相似矩阵,以便在大量点上应用谱聚类(大约百万)生活在中等维度(大约 20 岁)。我如何使它对称?