自然标记增强现实实现

natural marker augmented reality implementation

本文关键字:实现 增强现实 自然      更新时间:2023-10-16

在发现OpenCV的强大功能后,我决定使用该库开发我现在正在开发的自然标记跟踪引擎。但我的问题是,我不知道一个适当的方法来实现这样的跟踪器。

我制定了以下计划:

  1. 使用目标跟踪算法之一(例如SIFT, SURF等)来描述和从实时摄像机馈送中提取关键点。
  2. 根据提取的关键点转换成直方图,并将直方图与存储标记的直方图进行比较。
  3. 一旦找到匹配,转换这些位置信息并将其传递给负责渲染3d对象的引擎。

我尝试了SIFT和SURF算法来描述和提取关键点,最终结果是两种算法的fps都非常低(即小于0 fps)。我注意到SIFT和SURF在计算上非常昂贵,它是否适合在实时摄像机馈送上进行此类跟踪?

谢谢。

开发这样的标记需要您对图像处理,3D成像,跟踪等有深入的了解。不像开发一个简单的应用程序。

最好使用已开发的;)

FERNS比SIFT更高效、更简单。你可以用它。它是由EPFL的研究人员开发的。如果你读过AR/跟踪论文,你会发现这些人是行业/领域的领导者。它也在以后的OpenCV版本中实现(我认为在2.1或2.2?)

否则你可以从这里获得该算法的源代码:蕨类植物:平面目标检测

编辑:

基本上,像FERNS这样的算法会告诉你位置/旋转等(这是由称为Homography的矩阵表示的变化)某个表面将参考另一个框架。这个Homography是3D渲染所需的一切;)

使用OpenGL或类似的3D库,您可以使用计算的同形图绘制对象。如果你对每一帧重复这个过程,你将得到一个简单的AR应用程序。

理论书籍:图像处理和3D成像

要了解AR,请阅读:ARToolKit paper

关于FERNS: oezuysal'site的更多信息

SIFT是一个很好的算法,但是你不能从中得到最好的速度。有一些方法使用FAST进行检测,然后为检测到的点构建一个简化的SIFT描述符(而不是使用128个值,例如32个)。此外,还开发了用于FAST的金字塔式方法(您有ORB,但其描述符不够好)。

现在OpenCV刚刚发布了FREAK,他们承诺它是最快和强大的,所以我很快就会尝试一下。你可以在OpenCV上看看这种增强现实的教程。

SIFT和SURF是成功的视觉特征,并且可能是正确的方法(尽管存在更快计算的特征)。
SIFT可以在GPU上进行高效的计算。看到siftGPU。