干货|视觉开发者必读,浙江大学章国锋教授-视觉SLAM技术与应用分享

放大字体  缩小字体 发布日期:2020-01-11  来源:来自互联网  作者:来自互联网  浏览次数:199
导读

SLAM可以在未知的环境中实时定位自身的位置,并同时构建环境三维地图,是计算机视觉领域以及机器人领域中非常关键的一项技术,有着非常广泛的应用,例如VR、AR、机器人、自动驾驶等领域。根据这个三维结构恢复的稀疏…

2019年8月29日,英特尔中国研究院举行了2019年英特尔机器人英雄会,此次机器人英雄会邀请到多位机器人行业产学研专家,以机器人4.0为主题进行深入探讨和交流。来自于 浙江大学CAD&CG国家重点实验室的 章国锋教授,介绍了在机器人领域内极为重要的SLAM技术。

英特尔中国研究院宋继强院长

为章国锋教授颁发“领航者”证书

以下内容根据章国锋教授演讲实录整理:

  • SLAM技术背景

SLAM技术全称Simultaneous localization and mapping,中文为“同时定位与地图构建”。SLAM可以在未知的环境中实时定位自身的位置,并同时构建环境三维地图,是计算机视觉领域以及机器人领域中非常关键的一项技术,有着非常广泛的应用,例如VR、AR、机器人、自动驾驶等领域。

SLAM技术在机器人领域应用广泛,可以采用各种各样的传感器,例如激光雷达,深度摄像头,单目、双目、多目摄像头,惯性传感器等等。

根据传感器的信息,SLAM可以实时计算自身位置(在空间中的位置和朝向),并同时恢复场景的三维结构,构建环境三维地图。根据这个三维结构恢复的稀疏程度,可以分为稀疏SLAM和稠密SLAM,其中稠密SLAM是把场景的三维几何结构都恢复出来。

SLAM技术经过多年的发展,整体框架相对稳定,目前主流SLAM系统采用的是2007年牛津大学提出的并行跟踪与建图框架。首先,前台线程根据输入的传感器信息,实时计算设备位姿。同时后台线程持续构建地图,并对三维点云进行优化,以减少实时计算带来的误差累积。一旦存在回路,需要把回路检测出来并进行闭合。

PTAM是第一个真正接近实际应用的技术,后面的SLAM系统基本延续这个框架,像DTAM主要是做小场景比较稠密的几何重建,ORB-SLAM对PTAM框架做了进一步改进,包括自动初始化,采用ORB特征,以及有回路闭合功能。有一些直接法(例如DSO)还能够做到大场景半稠密的重建。

  • 视觉SLAM的技术挑战

视觉SLAM,主要使用单目、双目或多目摄像头。从广义上讲,也可以以视觉传感器为主,加上其他传感器作为辅助。视觉SLAM最主要的优势是成本比较低廉,目前已经被证明至少在小范围内可以实现较高的定位精度,可以满足AR的应用要求。

视觉SLAM的基本原理是多视图几何。空间上的三维点,如果从某个视角看不被遮挡,那就有对应的投影点。另外,它有对应的二维观测点,理论上三维点的投影点跟二维的观测点应该是重合的,但实际上由于噪声等原因不会严格重合,这时通过最小化目标函数,可以把这里的投影矩阵P和三维点X都解出来。

在实际应用中,视觉SLAM面临精度和稳定性,以及实时性这两大关键挑战。精度和稳定性方面,因为环境往往是动态变化的,弱纹理和重复纹理问题很容易造成视觉特征匹配不准确,从而导致优化计算不稳定。实时性方面,主要是在大规模场景下,SLAM计算复杂度高,而低功耗设备的计算能力有限,如何做到实时计算。

关键思路在于,对SLAM稳定求解,这可以从约束的正确性和约束的稳定性这两个方面考虑。SLAM本质上就是一个目标函数构造和优化问题。为此,我们要保证目标函数里的约束项都是正确的,这就需要尽可能把错误的匹配剔除掉。在弱纹理情况下,匹配点过少使得约束项不足,优化求解不稳定。解决这个问题一般有两方面的思路,一个是可以通过添加一些运动先验的约束,使约束方程变得比较稳定。另一个是添加场景的先验结构约束,比如一些平面结构约束,把这样的先验结构约束加入到这个目标函数里,也会使得它变得稳定。

基于这两个思路,我们开展了面向复杂场景的视觉SLAM技术的研究工作。比如在2013年的RDSLAM这个工作,我们会在线地检测哪些特征点发生了改变,同时排除遮挡造成的情况。通过在线持续的检测变化,及时更新地图,使得地图里的三维点都是有效的,从而能够处理场景动态变化甚至逐渐改变的情况。2016年,我们提出的RKSLAM工作,能够在移动设备做到实时。它主要是通过视觉方法估计出连续帧之间的运动角度得到角速度的估计,然后把这些运动约束加入到目标函数里进行优化求解,从而大大提升了位姿估计的稳定性,即使在晃动比较剧烈的情况下依然比较稳定。另外,从速度上来看,我们的RKSLAM速度是ORB-SLAM的将近五倍。

第二个关键思路是如何解决计算效率的问题。这里非常关键的技术就是集束调整,通过最小化一个目标函数来对所有相机的参数和三维点进行同时优化。相机参数和三维点数目可能非常多,复杂度非常高,非线性优化的每次迭代都是在求解一个线性方程组。我们发现这个Hessian矩阵是高度稀疏的,如果充分利用这个稀疏性来求解,效率会高很多。

但即使充分利用了稀疏性,求解效率依然是集束调整的一大挑战。对于大尺度三维场景重建,无论是内存、效率都会遇到这样的瓶颈,而采用局部优化策略很容易陷入局部最优解。对于实时SLAM来说,还面临功耗问题以及如何在精度和效率之间取舍的问题。

可以从分治求解和增量式计算这两个思路对集束调整进行加速。

分治求解主要有两类方式,一类是基于分段的BA,比如将一个长序切分为若干段短序列,每段序列整体做一个7DoF的相似变换。如果优化后误差大于阈值,则继续分裂再优化。通过这样的由粗到细的优化策略,来实现累积误差的快速分散和优化。另一类思路是分布式BA,将整体切分成若干个子地图,各地图独立优化,然后通过共享变量的方式来实现整体的优化。

很多时候SLAM往往是新来一个关键帧就要BA优化一下。增量式BA的代表性方法有iSAM、iSAM2,以后我们提出的EIBA、ICE-BA。增量式BA方法的主要思想是充分利用前面构造好的信息,仅对新加入的变量或需要更新的变量所对应的矩阵元素进行更新计算,这可以大幅降低计算复杂度。可以说,增量式BA在很多时候其计算复杂度跟局部BA差不多,但精度是跟全局BA几乎是一样的。

这是ICE-BA跟传统的BA方法的效率对比。分为局部BA(固定帧数)和全局BA(帧数随时间增长)两类。可以看到,无论是局部BA还是全局BA,ICE-BA都比传统的方法快一个数量级,甚至更多。这部分工作的代码已经开源。

  • 视觉SLAM应用落地

我们和商汤科技合作开发的SenseAR平台,能够方便实现各种AR应用。今年新推出的SenseAR 2.0主要是在1.0的基础上增加了云-端结合的功能,并融合了AI能力,而且一些模块的性能也有明显的提升。通过结合云端的高精度地图,可以实现比如室内外定位与AR导航,以及AR多人共享。比如,几个玩家拿着各自的手机,可以在真实的场景下玩设定的游戏,这对SLAM的跟踪精度以及重定位能力要求很高。

AR的应用场景复杂多变,由于用户拿着手机,其运动类型非常复杂,而且场景有动态物体,并存在遮挡、弱纹理以及重复纹理等问题。因此,要保证良好的AR用户体验,就需要保证精确且一致的跟踪注册,而且尽量保证跟踪成功率高,若跟踪失败,需要能够快速恢复正常状态。

为了解决这个问题,我们构建了一个面向AR的单目视觉惯性数据集。我们用两款手机拍摄数据,一个是iPhone X,还有一个是小米8,这是它们的图像和分辨率的参数。我们采用VICON运动捕捉系统来获得手机的运动轨迹真值。

为了模拟AR运动的情况我们选了五种运动类型。我们分别用小米8手机录了A系列序列,iPhone X录了B系列序列。

我们来看一下这些序列的情况。A系列序列还是属于比较正常的运动类型,就是我刚才说的几种常规的运动,主要是用来测试跟踪精度的;而B系列序列是测试鲁棒性的,相对来说比较极端,比如说突然手去挡住相机,或者突然把图像变成黑色,强迫SLAM系统跟踪丢失进入重定位状态。

为了全面地评价SLAM系统在AR应用场景的性能,我们制定了四种评测标准:跟踪精度、初始化质量、跟踪稳定性、重定位时间。由于时间关系,这里就不展开来讲了。

大家有兴趣可以访问我们的基准网站:zjucvg/eval-vislam/,以及读我们的论文。

刚才讲了我们做的很多工作的软件和源代码已经放出来了,未来我们也会开源更多的算法和数据集,欢迎大家关注下载。

最后讲一下视觉SLAM技术的发展趋势。视觉SLAM最大的问题就是对特征的依赖非常明显,不少方法也已经被提出来缓解特征依赖问题。例如,采用基于边、面特征的跟踪,直接图像跟踪或半稠密跟踪,结合机器学习和先验/语义信息等。这些方法可以一定程度上缓解特征依赖问题,但无法从根本上解决。

要更好地解决特征依赖问题需要融合更多的传感器信息进行优势互补,从而实现高可靠、高精度的跟踪定位。这也是未来SLAM发展的主要方向。

另外,目前SLAM的稀疏重建已经做得很好了,未来会往稠密三维重建的趋势发展。现在已经有一些工作,基于单个或多个相机就能进行实时的稠密三维重建。当然,如果有深度相机,那稠密三维重建可以做得更好。此外,现在也有一些非刚性物体的实时三维重建工作,当然这个问题依然挑战性很大,还有待进一步研究突破。

*文章根据2019英特尔机器人英雄会 – 浙江大学章国锋教授的主题演讲实录整理,感谢章教授的精彩分享,并对文章进行审阅修改。

产学研平台邀请状

机器人前沿技术与产学研合作平台已开放申请入口!

加入机器人前沿技术与产学研合作平台并提交需求

机器人前沿技术与产学研合作平台介绍

机器人前沿技术与产学研合作平台,结合了英特尔中国研究院前沿研究,和机器人创新生态的产业资源,通过线上线下的融合和实践,发力聚焦前沿技术与学术成果转化。该平台将由 机器人创新生态进行运营、打通学术、科研、产业资源,推动机器人行业在产学研领域的不断发展。

机器人创新生态是由 英特尔和 硬蛋科技联合发起的机器人产业创新生态合作平台,汇聚机器人产业创新力量,聚焦 技术创新、市场加速、专业化运营三大方向,全方位推动中国机器人产业不断创新、落地、蓬勃发展。目前生态已运作3年,共 汇聚300+核心供应商,链接20000+线上活跃用户,支持300+机器人公司,未来生态将继续输出优质生态资源聚合生态伙伴,实现产业合作共赢。

在前沿技术的 展望、普及和推广方面,产学研平台设有学术和行业“领航者”专家库,聚焦技术、产业、政策、市场观点的分享。平台将定期策划机器人大家说“大师系列”课程,邀请知名专家普及前沿技术趋势和市场热点话题,推广研究成果,并提供品牌平台发布和推广专家研究成果,引领创新方向。

学术成果转化和产学研对接方面,打造校企对接平台,联合生态伙伴推广机器人教育课程,聚合 学术、企业、产业、智库、投资领域专家,共同发布前沿技术成果。最终,平台将线上线下的通力合作,建立开放式创新社区,促进机器人4.0领域规模化协同发展!

 
 
打赏
免责声明
• 
本文为会员发布,作者: 来自互联网。欢迎转载,转载请注明原文出处:http://www.zneh.com/znkb/show-292120.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。