上篇
近年來動態地圖和語義地圖好像在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變化測度如下:
下篇
這里把語義SLAM放在這個題目的下部分。
談到語義地圖,還是要讀讀2016年的那篇綜述文章 "Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age",其中第七章主要討論語義地圖的問題。
放個SLAM的標準圖:前端+后端
SLAM問題是一個factor graph:
基本上,語義地圖可以分為三種方法來加注語義概念:
SLAM幫助語義概念;
語義概念幫助SLAM;
語義概念和SLAM聯合求解。
最后還提出了四個未解決的問題(open problems):
Consistent Semantic-Metric Fusion:和尺度地圖融合;
Semantic mapping is much more than a categorization problem:語義的概念是人定義的;
Ignorance, awareness, and adaptation:缺乏自我學習知識能力;
Semantic based reasoning:不會做推理。
下面還是選了一些論文供參考(次序不按照時間)。
1.DA-RNN: Semantic Mapping with Data Associated Recurrent Neural Networks
Data Associated Recurrent Neural Networks (DA-RNNs)是產生語義標記的,采用RGB-D傳感器,SLAM是一個如KinectFusion的平臺。算法框架如下圖:
做semantic labeling的RNN模型有三個:
其中負責數據相關的Data Associated Recurrent Unit (DA-RU),結構如下:
2.Probabilistic Data Association for Semantic SLAM
實現目標識別才能做到真正的語義SLAM,文章給出了定義:
語義SLAM的問題求解表示為下面的優化過程:
求解的算法EM如下:
更細化的EM框架如下:
3.Long-term Visual Localization using Semantically Segmented Images
討論無人車的定位問題,主要基于最近的語義分割成果。
基于以上的公式,可以給出基于SIFT特征的定位算法如下:
而語義類的定位方法不同。
基于上述公式,推導的語義類新定位算法如下:
4.Stereo Vision-based Semantic 3D Object and Ego-motion Tracking for Autonomous Driving
文章討論如何從2D檢測推斷3-D檢測的方法,本身采用雙目視覺,這樣做的原因是計算量小。提出在目標基礎上的攝像頭姿態跟蹤估計,還有動態目標 bundle adjustment (BA)方法,依此融合語義觀測模型和稀疏的特征匹配結合以獲取3-D目標的姿態,速度和結構信息。
上圖是一個例子,上半部分是攝像頭和目標的運動軌跡,下半部分從左到右依此是雙目匹配,一個被截斷車的跟蹤,BA恢復的稀疏特征點,和姿態估計。
整個語義意義上的跟蹤框架如下圖:左邊是CNN模型實現的視點分類和3-D檢測,中間是ORB特征提取和匹配,而右邊是目標跟蹤和攝像頭運動估計。
5.VSO: Visual Semantic Odometry
建立語義信息作為中層的VO約束,下圖就是想解釋為什么底層特征跟蹤失敗的情況下帶語義信息的跟蹤仍然工作很好。
VO解決的目標是:
而其中特征點和語義部分分別定義為:
observation likelihood model 如下
其中DT是距離變換。而semantic cost計算如下:
關于語義的觀測似然函數,下圖給出一些直觀展示:
其中σ = 10 (c),σ = 40 (d),而 (b)是二值圖像。
6.DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments
清華大學基于ORB-SLAM2給出的語義SLAM方案,如圖所示:
語義分割用SegNet,有深度圖的數據可以生成最終Semantic octo-tree map。語義信息和ORB特征檢測跟蹤結合可以消除運動物體。
上圖看出,在ORB-SLAM2基礎上,加了語義分割這部分。
7.Robust Dense Mapping for Large-Scale Dynamic Environments
雙目視覺輸入,做深度圖估計和物體分割,結合sparse scene flow,對場景進行重建。下圖是系統框圖:
8.Meaningful Maps With Object-Oriented Semantic Mapping
結合了RGB-D SLAM,語義層次上借助深度學習的目標檢測和3-D分割。
下圖是一個示意圖:上面從左到右,是SSD的region proposal和非監督3-D分割,而下面是帶語義的地圖。
如下是語義地圖的框架:在ORB-SLAM2基礎上改的。
9.6-DoF Object Pose from Semantic Keypoints
主要是基于CNN提出semantic keypoints,和deformable shape model結合。下圖是對算法的直觀介紹:
其中CNN模型如下結構:兩個沙漏模型的疊加,輸出特征點的熱圖(heatmap)。
10.A Unifying View of Geometry, Semantics, and Data Association in SLAM
如題目所示,將幾何,語義和數據相關幾個部分結合起來的SLAM。
上圖展示的是:測量數據包括慣導,幾何和語義 (左上角),重建傳感器軌跡(藍色),檢測的目標(車),還有估計的車部件 (綠色點,即門和輪子)。
上圖有特征和語義特征的比較,帶有約束的結構化目標模型和被傳感器觀測數據(landmarks的IMU和語義)的狀態向量factor graph表示。
11.DeLS-3D: Deep Localization and Segmentation with a 3D Semantic Map
傳感器融合的擴展,將GPS/IMU,攝像頭和語義地圖結合的定位。利用pose CNN做姿態估計,加上multi-layer RNN 做姿態修正。最后和segment CNN 輸出的分割結合產生地圖信息。
系統示意圖如下:
其中關鍵的segment CNN 結構如下:
12.Vision-based Semantic Mapping and Localization for Autonomous Indoor Parking
室內自動泊車采用語義地圖的應用。系統流水線如下圖:
系統前端做VO,后端做地圖優化,優化算法是基于圖論的思想,如圖所示:
13.Integrating Metric and Semantic Maps for Vision-Only Automated Parking
另外一個自動泊車的語義地圖應用,結合了Metric map和Semantic Maps。另外,不同于上一篇論文的是,只有camera傳感器。系統流程圖如下:
語義信息如下圖:停車位線。
作者提出一種Base Map + Multi-Session Mapping的結構,便于地圖更新。其中語義地圖包括三部分:靜態地圖,動態地圖和道路網絡。
14. SemanticFusion: Dense 3D Semantic Mapping with Convolutional Neural Networks
借助CNN的工作,對RGB-D的SLAM平臺ElasticFusion做擴展。流程圖如圖所示:
下圖是一個結果例子:
15. Semi-Dense 3D Semantic Mapping from Monocular SLAM
在單目semi-dense SLAM加入深度學習的成果,構成語義地圖,系統框圖如下:其中2D-3D label transfer是將2D分割投射回3-D特征點云空間。
下面是一個算法流程圖,包括三個進程:Keyframe selection, 2D semantic segmentation, 和3D reconstruction with semantic optimization。
語義分割采用DeepLab-v2,SLAM是以前的LSD-SLAM,而Dense Conditional Random Fields(CRFs)負責3-D的融合。下圖是一個結果例子:
16. CubeSLAM: Monocular 3D Object Detection and SLAM without Prior Models
以前在3D目標檢測中介紹過。這里重點是,作為一個multi-view object SLAM系統,3-D cuboid proposals在Multi-view bundle adjustment (BA)得到優化。
系統工作示意圖如下:
下圖(a) 是目標SLAM 流水線,而(b)是BA中攝像頭,目標和點之間的測量誤差。
17. Structure Aware SLAM using Quadrics and Planes
還是在ORB-SLAM2加入深度學習元素,如下圖:faster RCNN用于目標檢測,目標跟蹤結果和feature matching融合。
18. SegMap: 3D Segment Mapping using Data-Driven Descriptors
如下圖包括5部分:segment extraction, description, localization, map reconstruction, 和 semantics extraction。
下圖的FCN是附加在SegMap descriptor提取語義信息的:
下圖是從KITTI dataset提取出來的segments:vehicles, buildings, other。
19. Place Categorization and Semantic Mapping on a Mobile Robot
還是基于CNN的工作,因為訓練的是one-vs-all的分離器,系統可以在線學習新類目標,而domain knowledge加入Bayesian filter framework可實現temporal coherence。下圖是產生的語義圖例子:
如下是語義圖的結構:為繪制metric map和Semantic Map,采用occupancy grid mapping算法,每個語義層建立一個地圖層。
20. Multi-View Deep Learning for Consistent Semantic Mapping with RGB-D Cameras
基于CNN做圖像的語義分割,特別是采用CNN學習多幀連續的語義性。之后和深度圖融合。
CNN模型如圖所示:
下圖是經典的CNN encoder-decoder architecture:
21. Co-Fusion: Real-time Segmentation, Tracking and Fusion of Multiple Objects
一個輸入RGB-D的dense SLAM系統,其中目標的模型包括兩種:active 和 inactive。下圖是其數據流:
起初系統只有一個目標模型:active的背景模型。跟蹤(pose tracking),分割(包括運動分割和圖像分割),然后是融合得到新模型。運動分割基于CRF方法,圖像分割基于深度學習模型SharpMask,而融合基于surfel模型(ElasticFusion)。
下圖是一個結果例子:
22. MaskFusion: Real-Time Recognition, Tracking and Reconstruction of Multiple Moving Objects
還是CNN的成果介入,提出一個MaskFusion,即RGB-D SLAM的平臺。下圖展示的MaskFusion后端的數據流:
下圖是分割方法的拆解:(a) RGB (b) depth, (c)-(g) 各個步驟時候的結果.
而這里是分割的流程圖:
23. Semantic Visual Localization
本文是一個實現定位的generative model,基于descriptor learning,訓練的時候加上semantic scene completion作為附加任務。
一個語義定位的例子如下圖:夏天拍攝的圖像放入數據庫,在季節變化后從不同的視角拍攝的圖像仍然可以成功定位。
下圖是descriptor learning采用的VED模型結構:
24.Joint Detection, Tracking and Mapping by Semantic Bundle Adjustment
本文給出一個Semantic Bundle Adjustment framework,在跟蹤攝像頭運動和環境建圖同時,靜態目標被檢測出來,而檢測的目標可以參與全局語義優化中。模型數據庫保存了檢測的目標,有2-D和3-D特征點信息。BA最后優化的是攝像頭的姿態和各個目標的姿態。
下圖是展示SBA和傳統SLAM的不同,將目標檢測加入pose graph可以改進SLAM。
下圖展示SLAM的結果:(a) 誤差累計后不能做閉環; (b) 集成目標檢測和語義分割可以做隱形的閉環,改進重建結果。
25. X-View: Graph-Based Semantic Multi-View Localization
X-View還是基于深度學習語義分割結果幫助定位。下面是一個能清楚展示系統工作原理的示意圖:
X-View是基于圖的多視角定位,其中語義圖描述子,vertex descriptor,是定位的關鍵。每個圖的節點,會提取random walk描述子,在下一步匹配定位時候用。下面就是它的系統框圖:
下圖告訴我們如何從圖像輸入中提取語義圖:
-
SLAM
+關注
關注
23文章
426瀏覽量
31931 -
計算機視覺
+關注
關注
8文章
1700瀏覽量
46130 -
深度學習
+關注
關注
73文章
5516瀏覽量
121553
原文標題:奇點汽車黃浴:SLAM的動態地圖和語義問題
文章出處:【微信號:IV_Technology,微信公眾號:智車科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論