问题标签 [orb]
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.
opencv - 使用 ORB 的不稳定单应性估计
我正在开发一个特征跟踪应用程序,到目前为止,在尝试了几乎所有的特征检测器/描述符之后,我用 ORB 获得了最令人满意的整体结果。我的特征描述符和检测器都是 ORB。
我正在选择一个特定区域来检测源图像上的特征(通过遮罩)。然后将其与在后续帧上检测到的特征进行匹配。
然后我通过对从以下代码获得的“匹配”执行比率测试来过滤我的匹配:
我还尝试了双向比率测试(过滤从源到当前场景的匹配,反之亦然,然后过滤掉常见匹配)但它没有做太多,所以我继续进行单向比率测试。
我还在我的比率测试中添加了一个最小距离检查,它似乎可以提供更好的结果
最后,我估计了 Homography。
我尝试使用 RANSAC 方法来估计内联,然后使用这些方法重新计算我的 Homography,但这会带来更多的不稳定性,而且会消耗更多的时间。
然后最后我在要跟踪的特定区域周围画了一个矩形。我通过以下方式获得平面坐标:
其中 'objcorners' 是我的蒙版(或未蒙版)区域的坐标。
我使用“scene_corners”绘制的反应角似乎在振动。增加功能的数量已经减少了很多,但由于时间限制,我不能增加太多。
如何提高稳定性?
任何建议,将不胜感激。
谢谢。
windows-7-x64 - “Corba 命名服务无法访问”
Corba 命名服务不可访问。它在 Windows XP 上运行,但不在具有相同设置的 Windows7 64 位上运行。全名。exe 正在运行并创建日志文件,但是其他进程在 Windows7 上给出相同的错误“Corba Naming Service Not Reachable”。
它是一台装有 Visual Studio 2005 32 位和 Windows7 64 位的本地机器
opencv - 如何使用图像数据的指针将数据传递给 Mat
在我的代码中,我不想从图像中读取数据,例如
相反,我想从指针读取数据:
但是,我发现,通过这种方式,当我在下面的 ORB 函数中使用 img_1 时,它不起作用
如何将数据从指针传递给 Mat?imread() 函数和从指针传递数据之间有什么区别吗?或者,cv::ORB 函数有什么特殊要求吗?
非常感谢!我对 OpenCV 不熟悉,我刚开始使用它几个星期,我只需要解决这个问题,我的代码的其余部分取决于这部分的结果。
opencv - 为什么当我减小图像大小时,球体特征大小不会同时减小?
每个人!当我使用 ORB 特征提取时,我的图像是 640*480,并且 orb 描述符 Mat 是 500 行和 32 列,我认为当我使用 opencv::resize() 函数将图像大小减小到 320*240 时,图像 orb描述符将减少到 250 行和 32 列。但是答案是 420(不同的图像会有所不同,可能是 417、430)行和 32cols。谁能告诉我这是为什么?
android - 使用 ORB 在 android 中进行对象检测
我正在尝试使用 android 设备的摄像头检测某些对象。我已经尝试过使用 HOG 描述符的 OpenCV 人员检测示例,但这似乎很慢。然后我尝试使用 Haar Cascades,它提供了更好的 10 fps 平均帧速率和更好的准确度。
在阅读了更多内容之后,另一个可行的选择似乎是 ORB 特征检测器。我能理解的是,我需要保存要与当前帧进行比较的图像的特征向量。所以,
- 将这些向量存储在 android 设备上的最佳方法是什么
- 我需要多大的图像数据库才能获得不错的准确性(假设我将其用于人员检测)以及与大型数据库进行比较的开销是多少
- 此外,ORB 对物体的颜色差异和与相机的距离有什么限制
java - Java Corba 不同的球体
我目前在 jaCORB 中有服务器和客户端,它确实可以正常工作,但是现在我想让客户端和服务器在不同的球体上运行。老实说,我对 corba 完全陌生,我一直在寻找互联网,但找不到可以帮助我理解这一点的东西。我有一个 idl 文件,我在其中指定我的方法,然后我在我的服务器端实现它们,像这样实现 Jacorb:
并从我的客户端调用实现 orb 的方法,如下所示:
现在当我想在不同的球体上拥有服务器时,我该怎么办?它只是属性还是我必须完全改变我的类?我现在已经花了几个小时,仍然不明白我的问题,并且没有成功使用任何代码。非常感谢您的任何回答。
java - 在我的情况下,如何在 CORBA 上向客户端返回 java.lang.Object 值?
我正在开发一个 Corba 应用程序。我的 IDL 界面如下所示:
我希望当客户端为 Transaction 引用对象调用 addResource 方法时,能够将 Proxy.newProxyInstance(....) 的返回值返回给客户端。
addResource 实现的示例:
我想将“o”返回给客户,我该怎么做?
addResource() 方法返回值的类型是什么?是 org.omg.CORBA.Object 吗?或其他类型?
c++ - 如何评估是否找到匹配项
好的,所以我想知道的是如何评估是否找到匹配项。
假设我们有两个描述符,它们是使用 ORB 算法计算的。然后我像这样使用 BFMatcher:
匹配向量告诉我什么?我什么时候找到匹配的?
c++ - OpenCV:球体参数
我想知道 orb 特征检测器的参数。我将它用作关键点提取器和描述符。作为匹配器,我使用 BFMatcher。
目前我这样使用它:
因为我正在查看小图像和快速性能,所以我将功能数量减少到大约 25 个。这似乎仍然适用于我的应用程序。问题从第二个参数开始。它的默认值为 1.2。不久前我将它设置为 1,但发现它的速度要快得多,而且值更高。问题是,我开始遇到这个问题:
OpenCV 错误: cv_batchDistance 中的断言失败 ((type == CV8U && dtype == CV_32S) ||dtype == CV_32F),文件............stat.cpp,第 2480 行
接下来是金字塔级别的参数。默认值为 8。我将其设置为 2,这给了我另一个很大的性能改进。但是如果我将它设置为 1,它会抛出与上面相同的错误。
由于我正在处理小图片,因此我尝试将其设置为较低的值。但它似乎并没有改变任何东西。这同样适用于最后一个参数 (patchSize)。它指出这些参数应该大致匹配。
我对其余参数不感兴趣。
正如我已经在其他问题中解释的那样,我正在尝试跟踪视频中的对象。为此,我为每个边界框提取其特征,并尝试将其与下一个特征的边界框匹配。通过这样做,我试图建立框架之间的关系。到目前为止,它运行良好。但我需要更快。如果有多个边界框,则需要很长时间,因为我想要实时@ 30FPS。
如果有人可以帮助我处理这些参数,我将不胜感激。
android - 如何将 OpenCV 关键点特征保存到数据库?
我的项目是使用 OpenCV 库识别 Android 上的叶子。我正在使用 ORB 检测来获取图像的关键点并使用 ORB 描述符来获取关键点的特征。这是我使用的代码:
来源:http ://answers.opencv.org/question/6260/orb-features/
但是每次我输入相同的图像,该图像的关键点总是不同的。如果总是不同,我可以将关键点的功能保存到数据库吗?或者我应该保存图像以保存特征数据?如果可以保存到数据库,我该怎么做?