问题标签 [feature-descriptor]

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 回答
46 浏览

image - 计算机视觉:在大型 2D 自上而下地图中定位地面图像

我有一个机器人在地面上拍摄的图像,它面向它的前面。我有一张nxn显示房间布局的 2D 地图。我想以某种方式将图像应用于 2D 地图,以生成地图中位置的概率分布,以指示哪些是可能的位置。例如,如果我收到一个角落的图像,那么我知道 2D 地图中更靠近角落的位置应该有更高的可能性。当我有门的图像时也是如此。

我应该如何将图像应用到地图上?我正在考虑类似的事情,nxnxk为 2D 地图生成一个特征描述符,并从图像中生成另一个描述符,然后计算这些描述符在地图1x1xk上每个像素上的相似度。nxn但具体怎么做?

0 投票
0 回答
327 浏览

java - OpenCV 4.1.0 Java:尝试将 BFMatcher 与基于 ORB 的关键点和描述符一起使用时如何修复“未知异常”?

基本上,我想在 OpenCV 中使用 ORB 和 BFMatcher 看看是否有第一个对象(“sight”)在其他图像(“test”)中可见(像这样)。ORB 本身工作正常;它在我的图像中检测到令人满意的关键点数量。但是,当我尝试使用BFMatcher比较两组描述符时,它会立即崩溃而没有提供实际信息。

  • 试图打印整个关键点和描述符矩阵(这里没有提供,因为它太长了),它们似乎是完全正确的;
  • 加载图像Imgcodecs.IMREAD_GRAYSCALE不会改变任何东西,甚至首先不会改变 ORB 的结果;
  • 更改 ORB 的掩码(而不是每次都发送一个new Mat())似乎消除了所有结果。

实际输出:

好吧,sysout 调用似乎还可以,异常显然不是...

0 投票
1 回答
150 浏览

python - 为什么重新计算 ORB 描述符比从磁盘加载它更快?

我正在尝试决定是否将大量图片的计算描述符保存在本地文件或数据库中是否有趣(每张 .png 图片的分辨率为 500x500,权重约为 25kb)。

使用带有 Brief-32 描述符的 ORB,单个描述符的权重约为 3 兆字节。这样的大小将保持不变,因为我所有的照片都是相同的尺寸。

为了找出最快的我运行了以下两个测试:

老实说,我认为加载数据比重新计算整个描述符要快。

这是我的测试结果:

基准图

所以现在我很困惑。我知道 ORB 是一种非常快的算法,但是“生成”一个 3MB 的描述符比从 ssd 磁盘读取它要快得多吗?我的基准有什么问题吗?

谢谢你。

0 投票
1 回答
185 浏览

java - 如何使用openCV(java)从最佳匹配列表中获取像素坐标?

我正在使用 openCV (java),并且我有一个最佳匹配列表。这是我的代码:

我知道我必须使用火车和查询描述符的索引,但我不知道如何。我已经尝试过这样的尝试,但由于MatOfKeyPoint无法像 Java 中的数组一样访问,因此无法正常工作。

如何找到像素坐标?

0 投票
1 回答
1426 浏览

machine-learning - 计算机视觉和机器学习中特征描述符的解释

我已经开始大量使用计算机视觉技术,主要是深度学习,但我想尝试更好地理解更传统的技术以及良好的基础。我一直在使用一些手动特征工程技术来使用 RF 和 SVM 分类器进行分类。我研究了诸如 HOG 和 LBP 描述符之类的纹理表示,以及边缘滤波器、gabor 滤波器和诸如傅立叶描述符之类的空间特征。我有点缺乏的是对不同特征如何分组以及它们各自属于什么类别的好主意。我知道有些被定义为全局和本地,但这到底是什么意思,哪些是?还有我应该考虑的其他类别,如纹理和几何?任何解释都是有用的,非常感谢(我'

谢谢!

0 投票
1 回答
720 浏览

python - 使用 Brief、BRISK、AKAZE 和 FREAK 检测到零关键点

我正在尝试使用BriefBRISKAKAZ E 和FREAK二进制描述符进行特征检测和描述。

我正在使用MINIST视觉数据集的 28x28 图像进行测试,如下所示:

在此处输入图像描述

我通过以下方式调用了所有方法:

快速地:

简短的:

轻快:

阿卡兹:

怪物:

注 1:我将描述符BriefFREAKFAST Detector 一起使用。

我找到了关键点并计算了描述符,如下所示:

请注意,在此示例中,我试图找到 Keyponts 并计算简要描述符,但对于上述所有描述符,我得到以下输出:

注意 2:我使用了与任何其他 640x546 尺寸图像相同的参数,并且我能够找到关键点并计算描述符。问题是我正在搜索需要使用MINIST视觉数据集的地方。

注 3:使用SIFTSURFKAZEORB等其他描述符,我能够找到 Keyponts 并计算相同视觉数据集的描述符。

我已经多次更改了所有描述符的参数,但不幸的是,我在可视数据集MNIST中找不到关键点并用它们计算描述符。我想知道是否有正确的方法来选择这些参数,或者我是否可以做些什么。

我认为在大小为 28x28 (?)的小图像(?)中使用这些描述符查找关键点和计算机描述符存在问题。

我正在使用Python 3.6OpenCV 4.1(带有opencv_contrib模块)。

0 投票
1 回答
117 浏览

opencv - OpenCV 中如何生成二进制描述符?

我一直在使用 OpenCV 中实现的二进制描述符。但是描述符由数值组成(以红色矩形显示)。

为什么它们由整数值组成?

在此处输入图像描述

0 投票
1 回答
2307 浏览

python - 如何使用 Python 和 OpenCV 实现 KAZE 和 A-KAZE?

我正在尝试在航拍图像上实现KAZEA-KAZE使用PythonOpenCV进行特征检测和描述。

代码是什么?

此外,特征匹配应该使用什么描述符?

0 投票
1 回答
30 浏览

python - 如何去除图像处理中的特定数据

我有图像数据,我用它来训练我的机器学习使用 SIFT,但我的数据有一些图像包含 0 图像描述符的问题。所以当我完成训练和测试时,我的结果只达到了 56%(当然,这不是我预期的结果)。为了解决这个问题,我决定删除一些包含 0 图像描述符的图像。但是,我只能从包含图像描述符的 images_descriptor 数组中删除。这里的问题是不知道我必须删除哪些图像,以便我可以删除它们的“目标”。
我的数据有一个形状:(15000, 64, 64, 3)

到目前为止我的代码:

我正在尝试创建一个索引以从 images_descriptor 获取索引,以便我可以知道哪个图像包含 0 图像描述符的位置np.where。然后我可以删除我从中删除的images_descriptor图像y。但我收到的结果是:(array([], dtype=int64).

0 投票
0 回答
76 浏览

point-cloud-library - FPFH 描述符的 3D 对象识别不起作用 - 出了什么问题

我正在尝试在特定数据上构建 3D 对象注册管道。目标是在给定的激光雷达场景中找到指定的 3D 模型,并估计其 6DOF 位姿。尽管必须这样做,但我无法使匹配的功能起作用。我将不胜感激有关调整描述符或转向其他一些更有效的匹配管道的任何提示。我不明白我做错了什么。

我的代码使用 PCL 并改编自:https : //robotica.unileon.es/index.php?title=PCL/OpenNI_tutorial_5:_3D_object_recognition_(pipeline) 但我使用两个合成点云而不是深度相机图像。它们都是从非常相同的 3D 网格合成的,如下所示: 在此处输入图像描述 一个云基本上是网格的均匀采样外表面,第二个是 Velodyne 型激光雷达的模拟框架查看相同的模型。我使用Blensor 进行模拟,云看起来很好。这是对实际问题的简化。

当我使用带有一些预校准的 ICP 时,云几乎完美匹配!

并且特征匹配失败。据我所知,我尝试使用更准确的 FPFH,而不是 SHOT 描述符(以同样的方式失败)。法线计算得很好(全部向内),关键点也很好,但点对点的对应关系很奇怪,没有找到全局对应关系。在图像上,每个点都作为关键点进行测试。我尝试对云进行下采样或使用 ISS 关键点,但没有成功。

不匹配示例 大云(左)在点之间约 0.1m 处采样,其最大宽度约为 4m。小云(激光雷达模拟,右)沿着射线线更密集,“射线”之间更稀疏。法线估计半径为 0.3,FPFH 描述符半径设置为 0.7。

我究竟做错了什么???