AR增强现实

Augmented Reality (简称AR,増扩实境)技术已经风靡有一段时间了,我们也看过它在网络上、移动终端上的各种应用。今天我们来梳理一下这项技术背后的一些相关知识,帮助大家在开发自己的应用时选择合适的类库。

说起AR,就不得不提ARToolkitARToolkit是用C语言编写的开源类库,现代很多类库都是由它衍生而来。比如NyARToolkit这个日本人写的类库,就是ARToolkit应用于各种虚拟机的版本。而Flash开发者们所熟知的FLARToolkit则是NyARToolkit的AS3版本。现在流行的iOS和Android平台上也有其对应的版本ARToolKit for iOSAndAR

正如我们在大多数的应用里所看到的,ARToolkit能够识别的图形都必须是一种特殊的黑白标记(Marker)。那么是否有更加自由的识别系统呢?Natural Feature Tracking(简称NFT,自然图符追踪)正是解决这种需求的技术。它让我们可以摆脱黑白图像,用任意的图形来作为Marker,从而让増扩实境的体验更加真实。

ARToolkit NFT就是ARToolkit的NFT版本。此外,同样使用GPL开源协议发布的支持NFT的类库还有StudierstubeBazAR

以上这些类库都是C/C++语言的版本,那么是否有可以在Flash平台下使用的NFT类库呢?很遗憾的是目前还没有,不过商业的选择倒是有两个:

Total Immersion是一家提供商业AR解决方案的技术公司。其产品D‘Fusion提供了非常完整的解决方案,涵盖了桌面、网络还有移动终端。除了NFT,还支持运动检测、面部检测等附加功能。这些功能甚至在其Flash版本中也能支持。由于没有机会试用,不知其效率如何。不过估计要在网页上达到较好的效果,还是要靠他们提供的插件版比较好。

另一家是德国的Imagination,从他们的支持Flash的产品页面上可以看到他们目前有两种技术:一种就是比较传统的Flare Marker(和ARToolkit的标准Marker略有不同);另一种就是Flare NFT。两种技术都提供了用于评估的SDK,可以让开发者试用。

不过很有可能一种可以供Flash开发者使用的开源NFT类库马上就会诞生──它就是俄国开发者Eugene带来的ASFEAT/IN2AR。Eugene一直致力于研究计算机图形学相关技术在Flash上的开发,诸如流体解算、面部检测等等,有很深的造诣。这次的IN2AR的前身是他开发的ASSURF(图形识别技术SURF的AS实现)。感兴趣的可以先看看其图形识别的能力,一起期待IN2AR的正式发布。

总的来说Flash目前可以用的AR类库有开源的FLARToolkit、商业的D’Fusion和Flare。此外,还有一个开源类库FLARManager,是用于简化和统一各种接口API的框架(目前支持FLARToolkit和Flare)。FLARManager还提供了多Marker增加、更新、移除等事件的管理功能。我目前在项目中主要使用了这个框架,感觉很方便。 另一个类似的框架叫FZFlar,代码托管在git上,感兴趣的也可以去尝试一下。

最后来说说版权问题。ARToolkit及其衍生类库除了GPLv2开源协议以外,还有商业授权。其版权现在由ARToolworks在管理。简单的来说,开发者如果选择了开源协议,那就意味者可以免费使用这些类库。但是我们的代码也必须以相同的协议开源。只要有人提出要求,我们是必须给出完整代码的。反之如果不愿意开放源代码的话就必须要通过ARToolworks的全球代理来购买商业版权。

以上就是我所整理的AR相关技术信息,如果有不对的或者有补充的地方,欢迎大家在评论里与我探讨。期待大家能用AR做出更加精彩的作品。

原文:http://kevincao.com/2010/12/ar-tech-collection/#more-1437å

你可能感兴趣的:(【新技术】AR技术)