最近增强现实越来越被大家熟悉起来。见图一。 现代汽车发布电子用车手册,其亮点是融入了 AR 技术。车主只需拿起手机或平板对准车子,该 AR 系统即能自动识别这是车子的哪一部分,并给出相关的信息。目前,该用车手册涵盖了空气滤清器、智能巡航控制、警示标志、机油、制动液等方面的信息,同时还包含基于增强现实技术的视频、指南。
很多人问我这是用到了什么样的 AR 技术,是不是 SLAM?没错,这里面的确用到了 SLAM 相关技术。更确切地说,应该是 SLAM 框架中的一个重要技术环节:基于模型的追踪技术(Model Based Tracking)。
今天,就让我们来讨论一下这个基于模型的追踪技术技术,我先从整体介绍一下增强现实中的追踪技术。增强现实技术的核心组成部分主要是(图二):显示技术、输入交互技术和识别追踪技术。
显示部分主要是光学成像相关技术,该部分与硬件相关的比较多,这里就不做展开介绍了。输入交互的技术主要涉及语音交互、手势交互等。这个我们会在下一期重点讨论。我认为有了交互技术及空间感知的追踪技术,即可实现了 AR 的基本功能。在这里,我们重点介绍追踪技术。
追踪技术是计算机科学中一个广阔而重要的领域,它在教育、娱乐、工业和制造领域具有广泛的应用。伴随着成像设备和硬件计算能力的发展,当前基于计算机视觉的物体跟踪技术取得了重大的发展。
追踪技术主要分为:
- 光学追踪;
- 内部传感器追踪;
- 超声波追踪;
- 磁力追踪;
- 机械装置追踪。
光学追踪是相对来说成本最低,比较精确的解决方案。它的难点主要在于视觉算法的门槛较高。AR 中的光学追踪分为几种(见图三),在 VR 中 OutsideIn 的方式用的比较多,比如 Oculus、HTC Vive、PS VR用的都是 Outside 进行的位置追踪。但是在AR中,基本都是 InsideOut,比如说 Hololens。当然最近 Oculus 的一体机用的也是 InsideOut 的追踪方式。
InsideOut 比 OutsideIn 更加方便,成本更加低。但目前,OutsideIn 的方式更为精确一些。如在一些工业场景,多使用反光材质的标示点或特殊材质进行 Outsidein 光学追踪。
标识追踪现在用的比较多,比如说大家看到的识字卡片、绘本等都是所谓的标识追踪,其最早的代表就是 ARToolkit 的。但该基于 Marker 的技术需要预先在 AR 场景中粘贴一定的标识,在用户体验和适应性方面具有较大的局限性。为此,基于无标识的 AR 技术是目前发展的方向。其中,无标识别追踪是实现该技术核心问题之一,像是 SLAM 等都是属于这个类别。我们这次主要介绍红色部分的 Model-Based Tracking。
Model-Based Tracking 的主要技术框架如下图四所示,下面将该过程分为建模(Models)、视觉信息处理(Visual processing)、跟踪(Tracking)三个方面,并依次对其进行展开。
1. 模型建立(Models)
模型(Models)的建立主要从目标、传感器和环境三个方面展开。首先对于跟踪目标,需要该目标一些先验信息(prior knowledge),如被跟踪物体的形状、外观、姿态等特性。其次是需要从传感器的角度去考虑,比如如果使用未标定的单目相机,其获取的信息多以 pixel 为单位,若使用立体相机或深度相机,其构建的尺寸信息是 Metric 的,因此不同传感器的选择对被跟踪物体的表征形式会有不同影响。最后是从环境的角度,在基于视觉的跟踪过程中,环境对跟踪的准确性具有很关键的作用,比如在室内光照、环境相对稳定的情况下,重建所得模型就具有更加稳定,能很大程度提高基于模型跟踪的准确性。
当前,在模型建立(models)阶段,主要可分为 Online 和 Offline 两种模型构建技术。Online 在线建模方式:以 SLAM 为代表,其在追踪的同时建立模型,其中追踪和建模是两个相互依赖的过程,其彼此间的误差会相互传递并累加,为保证较好追踪精度,一般需要借助 Bundle Adjustment 等优化方法调整。但目前,该优化方法计算量较大。目前在 PC 端有较好的实现,在移动端尚存在计算能力相对不足的问题。Offline 离线建模方式:将建模和跟踪分开,规避了 SLAM 过程中建模的不确定性,同时克服了建模所需大量运算量的问题,因此该方法能提高跟踪的精度和效率。
目前 Offline 离线建模主要是有两种情况:
(1)已知目标物体的 CAD 形状,如模型在设计制造过程中已有的 CAD 先验知识,在工业应用及企业级别的应用场合,因此多以本情况为主。
(2)通过传感器(如结构光扫描、RGBD、ToF等)逆向获取目标物体的模型信息,然后以此模型作为一个先验知识。在实际的生活应用中,个人参与者不大可能获取已有物体的 CAD 形状,因此只能借助简单的传感器离线获取模型,因此这种离线获取模型的方式更加适用于消费者。
2. 视觉信息处理 (Visual processing)
视觉信息处理主要是提取和关联传感器所获取的目标物体信息,以更新整个跟踪系统的状态。在实际的应用中,我们需要根据被跟踪目标的特性,选择稳定的跟踪线索(如颜色、边界、运动规律、背景信息等等)。
具体在实际应用过程中,是根据构建的模型信息,确定被预处理的对象。如在工业的 AR 等跟踪过程中,多以 CAD 的形状和拓扑信息为处理对象,该视觉信息处理过程即为对形状和拓扑信息的采样提取,和数据关联等。在 2D/3D 领域,多以其各自对应的纹理特征和形状特征为研究对象,整个视觉信息的处理过程是以提取、优化获取构建模型的稳定特征为目标。
目前,该方法可进一步细分为:基于颜色的信息处理;基于关键特征的信息处理;基于轮廓的信息处理和基于模板的信息处理四部分。
3. 跟踪 (Tracking)
当被传感器获取的数据经预处理输入后,即可实现物体的定位跟踪,该过程具体可以细分为检测和跟踪两个阶段。在检测阶段,需要以被跟踪物体的先验信息作为初始值,利用觉信息处理技术获取的模型信息,与输入的数据进行匹配,确定其在空间的姿态,实现对目标的跟踪。
目前针对移动端 6DoF(Degree of Freedom)的跟踪,主流是采用视觉和 IMU 进行融合,实现更稳定的跟踪(如 Tango)。
以上就是我们极少的 model-Based tracking. 以后我们会逐一介绍增强现实技术是如何实现的。