来源:将门创投

概要:随着现代智能手机技术的发展,几乎所有的手机都配备了摄像头、陀螺仪和加速度传感器,硬件的进步帮助SLAM技术得到更广泛的传播和应用。 

在过去的一年里,虚拟现实技术(Virtual Reality,简称VR)和增强现实技术(Augmented Reality,简称 AR)都取得了令人印象深刻的进步。艺术与技术的关系是非常微妙的,每一次科技的革命或多或少都会给艺术带来一些变化。

艺术求善、求美,是感性、意志的写照,技术为艺术提供了形式多样的表现感觉。摄影机为人类带来了电影的艺术形式,AR同样也会激发出更多充满创造力的艺术表现形式。

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体验,以实现科幻电影般身临其境的效果。

虚拟信息将成为我们现实生活的一部分,将这些数据与信息以人类理解的自然方式和真实世界连接起来,构建虚拟的数字生态圈,丰富人类的未来生活,是我们共同的愿景,这也会是一场全新的认知革命。

未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。由互联网进化论作者,计算机博士刘锋与中国科学院虚拟经济与数据科学研究中心石勇、刘颖教授创建。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎支持和加入我们。扫描以下二维码或点击本文左下角“阅读原文”

揭秘Facebook SLAM技术,如何为人们生活增添奇幻的艺术色彩?相关推荐

  1. KDD'21 | 揭秘Facebook升级版语义搜索技术

    上一篇分享了KDD'21 | 淘宝搜索中语义向量检索技术Que2Search: Fast and Accurate Query and Document Understanding for Searc ...

  2. 牛逼哄哄的SLAM技术 即将颠覆哪些领域?

    牛逼哄哄的SLAM技术 即将颠覆哪些领域? 0评论 2016-05-12 21:15:02 来源:雷锋网 作者:宗仁 一般人我不告诉他,绝佳买入机会! 什么是SLAM?机器人在未知环境中,要实现智能化 ...

  3. 牛逼哄哄的SLAM技术即将颠覆哪些领域

    原标题:牛逼哄哄的SLAM技术即将颠覆哪些领域? 什么是SLAM?机器人在未知环境中,要实现智能化需要完成三个任务,第一个是定位(Localization),第二个是建图(Mapping),第三个则是 ...

  4. 2021-04-17 深入理解SLAM技术 【3】 数学基础概述

    SLAM技术是需要一些抽象的数学,虽有一些难度,但还没到了"坚不可摧"的地步.这一章我们专门梳理一下,到底需要哪些数学知识和数学概念,这些知识用到哪些恰当的地方,也就是这些数学概念 ...

  5. SLAM技术目前主要应用在哪些领域

    当今科技发展速度飞快,想让用户在AR/VR.机器人.无人机.无人驾驶领域体验加强,还是需要更多前沿技术做支持,SLAM就是其中之一.实际上,有人就曾打比方,若是手机离开了WIFI和数据网络,就像无人车 ...

  6. 视觉SLAM技术应用

    视觉SLAM技术应用 · SLAM技术背景 SLAM技术全称Simultaneous localization and mapping,中文为"同时定位与地图构建".SLAM可以在 ...

  7. SLAM 技术之对于扫描精度的影响及改进

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 是新朋友吗?记得先点蓝字关注我哦- SLAM 移动扫描的优势在扫描 ...

  8. SLAM技术大解析:它是如何帮助机器人实现智能行走的?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:新机器视觉 对于扫地机器人相信很多人并不陌生,早期的扫地 ...

  9. 从理论到实践,机器人SLAM技术详解

    由 Dora 于 星期四, 2017-05-18 12:00 发表 思岚科技专栏 作者:思岚科技 地图的四种表示方法 智能服务机器人正成为行业的风口浪尖,从清扫机器人开始,家庭陪伴机器人.送餐机器人等 ...

最新文章

  1. java对象赋值给另一个对象_java面向对象编程
  2. CocoaPods 错误解决 Attempt to read non existent folder
  3. PowerDesigner中在生成的数据库脚本中用name列替换comment列作为字段描述的方法
  4. 使用静态库分享共同的模块
  5. 聊聊JVM(六)理解JVM的safepoint
  6. spring学习(13):使用junit4进行单元测试续
  7. Java工作笔记-接入互联网的免费WebService
  8. 通过反射创建对象和调用方法
  9. tomcat 启动需要java环境吗?_三分钟教你Windows环境下,如何设置Tomcat随机自动启动?...
  10. eclipse 统计代码行数
  11. (Quicker动作)MathType公式快速标红
  12. HC05蓝牙模块配对
  13. 计算机研究计划怎么写,课题研究计划书范文
  14. 实战案例,手把手教你用 Python 构建电商用户画像
  15. ffmpeg去除视频黑边命令
  16. 我的中国“芯”——资深后端工程师成长分享——“胡”说IC工程师完美进阶
  17. python列表画彩虹糖_原来彩虹糖是要这样用的,只需加点它进去,送你一幅绚丽彩虹画...
  18. shell综合练习(二)
  19. 农民工如何拥有500多家加盟连锁店,看他是怎样做到的?
  20. 一款【免费+简单+好用+性能强大】的词云(Wordcloud)制作工具(含详细介绍)

热门文章

  1. 90行代码!大一学生自学编程,自创搜题网站,已在GitHub开源
  2. 985博士《深度学习》手推公式笔记开源PDF下载!
  3. 兰州大学的《致谢》火了:“我从来不曾优秀过,也从来不曾放弃过!”
  4. 新记录诞生,腾讯云2分31秒打破ImageNet训练记录
  5. 【粉丝福利放送】Python最新书籍免费领取!
  6. 【资源】100+本数据科学电子书
  7. FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库
  8. 下载perl的mysql模块_安装用于操作MySQL的Perl模块
  9. SAP PM 初级系列15 - IW33事务代码界面里查看维修工单对应的维修通知单的几个方法
  10. 在边缘AI与云AI之间寻找平衡