基于标记的增强现实算法(如ARToolkit的算法)如何工作?

时间:2010-02-10 11:16:22

标签: algorithm augmented-reality

对于我的工作,我一直在使用Java版本的ARToolkit(NyARTookit)。到目前为止,它已证明足以满足我们的需求,但我的老板开始希望将框架移植到其他平台,如Web(Flash等)和移动设备。虽然我想我可以使用其他端口,但是由于不知道套件是如何工作的而且由于某些限制,我越来越恼火。后来我还需要扩展工具包的功能,以添加交互(卡上的虚拟按钮等),这是我在NyARToolkit中看到的不支持。

基本上,我需要用自定义标记检测器替换ARToolkit(在NyARToolkit的情况下,尝试摆脱JMF并通过JNI使用更好的解决方案)。但是我不知道这些探测器是如何工作的。我知道3D图形,我已经建立了一个很好的框架,但我需要知道如何构建底层技术: - )。

是否有人知道如何从头开始实施基于标记的增强现实应用程序?在谷歌搜索时我只找到AR的“应用程序”,而不是基础算法: - /。

1 个答案:

答案 0 :(得分:10)

'从零开始'是一个相对术语。真正从头开始,不使用任何已有的视觉代码,将是非常痛苦的,你不会比整个计算机视觉社区做得更好。

但是,如果您想使用现有的视觉代码进行AR,这更合理。基本的子任务是:

  1. 在图片或视频中找到标记。
  2. 确保他们是你想要的。
  3. 弄清楚它们相对于相机的方向。
  4. 第一项任务是关键点本地化。这方面的技术包括SIFT关键点检测,Harris角点检测器等。其中一些有开源实现 - 我认为OpenCV在函数GoodFeaturesToTrack中有Harris角点检测器。

    第二项任务是制作区域描述符。这方面的技术包括SIFT描述符,HOG描述符和许多其他描述符。应该有一个开源实现其中一个。

    第三项任务也由关键点定位器完成。理想情况下,您需要仿射变换,因为这将告诉您标记如何位于3空间中。哈里斯仿射探测器应该为此工作。有关详细信息,请转到此处:http://en.wikipedia.org/wiki/Harris_affine_region_detector