查看原文
其他

HoloLens中SLAM技术揭秘(上)

2017-06-20 微软HoloLens 微软HoloLens

HoloLens把科幻电影中许多全息投影的桥段,真真切切带到现实生活里。不像Google Glass只能在头部固定位置看到个小屏幕,全息画面并不是融合在现实世界里,这种锁定头部的画面往往让人感觉不是很舒适。而把全息场景和现实世界混合到一起,和你看到真实世界一样远近自然放缩,让你感觉全息场景就在那儿,就是现实世界里一部分,这些HoloLens做到了。在你惊讶这一黑科技之余,可能会好奇,HoloLens是如何做到把全息物体放到真实环境中的。要做到这,Hololens首先面临两个问题:我在哪儿(定位)、我周围有什么(三维场景重建)。解决这两个问题的关键就是SLAM(Simultaneous Localization and Mapping),中文叫即时定位与地图构建。

接下来我要直接开始大谈SLAM如何实现吗?那完了,估计你会看得一头雾水,肯定就不往下读了。那可不行,我还是先从生活中常见的AR慢慢谈起吧!HoloLens和生活中我们常见的手机AR应用都是基于摄像头的。常见的手机AR应用,基本都是采用类似Vuforia方案,只能检测现实生活中的平面图片。然后把虚拟物体放到图片上。


[来自Vuforia官网]

然而,同样基于摄像头,HoloLens却可以检测整个真实立体空间,并重建三维场景。厉害吧!这当然得益于HoloLens上的多种传感器了。

HoloLens上有4个环境感知摄像头、1个深度摄像头、1个 IMU(惯性测量单元)。


这些传感器分别都起什么作用呢?为了让你更直观的了解到,我们可以先做个小测试。

首先,我们把环境感知摄像头和深度摄像头都遮住。只让IMU起作用。


通过Windows Device Portal的3D View查看到如下结果。这个时候HoloLens只能知道方向,不能知道相对位置偏移,也不能对周围环境建模。可以看出IMU负责感应设备的方向。


然后,我们把4个环境感知摄像头遮住,只露出深度摄像头。


结果和上面一样。还不知道相对位置偏移,也没有对周围环境建模。可以看出深度摄像头对空间建模并不会单独起作用。

接着,我们把深度摄像头遮住,只露出4个环境感知摄像头,分别在房间三个位置扫描周围环境。


结果下图所示。每个位置建模形状接近球体,构建的三维环境模型是不正确的。但三个扫描的位置是正常的,所以这个时候,HoloLens是可以感知在真实空间中的相对位移和朝向角度。可以看出环境感知摄像头负责感应设备相对位置的偏移,但不会对周围环境建模。HoloLens的定位并不依赖深度摄像头。


最后,我们什么传感器也不遮,看看正常情况,如下图所示。HoloLens既可以感知在真实空间中的相对位移和朝向角度。又可以对周围环境建模。可以看出深度摄像头需要依赖环境感知摄像头去认知还原周围环境。

从上面的小测试里,你应该可以大致了解了这三种传感器的作用,IMU感应HoloLens的方向,环境感知摄像头感应HoloLens相对位置的偏移,深度摄像头感知HoloLens周围环境。IMU和4个环境感知摄像头与最开始说的“我在哪儿”问题有关。IMU和4个环境感知摄像头以及深度摄像头与“我周围有什么”问题有关。

知道了传感器的作用,接下来就可以深究传感器是如何解决这两个问题的。具体内容我们在下篇揭晓。

获取更多HoloLens产品资讯,欢迎扫描二维码关注微软HoloLens官方微信!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存