请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
戴客 首页 科技资讯 混合现实 科普 查看内容

揭秘微软HoloLens中SLAM技术

北极蚊子 2017-6-21 16:32

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个环境感知摄像头以及深度摄像头与“我周围有什么”问题有关。

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

文章点评