不小心删了,先补上。内容比较旧了,也没时间再审查。不对之处,请多包涵。
近年来动态地图和语义地图好像在SLAM领域比较热,动态物体一直是个敏感的问题。当年计算机视觉唯一的工业落地场景“视觉监控”也在这个问题费了脑筋,比如我搬个凳子到新位置,然后就走了,系统是不是要自动更新背景呢?
以前说过SFM和SLAM的称呼,计算机视觉的同行多半说SFM,而机器人的行业流行说SLAM,到底区别在哪里?有说SFM是假设背景不动,那么outlier是什么?当年做IBR(image-based rendering)的时候,以panorama view为例,也是假设场景物体不动,可总是有不静止的物体,比如水,比如树叶,甚至不配合的人们走动,会产生鬼影吗?结果也提出了一堆的解决方法。SFM和MVG(multiple view geometry)紧密相关吧,都面临计算机视觉的共同问题,动态环境是回避不了的。
景物动态部分不一定是object,或者不一定能得到object,所以不一定是语义的。语义地图不一定就是动态的,所以语义地图和动态地图是有重叠的,不过最近深度学习的发展比如语义分割,目标检测和跟踪等等的确使二者渐渐走在了一起。在人的眼中,一切都是语义的存在,尽管对某些部分认识不够。
这里我还是把SLAM动态地图和语义SLAM分开,主要是文章太多。
先列个题目,动态地图放在上部分,而语义地图放下部分。
先推荐一篇ACM Computing Survey发表于2018年2月的综述文章“Visual SLAM and Structure from Motion in Dynamic Environments: A Survey“,它对动态环境的分析可以参考一下。
讨论的方法基本分三大类:一定位和重建为主,二动态目标分割和跟踪为主,三运动分割与重建联合估计的方法。
下图给出了各种方法之间的联系:
第一类 “A)Robust Visual SLAM”,下图给出框图结构:
第二类 “B)Dynamic Object Segmentation and 3D Tracking“ ,同样的,其框架图如下:
第三类 “C)Joint Motion Segmentation and Reconstruction“,其特性见下图:
在这三类方法中都有深度学习的部分。
下面选一些论文作为参考(注:次序没有按时间排列)。
1.Simultaneous Localization and Mapping with Detection and Tracking of Moving Objects
看上面的系统流程图,典型的方法:运动分割,运动目标检测和跟踪,静态目标和静态地图。
2.Simultaneous Localization and Mapping with Moving Object Tracking in 3D Range Data
如上面框图所示,特点:采用occupancy grid maps,因为传感器是激光雷达,可以采用ICP算法定位,地面估计去除在先,Mean Shift做聚类得到目标检测,Probability Hypothesis Density (PHD) 做多目标跟踪。
3.Online Localization and Mapping with Moving Object Tracking in Dynamic Outdoor Environments
采用激光雷达数据,基于incremental scan matching方法定位,不受环境小运动的影响。
跟上一个文章一样采用occupancy map,环境地图步进更新,基于此检测运动目标,而目标跟踪基于Global NN算法。
4.SLAM method: reconstruction and modeling of environ. with moving objects using an RGBD camera
采用Kinect深度传感器,见上图,和一般SLAM比较,比较容易检测出运动目标(室内深度层次少)。
5.Generic NDT mapping in dynamic environments and its application for lifelong SLAM
首先,采用Hybrid Normal Distribution Transform (NDT) occupancy maps,如上图。
其次,系统可以检测跟踪运动目标,而graph-based SLAM能够实现lifelong SLAM。
6 RGB-D SLAM in Dynamic Environments using Static Point Weighting
如图介绍,其特点:还是RGB image加深度数据,提出depth edge 做visual odometry, 而static weighting 是为了对付运动物体。Intensity Assisted ICP (IAICP) 是改进ICP做定位的算法。
7.EVO: A Geometric Approach to Event-Based 6-DOF Parallel Tracking and Mapping in Real-time
上图为算法流程图。EVO = Event-based Visual Odometry,就是用event cameras (类似Dynamic Vision Sensor)做运动跟踪,上图框架像PTAM。下面两个图是介绍Mapping方法EMVS:
注:参考方法 EMVS = Event-based Multi-View Stereo,DSI = Disparity Space Image。
8.SLAM in a Dynamic Large Outdoor Environment using a Laser Scanner
上图SLAM,其中模块A的细节在红色圆圈里。其特点:还是运动目标检测和跟踪;采用GPS诊断pose误差,实现全局精准。
9.Realtime Multibody Visual SLAM with a Smoothly Moving Monocular Camera
简单示意图如上,其特点:Bearing only Tracking (BOT) 基于particle filter,运动相机做motion segmentation保证静态景物3-D重建。
10.Localization in highly dynamic environments using dual-timescale NDT-MCL
· Normal Distributions Transform (NDT)
· Monte Carlo Localization (MCL)
MCL是基于particle filter的方法,地图采用Occupancy maps模式,这样NDT做定位。
MCL分三步:
· 1. prediction
· 2. update
· 3. resampling.
下面是整个算法的伪代码:
11.SLAM With Dynamic Targets via Single-Cluster PHD Filtering
算法核心是particle/Gaussian mixture,single- cluster process是指feature-based SLAM,其中车辆运动是主,而特征运动为附。下面是四个算法的概略:
12.Exploiting Rigid Body Motion for SLAM in Dynamic Environments
基于factor graph处理SLAM的动态物体的运动干扰。下面三个图都是SLAM的factor graph。
下图是特征提取和跟踪的结果例子:
13.Histogram of Oriented Cameras - A New Descriptor for Visual SLAM in Dynamic Environments
提出一个3-D描述子Histogram of Oriented Cameras (HOC) ,如下图:
下图是SLAM框架:双目视觉,关键在地图更新环部分。
14.Event-based 3D SLAM with a depth-augmented dynamic vision sensor
采用event camera,即DVS(dynamic vision sensor)处理动态环境。系统展示图如下:
这里DVS和RGB-D深度传感器进行融合做定位。
15.Simultaneous Localisation and Mapping in Dynamic Environments (SLAMIDE) with Reversible Data Association
采用广义EM(expectation maximisation)算法处理动态环境下的SLAM,求解的问题定义在一个Bayesian Network框架,如下图:采用sliding window SLAM而不是EKF方法。
加了Reversible Data Association处理动态目标,如下图:实现Data Association可以通过NN或者joint compatibility branch and bound (JCBB) 算法。
其中的Bayesian Network就是HMM实现,如下图SLAMIDE:
16.CoSLAM: Collaborative Visual SLAM in Dynamic Environments
采用多个独立摄像头协同工作的SLAM系统,如下图:
关于地图中的point classification,分类类型即‘static’, ‘dynamic’, ‘false’ 或者 ‘uncertain‘,判别流程见下图:
这里显示各个camera如何协同估计自身的pose:
17.IMU-Assisted 2D SLAM Method for Low-Texture and Dynamic Environments
前端部分,在卡尔曼滤波extended Kalman Filter (EKF)下融合IMU传感器和2D LiDAR的2-DSLAM处理低纹理动态环境,scan matching通过LM(Levenberg–Marquardt )算法优化。在后端,做sparse pose adjustment (SPA) 。如下图:
18.Dynamic pose graph SLAM: Long-term mapping in low dynamic environments
讨论如何维护室内激光雷达扫描的地图,其中Dynamic Pose Graph SLAM (DPG-SLAM)做这种动态环境下的定位。DPG定义如下:
DPG的例子:
DPG的一个节点:
采用的SLAM方法是iSAM。所谓Low-dynamic objects就是那些容易加上/移动/去除的物体。 关键是如何检测变化和更新地图。下面是三个相关算法图:
19. Semantic Monocular SLAM for Highly Dynamic Environments
扩展了ORB-SLAM,特征提取和匹配可以直接用于姿态估计,采用一个outlier概率模型处理地图的变化,系统概略如下图:
下面的结果来自一个demo视频截图:
20. Robust Monocular SLAM in Dynamic Environments
该Monocular SLAM可以处理缓慢变化的动态环境,是一种在线keyframe方法,能够检测变化并及时更新地图。另外,提出一个prior-based adaptive RANSAC (PARSAC) 算法去除outlier。系统框架如下图:
特别的,处理遮挡问题,及时检测,下图有它的算法框架,其中appearance变化测度如下:
------------结束-------------