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

发布于 2024-08-20 21:46:42 字数 447 浏览 3 评论 0原文

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

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

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

For my job i've been using a Java version of ARToolkit (NyARTookit). So far it proven good enough for our needs, but my boss is starting to want the framework ported in other platforms such as web (Flash, etc) and mobiles. While i suppose i could use other ports, i'm increasingly annoyed by not knowing how the kit works and beyond that, from some limitations. Later i'll also need to extend the kit's abilities to add stuff like interaction (virtual buttons on cards, etc), which as far as i've seen in NyARToolkit aren't supported.

So basically, i need to replace ARToolkit with a custom mark detector (and in case of NyARToolkit, try to get rid of JMF and use a better solution via JNI). However i don't know how these detectors work. I know about 3D graphics and i've built a nice framework around it, but i need to know how to build the underlying tech :-).

Does anyone know any sources about how to implement a marker-based augmented reality application from scratch? When searching in google i only find "applications" of AR, not the underlying algorithms :-/.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

残龙傲雪 2024-08-27 21:46:42

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

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

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

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

第二个任务是制作区域描述符。用于此目的的技术包括 SIFT 描述符、HOG 描述符以及许多其他技术。应该在某个地方有其中之一的开源实现。

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

'From scratch' is a relative term. Truly doing it from scratch, without using any pre-existing vision code, would be very painful and you wouldn't do a better job of it than the entire computer vision community.

However, if you want to do AR with existing vision code, this is more reasonable. The essential sub-tasks are:

  1. Find the markers in your image or video.
  2. Make sure they are the ones you want.
  3. Figure out how they are oriented relative to the camera.

The first task is keypoint localization. Techniques for this include SIFT keypoint detection, the Harris corner detector, and others. Some of these have open source implementations - i think OpenCV has the Harris corner detector in the function GoodFeaturesToTrack.

The second task is making region descriptors. Techniques for this include SIFT descriptors, HOG descriptors, and many many others. There should be an open-source implementation of one of these somewhere.

The third task is also done by keypoint localizers. Ideally you want an affine transformation, since this will tell you how the marker is sitting in 3-space. The Harris affine detector should work for this. For more details go here: http://en.wikipedia.org/wiki/Harris_affine_region_detector

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文