Facebook的应用机器学习(Applied Machine Learning, AML)团队将人工智能的较新研究成果转化到新产品中,并将Oculus计算机视觉部门早期完成的工作用到大规模构建和部署SLAM中。
想象一下,你可以在当地的公园四处漫步,就能看到那些灭绝的动物和恐龙龙;你也可以随处打开一扇“任意门”,一座繁华的城市就会出现在眼前;你还可以在房间里面建造自己的城堡,肆意涂鸦。
诸多类似的情景将不再只是脑中的幻想或科幻小说中的神奇世界,Facebook现在正通过手机上的相机APP,借助增强现实的力量,改变人们看待周围世界的方式。
要实现这一目标,不仅需要实时建立并更新周围环境的地图,还需要准确地估计手机相机相对于该地图的位置和方向。这种技术一直以来是计算机视觉和机器人研究领域中的一项重大挑战,也就是实时定位和构图 (Simultaneous Localization and Mapping ,简称SLAM)。
为了实现在移动设备上运行SLAM,研究人员已经花费了40多年的时间。 SLAM技术最早可追溯到1986年,Smith的系列论文《空间位置的表达与估计》,研究和解决未知环境中的机器人导航问题。但早期的SLAM往往依赖价格昂贵或专门定制的传感器,例如激光雷达,声呐或立体相机,这项技术并未走入市场。
随着现代智能手机技术的发展,几乎所有的手机都配备了摄像头、陀螺仪和加速度传感器,硬件的进步帮助SLAM技术得到更广泛的传播和应用。
今天,SLAM不仅可用于增强现实技术,而且还适用于其他场景,包括无人驾驶汽车、家庭服务机器人和微创手术机器人等。为了开发出实现虚拟信息和真实世界间的无缝连接的AR工具,Facebook的工程师们在以下三个方面进行了很多努力和尝试,最终推出了高性能的移动端开发工具和代码库。
1、种类繁多的移动设备需量身定制
Facebook平台提供的SLAM库集成了多种算法,包括ORB-SLAM,SVO和LSD SLAM,并基于较新的技术对库做了性能优化。但要想在移动设备上轻松地实现频率60Hz的SLAM系统是非常困难的。
首先,手机每隔16毫秒就捕捉一次图像;其次,图像中提取到的特征点数量将达到数百个,且还要将它们与前一帧中的特征点进行匹配;最后,使用三角测量法来计算出每个点在3D空间中的对应位置。如此繁多的步骤,必然会耗费大量的处理时间。因而对系统做细致的优化工作就十分必要,得思考这些算法如何运行才能更高效。
除此之外,Facebook生态系统中的移动设备种类十分繁多,从具有高质量相机的高端手机(例如iPhoneX,Pixel 2 XL)到计算能力和资源非常有限的旧设备。每种型号对应的相机校准模型都具有不同的焦距、主点和失真参数。因而会导致严重的兼容性问题,务必要确保SLAM系统可以向下兼容。只有确保每一个参数真实有效,才能以亚像素的精度将3D点准确地投射到相机空间。
此外,移动设备通常配备的是具有自动对焦和自动曝光功能的卷帘式相机,随着相机聚焦的物体的远近变化,校准也会发生变化。
除相机以外,时常会添加IMU(惯性测量单元,用于感知设备的加速度和旋转)来辅助定位。将视觉与IMU融合可以减小低动态时IMU的误差累积,IMU则可以减小高动态时视觉的误差。同时IMU的角速度可以解决单目SLAM的二义性,加速度还可以提供重力方向参考,解决单目VO的尺度问题。IMU传感器使用前也需要校准,并要与相机进行时钟同步。
我们在优化每个模型的时候,都会先从粗调开始,再进行微调,确保最后配置的SLAM系统是最优且高效的。
2、应用程序需要及时瘦身
在Android或iOS的应用程序商店中,Facebook的App算是很复杂的应用程序了。Facebook正在努力为应用程序不断添加令人兴奋的新功能的同时,保持了应用所需空间的大小。最初的SLAM库是在Oculus开发的,为了适用不同的案例场景,适用了多个大型开源库,导致程序大小约为40MB。后来通过保留最小SLAM功能,并使用普通的Facebook库重构它,将大小降低至1MB以下。
3、追求卓越艺术表现,不断探索技术新思路
要让移动AR展现令人注目的艺术色彩,仅依靠SLAM技术是不够的。去年十一月,我们就开始了先进次探索,利用SLAM技术将场景中的物体进行三维重构,并将喜爱的3D艺术投影到它的表面上,结果引起了强烈反响。
之后,为改善用户体验,实现了人们可以直接通过手势来控制3D艺术图案的放置、切换、旋转、平移、缩放的操作。这种友好的交互方式使得人们可以准确地构成他们期望的作品。不仅如此,还可以对场景加以分析,让程序可以自动识别特定的位置来放置AR内容,对物体的几何形状的提取并计算,也能使虚拟的物体投影到物体表面时看起来更逼真。
当然,SLAM技术也有失败的时候,比如动态场景中的目标干扰会导致算法出错。为此,我们将SLAM与多个跟踪算法结合,不同算法之间采用umbrella 交互协议,将之命名为WorldTracker API。SLAM主要使用点或者线特征来估计场景几何,而目标跟踪算法主要是基于目标的外观,对特定像素区域的外观进行追踪。SLAM在静态场景中更有优势,而基于外观的跟踪器对场景中的动态变化更为鲁棒。
当前版本的World Tracker中包含了SLAM和基于视觉与陀螺仪增强的跟踪器,保证了当出现图像像素运动模糊或纹理少的表面也能估计出准确的运动。算法会根据移动设备的硬件性能和算法结果的准确性来切换SLAM和跟踪器,两者互相补充、相互协调。
那么Facebook的Slam技术到底表现如何呢?我们来看看展示AR与艺术结合创造出美妙的Demo。
Facebook邀请品牌艺术家Heather Day到门洛帕克校区,来共同完成先进以AR技术驱动艺术表现的项目。
首先,应用机器学习团队会通过相机捕捉Heather任意时刻的动作,包括倒油漆,刷画笔,画图或制作任何图案,并将记录下的动作添加到数字库中,最终的艺术作品将在虚拟世界中完成。
随后,应用机器学习团队还与Heather商议确定动画师需要的图像,以及动作,丰富AR的内容。最后,利用定位技术和场景几何分析,将Heather的虚拟艺术作品完美的投影到真实世界并展示。
在今年的F8开发者大会上,观众们欣赏到了Heather的艺术作品,随着音乐的节奏,像瀑布一样从墙上流到地面,栩栩如生,美丽动人。同样的,只要打开手机摄像头,并打开 Facebook的App,你可以在任意时间任意地点欣赏到Heather的作品。SLAM技术和创造性思维,让我们见识技术与艺术如何交织在一起,彻底消除了科学与艺术之间、虚拟与现实之间的界限。
未来的发展方向
AR为我们提供了无数种新的方式来更好的认识、体验和感受世界。尽管我们已经在增强现实技术的发展道路了迈进了一大步,但是路漫漫其修远兮,仍需上下而求索。下一步目标便是再次基础上不断优化改进,以实现更好的地理定位技术和持久用户体验,不断开发出像Demo所展现出的AR应用。
随着机器学习和深度学习的发展,虚拟信息可以“理解”真实世界,让二者的融合更趋于自然,目前正在探索如何结合深度神经网络和Caffe2的力量来创建更完整的SLAM地图,处理动态目标,添加语义信息,并实现与Facebook生态系统高度结合的持久AR体验,以实现科幻电影般身临其境的效果。
虚拟信息将成为我们现实生活的一部分,将这些数据与信息以人类理解的自然方式和真实世界连接起来,构建虚拟的数字生态圈,丰富人类的未来生活,是我们共同的愿景,这也会是一场全新的认知革命。