哔哔哔,翻得不好不要逼逼

关于 Placenote我们之前已经介绍过了两次。但都是着重介绍了他们的技术在室内定位方面的应用。这次Placenote的出品公司 Vertical的CEO写了一篇博客,介绍了他们的技术在于解决AR,MR中遮挡问题的应用价值。还比较有趣,最近也找到了另外几家致力于解决遮挡问题的公司。之后会慢慢介绍。

Neil Mathew

增强现实谜题中最大也是最难以捉摸的部分是遮挡。

换句话说,就是隐藏真实事物背后的虚拟物体的能力。

这篇文章是关于为什么在AR中被遮挡是如此的困难,当你看到一个纯粹的真实或纯粹的虚拟世界,当它满足一些基本原则的时候,比如重力,灯光,阴影等等。你倾向于接受这个世界的“规则”,而感受到沉浸感

当这些规则被打破的时候,你会注意到,因为它很不和谐,感觉就像“看起来不太对”。、

这就是为什么当你看到电影中那些不怎么成功的特效,会感到很可笑的原因。

在虚拟现实中,很容易让人感受到沉浸感,因为你完全控制了场景中的所有元素。

不幸的是,作为一个AR开发人员,您没有这种奢侈的条件,因为您的应用程序的大部分屏幕空间(即真实的世界)完全超出您的控制范围。

在手机领域,苹果的ARKit已经实现了令人难以置信的快速运动追踪,以及现实的照明和阴影,但它任然缺乏对于遮挡的处理。

下面的截图看起来很奇怪吗?

这是因为龙看起来离椅子越来越远,但仍然出现在椅子的前面。

这不仅仅是移动AR的问题。

这也是目前市面上所有的头显示都存在的问题。

遮挡的目标是在创建AR场景时保持人类视线的规则。

这意味着任何在真实对象背后的虚拟对象,都应该被“遮挡”或隐藏在真正的对象后面。

那么,这是如何在AR中完成的呢?

基本上,我们有选择性地阻止虚拟场景的某些部分呈现在屏幕上,这需要基于对真实世界的3D结构的了解。

做到这点需要3个主要步骤

1.感知真实世界的3D结构。

2.重建世界的数字3D模型。

3.将该模型显示为隐藏虚拟对象的透明遮罩

但这为什么这么难呢?

假设您对真实环境中的所有对象进行了良好的重构,那么就只需要将该模型渲染为您场景中的透明遮罩就行了。

之后的事情就开始变得难以处理了。考虑一个普通的街头场景。

有人类,车辆,树木和各种各样的物体在不同的距离上。

在更远的地方,有一些更大的建筑,比如桥梁和建筑,每一个都有自己独特的特点。

现实世界是一个非常复杂动态的3D环境

最要创建一个逼真的遮罩最困难的事情实际上是重建了一个足够好的真实世界模型来应用这个遮罩。

这是因为目前没有可用的AR设备能够精确或快速精准地感知周围环境,从而实现真实的遮挡效果。

感知3D结构最终归结为一个重要的能力 -深度感知能力。

深度感应器有多种解决方案,常见的有结构光、飞行时间和双目立体视觉

在硬件方面,结构的光和飞行时间都涉及到红外投影仪和传感器对,而双目方案则需要两个摄像头在一个固定的距离,指向同一个方向。

大体上,以下是他们的工作方式:

结构光传感通过将红外线模式投射到三维表面并利用变形来重建表面轮廓来实现。

该传感器通过发射由其视野内的物体反射的快速脉冲光来工作。

图像传感器使用反射光中的延迟来计算每个像素处的深度。

立体摄像机通过测量两个相机之间的像素的位移来模拟人的双目视觉,并将其固定的距离分开,并利用这个距离来对场景中的点进行三角测量。

当然,所有这些传感器都有其局限性。

基于IR的传感器在室外工作的时间较长,因为明亮的阳光(大量的IR)会被冲掉或者增加测量的噪音。

立体相机在户外工作和消耗更少的能量是没有问题的,但是它们在光线充足的地方工作得最好,有很多的特点和鲜明的对比。

由于所有这些传感器都在基于像素的测量上工作,因此测量中的任何噪声或误差都会在深度图像中产生空洞。

此外,在今天的手机和头显设备上,迄今为止实现的最大探测距离是3-4米。

下面的图片是一个用立体相机创建的深度地图的例子。

这些颜色表示距离照相机的距离。

可以明显看出,在近处测量比较精准而在远处噪音逐渐增大模糊而将数据舍弃

3D探测完成,3D感知的任务还没结束。

下一步是采用2D深度图像,将其转换为3D点云模型,其中深度图像中的每一个像素都能获得相对于相机的3D位置。

接下来,所有相机相关的点云都融合了相机运动的估计,从而在传感器周围创造出一个3D点云图。

下面的Gif图展示了完整的点云映射过程。

现在你已经了解了3D感知的完整流程,让我们看看这是如何转化为实现遮挡的

使用深度摄像头处理遮挡

有一些方法可以使用3D深度信息来遮挡虚拟对象。

1.直接使用来自传感器的2D深度图。

在这种方法中,我们将摄像机图像和深度图对齐,并隐藏应该位于深度图任何像素后面的场景部分。这种方法并不需要完整的3D重建,因为它只是使用深度图像。

这使得它更快,但有几个问题:

1.传感器只能探测到距离4米的物体。任何进一步的东西都不会被遮挡。

2.深度图有洞,并不完美

3.深度图的分辨率远远低于相机,这意味着缩放和对齐两个图像将创建像素化,参差不齐的咬合边缘。

下面的Gif是一个基于深度图的遮挡示例。当红色立方体移动时,请注意遮挡遮罩中的不规则性。

2.重新构建并使用3D点云模型。

由于点云是真实世界的几何精确地图,我们可以使用它来创建遮挡遮罩。请注意,点云本身不足以遮挡,但可以处理点云以创建基本上适合点图上的表面的网格(如覆盖3D点云的毯子)。网格与点云相比计算密集程度低得多,并且是用于计算诸如检测3D游戏中的碰撞的计算的比较合适的机制

这个网格现在可以用来创建我们需要遮挡场景中的虚拟元素的透明遮罩。

那听起来我们有足够好的解决方案用于遮挡!所以现在的问题是什么?

如今AR设备的限制

我认为目前最成熟的带有跟踪和映射功能的3个 AR设备是Google Tango,Microsoft Hololens和Apple iPhone X.以下是他们的传感器的比较

Google Tango(Google停止支持)
深度传感器 - IR飞行时间
范围 - 4米

微软Hololens
深度传感器 - IR飞行时间
范围 - 4米

Apple iPhone X
面向前方的深度传感器 - IR结构化灯
背对背深度传感器 -立体相机
范围 - 4米

上述所有系统在深度感测方面的主要问题在于,

  • 较差的范围(<4米):移动设备的尺寸和功率限制限制了红外和立体声深度传感器的范围。

  • 低分辨率:场景中较小的物体在点云中无法辨别,并且很难实现清晰可靠的遮挡表面。

  • 缓慢的网格重建:当前从点云生成网格的方法对于这些设备上的实时遮挡太慢。

目前,从点云生成网格对于任何平板电脑或头戴式设备上的实时遮挡都不够快。

那么今天的开发人员如何共同合理解决这些问题呢?

你今天怎么能解决遮挡?

完美遮挡是一个难以达到的目标,但在某些情况下我们可以接近它,特别是当我们可以放松实时约束时。如果应用程序允许预先映射环境,则可以使用预先构建的网格作为场景中较大的突出物体的遮挡遮罩,只要它们不移动即可。这意味着您不仅限于深度传感器的4米范围,至少对于静态物体后面的遮挡。移动物体仍然是一个问题,也是现在唯一的解决方案是使用深度贴图遮蔽方法来近距离移动物体,比如双手。

现在从上面的示例网格可以清楚地看到,预建网格的一个大问题是,虽然它们比点云更轻,但它们会使3D内容的复杂度增加10倍以上。

简单的三维网格的方法是用更简单的对象(如墙壁和块体)来包围复杂结构来近似其结构。

在Placenote,我们已经在AR中建造了大型博物馆的导游,我们解决遮挡的方式是手动绘制平面以覆盖空间中可能遮挡我们虚拟内容的特定墙壁。

当然,这种方法假定开发人员或用户会花时间在AR会话之前映射环境。

由于这对于普通用户来说可能有点压力太大了,但它可能在目前的基于位置的AR体验中最好的解决方案,其中地图可以由开发人员预先建立

在极端的情况下,您可能想要在更大的范围内制作处理遮挡的AR体验,例如在纽约市的建筑物中渲染恐龙。也许,实现这一目标的方法是使用来自Google Maps或Mapbox等服务的已知建筑物的3D模型来创建城市规模的遮挡表面。

Sturfee的朋友建立了一种创建城市规模增强现实体验的独特方式,使用卫星图像重建3D建筑物和静态结构。 (Sturfee城市规模增强现实开放试用)

当然,这意味着您需要能够准确定位3D设备,这在这个规模上是非常具有挑战性的。由于GPS慢(1Hz)和高度不准确(5-20米的测量误差),GPS位置对于遮挡不够好。

事实上,室内和室外的厘米级位置跟踪是遮挡的关键组成部分,通过我们与Placenote的合作,我们正在努力建立一个基于云的视觉定位系统,以解决其中一些问题。

未来趋势

虽然预先构建的网格对于绑定到单个位置的AR体验非常有用,但是遮挡移动对象仍需要在大于4米的范围内进行即时深度测量。

创造逼真的AR体验所需要的是一种传感器,它可以产生近乎无限范围的高分辨率深度图。

传感硬件方面的改进无疑可以帮助从IR或立体声传感器获得更高的分辨率和范围,但这些改进可能会达到上限并在不久的将来产生收益递减。

有趣的是,3D感测研究中出现了另一种方法,通过利用深度学习来提高3D重建的速度和质量,将此硬件问题转化为软件问题。

神经网络可能是未来解决遮挡问题的关键。

这种方法使用神经网络,可以在场景中挑出视觉线索来估计三维结构,就像人类估计距离的方式一样。 (即通过使用我们对现实世界中事物大小的背景知识来猜测距离)网络在大型图像数据集上进行训练,并能够分割出场景中的物体,然后识别它们以估计深度。

这意味着,如果我们可以设计神经网络并在足够好的数据集上训练它们,我们可以绕过目前深度感应技术中存在的很多分辨率和范围限制,而不会增加硬件成本。

上面的图像来自一篇论文,该文章探讨了使用神经网络与深度传感器结合来分割和标记场景的方法,以改善生成的地图的质量。

你可以在这里找到这篇论文的全文。

论文地址:http://www.ais.uni-bonn.de/papers/KI_2014_Hoeft_RGB-D_Semantic_Segmentation.pdf

总结

到目前为止,遮挡是AR难题中最大的部分之一,因为它为AR体验带来了现实的最大飞跃。如今的深度传感器速度太慢,实时遮挡的范围和分辨率有限。您可以通过在预构建环境网格的区域构建AR应用程序来解决这些限制。

(联系我们获取Placenote SDK试用,来构建基于位置的AR体验。)

解决未来深度传感器的范围和速度限制的关键可能是深度学习,并且这种方法已经显示出有希望的结果。如果你是一位新的AR开发人员,希望建立引人注目的AR体验,不要让遮挡阻止你。还记得宠物小精灵去吗?在口袋妖怪围棋中的困难导致了一些热闹的AR屏幕截图,遍布互联网,并帮助游戏异军突起。所以玩得开心!

“呐,做 AR VR,最重要的就是开心啦”

梦想重要,开心也重要

当你有有趣的想法时,也要来AR酱上

和我们一起分享啊