本文由 Matt Miesnieks 发表于 Super Ventures Blog,雷锋网得知 Matt Miesnieks 目前为投资公司 Super Venture 合伙人,曾任职于三星、Dekko、Layar 等公司。
通过这篇文章,我们能了解到:
ARKit的基本技术原理:视觉惯性测量(VIO)系统、平面检测
ARKit的两大神秘之处:单目摄像机3D成像、计量尺度获取
ARKit、Tango、Hololens技术对比
开发人员如何使用ARKit
雷锋网将全文整理如下。
今年,苹果公司在 WWDC 大会上发布的 ARKit 在整个 AR 生态中引起巨大轰动。开发者发现,这是他们第一次能将一款强大的 AR SDK 广泛使用于自己的应用,不再需要什么标记点、初始化、深度摄像头,甚至是专门的创作工具。毫不意外,ARKit 让开发者们集体开启各种 AR demo 秀。
但是,很多开发者不清楚 ARKit 如何工作,也不了解为什么 ARKit 比于其他 SDK 更好。从底层技术看ARKit,可以帮助大家了解当前版本 ARKit 能做什么,了解 ARKit 需要改进的地方以及为什么需要改进,并且还可以帮助我们预测未来何时, Android 系统及头戴式显示器(VR 或 AR)可以支持 ARKit 类似的功能。
目前为止,我在 AR 领域工作 9 年了,过去曾研发出与 ARKit 相似的技术,但当时并没有合适的硬件可支持这个技术。作为内部人士,我了解这些系统是如何构建的,以及为什么构建成现在的样子。
这篇博文试图向那些非技术人群解释一些专业的技术问题,并不是面向计算机视觉工程师。文中,我用简单的话来解释 ARKit,但不一定 100% 符合科学的解释,不过我希望至少可以帮助人们加深对于 ARKit 的理解。
ARKit 基于什么样的技术?
技术上,ARKit 配备视觉惯性测量(VIO)系统,带有简单的 2D 平面检测。具体来说,VIO 系统会实时追踪你在空间中的位置,也就是 6 自由度(DoF)动作,比如说,屏幕每帧画面刷新之间,你的动作会被重新计算,画面的刷新率为每秒 30fps 或以上,而且这些计算会同时进行两次。
第一次是,通过将现实世界中的点与摄像头传感器每帧画面像素点相匹配,你的动作会被视觉系统追踪,进行一次计算。第二次是你的动作被惯性系统追踪,主要通过加速度计和陀螺仪两个惯性测量单元(IMU)实现。
然后,卡尔曼滤波器(Kalman Filter)将 VIO 系统和惯性系统的输出进行整合,从而预测出你的最佳“真实”位置(称为Ground Truth),并且由 ARKit SDK 发布你的最新定位。就像汽车的里程表显示车辆的驾驶距离一样,VIO 系统记录 iPhone 手机在 6 DoF 空间中经过的距离。6 DoF 表示沿着 xyz 三个方向的平动,加上绕三个轴的俯仰、偏转及滚动。
VIO 系统最大的优势就是,即使用户动作加速的情况下,IMU 依旧可以每秒读数 1000 次。IMU 每次读数之间,航位推算法被用来计算设备的运动。这时,航位推算法更像是一种猜测,就像是,我让你往前买一步,然后猜猜这个步子有多大,你便会用航位推算法来预测步子的距离。(后面我将详细介绍这种预测是如何实现高度准确性的。)惯性系统产生的误差会随时间累积,所以,IMU 每帧画面所间隔的时间越长或者惯性系统使用时间越长,而且还没有 VIO 系统配合的时候,动作的追踪也将越来越偏离实际的动作情况。
视觉/光学测量以相机画面帧速率进行,通常为 30fps,并且基于每帧场景变化的距离。光学系统通常会随着距离的增加,而不断积累误差,时间也会一定程度上影响光学系统的准确性。所以你行动的距离越远,时间越久,误差越大。好消息是,一个追踪系统的优势可以抵消另一个系统的劣势。
视觉和惯性跟踪系统是完全不同的测量系统,没有相互依赖关系。这意味着相机可能被遮盖,或者可能看到的是几乎没有光学特征的场景,例如一面白墙,而惯性系统这时可以“加载”几帧画面。相对地,设备处于静止的状态下,视觉系统提供的动作追踪信息比惯性系统更加稳定。卡尔曼滤波器不断选择最佳动作信息,追踪效果也就更加稳定。
VIO 系统已经出现很多年了,在行业中的认可度很高,并且市场上不少设备也配备了 VIO 系统。所以苹果 ARKit 使用 VIO 系统并不意味着创新。那么到底是什么技术让 ARKit 变得如此强大呢?
ARKit 的第二个关键点是配备简单的平面检测。这个技术十分必要,你需要地面作为参照物来表示位置信息,否则物体会漂浮在空中。任何 3 个点可以定义一个平面,根据光学系统检测到的特征点(demos 中看到的点),通过算法将特征点平均化,便得到了参照平面。
如果光学系统选取的特征点足够多的话,你便能预测到真实的平面。这些特征点通常被称为“点云”,所有的特征点形成稀疏的点云,用于光学跟踪。稀疏点云仅仅需要少量的存储内存、短暂地使用 CPU。在惯性系统的支持下,光学系统即使检测少量的特征点,也可以正常工作。点云和密集点云是不同的,密集点云看起来更加接近真实感(目前有人正在研究的使用密集点云进行跟踪,这更复杂)。
ARKit 的两大“神秘之处”
有人会把 ARKit 称为 SLAM ,或者使用术语 SLAM 来指位置跟踪。在此澄清一下,SLAM 是一个相当广泛的术语,就像“多媒体”这个术语一样。“追踪”本身就是一个通用的术语,使用“测距”更具体,但在 AR 领域,使用“追踪”来表达即可。有很多方法可以实现 SLAM,追踪踪只是 SLAM 系统的一个组成部分。 我认为 ARKit 是一个轻型或简单的 SLAM 系统。Tango 或 Hololens 的 SLAM 系统除了距离测量外,还有其他很多其他特征。
ARKit 存在两大“神秘之处”:一是,如何通过单目镜头获得 3D 效果;二是,如何获得计量尺度(像那个卷尺测量 demo 一样)。答案在于“非常好地”移除 IMU 产生的误差,即让航位推算法实现高精度地预测。当实现这点后,便会发生以下的效果:
为获得 3D 效果,需要从不同角度获得 2 个场景视图,进而通过立体计算得到你所在的空间位置。这就是双眼如何看到 3D 图像,以及为什么一些跟踪器要要依靠立体摄像机。如果有两台摄像机,可以容易计算摄像机之间的距离,同时捕获帧画面。ARKit 为什么仅仅使用了一个摄像头便获得了 3D 效果呢?是因为一个摄像头可以捕获一帧画面,而后摄像头移动捕获第二帧画面。
使用 IMU 航位推算法计算,便可计算出两帧画面之间的移动距离,然后正常计算出立体画面。实际上,你可能捕捉更多的帧画面进行计算,从而获得更高的精确度。如果 IMU 足够准确,两帧画面间产生的“移动”可以仅仅通过手握拳后手臂微小肌肉群的运动来检测,这看起来像魔术一样神奇。
系统需要依赖于 IMU 航位推算法来获得计量尺度。通过 IMU 给出的加速度和时间测量值,可以计算出速率并获得 IMU 每帧画面之间的距离。数学运算并不难,困难的是消除 IMU 误差,以获得近似完美的加速度测量值。一个微小的错误,在画面每秒刷新 1000 次的情况下,持续几秒钟后可能会导致 30% 甚至更大的计量尺度误差。令人惊讶的是,苹果 ARKit 已经把误差下降到 10% 以下。
Tango 、 HoloLens、 Vuforia 等 SDK 怎么样?
Tango 只是一个品牌名,而不是真正的产品。Tango 包括硬件参考设计(RGB,鱼眼镜头,深度相机和CPU / GPU规格),还参与 VIO(运动跟踪),稀疏映射(区域学习)和密集 3D 重建(深度感知)等软件。
HoloLens 具有完全相同的软件栈,另外包括一些 ASIC(微软称之为全息处理单元)优化 CPU / GPU 卸载处理并减小电耗。
Vuforia 与 ARKit 几乎是一样的,只是 Vuforia 的硬件是独立的。
上述 SDK 均使用相同的 VIO 系统,而且,Tango 和 ARKit 使用的均为 FlyBy 最初发布的代码库!HoloLens 和 Tango 都不使用深度相机进行追踪,那么到底是什么技术设备让 ARKit 大放异彩呢?
答案是 ARKit 并不比 HoloLens 好,我甚至认为 HoloLens 的跟踪系统是市场上最好的,但 HoLolens 的硬件普及并不广。微软可能会在 Windows 系统的智能手机中安装 HoloLens 跟踪系统,但我相信出于商业原因,微软不会这样做:
因为这样可能会增加生产和时间成本,为一款销量或许很少的手机校准传感器。而且,微软版本的 ARKit 也可能无法说服开发者放弃使用 iOS 或 Android 系统。
12 个月前,Google 本就可以轻松交付能够在 Android 系统上运行的 Tango 手机,但 Google 没有这样做。如果 Google 早早将 Tango 发货 ,那么 ARKit 的问世也只是紧跟趋势,而非重大突破。
我认为,Google 公司不想为每家 OEM 都进行特定的传感器校准过程,而且每家 OEM 厂商生产的 Tango 版本都不一样,Google 也不想在一些较大的 OEM 厂商(三星、华为等)中选择。所以,Google 为 OEM 厂商提供了硬件的参考设计,OEM 厂商可以自行选择“使用,或者不使用”。(当然,事情并非这么简单,这是 OEM 厂商反馈给我的关键点。)
随着 Android 智能手机硬件商品化,相机和传感器堆栈是 Android 手机最后实现差异化的地方,所以 OEM 厂商无法满足 Google 的要求。Google 认为,深度相机是手机的一部分,但是深度相机增加了手机成本,这也是 OEM 厂商拒绝 Google 的另一个原因!
自从 ARKit 发布以来,市场已经发生了变化。OEM 厂商要么寻找 Tango 的替代系统,要么接受 Google 的硬件参考设计,然后实现平台控制。这也是有意思的变化。
总的来说,ARKit 更好的原因在于:
苹果公司可以负担得起将 VIO 算法紧密耦合到传感器上,并花费很多时间来校准 VIO 系统,以减少计算空间位置时产生的误差。
值得注意的是,大型 OEM 厂商有一些替代方案。可以选择其他的追踪方案,像 ORB Slam、OpenCV 等,但几乎都是光学追踪器,都配有单个 RGB、立体声、深度相机,有些使用稀疏点云,有些使用密集点云。有许多创业公司正在研发追踪系统,研究增强像素也是一个很好的方向,但任何 VIO 系统最终的竞争都会集中到硬件模型和校准上。
开发人员如何使用 ARKit
你或许已经有一个可以支持 ARKit 的手机了。首先,要了解使用 ARKit 开发内容,与以往开发一款手机 APP 有巨大的差异:一个是你不用控制场景,一个是你要控制每帧像素。
然后,想想 Tango 或 HoloLens,看看当你的内容与无法控制的场景中的 3D 模型交互时,会发生什么。
这其中的学习难度较大,比从网络到移动或从移动到 VR 更有难度。你需要彻底重新思考应用程序的如何运行以及用户体验(UX)的意义是什么。我现在看到很多 ARKit 的 demo,四年前看到它们是基于 Vuforia 创建,再往前四年就是 Layar (2010 年荷兰公司 SPRXmobile 推出的全球第一款 AR 手机浏览器)。这几年来,我 看到了几乎所有类型的 AR APPs 的例子,我很乐意为大家提供支持和反馈。
我常常鼓励开发人员勇于构建新奇的 APP。一些蠢蠢的 APP 一上线便大获成功,但通过 AR 硬件开发让用户是满意的案例也十分具有挑战。
能构建良好追踪系统的人并不多
直观地说,目前只有少数人能构建好的追踪系统。那些具备交叉学科背景的工程师们才能研发出的融入单目 VIO 最好的系统,用于手机追踪的解决方案。
在二十世纪中期,VIO 系统最初由波士顿军事/工业供应商 Intersense 使用。Leonid Naimark 是该技术的创始人之一,2011 年时加入我创建的 Dekko 公司并担任首席科学家。由于传感器限制,Dekko 证实了 VIO 无法在 IPad 2 上运行,Leonid 重回军工行业,但 Dekko 公司的 CTO Pierre Georgel 如今已成为 Google Daydream 团队的高级工程师。
我 在 Super Ventures 的合作伙伴 Ori Inbar 创立了 Ogmento。Ogmento 公司后改名为 FlyBy,FlyBy 团队成功地构建了基于 iOS 的VIO 系统,还增加了鱼眼相机。该代码库已经授权给 Google,成为 Tango 的 VIO 系统。苹果公司收购 FlyBy 之后,FlyBy 的 VIO 系统代码库成为 ARKit VIO 的核心。
FlyBy 公司的CTO Chris Broaddus 继续为 Daqri 公司研究追踪系统,现在他已经加入硅谷的神秘无人车初创公司 Zoox。2007 年,第一个移动 SLAM 系统由 Georg Klein 在 Oxford Active Computing lab(PTAM)开发,Georg Klein 和 David Nister 一同为 HoloLens 建立 VIO 系统,David 离开后还为特斯拉创建了自动驾驶系统。
Georg 带的博士生 Gerhard Reitmayr 主导了 Vuforia 的 VIO 系统的研发。 此前担任 Vuforia 公司副总裁的 Eitan Pilipski,现在是 Snap 公司的 AR 软件工程师。
牛津大学、剑桥大学和伦敦帝国学院研发团队的核心成员研发了 Kinect 追踪系统,现在也成为 Oculus 和 Magic Leap 追踪系统开发的负责人。
有趣的是,我无法说清,当前致力于 AR 追踪系统研发的初创公司,到底是由哪个学科的人才主导。因为,这些创始人不管是机器人背景,或是其他计算机视觉背景,已经不足以支撑在一个更大领域范围应用的追踪系统的研发。
后面,我会谈谈当代科学家们正在开展的工作。
归根到底是统计学问题
AR 系统没有“可行”或者“不可行”一说。 大部分情况下,AR 系统可以很好的完成工作。AR 系统力求变得“更好”,也是推动统计学发展的事情。
故而,不要完全相信 AR APP 的演示,特别是发布于 YouTube 上,显示出惊人的效果的 AR APP。在精心安排的环境中所表现的效果与现实生活中普通用户所能获得的效果之间,往往存在很大差距。但是智能手机或 VR 应用的演示通常并不存在这种问题。所以,观众常常被愚弄。
这是一个具体的技术示例,为什么统计数据最终可以确定系统的运行情况。
在上面的图像中,有一个网格,表示相机中的数字图像传感器。每个格子都是一个像素点。为了稳定追踪,在假设设备完全静止的情况下,每个像素应该在现实世界中的有一个相匹配的对应点。然而,右侧图像显示光子不是那么的听话,各种光子会随意落到任何地方,每个像素点是光子的总数。场景中的光线变化(太阳光穿透云层,荧光灯闪烁等)也会改变传感器中的光子组成,现在传感器要对应现实世界的不同像素点。那么,这样的情况下视觉追踪系统就认为用户移动了!
所以,各种 ARKit demo 中光点闪烁时,系统必须确定哪些点是“可靠”的。系统对这些点进行三角测量来计算用户的空间位置,求平均数后得到对实际位置的最佳估计数。因此,为确保错误的统计完全被移除,便需要研发更精确的系统。这就需要相机硬件堆栈(多个镜片和涂层、快门和图像传感器等)、IMU 硬件和软件算法之间的严密集成和校准。
硬件与软件的集成
其实开发 VIO 系统并不难,而且 VIO 系统的算法已经公开了,还有不少的应用案例。但是,很难把 VIO 系统良好地运作起来。我指的是,惯性和光学系统完全融合创建立体地图,在低精确度时确定度量标度。
例如,在我创办的 Dekko 时,应用的案例中要求用户开始按照具体的要求移动,然后手机前后移动约 30 秒才能使惯性和光学系统融合创建立体地图。建立一个优良的惯性追踪系统需要经验丰富的工程师。然而,全球只有约 20 名工程师具备必须的技能和经验,而且这 20 名工程师中大多数从事巡航导弹追踪系统,或者火星漫游者导航系统等。
即使你可以聘请到其中一位工程师,为了最大限度地减少误差,仍然需要硬件和软件的紧密结合。这意味着可以通过软件准确建模 IMU,详细了解整个摄像头以及每个组件的详细规格,更重要的是 IMU 和摄像头都需要非常精确地同步。
系统需要准确知道 IMU 读取的数据哪个对应开始画面,哪个对应结束画面。这对于两个系统的关联至关重要,这一点最近才得以实现,因为硬件 OEM 厂商认为没有必要投资于此方面。这就是 Dekko 公司花费了很长时间,才把基于 iPad 2 系统的硬软件融合的原因。第一个Tango 手机是第一台实现精准时间同步的设备,并且是第一款具备良好追踪系统的消费级手机。
目前,追踪系统采用的来自 Qualcom 等公司的芯片都有一个同步的传感器集线器,适用于所有组件,这意味着 VIO 系统在大多数当前设备上可行,并配有相应的传感器校准。
由于密切依赖硬件和软件,在没有 OEM 厂商的深度支持下,软件开发人员几乎不可能构建一个优良的系统。Google 投入了大量资金,让一些 OEM 厂商支持 Tango 的硬件规范, 微软、Magic Leap 等公司也正在努力创建自己的硬件。苹果之所以如此成功地发布 ARKit,正是因为 ARKit 能够很好地集合硬软件。
光学校准
为了使软件精确地把摄像机的像素点与现实世界中的点相匹配,摄像机系统需要精确校准。存在有两种类型的光学校准:
第一种为几何校准:使用相机的针孔模型来校正镜头的视场和镜头效果。由于镜头透镜的影响,基本所有图像都会变形。大多数软件开发人员可以在没有 OEM 厂商的帮助下,通过使用基于标准棋盘格和基本公开摄像头参数校准。
第二种为光度校准:这种校准方式使用更多,通常需要 OEM 厂商参与图像传感器本身的细节优化及内部镜头涂层的使用。此校准用于处理颜色和强度映射。例如,拍摄星空的望远镜所连接的摄像机,需要知道传感器上光强度的轻微变化是否确定是星星,或者仅仅是传感器或透镜产生的误差。校准使得 AR 追踪器具有更高的确定性,因为传感器上的每个像素点都对应于真实世界的点,所以光学追踪更加精准,产生的误差更小。
在上面的图片中,各种 RGB 光点落入图像传感器上的“像素桶”中,这个过程很好地说明了问题。现实世界中点产生的光点通常落在几个像素的边界上,这些像素点将平均光点的密集度。用户运动、或场景阴影或闪烁的荧光灯等微小的变化,都会改变与像素点对应的现实世界点的变化。这时,所有的光学校准都尽可能地消除产生的误差。
惯性校准
对于 IMU 来说,测量加速度比测量距离或速率更加重要。IMU 的读取错误随着时间的推移不断累积,产生误差的速度非常快!校准和建模的目标是确保距离的测量在每秒钟 X 等分时间下的精度足够高。理想情况下,这个时间段要足够长,以减少当镜头被遮盖或场景中发生其他情况时,导致摄像机丢失对几帧画面的追踪。
使用 IMU 测量距离称为航位推算。这基本算是一个猜测,对 IMU 收集的数据进行建模,确定积累错误的方式,然后编写过滤器来减小误差。想象一下,如果你被要求迈出一步,然后猜测迈出的步子有多大。只猜测迈出一步的距离会产生很高的误差。但是,如果你反复迈出千步并猜测每一步的距离,所产生的误差便会非常小。因为你对于踏出哪只脚、地板的种类、鞋子的款式、移动速度的快慢、身体状态的好坏等等熟知,那么你最终的猜测便会非常准确。基本的 IMU 校准和建模便是这一原理。
数据有很多误差来源。机器臂通常以完全相同的方式重复地移动设备,捕获 IMU 的输出并写入滤波器,直到来自 IMU 的输出与来自机器臂的移动精确匹配。为进一步减小额外的误差,Google、微软甚至在国际空间站(ISS)及“零重力飞机”在微型重力环境下进行校准。
实际上,达到真正的精准度,比嘴上说说难的多。OEM 厂商必须对所有设备进行校准,即使许多设备有不同的 IMU(例如,Galaxy 7 可能有来自 Invensense 和 Bosch 的 IMU,当然 Bosch 不适用于 Invensense)。当然,这是苹果相对于 Android OEM 厂商的另一个优势所在。
追踪技术的未来
如果 VIO 是今天我们能实现的,那么今后将如何发展,会让 ARKit 看起来很多余吗?令人惊讶的是,VIO 系统将一直是数百米范围内最好的追踪方法(对于更长距离的追踪,VIO 系统需要融合 GPS,重新定位地标识别)。优化 VIO 系统的原因是:即使其他光学系统像 VIO 一样准确,其他系统的 GPU 或摄像头仍然需要耗费电池,而这对头戴显示器影响很大。所以,单目摄像头的 VIO 系统是最准确,最低功耗,最低成本的解决方案。
深入学习确实对研究追踪系统有重大影响。目前为止,基于追踪系统的深度学习大约产生 10% 的误差,其中顶级的 VIO 系统的误差只有个位数,这一数字还在变小,并且将优化室外重新定位。
深度摄像头能在各个方面优化 VIO 系统,其中对于特征点不明显的情况,精确测量地面实况和尺寸,以及边缘追踪都能得带很好的改善。但是耗电量大,需要以低帧率运行,并且每帧之间使用 VIO。深度摄像头不适用于户外,因为摄像头工作时产生的红外线会被阳光生成的红外线所干扰。摄像头的工作范围也取决于功耗,这意味着手机的工作范围可能只有几米。深度摄像头的 BOM 成本很高,因此 OEM 厂商将避免在大批量生产的手机中安装深度摄像头。
双摄像头或鱼眼镜头有助于看到更大的场景,可以捕获更多的光学特征。例如:普通镜头可能只看到白色的墙壁,鱼眼镜头下可以看到天花板的图案和地毯,Tango 和 HoloLens 均采用了这种方案。而且,双摄像头或鱼眼镜头可获得深度信息,其运算成本要低于 VIO,但是 VIO 使用低成本的 Bom 和低功耗便能获得深度信息。
由于双摄像头手机的摄像头(即便是 HMD)所处位置很接近,所以摄像头的精确范围对于深度计算来说,非常有限。相隔几厘米的摄像头只能精确几米范围内的深度。
而从头到尾追踪最关键的是,支持更大范围的追踪,尤其是支持户外数钱公里的范围追踪。在这点上,AR 追踪和无人驾驶跟踪几乎没有区别,只是 AR 系统使用较少的传感器,耗能也较低。最终,任何设备都将适用于大范围追踪,云服务也是必须的,故而,Google 最近宣布了 Tango 的视觉定位服务意图也在此。未来几个月我们将看到这些变化,这也是每个人现在都关心 3D 地图的原因。
AR 计算机视觉的未来
6 Dof 位置追踪技术将在未来 12-18 个月内完全商品化,覆盖所有设备。现在还有哪些问题亟待解决呢?
3D 重建系统,HoloLens 称之为空间映射(Spatial Mapping),Tango 称之为深度感知(Depth Perception)。3D 重建系统能够找出场景中真实物体的形状或结构。这个技术允许虚拟内容隐藏于现实世界后面。
这让人们出现概念混淆,认为 AR 便是“混合”现实,其实是增强现实,多数 AR demo 并没有 3D 重建系统的支持,所以 AR 内容只是覆盖于所有真实世界物体的前面。
3D 重建系统通过从场景中捕获密集点云(今天使用深度摄像头),将其转换为网格,将“隐形”网格连同真实世界的坐标导入 Unity 中,然后当真实世界的景象出现在摄像头中时,把那些网格放置在真实的景象上。
这意味着虚拟内容可以与现实世界互动。注意 2D 版本的ARKit 通过检测 2D 平面实现,这是最为基本的要求。倘若 ARKit 没有参照地面,用 Unity 制作的内容肯定会肆意“漂浮”。
图片中,Magic Leap 公司演示了一款躲在桌腿后面的机器人。我们不知道桌子腿是实时重建,还是预先建模,再把虚拟机器人放在真实桌子腿的后面。
上述提到的深度摄像方面问题在 3D 重建上仍然存在,这就是为什么目前无法广泛使用。研究人员正在研究,让单目 RGB 摄像头支持实时的照片级 3D重建。这个技术至少需要 12-18 个月才能应用于产品中。也是因为这样,我才认为“真正的”消费级 AR 头戴设备依旧离我们很远。
在 2012 年,Dekko 的 3D 重建系统可在 iPad 2 上工作。我们不得不将网格显示出来,否则用户不敢相信他们所看到的(追踪系统可理解现实世界)。图中越野车刚刚完成了跳跃,部分隐藏在纸巾盒后面。
3D 重建之后,有许多有趣的研究注解 3D 场景。你现在能看到的几乎所有的计算机视觉深度学习使用的是 2D 图像,但对于AR(汽车、无人机等),我们需要在 3D 中从语义方面理解这个世界。
图片为一例 3D 场景语义解释。 底部是原始图,中间是 3D 模型(可能由立体相机或 LIDAR 构建),最上面是通过深度学习的图像分割,所以我们能从中分辨出人行道。这对《Pokemon Go》也十分有用。
然后,我们需要弄清楚,如何将所有惊人的技术扩展到实时支持多个用户。这是终极目标。
随着 3D 重建所需容量越来越大,我们需要了解如何将其托管至云服务,让多个用户共享并扩展模型。
AR 其他技术的未来
AR 其他技术的未来说起来太广泛,先谈谈要进一步发展的技术:
光学:视野范围、镜头尺寸、分辨率、亮度、焦深、聚光度等等都需要解决。
我们会看到一些“过渡性”的 HMD 设计,它们受制于一些关键参数,只试图解决一个问题,如社交性,或是追踪技术,或是企业用户案例,以及其他,之后我们才能看到最终的消费级产品方案。
渲染:使虚拟内容与现实世界融合。
确定真正的光源,将其与虚拟世界相匹配,使阴影和纹理看起来很合理。这个技术是好莱坞 SFX 多年来一直努力的方向。但是对于 AR 来说,需要在手机上实时完成,并且不会影响到真实世界的光或背景,即便是琐碎的事情也很重要。
输入:这方面还有很长的路要走。
研究表明,多模式输入系统效果最佳(有谣言说苹果正在做这方面的事情)。多模式意味着各种各样的输入“模式”,如手势、语音、计算机视觉、触感、眼睛跟踪等,为最好理解用户意图,AI 也应该一起考虑进去。
图形用户界面(GUI)和应用程序:目前还没有我们想象中的 AR APP。
我们只想看看 Sonos (无线智能音响)在设备上显示控件,并不想选择 Sonos 按钮。而且我们一直关注的是视野范围内画面,和与实现世界的交互,没有人知道该如何呈现,但肯定不会是 4 x 6 的网格图像。
社会问题:只有 Apple 和 Snap 知道如何营销时尚,AR HMD 的销售可能只是人们最求时尚。这个问题或许比所有技术问题都难以解决。