对于AR眼镜来说,SLAM(定位与地图构建)是一项必备的底层技术。支撑这项技术的关键,就是用深度相机解决定位和建图。为什么这么说?因为一个实用便携的AR眼镜,必定是经常佩戴的,而且要满足在各种场合无论室内还是室外,都能有高精度、快响应的稳定性能。目前在各种深度相机方案当中,符合这些性能,小型化,适合在AR眼镜上使用的就是ToF技术。
ToF技术到底是什么?和现在大热的结构光技术到底有什么区别?两者分别都有哪些特性?
一、什么是ToF技术?
ToF(Time of Flight)飞行时间,字面理解就是通过光的飞行时间来计算距离。
ToF的基本原理是通过红外发射器发射调制过的光脉冲,遇到物体反射后,用接收器接收反射回来的光脉冲,并根据光脉冲的往返时间计算与物体之间的距离。这种调制方式对发射器和接收器的要求较高,光速那么快,对于时间的测量有极高的精度要求。
在实际应用中,通常调制成脉冲波(一般是正弦波),当遇到障碍物发生漫反射,再通过特制的CMOS传感器接收反射的正弦波,这时波形已经产生了相位偏移,通过相位偏移可以计算物体到深度相机的距离。
原理不复杂,但要实现较高的测量精度,并将发射接收模块小型化并不容易。
由于测量光的飞行时间需要非常高的频率和精度,早期的ToF设备在体积上一直存在问题,成本也高,所以多只用于工业领域。ToF的小型化极大依赖于近年来集成电路与传感器技术上的突破,使得在CMOS芯片上对光脉冲相位的测量逐渐变得可行。有芯片上的解决方案,才有小型化和低成本的产品出现。
据说目前最小的ToF模块IRSZ238XC,整个模块(包括传感器,镜头IR发射器及电路)尺寸为12mm×8mm。外形更小巧,拥有比以前芯片更高的分辨率,达38,000像素。
二、ToF技术与结构光技术的区别
结构光 (Structured Light),指通过红外激光器,将具有一定结构特征的光线投射到被拍摄物体上,再由专门的红外摄像头进行采集反射的结构光图案,根据三角测量原理进行深度信息的计算。
iPhoneX上的Truedepth相机,用的是以色列PrimeSense公司的Light Coding技术。这种结构光方案,通过投射人眼不可见的伪随机散斑红外光点到物体上,每个伪随机散斑光点和它周围一定范围内的点集在空间分布中的每个位置都是唯一的,并将预先进行了存储。
这些散斑投影在被观察物体上的大小和形状根据物体和相机的距离和方向而不同,由此计算深度信息。
这种方案和ToF相比,计算量少功耗低,在近距离范围内精度更高,所以在人脸识别,手势识别方面极具优势。
投射的光点或图案在任意不同空间中是不相同的
当然,结构光的缺点也比较明显。
由于投射的经过编码的图像或散斑光点,在室外容易被强自然光淹没,所以结构光方案在室外并不好用。当物体距离相机较远时,物体上投射到的图像或光点越大,精度也越差;它也容易受光滑平面的反光影响,比如投射到镜子上。
P.S. 想象一下手电筒,几万个点投射在你手上,和投射在10米远处的物体上,每个点覆盖的面积是不是放大了很多倍?精度就会自然降低很多。
说回ToF技术。相较之下,ToF设备要求发光器件与接收器件间尽可能接近,越接近,由于发射-接收路径不同所产生的误差就越小。因此,ToF技术更利于设备的小型化,对于手机或是AR产品实现轻便紧凑的外形非常重要。
测量距离方面,ToF也具备一定优势。由于ToF接收传感器所接收的每个像素点对应一个物体表面的实际位置,只要有反射光回来,就可以通过解相位的方法获取到深度。其测量精度不会随着测量距离的增大而降低,其测量误差在整个测量范围内基本上是固定的。而且由于太阳光并未经过调制,可以简单认为它对相位是没有影响的,所以ToF对于室外强光环境也有一定的鲁棒性。
分辨率方面,采用ToF技术的深度相机分辨率目前还偏低,一般也就320*240的水准,功耗上也略微不尽人意。
开发周期和解决方案方面,ToF因基于它的解决方案出现较晚,开发群体较为薄弱。而结构光技术,一方面PrimeSense(Kinect 1)当年的如日中天留下了无数成型的解决方案,有Intel支持的RealSense又有着非常强大的SDK,这些都使得基于结构光的开发周期可以比较短。
综合来看,对于AR眼镜,无论是设备小型化需要还是实现SLAM需要的实时三维建图,ToF都有很大的优势。目前的一些“旗舰”产品HoloLens、Magic Leap One的深度摄像头用的也都是ToF技术。
当然,ToF目前对于近距离的手势识别精度还有待提高。随着技术的发展,究竟哪种技术会成为主流还未可知,但终将会出现被大家广泛使用于AR眼镜的三维测量方案,到时AR眼镜的普及率已经有很大提升了吧。