您的位置:首页 > 其它

视觉SLAM技术及其应用(章国锋--复杂环境下的鲁棒SfM与SLAM)

2017-12-21 10:46 295 查看

SLAM:同时定位与地图构建

机器人和计算机视觉领域的基本问题

在未知环境中定位自身方位并同时构建环境三维地图

应用广泛:

增强现实、虚拟现实

机器人、无人驾驶

SLAM常用的传感器

红外传感器: 较近距离感应,常用与扫地机器人

激光雷达: 单线、多线等

摄像头: 单目、双目、多目等

惯性传感器(英文叫IMU,包括陀螺仪、加速度计等): 智能手机标配

SLAM运行结果

设备根据传感器信息

计算自身位置(在空间中的位置和朝向)

构建环境地图(稀疏或者稠密的三维点云)

SLAM系统常用框架

自2007年PTAM之后,现在的SLAM方法基本上都采用了并行跟踪和建图框架,一般包含以下几个部分:

* 输入: 可以是RGB图像、深度图,甚至IMU测量值

* 前台线程: 根据传感器数据进行跟踪求解,实时恢复每个时刻设备的位姿势

* 后台线程: 对三维点云和关键帧的位姿进行局部或全局优化,减少误差累积,同时对场景进行回环检测

* 输出:设备实时位姿和三维点云。



SfM & Visual SLAM

Structure from Motion和Visual SLAM的区别

SfM可以分为离线和实时的,而实时的SfM其实就是Visual SLAM。

Visual SLAM**主要采用摄像头传感器**,

* 根据摄像头的数目可以分为单目摄像头、双目摄像头和多目摄像头等

* Visual SLAM也在结合其它一些传感器,比如廉价IMU、GPS和一些深度摄像头来做到更加鲁棒的SLAM

以视觉为主的SLAM技术的优势:

硬件成本低廉

小范围内定位精确度较高

无需预先布置场景

Visual SLAM 主要挑战

Visual SLAM已经有几十年的历史,虽然理论上趋向成熟,但在复杂环境下的落地还面临着诸多挑战,比如:

1. 如何处理循环回路序列和多视频序列,如何闭合回路,消除误差累积

2. 如何高效高精度地处理大尺度场景

3. 如何处理动态场景

* 传统的SLAM假设场景是静止的,摄像头是运动

4. 如何处理快速运动和强旋转

* 摄像头快速运动,拍摄的照片模糊

* 摄像头快速旋转

我们课题组的工作

ENFT-SFM:Efficient Non-Consecutive Feature Tracking for Robust SFM

能够高效地处理循环回路和多视频序列

http://www.zjucvg.net/ls-acts/ls-acts.html

单目SLAM系统

ENFT-SLAM:ENFT-based Large-Scale Monocular SLAM

能在大尺度场景下实时运行

RDSLAM:Robust Monocular SLAM in Dynamic Environments

能在动态场景下稳定工作,通过替换部分关键帧

http://www.zjucvg.net/rdslam/rdslam.html

RKSLAM:Robust Keyframe-based Monocular SLAM for Augmented Reality

可以实时运行在移动设备上

http://www.zjucvg.net/rkslam/rkslam.html

RGB-D SLAM: RKD-SLAM: Robust Keyframe-based Dense SLAM with an RGB-D Camera

RKSLAM与深度相机的融合方法

ENFT-SFM: Efficient Non-Consecutive Feature Tracking for Robust SFM

非连续特征轨迹匹配:可以大大增加关键帧间特征点的匹配数目,为后端增加足够多的约束,大大减少跟丢的情况

基于自适应分段的集束调整: 将长序列分成若干序列进行后端优化,大大加快优化速度

ENFT-SLAM: ENFT-based Large-Scale Monocular SLAM 是ENFT-SFM的实时化方法

动态场景SLAM的主要问题:

场景逐渐在改变

左边的例子,人在移动书本,过了几十秒所有的书本的位置都发生了变化,这对传统的SLAM来说是非常难处理的

可能有大量的错误匹配

动态元素还会导致大量的错误匹配,这对实时稳定的SLAM求解来说也是非常困难的



视点改变造成的遮挡

运动物体造成的遮挡

会给稳定的SLAM带来挑战



基于关键帧的SLAM与基于滤波器的SLAM的区别

现在Visual SLAM技术方法主要分为两类,一个是keyframe-based SLAM,另一个是filtering-based SLAM。2012年Andrew Davison等人写了一篇文章对这两个方法进行了比较,得出这样的结论:keyframe-based SLAM比filtering-based SLAM在精度上、效率和扩展性上具有更好的性能。但是keyframe-based SLAM也有缺点,一般对强旋转比较敏感。当然,快速运动、运动模糊、特征不够丰富等情况对于这两类方法都很有挑战性

具体内容参见H. Strasdat, J. Montiel, and A. J. Davison. Visual SLAM: Why filter? Image and Vision Computing, 30:65-77, 2012



Visual-Inertial SLAM

使用IMU数据提高SLAM的鲁棒性

基于滤波的方法

MSCKF, SLAM in Project Tango

基于非线性优化的方法

OKVIS

没有真是IMU数据的情况下,能否工作?

Visual-Inertial SLAM方法广泛应用于机器人领域,这类方法使用IMU数据来提高鲁棒性。但是,在没有真实IMU数据的情况下,能否借鉴一些Visual-Inertial的方法来将SLAM做得更好呢?

RKSLAM就是解决了这个问题



Visual SLAM技术的发展趋势

缓解特征依赖

基于边的跟踪

直接图像跟踪或半稠密跟踪

结合机器学习和先验/语义信息

稠密三维重建

单/多目实时三维重建

基于深度相机的实时三维重建

平面的表达和模型自适应简化

多传感器融合

每个传感器都有优点和局限性,IMU误差累计快,GPS精度不高,目标是将各个传感器融合在一起,结合IMU、GPS、深度相机、光流计、里程计

未来的工作展望

协同SLAM

稠密SLAM

场景分析和理解

在VR、AR、机器人和无人驾驶领域进行应用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: