SLAM(三) 編年史

前情題要 :

SLAM乃用於機器自身"定位",並同時"建構"環境的地圖,
與古老的技術,刻木頭以防止在林中迷路,有異曲同工之妙。


















在此補上,SLAM相關開放領域的說明



歷史

(經查以下年分稍有偏誤,確切請依論文年分)


廢話不多說,接著我們進入正題
SLAM一詞始於1990年,本為了對空間不確定性做預估,
隨後此技術並無飛快成長,網路上可考資料,
多半以軍事、研究用途。
(個人認為,是受到感測硬體昂貴、
運算速度軟硬體上難突破、應用領域小影響)
但十幾年後,電腦、機器人普及,運算硬體的升級與降價,
最重要的是數位鏡頭的演變,在visual SLAM被提出後,
近十幾年內,默默火速成長 !


2004
Mono-SLAM(Monocular)首先被提出,基於單目來實現SLAM
但鏡頭精細還不如現今成熟,所以當時仍然受限硬體影響。



2007
PTAM(Parallel Tracking and Mapping)被提出
此技術是為AR而誕生的,用來估測深度資訊,
透過估算,慢慢長出並建構3D的平面,
然而此技術卻對SLAM產生長遠影響。

2010
PTAM-SLAM被提出,因為PTAM推算平面的演算方法,
適合用在SLAM建構地圖上。
倚賴硬體的發展,Mono-SLAM使用此方法被實現出來。

2013
EKF-SLAM被提出,搭載卡爾曼濾波器的演算方法,
Kalman Filter 的原理在於利用現在的狀態資訊,
加上下一秒的輸入,推斷出下一時刻的輸出,
為最受推崇的機器人定位估算數學模型。

2013
Co-SLAM(Collaborative Visual SLAM)
同時使用多顆鏡頭,來完成SLAM,
之所以會使用到多顆鏡頭,
是因為物件深度的估算,採用的為"三角定位法",
通常會使用兩顆鏡頭以上
單目之所以能實現深度,是利用時間差的兩張圖片
計算出來的。
(雙目以上的SLAM,硬體成本較高且複雜,
現今多致力於單目與RGBD-SLAM上)
















2014
RGBD-SLAM(color + depth)
使用色彩與深度資訊,轉換成3D資料,
並利用深度與相機參數,估算自身定位。
受到深度相機(kinect、real sense)的普及,
深度資訊取得更容易,不用自己算了!
(根據google的tango計畫,未來智慧手機2.0上,
也將都搭載深度相機。)
因為不用自己算,所以快速、誤差低,
乃是至今仍發展中的一個流派。

2014
LSD-SLAM (Large-Scale Direct Monocular)
顧名思義,在大範圍的場景使用單目,來完成SLAM
此方法提出一種新概念,"大範圍"與"不再使用特徵點",
直接連貫地拼接地圖
解決了過於單調的場地,找不到特徵拼接點的問題
2014
LSD+SVO-SLAM(Semi-dense Visual Odometry )
上一版本的改良,使用極少量特徵,來做修正。

2015
ORB-SLAM(Oriented FAST and Rotated BRIEF SLAM )
PTAM使用特徵點流派的復興,基於單顆鏡頭,
使用兩種比對特徵的演算法,建構環境。
(FAST + BRIEF,快速並解決旋轉不變性問題,
適用於連續影像的追蹤比對)

2016.01
ORB-SLAM2,加入支持雙目的功能。

2016.07
LSD+DOS-SLAM(Direct & Sparse Visual Odometry)
LSD使用直接法(Direct Method),所以容易受外界光影響
於此加入光度校正,加強準確度。
(此法數學與物理複雜,在下也沒讀很懂,
有興趣的人可以再去看原文網站)

2016.11
ORB-SLAM2,加入支持RGBD的功能。


分水嶺

至此進入分水嶺,硬體上多半以單目(至多雙目)、
彩色 + 深度相機為主,
然而以是否取用特徵點分為兩個流派。

但硬體簡單,計算相對複雜
RGBD雖然資料直觀減少運算,但範圍卻受到深度相機限制
單目直接法(Direct Method),可以被用於大場景

取用特徵點與否,也受到使用空間範疇的影響
直接法(Direct Method)雖然受到光源影響
但卻可以解決沒有特徵的地方
使用特徵,在校準與追蹤上相對容易實現。

現在才剛進入2017,直至2016年底,各家SLAM都還在奮戰,
這是一個尚無盡頭,不會停止的戰爭,
沒有人的方法可以一統天下,
並且占盡優勢解決所有範疇。
















(其他還有不少SLAM淹沒在洪流中,演算法更是百百種,若有遺漏未介紹到,還請見諒。)

參考資料 :
PTAM-SLAM :
http://www.doc.ic.ac.uk/~gj414/monocular_slam/ptam.html

SLAM的演算法 :
http://www.iceira.ntu.edu.tw/project-plans/200-iii

LSD-SLAM :
http://vision.in.tum.de/research/vslam/lsdslam

ORB-SLAM :
http://webdiis.unizar.es/~raulmur/orbslam/