2011-12-05 64 views
6

假设我有一组5个标记。我试图使用增强现实框架(例如ARToolkit)来找出每个标记之间的相对距离。在我的相机中,前20帧显示了前2个标记,因此我可以计算出2个标记之间的转换。第二个20帧仅显示第二和第三个标记,依此类推。最后20帧显示了第5和第1个标记。我想建立所有5个标记的标记位置的3D地图。准确测量一组基准之间的相对距离(增强现实应用)

我的问题是,我知道由于视频输入质量差而导致距离不准确,我如何尽量减少我收集的所有信息的不准确性?

我的天真的做法是使用第一个标记作为基点,从前20帧取平均值的转换,并将第二个标记放在第三个和第四个。对于第5个标记,将它放置在第4个和第1个之间,将它放置在第5个和第1个以及第4个和第5个之间的转换平均值的中间。我觉得这种方法对第一个标记位置有偏差,并没有考虑到相机每帧看到2个以上的标记。

最终我希望我的系统能够计算x个标记的地图。在任何给定的框架中,可能会出现多达x个标记,并且由于图像质量而存在非系统性错误。

任何帮助正确的方法来解决这个问题将不胜感激。

编辑:

比方说在真实世界地图为::

enter image description here

可以说我拿100点的读数为每个之间的变换 有关问题的详细信息点,如图中箭头所示。真实值写在箭头上方。

我获得的值有一些错误(假设遵循关于实际值的高斯分布)。例如,对于标记1至2获得的读数之一可以是x:9.8 y:0.09。鉴于我拥有所有这些阅读材料,我如何估算地图。理想情况下,结果应尽可能接近真实值。

我天真的方法有以下问题。如果从1到2的转换的平均值稍微偏离,则即使2到3的读数非常准确,3的放置也可以关闭。此问题如下所示:

enter image description here

果岭的实际值,黑人是计算值。平均变换1到2是x:10 y:2。

+0

也许更好的dsp.stackexchange.com? – endolith

回答

0

您可以使用least-squares方法来找到最适合您所有数据的转换。如果你想要的只是标记之间的距离,这只是测量距离的平均值。

假设你的标记位置是固定的(例如固定的刚体),并且你想要它们的相对位置,那么你可以简单地记录它们的位置并对它们进行平均。如果可能会将一个标记与另一个标记混淆,则可以逐帧跟踪它们,并使用两个时间段之间每个标记位置的连续性来确认其身份。

如果你期望你的刚体移动(或者如果身体不是刚性的,等等),那么你的问题就显得更加困难。一次两个标记不足以固定刚体的位置(这需要三个)。但是,请注意,在每次转换时,几乎同时都会有旧标记的位置,新标记和连续标记。如果您的每个标记已经在身体的预期位置,则应该每20帧就能提供一个刚性姿态的良好估计值。一般来说,如果你的身体正在移动,最好的表现将需要某种形式的动态模型,这应该被用来跟踪它的姿态随着时间的推移。给定一个动态模型,您可以使用Kalman filter来进行跟踪;卡尔曼滤波器非常适合整合所描述的数据类型。

通过将标记的位置包含为卡尔曼状态向量的一部分,您可能能够从纯粹的传感器数据中推断出它们的相对位置(这似乎是您的目标),而不是要求此信息为先验。如果你想能够有效地处理任意数量的标记,你可能需要想出一些通常方法的巧妙变异;您的问题似乎设计为通过传统分解方法(例如连续卡尔曼滤波)来避免解决方案。


编辑,按照下面的评论:

如果您的标记生成一个完整的三维姿态(而不仅仅是3D位置),附加数据会更容易维护有关对象的准确信息你正在跟踪。但是,上述建议仍适用:

  • 如果标记的身体是固定的,则使用所有相关帧数据的最小二乘拟合。
  • 如果标签物体正在移动,则对其动态进行建模并使用卡尔曼滤波器。
  • 浮现在脑海

新点:

  • 尝试管理相对转换链可能不是解决这个问题的最好办法;正如你注意到的那样,它很容易产生累积误差。但是,只要您可以在该框架中实施必要的数学计算,它也不一定是一种坏方法。
  • 特别是,最小二乘拟合应该可以很好地处理相对姿势的链或环。
  • 在任何情况下,对于最小二乘拟合或卡尔曼滤波跟踪,对测量不确定度的良好估计都会提高性能。
+0

感谢您的回复, 标记位置是固定的。每帧的唯一信息是帧中显示的标记之间的3D转换。错误将可能是高斯分布。我实际上并没有标记的位置,但我可以区分一个标记和另一个标记。 – jzz

+0

如果我理解正确,那么您正在进行光学跟踪,一次最多只能得到2个点。我不认为这将为完整的3D转换提供足够的信息 - 最好是不是仅仅为您的2个标记获取3D位置数据? – comingstorm

+0

我的每个标记实际上都是一个正方形,所以我可以根据基准点的四个角来估计相机相对于每个标记的姿态。与此类似:[link](http://www.hitl.washington.edu/artoolkit/documentation/tutorialcamera.htm) – jzz