1、AR 技术及其实现方法初探 孙国新 人民网 摘 要: 本文对增强现实 (AR) 领域相关技术进行初步调研, 简单介绍了以手机作为设备的 AR 系统的架构;详细分析了 AR 的工作原理, 包括 3D 物体建模、视频和图像的识别、特征点跟踪、视频合成 (即虚实物体的结合) 以及视频输出;比较了国内外现有 AR 开发软件工具包;展望 AR 的应用, 特别是在媒体领域的潜在应用。关键词: 增强现实; 图像识别; 特征点跟踪; 增强现实简介增强现实 (Augmented Reality, 简称 A R) 是在虚拟现实 (Vir t ua l Reality, 简称 VR) 基础上发展起来的新技术。AR
2、和 VR 有相似之处, 但实际上两者有很大区别。VR 强调使用者完全沉浸在一个由计算机所生成的虚拟世界之中, 无法感知到周围的真实世界;而 AR 则致力于将计算机生成的二维或三维虚拟物体或信息与真实环境融为一体, 使其成为真实环境中的一个组成部分, 从而提升用户对现实世界的理解和感知。图 1 展示了由上海央数文化股份有限公司开发的手机或平板电脑上的应用程序:小熊尼奥口袋动物园 (见图 1) 。此应用包含 96 张卡片, 当用户使用手机摄像头对准这些卡片时, 逼真的 3D 动物模型就会实时展现在手机屏幕上。此外, 用户还可以观看相关动画, 聆听动物的声音, 甚至和虚拟动物互动。AR 工作原理小熊
3、尼奥口袋动物园是一个使用了典型 AR 技术的手机端应用, 设备成本非常低廉, 只需要一个带摄像头的智能手机, 而没有采用其他 AR 辅助设备 (例如 AR头盔、眼镜等) 。由于其方便性, 这样的方式被研究者和用户大量采用。这样的应用是如何实现的呢?如图 2 所示, 采用手机或台式机作为显示设备的 AR 系统, 通常可分为以下几个步骤:1.视频采集。从技术实现角度讲, 这一步骤比较容易实现。无论是 i OS 系统、安卓系统、支持 html5 的浏览器或是 Windows 平台的开发, 一般都提供了摄像头调用的应用程序编程接口 (API) 。2.图形系统。AR 应用一般需要准备大量的 3D 模型或
4、动画, 例如口袋动物园中的 3D 动物模型, 这往往由相关设计人员完成。3D MAX、Blender、Auto CAD、Free CAD 和 Maya等工具软件可以帮助设计人员完成三维模型及动画的设计, 并存储为标准的OBJ 文件。无论是 i OS 系统、安卓系统上的 Open GL, html5 上的 Web GL (具体实现可考虑使用第三方应用库 Three.js) 或者支持多平台开发的 Unity3D 一般都能加载标准的 OBJ 文件, 从而导入并显示这些设计好的 3D 模型。图 1 AR 应用口袋动物园 下载原图图 2 基于手机摄像头的增强现实系统 下载原图3.视频合成。这是整个 AR
5、 系统中最复杂、最核心的一个步骤。例如, 口袋动物园这一应用中, 计算机如何知道当前屏幕上是哪一张卡片呢?又是如何在卡片上添加动物模型的呢?当摄像头移动时, 如何保证动物始终在对应的卡片上呢?AR 系统中的视频合成可以分为视频识别和视频合成两个步骤。(1) 视频识别。视频识别的主要目的就是要判断当前摄像头对准的是哪一张卡片 (图像) 。其流程是:将采集到的视频流数字化成一系列图像, 每张图像为一“帧 (Frame) ”, 然后将这一系列的图像和预先存储在手机应用中的目标图进行比对。如何比对视频帧和目标图呢?首先不能认为完全一样的图片才是相同的, 这是因为就算是同一个场景, 在不同时间、不同光照
6、、不同分辨率和不同摄像头位置的情况下, 它们的成像也会不同。其次我们不会对两张图片的每个细节进行比较, 而是首先利用计算机图像识别和图像查找技术, 合理地表示图像。图像识别中的目标图也具有特征, 特征可能包括颜色、纹理和形状等, 这些特征在计算机图像识别中被称为“特征点”。图像在计算机中的表示是一堆二进制数字。而特征点就是那些十分突出的、和周围反差较大的点。光检测到特征点还不足以判断两张图片是否相似, 还需要量化特征, 比较特征点是否一致, 就需要借助特征点描述子, 特征点描述子是一种描述特征点的方法。如果一幅图像中有一个点和我们的描述子相似或相同, 那么就可以判断它们为同一特征。对于图像识别
7、而言, 好的特征点描述子在图片缩放、旋转和仿射变换下应能保持不变。有了量化的特征后, 判断两幅图是否相似是人为可控的, 我们既可以设置匹配率为 10%以上的两幅图像是同一图像, 也可以设置匹配率为 90%以上。具体标准根据应用所需而定。现在市场上的主流 AR 软件开发工具包 (Software Development Kit, 简称 SDK) 大都提供了寻找图像中识别点的功能, 开发人员只需准备好目标图即可。一般来讲, 图片越复杂识别点越多, 识别效果就越好;目标图之间差别越大, 识别效果越好。如果目标图之间过于相似, 我们可以通过在图片上添加文字的方式来加以区别。此外, 如果使用卡片等印刷品
8、来代表目标图, 应确保其清晰可见, 易于被摄像头捕捉到。(2) 视频合成。视频合成是指把计算机图形系统准备好的虚拟物体添加到摄像头所拍摄的真实世界中去。要实现虚实物体间的完美结合, 必须将虚拟物体合并到现实世界中的准确位置, 这个过程在 AR 中称为注册 (registration) 。视频合成需要注意两个问题。一是要在识别图像的同时, 确定虚拟物体在真实世界中的位置和方向。二是当摄像头移动或转动时, 虚拟物体能做出相应的调整和变化。例如, 在口袋动物园中, 当摄像头移动时, 3D 动物模型应始终保持在卡片上方, 而当卡片不在摄像头范围内时, 应不再显示动物的模型。要想实现这种效果, 需要对视
9、频中的图像进行特征点跟踪。一种典型的跟踪方法是:在视频的第一帧图像中寻找可能的特征位置, 然后在后续的图像中搜索它们的对应位置。完成特征点定位和特征点跟踪后, 就可以把三维物体或动画合成到视频中了。4.视频输出。视频输出是将合成好的视频显示在手机或台式机的屏幕上, 将虚实结合的最终结果展现给用户。这已经是非常成熟的技术了。AR SDK 调研手机端的 AR 应用大多数都采用这种方法, 这种模式化的方法也促进了 AR SDK的发展。作为 AR 的开发者, 只需了解 AR 大致的流程工作原理, 无需过多关注AR 的底层实现。AR SDK 方便了 AR 开发者, 加速了 AR 产品开发。在众多的 AR
10、 SDK 中, 我们应该如何选择呢?这里我们调研了国内外主流的 AR SDK。Vuforia。Vuforia 是世界领先的 AR 平台, 最初属于高通公司, 2015 年被物联网企业 PTC 收购。Vuforia 可以说是目前功能最完善、稳定性最好的 AR SDK, 它支持 i OS、Android、PC 等平台的开发, 提供支持 Unity 3D 的插件。Vuforia 的关键特性包括对图片、物体、文本和标记的识别和多目标跟踪。此外, 最新版的 Vuforia6.0 还支持对手势的跟踪、Vu Mark (完全定制化的可附着于任何表面的图片, 类似商标) 、智能眼镜和云服务。Vuforia 还
11、提供工具用于创建和管理目标图以及扫描实体生成 3D 图形。Vuforia 有收费和免费两个版本, 免费版有水印并只支持部分功能。AR Toolkit。AR Toolkit 是一款有着悠久历史的开源 AR SDK。它支持 i OS、Android、PC、Mac OS 和 Linux 等多个平台的开发, 也提供了支持 Unity3D的插件。AR Toolkit 能快速准确地检测并跟踪传统的方形标记、二维码、多标记和周围环境中的自然标记。AR Toolkit 的最大优势是其完全免费 (严格说是开源) , 可用于开发人员学习和研究 AR 低层技术。此外, JSAR Toolkit 是 AR Toolk
12、it 的 Java Script 移植版, 支持 Web 端开发, 提供了比较简单的特征点识别功能。Wikitude。Wikitude 一样支持 i OS、Android 和部分智能眼镜的开发, 也提供支持 Unity 3D 的插件。Wikitude 有商用版和免费版, 免费版的图片上会有水印。与其他 SDK 不同的是, 除了基于原生平台的开发外, Wikitude 还提供了类似 Java Script 的编程接口, 让使用者能方便地实现跨平台开发。从功能上讲, Wikitude 的解决方案包括图像识别和 3D 物体跟踪、3D 模型渲染、视频叠加。需要特别指出的是, Wikitude 还支持基
13、于地理位置的识别, 基于这种技术的导航软件, 用户看到的不只是地图, 还有前方街道的实时视图。除了上述国外的AR SDK 外, 国内的 AR 平台近来也发展迅速。Easy AR。Easy AR 是上海视辰信息科技的产品, 最早的 1.0 版发布于 2015 年10 月。它支持多个平台的开发, 包括 i OS、Android、Mac OS 和 Windows, 提供 Unity 3D 插件。Easy AR 支持平面图形和二维码识别, 多个本地目标的加载和视频播放。Easy AR 还在继续发展, 未来计划支持更多特性, 包括 3D 物体识别、人脸识别、支持智能眼镜和云打包技术。Easy AR 目前
14、是免费的, 无水印。Easy AR 内部使用了一些可被商用的开源软件, 因此使用 Easy AR 的衍生产品也应加入这些软件的 LICENSE。Hi AR。Hi AR 是亮风科技打造的新一代 AR 平台。支持 3D 模型和视频。目前只发布了支持 Unity 3D 的 AR SDK。支持 Android、i OS 和云服务的 SDK 将在近期发布。除此之外, 常用的 AR SDK 还包括:Realmax、Dfusion、Catchoom、Xloudia、IN2AR、ARLab 和太虚 AR 等。AR 在媒体领域的潜在应用AR 技术已应用到旅游、商业、家居、教育、娱乐游戏、医疗、军事、工业等领域,
15、 给用户带来一种全新体验。在媒体相关领域 AR 技术能做些什么呢?在 2016 年里约奥运会前夕, 腾讯公司推出了采用 AR 技术的全民奥运圣火传递活动。QQ 用户可以通过使用手机扫描 AR 识别图或者寻找身边火炬手的方式领取“火种”, 领取后手机屏幕上就会出现一只拿着奥运火炬的 QQ 企鹅。这是国内社交软件媒体中首次使用 AR 技术。从本质上讲这是一种广告, 但由于使用了AR 这种前沿领域的技术, 为用户提供了一种全新体验, 因此取得了良好效果, 是一次非常成功的营销。2016 年 7 月, 央视网报道说, “中央电视台在新闻拍摄与制作上首次尝试 AR技术, 成功应用于南海仲裁案 FAQ故宫
16、端门数字馆World Innovation等多个节目制作中, 并广受好评。”此外, 中央电视台还在 2016年的 G20 峰会的报道中使用了 AR 技术。采用 AR 技术是对传统报道技术很好的补充, 实现视觉上的人机交互, 在真实环境中体验“身临其境”的报道效果。AR 技术也为传统纸媒带来了新的机遇。纸媒由于受材料和版面的限制, 仅能向读者传达以文字为核心的内容, 并配以相应的静态图片。这种单一形式呈现主题的方法已经很难满足读者对动态信息的需求。AR 技术则能够让纸媒上的文字“活”起来, 让图片“立”起来。2012 年, 成都商报发布了“拍拍动”移动终端应用软件, 这是国内平面媒体首次利用 A
17、R 技术, 读者用手机对准报纸上标有“拍”字的图片, 就能在手机中看到相应的视频、三维动画等多媒体信息, 并与之互动。AR 技术为读者提供了一个全新的视听新环境, 让用户在阅读报纸杂志时就能达到上网或看电视的效果, 完成对传统纸媒的融媒体升级, 形成新的传播链。参考文献1余艳红.增强现实技术的研究现状及发展趋势J.湖南大众传媒职业技术学院学报, 2016 (1) . 2增强现实 (AR) 系统组成及实用领域综合分析OL.百度文库.http:/ XBzkadbva-h HH2Vq Ussy7Kx C3Pffw KISDt0UDPeli CJy7w BTx N_d KVSle VM8Tw2t1k Hk27he Lz Hh Us Q79J325-NY2Hut Q41Y59Nyt K. 3央视新闻报道首次探索运用 A R 技术OL.http:/ Cn Se Wx H3d9p Jr OJn160701.shtml. 4拍拍动OL.http:/