Aruco模块常见问题解答

原文来源 opencv     http://docs.opencv.org/master/d1/dcb/tutorial_aruco_faq.html

这是一个编译的问题可能是有用的对于那些想要使用aruco模块。

  • 我只想标签一些对象,我应该使用什么?

在这种情况下,您只需要单一ArUco标记。 您可以将一个或多个标记不同的id在每个对象的识别。

  • 算法用于标记检测吗?

aruco模块是基于原始aruco字块。 一个完整的描述的检测过程中可以发现:

S. Garrido-Jurado, R. Muñoz-Salinas, F. J. Madrid-Cuevas, and M. J. Marín-Jiménez. 2014. "Automatic generation and detection of highly reliable fiducial markers under occlusion". Pattern Recogn. 47, 6 (June 2014), 2280-2292. DOI=10.1016/j.patcog.2014.01.005

  • 我的正确标记不被发现,我能做什么?

可能有很多因素,避免标记的正确检测。 你可能需要调整一些参数 DetectorParameters对象。 你可以做的第一件事就是检查如果你标记作为拒绝候选人的返回 detectMarkers()函数。 根据这一点,你应该试着修改不同的参数。

如果您使用的是ArUco板,你也可以尝试 refineDetectedMarkers()函数。

  • ArUco标识板的好处是什么? 缺点是什么?

使用的标记可以获得相机的姿势从一组标记,而不是一个。 这种方式,检测是能够处理遮挡部分的观点,因为只有一个标记获取姿势是必要的。

此外,在大多数情况下,您正在使用更多的角落姿势估计,这将是更精确的比使用一个标记。

标识板的主要缺点是不像一个通用的标记。

  • 的好处是什么ChArUco标识板ArUco板? 和缺点?

ChArUco板结合了棋盘和ArUco标识板。 谢谢,ChArUco标识板提供的角落提供更精确的比ArUco标识板(或单标记)。

的主要缺点是ChArUco标识板不像ArUco多才多艺的标识板。 例如,ChArUco板是一种平面板与特定标记布局而ArUco标识板可以拥有任意布局,甚至在3 d。 此外,标记ChArUco标识板通常是更小、更难以检测。

  • 我不需要姿态估计,我应该用ChArUco板吗?

不。 ChArUco标识板的主要目的是提供高精确的角落的姿势估计或照相机校准。

  • 都应该标记在一个ArUco被放置在相同的飞机吗?

不,标记在一个角落ArUco标识板可以放置在其三维坐标系统。

  • 都应该标记在一个ChArUco被放置在相同的飞机吗?

是的,所有的标记ChArUco标识板需要在同一个平面上,棋盘布局是固定的形状。

  • 之间的区别是什么 标识板对象和一个 GridBoard对象?

的 GridBoard类是继承自一个特定类型标识板类。 一个 GridBoard对象是一个标识板的标记放置在同一个平面上,在网格布局。

  • 钻石标记是什么?

钻石标记非常类似于ChArUco 3 x3委员会广场。 然而,相反ChArUco标识板,钻石的检测是基于相对位置的标记。 他们是有用的,当你想提供一个概念意义的任何(或者全部)标记的钻石。 一个例子是使用一个标记来提供钻石规模。

  • 我需要检测标记板检测之前,ChArUco板检测或钻石检测吗?

是的,单一标记的检测是一个基本工具aruco模块。 它是使用完成的 detectMarkers()函数。 其余的函数从这个函数接收检测到标记的列表。

  • 我想调整我的相机,我可以用这个模块吗?

是的,aruco模块提供的函数来校准相机使用,aruco标识板和ChArUco标识板

  • 我应该使用ChArUco校准板或ArUco板吗?

强烈建议使用ChArUco校准板由于精度高。

  • 我应该使用一个预定义的字典或生成自己的字典吗?

一般来说,更容易使用一个预定义的字典。 然而,如果你需要一个更大的字典(的标记或数量的比特数)你应该生成自己的字典。 字典一代也很有用,如果你想最大化inter-marker距离达到一个更好的纠错过程中识别的步骤。

  • 我创造我自己的字典,但花费的时间太长了

字典代初只应做一次你的应用程序,应该采取一些秒。 如果你是生成的词典在每个迭代检测循环,你做错了。

此外,它是值得推荐的字典保存到文件,阅读每个执行,所以你不需要生成它。

  • 我想用一些标记的原始ArUco库,我已经打印出来,我可以使用它们吗?

是的,一个预定义的字典 DICT_ARUCO_ORIGINAL检测到标记的原始ArUco库相同的标识符。

  • 我可以用板配置文件的原始ArUco字块这个模块吗?

没有直接的联系,您将需要调整的信息ArUco ArUco模块板格式文件。

  • 我可以使用这个模块来检测其他基于二进制基准标记库的标记吗?

可能是的,但你需要端口字典原始库aruco模块的格式。

  • 我需要字典信息存储在一个文件,所以我可以使用它在不同的执行?

如果您正在使用一个预定义的字典,它不是必要的。 否则,它是值得推荐的,你将其保存到文件中。

  • 我需要的信息存储在一个文件,所以我可以使用它在不同的执行?

如果您使用的是 GridBoard或者一个 ChArUco板只需要存储板提供给的测量 GridBoard:create()或 ChArUco:create()函数。 如果您手动修改标记id的标识板,或如果你使用一种不同类型的板,你应该保存你的标识板对象文件。

  • aruco模块提供的函数将字典或标识板保存到文件?

不是现在。 但是字典和板类的数据成员都是公开的,可以很容易地存储。

  • 好吧,但是我怎么能呈现一个3 d模型创建一个增强现实应用程序?

为此,您将需要使用一个外部的渲染引擎库,比如OpenGL。 aruco模块只提供函数获得相机姿势,即旋转和traslation向量,有必要创建增强现实的效果。 然而,你需要适应OpenCV的旋转和traslation矢量格式的格式接受你的3 d渲染库。 原ArUco库包含的例子为OpenGL和Ogre3D怎么做。

  • 我有使用这个模块在我的研究工作,我怎么能引用吗?

您可以引用原始ArUco库:

S. Garrido-Jurado, R. Muñoz-Salinas, F. J. Madrid-Cuevas, and M. J. Marín-Jiménez. 2014. "Automatic generation and detection of highly reliable fiducial markers under occlusion". Pattern Recogn. 47, 6 (June 2014), 2280-2292. DOI=10.1016/j.patcog.2014.01.005


Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐