10

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

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

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

4

1 回答 1

11

“从头开始”是一个相对术语。真正从头开始,不使用任何预先存在的视觉代码,会非常痛苦,而且你不会比整个计算机视觉社区做得更好。

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

  1. 在您的图像或视频中找到标记。
  2. 确保它们是您想要的。
  3. 弄清楚它们是如何相对于相机定向的。

第一个任务是关键点定位。这方面的技术包括 SIFT 关键点检测、Harris 角点检测器等。其中一些具有开源实现——我认为 OpenCV 在 GoodFeaturesToTrack 函数中有 Harris 角点检测器。

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

第三个任务也由关键点定位器完成。理想情况下,您需要仿射变换,因为这将告诉您标记如何位于 3 空间中。Harris 仿射检测器应该可以解决这个问题。有关更多详细信息,请访问此处:http ://en.wikipedia.org/wiki/Harris_affine_region_detector

于 2010-02-11T02:32:27.110 回答