SLAM (simultaneous localization and mapping),也稱為CML (Concurrent Mapping and Localization), 即時(shí)定位與地圖構(gòu)建,或并發(fā)建圖與定位。問題可以描述為:將一個機(jī)器人放入未知環(huán)境中的未知位置,是否有辦法讓機(jī)器人一邊逐步描繪出此環(huán)境完全的地圖,所謂完全的地圖(a consistent map)是指不受障礙行進(jìn)到房間可進(jìn)入的每個角落。SLAM最早由Smith、Self和Cheeseman于1988年提出。由于其重要的理論與應(yīng)用價(jià)值,被很多學(xué)者認(rèn)為是實(shí)現(xiàn)真正全自主移動機(jī)器人的關(guān)鍵。
詞語解釋
Simultaneous Localization and Mapping
Simultaneous Localization and Mapping, 同步定位與建圖。
SLAM問題可以描述為: 機(jī)器人在未知環(huán)境中從一個未知位置開始移動,在移動過程中根據(jù)位置估計(jì)和地圖進(jìn)行自身定位,同時(shí)在自身定位的基礎(chǔ)上建造增量式地圖,實(shí)現(xiàn)機(jī)器人的自主定位和導(dǎo)航。
Scanning Laser Acoustic Microscope
Scanning Laser Acoustic Microscope, 激光掃描聲學(xué)顯微鏡。
激光掃描聲學(xué)顯微鏡是一種強(qiáng)有力的廣泛應(yīng)用于諸如工業(yè)用材料和生物醫(yī)學(xué)領(lǐng)域的無損檢測工具,其使用的頻率范圍為10MHz ~ 500MHz。
Lymphocyte Activation Molecule
Lymphocyte Activation Molecule, 醫(yī)學(xué)用語。
Supersonic Low Altitude Missile
SLAM — Supersonic Low Altitude Missile(超音速低空導(dǎo)彈)的縮寫,是美國的一項(xiàng)導(dǎo)彈研制計(jì)劃。
Symmetrically Loaded Acoustic Module
SLAM是Symmetrically Loaded Acoustic Module的英文縮寫 [1] ,中文意思是平衡裝載聲學(xué)模塊。
Satellite Link Attenuation Model
SLM是Satellite Link Attenuation Model的英文縮寫 [2] ,中文意思是衛(wèi)星鏈路衰減模型。
實(shí)時(shí)SLAM的未來以及深度學(xué)習(xí)與SLAM的比較
第一部分:為什么 SLAM 很重要?
視覺 SLAM 算法可以實(shí)時(shí)構(gòu)建世界的 3D 地圖,并同時(shí)追蹤攝像頭(手持式或增強(qiáng)現(xiàn)實(shí)設(shè)備上的頭戴式或安裝在機(jī)器人上)的位置和方向。SLAM 是卷積神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的補(bǔ)充:SLAM 關(guān)注于幾何問題而深度學(xué)習(xí)是感知、識別問題的大師。如果你想要一個能走到你的冰箱面前而不撞到墻壁的機(jī)器人,那就使用 SLAM。如果你想要一個能識別冰箱中的物品的機(jī)器人,那就使用卷積神經(jīng)網(wǎng)絡(luò)。
SfM/SLAM 基本原理:一個場景的 3D 結(jié)構(gòu)是根據(jù)點(diǎn)觀察和固有的攝像頭參數(shù),從攝像頭的估計(jì)的運(yùn)動中計(jì)算出來的.
SLAM 是 SfM(運(yùn)動恢復(fù)結(jié)構(gòu):Structure from Motion)的一種實(shí)時(shí)版本。視覺 SLAM 或基于視覺的 SLAM 是 SLAM 的一種僅使用攝像頭的變體,放棄了昂貴的激光傳感器和慣性測量單元。單眼 SLAM僅使用單個攝像頭,而非單眼 SLAM通常使用一個預(yù)校準(zhǔn)的固定基線的立體相機(jī)套件。SLAM 是計(jì)算機(jī)視覺領(lǐng)域所謂的幾何方法中最好案例。事實(shí)上,卡內(nèi)基梅隆大學(xué)的機(jī)器人研究所將研究生水平的計(jì)算機(jī)視覺課程分成了一個基于學(xué)習(xí)的視覺方法和一個單獨(dú)的基于幾何的視覺方法的課程。
1.運(yùn)動恢復(fù)結(jié)構(gòu) vs 視覺 SLAM
運(yùn)動恢復(fù)結(jié)構(gòu)(SfM)和 SLAM 所解決的問題非常相似,但 SfM 傳統(tǒng)上是以離線形式進(jìn)行的,而 SLAM 則已經(jīng)慢慢走向了低功耗/實(shí)時(shí)/單 RGB 相機(jī)的運(yùn)行模式。今天許多運(yùn)動恢復(fù)結(jié)構(gòu)方面的專家都在為世界上一些最大的科技公司,幫助打造更好的地圖。如果沒有關(guān)于多視圖幾何、SfM 和 SLAM 的豐富知識,像谷歌地圖這種成功的地圖產(chǎn)品根本就不可能出現(xiàn)。典型的 SfM 問題遵循:給定一個單個室外結(jié)構(gòu)(如大劇場/大體育館)的大型照片集合,構(gòu)建該結(jié)構(gòu)的 3D 模型并確定每個相機(jī)的姿勢。這個照片集合以離線形式處理,而且大型結(jié)構(gòu)重建所需時(shí)間從幾小時(shí)到幾天不等。
SfM 軟件:Bundler 是最成功的 SfM 開源庫之一
這里給出一些流行的 SfM 相關(guān)的軟件庫:
Bundler:一個開源的運(yùn)動恢復(fù)結(jié)構(gòu)工具包
Libceres:一個非線性最小二乘極小化工具(對束調(diào)整(bundle adjustment)問題很有用)
Andrew Zisserman 的多視圖幾何 MATLAB 函數(shù)
2.視覺 SLAM vs 自動駕駛
研討會的組織者之一 Andrew Davison 表示,盡管自動駕駛汽車是 SLAM 最重要的應(yīng)用之一,但用于自動化載具的 SLAM 應(yīng)該有其自己的研究軌道。(而且正如我們所見,研討會的展示者中沒有一個談到了自動駕駛汽車。)在接下來的許多年里,獨(dú)立于任何一個圣杯級的應(yīng)用而繼續(xù)在研究的角度上研究 SLAM 是有意義的。盡管在自動化載具方面存在著太多的系統(tǒng)級細(xì)節(jié)和技巧,但研究級的 SLAM 系統(tǒng)所需的不過是一個網(wǎng)絡(luò)攝像頭、算法知識和一點(diǎn)辛勞而已。視覺 SLAM 作為一個研究課題對數(shù)以千計(jì)的博士生的早期階段要友好得多,他們將首先需要好幾年的使用 SLAM 的實(shí)驗(yàn)室經(jīng)驗(yàn),然后才能開始考慮無人駕駛汽車等昂貴的機(jī)器人平臺。
谷歌無人駕駛汽車的感知系統(tǒng)
第二部分:實(shí)時(shí) SLAM 的未來
現(xiàn)在是時(shí)候正式總結(jié)和評論實(shí)時(shí) SLAM 的未來研討會上的演講了。Andrew Davison 以一個名叫基于視覺的 SALM 的十五年的精彩歷史概述開篇,他的幻燈片中還有一個介紹機(jī)器人學(xué)課程的好內(nèi)容。
你也許不知道 Andrew 是誰,他是倫敦帝國學(xué)院獨(dú)一無二的 Andrew Davison 教授。他最知名的成就是其 2003 年的 MonoSLAM 系統(tǒng),他是第一個展示如何在單個攝像頭上構(gòu)建 SLAM 系統(tǒng)的人,而那時(shí)候其他所有人都還認(rèn)為打造 SLAM 系統(tǒng)需要一個立體的雙目攝像頭套件。最近,他的研究成果已經(jīng)對戴森(Dyson)等公司的發(fā)展軌跡和他們的機(jī)器人系統(tǒng)的能力產(chǎn)生了影響(如全新的 Dyson360)。
我還記得 Davidson 教授曾在 2007 年的 BMVC(英國機(jī)器視覺大會)上給出了一個視覺 SLAM 教程。讓人驚訝的是,和主要的視覺大會上其它機(jī)器學(xué)習(xí)技術(shù)的紛繁成果相比,SLAM 的變化真是非常之少。過去八年里,對象識別已經(jīng)經(jīng)歷了兩三次小型變革,而今天的 SLAM 系統(tǒng)和其八年前的樣子看起來并沒有多大不同。了解 SLAM 的進(jìn)展的最好方法是看最成功和最讓人難忘的系統(tǒng)。在 Davidson 的研討會介紹演講中,他討論了一些過去 10-15 年里科研界所打造的典范系統(tǒng):
MonoSLAM
PTAM
FAB-MAP
DTAM
KinectFusion
1.Davison vs Horn:機(jī)器人視覺的下一篇章
Davison 還提到他正在寫一本關(guān)于機(jī)器人視覺的新書,這對計(jì)算機(jī)視覺、機(jī)器人和人工智能領(lǐng)域的研究者來說應(yīng)該是一個激動人心的好消息。上一本機(jī)器人視覺的書是由 B.K. Horn 寫的(出版于 1986 年),現(xiàn)在也到該更新的時(shí)候了。
機(jī)器人視覺的一本新書?
盡管我很樂意閱讀一本重在機(jī)器人視覺原理的巨著,但我個人希望該書關(guān)注的是機(jī)器人視覺的實(shí)用算法,就像 Hartley 和 Zissermann 的杰作《多視圖幾何》或 Thrun、Burgard 和 Fox 所著的《概率機(jī)器人學(xué)》那樣。這本關(guān)于視覺 SLAM 問題的書籍將會受到所有專注視覺研究者歡迎。
演講一:Christian Kerl 談 SLAM 中的連續(xù)軌跡
第一個演講來自 Christian Kerl,他提出了一種用于估計(jì)連續(xù)時(shí)間軌跡的密集跟蹤方法。其關(guān)鍵觀察結(jié)果發(fā)現(xiàn):大部分 SLAM 系統(tǒng)都在離散數(shù)目的時(shí)間步驟上估計(jì)攝像頭的位置(要么是相隔幾秒的關(guān)鍵幀,要么是相隔大約 1/25 秒的各個幀。
連續(xù)軌跡 vs 離散時(shí)間點(diǎn) SLAM/SfM 通常使用離散時(shí)間點(diǎn),但為什么不使用連續(xù)的呢?
Kerl 的大部分演講都集中于解決卷簾式快門相機(jī)的危害,而 Kerl 演示的系統(tǒng)還對建模給予謹(jǐn)慎的關(guān)注并消除了這些卷簾式快門的不利影響。
解決視覺 SLAM 中卷簾式快門相機(jī)的危害
演講二:Jakob Engel 談半密集直接 SLAM(Semi-Dense Direct SLAM)
LSD-SLAM(大規(guī)模直接單眼 SLAM)在2014 ECCV 上公開,也是我現(xiàn)在最喜歡的 SLAM 系統(tǒng)之一!Jakob Engel 在那里展示了他的系統(tǒng)并向觀眾展示了當(dāng)時(shí)最炫酷的一些 SLAM 可視化。對 SLAM 研究者來說,LSD-SLAM 是一個非常重要的系統(tǒng),因?yàn)樗皇褂眠吔腔蚱渌魏伪镜靥匦?。通過使用一種帶有穩(wěn)健的 Huber 損失的由粗到細(xì)的算法,直接跟蹤可由圖像到圖像對準(zhǔn)完成。這和那些基于特征的系統(tǒng)非常不同。深度估計(jì)使用了逆深度參數(shù)化(和許多其它系統(tǒng)一樣)并使用了大量或相對小的基準(zhǔn)圖像對。該算法并不依賴于圖像特征,而是靠有效地執(zhí)行紋理跟蹤。全局映射是通過創(chuàng)建和解決姿態(tài)圖形的束調(diào)整優(yōu)化問題而執(zhí)行的,而且這所有都是實(shí)時(shí)工作的。這個方法是半密集的,因?yàn)樗鼉H估計(jì)靠近圖像邊界的像素深度。LSD-SLAM 輸出比傳統(tǒng)的特征更密集,但并不如 Kinect 類型的 RGBD SLAM 那樣完全密集。
工作中的 LSD-SLAM:LSD-SLAM 同時(shí)生成一個攝像頭軌跡和一個半密集的 3D 場景重建。這種方法實(shí)時(shí)工作,不使用特征點(diǎn)作為圖元,并執(zhí)行直接的圖像到圖像對準(zhǔn)。
Engel 概述了原來的 LSD-SLAM 系統(tǒng)以及一些新成果,將它們最初的系統(tǒng)擴(kuò)展成更有創(chuàng)造性的應(yīng)用并實(shí)現(xiàn)了更有趣的部署。
全方位 LSD-SLAM是 LSD-SLAM 的一種延伸,因觀察到針孔模型不能用于大視場的觀測而被創(chuàng)造出來。這項(xiàng)成果提出于 IROS 2015(2015 年智能機(jī)器人和系統(tǒng)國際大會)(Caruso 是第一作者),能用于大視場(理想情況下可超過 180 度)。Engel 的演講很清楚地表示,你可以拿著相機(jī)以芭蕾舞般的動作極限旋轉(zhuǎn)在你的辦公室內(nèi)走來走去。這是窄視場 SLAM 最糟糕的應(yīng)用場景之一,但卻在 Omni LSD-SLAM 中效果良好。
全方位的 LSD-SLAM 模型
立體 LSD-SLAM是 LSD-SLAM 的一種用于雙眼攝像頭套件的延伸。這有助于獲得沒有限制的規(guī)模,而且其初始化是瞬時(shí)的,強(qiáng)烈旋轉(zhuǎn)也不存在問題。盡管從學(xué)術(shù)的角度看,單眼 SLAM 是很激動人心,但如果你的機(jī)器人是一輛 30,000 美元的車或 10,000 美元的無人機(jī)原型,你應(yīng)該有足夠的理由使用一套帶有兩個乃至更多攝像頭的套件。Stereo LSD-SLAM 在 SLAM 基準(zhǔn)上表現(xiàn)出了相當(dāng)強(qiáng)的競爭力。
Stereo LSD-SLAM 在 KITTI vehicle-SLAM 數(shù)據(jù)集上得到了優(yōu)異結(jié)果
Stereo LSD-SLAM 相當(dāng)實(shí)用,能優(yōu)化 SE(3) 中的姿態(tài)圖形,并包含了對自動曝光的校正。自動曝光校正的目標(biāo)是讓誤差函數(shù)相對于仿射光照變化而不變。顏色空間仿射轉(zhuǎn)換的基本參數(shù)是在匹配過程中估算出來的,但也被扔掉以估計(jì)圖像到圖像變換中的錯誤。Engel 在演講中稱,離群值(outliers)(通常是由過度曝光的圖像像素造成的)往往會帶來問題,需要很仔細(xì)才能處理它們的影響。
在他后面的演示中,Engel 讓我們一窺了關(guān)于立體和慣性傳感器的整合新研究。為了了解詳情,你只能跟蹤 arXiv 上的更新或向 Usenko/Engel 本人了解。在應(yīng)用方面,Engel 的演示中包含了由 LSD-SLAM 驅(qū)動的自動化四軸無人機(jī)的更新視頻。其飛行一開始是上下運(yùn)動的,以獲得對尺寸的估計(jì),然后又使用了自由空間的三維測繪(octomap)以估計(jì)自由空間,從而讓該四軸無人機(jī)可以在空間中為自己導(dǎo)航。
運(yùn)行 Stereo LSD-SLAM 的四軸無人機(jī)
LSD-SLAM 的故事也是基于特征 vs 直接方法的故事,Engel 給了辯論雙方公正的待遇?;谔卣鞯姆椒ū辉O(shè)計(jì)用在 Harris 那樣的邊角之上,而直接方法則是用整個圖像進(jìn)行對準(zhǔn)?;谔卣鞯姆椒ǜ欤ń刂?2015 年),但直接方法在并行處理上效果很好。離群值可以通過追溯的方法從基于特征的系統(tǒng)中移除,而直接方法在離群值處理上沒那么靈活。卷簾式快門是直接方法的一個更大的問題,而且使用全局快門或卷簾式快門模型是有意義的。基于特征的方法需要使用不完整的信息進(jìn)行決策,而直接方法可以使用更多信息。基于特征的方法不需要很好的初始化,而直接方法在初始化上需要更巧妙的技巧。對直接方法的研究只有 4 年,稀疏方法則有 20 多年的歷史了。Engel 樂觀地認(rèn)為直接方法未來將上升成為頂級方法,我也這么想。
SLAM 系統(tǒng)構(gòu)建上,基于特征的方法 vs 直接方法
在 Engel 演講最后,Davison 問到了語義分割方面的問題,而 Engel 不知道語義分割是否可以在半密集的接近圖像邊界的數(shù)據(jù)上直接執(zhí)行。但是,我個人的看法是,有更好的方法可將語義分割應(yīng)用到 LSD 類型的 SLAM 系統(tǒng)上。半密集 SLAM 可以專注于靠近邊界的幾何信息,而對象識別可以專注于遠(yuǎn)離這同一邊界的可靠語義,從而有可能創(chuàng)造出一個混合了幾何和語義的圖像解讀。
演講三:Torsten Sattler 談大規(guī)模定位與地圖構(gòu)建面臨的挑戰(zhàn)
Torsten Sattler 的演講談?wù)摿舜笠?guī)模定位與地圖構(gòu)建。這項(xiàng)工作的目的是在已有的地圖內(nèi)執(zhí)行六個自由度的定位,尤其是移動定位。演講中的一個關(guān)鍵點(diǎn)是:當(dāng)你使用傳統(tǒng)的基于特征的方法時(shí),存儲你的描述很快就將變得非常昂貴。視覺詞匯表(記得產(chǎn)品量化嗎?)等技術(shù)可以顯著減少存儲開銷,再加上某種程度的巧妙優(yōu)化,描述的存儲將不再成為存儲瓶頸。
Sattler 的演講給出的另一個重要的關(guān)鍵信息是正確數(shù)據(jù)的數(shù)量實(shí)際上并不是相機(jī)姿態(tài)估計(jì)的很好的置信度測量。當(dāng)特征點(diǎn)全都集中于圖像的單一一個部分時(shí),相機(jī)定位可能會在千里之外!一個更好的置信度測量是有效正確數(shù)據(jù)計(jì)數(shù),其可以將正確數(shù)據(jù)所在的區(qū)域作為整體圖像區(qū)域的一個部分來進(jìn)行審查。你真正希望得到的是整體圖像上的特征匹配——如果信息散布在整個圖像上,你能得到更好的姿態(tài)估計(jì)。
Sattler 對未來實(shí)時(shí) SLAM 的演講是這樣的:我們應(yīng)該關(guān)注緊湊型的地圖表征,我們應(yīng)該對相機(jī)姿態(tài)估計(jì)置信度有更好的理解(如樹上權(quán)重下降的特征),我們應(yīng)該在更有挑戰(zhàn)性的場景中研發(fā)(如帶有平面結(jié)構(gòu)的世界和在白天的地圖上的夜間定位)。
移動定位:Sattler 的關(guān)鍵問題是使用單張智能手機(jī)圖片在大城市里定位你自己
演講四:Mur-Artal 談基于特征的方法 vs 直接方法
ORB-SLAM 的創(chuàng)造者 Mur-Artal 的演講內(nèi)容全部圍繞著 SLAM 領(lǐng)域內(nèi)基于特征的方法 vs 直接方法的爭論,而他顯然站在基于特征的方法一邊。ORB-SLAM 可通過一個開源的 SLAM 軟件包獲取,而且它很難被擊敗。在他對 ORB-SLAM vs PTAM 的評價(jià)中,似乎 PTAM 實(shí)際上常常失?。ㄖ辽僭?TUM RGB-D 基準(zhǔn)上)。LSD-SLAM 在 TUM RGB-D 基準(zhǔn)上的錯誤通常遠(yuǎn)高于預(yù)期。
基于特征的方法 vs 直接方法
演講五:Tango 項(xiàng)目和用于圖像到圖像限制的視覺環(huán)路閉合
簡單來說,谷歌的 Tango 項(xiàng)目是世界上第一個商業(yè)化 SLAM 的嘗試。來自 Google Zurich 的 Simon Lynen(之前屬于 ETH Zurich)帶著一個 Tango 現(xiàn)場演示(在一臺平板電腦上)來到了研討會,并展示了 Tango 世界的新內(nèi)容。你可能不知道,谷歌希望將 SLAM 能力集成到下一代安卓設(shè)備中。
谷歌的Tango項(xiàng)目
Tango 項(xiàng)目展示討論了一種通過在圖像到圖像匹配矩陣中尋找特定的模式以進(jìn)行環(huán)路閉合的新方法。這 個方法是來自沒有固定位置的位置識別成果。他們也做帶有基于視覺的環(huán)路閉合的在線束調(diào)整。
Tango 項(xiàng)目里的循環(huán)閉合
這種圖像到圖像矩陣揭示一種尋找環(huán)路閉合的新方法??稍谠?YouTube 視頻中查看工作中的算法。
Tango 項(xiàng)目的人也在研究將谷歌多個眾包地圖結(jié)合起來,其目標(biāo)是將由不同的人使用配置有 Tango 的設(shè)備創(chuàng)造的多個迷你地圖結(jié)合起來。
Simon 展示了一個山地自行車軌跡跟蹤的視頻,這在實(shí)踐中實(shí)際上是相當(dāng)困難的。其中的想法是使用一個 Tango 設(shè)備跟蹤一輛山地自行車,并創(chuàng)建一份地圖,然后后續(xù)的目標(biāo)是讓另外一個人沿著這條軌跡走。這個目前只是半有效狀態(tài)——當(dāng)在地圖構(gòu)建和跟蹤步驟之前有幾個小時(shí)時(shí)間時(shí)有效,但過了幾周、幾個月就沒效果了。
在 Tango 相關(guān)的討論中,Richard Newcombe 指出 Tango 項(xiàng)目所使用的 “特征” 在更深度地理解環(huán)境上還是相當(dāng)落后的,而且看起來類似 Tango 項(xiàng)目的方法無法在室外場景中起作用——室外場景有非剛性大量光照變化等。所以我們有望見到為室外環(huán)境設(shè)計(jì)的不同系統(tǒng)嗎?Tango 項(xiàng)目將成為一個室內(nèi)地圖構(gòu)建設(shè)備嗎?
演講六:ElasticFusion 是沒有姿態(tài)圖形的密集型 SLAM
ElasticFusion 是一種需要 Kinect 這樣的 RGBD 傳感器的密集型 SLAM 技術(shù)。2-3 分鐘就能獲得單個房間的高質(zhì)量 3D 掃描,這真是相當(dāng)酷。許多 SLAM 系統(tǒng)的場景背后都使用了姿態(tài)圖形,這種技術(shù)有一種不同的(以地圖為中心)方法。該方法專注于構(gòu)建地圖,但其訣竅是其構(gòu)建的地圖可以變形,也因此得名 ElasticFusion(彈性融合)。其中算法融合的部分是向 KinectFusion 致敬——KinectFusion 是第一個高質(zhì)量的基于 Kinect 的重建方式。Surfels 也被用作底層的基元。
圖片來自 Kintinuous,Whelan 的 Elastic Fusion 的早期版本
恢復(fù)光源:我們一窺了來自倫敦帝國學(xué)院/戴森機(jī)器人實(shí)驗(yàn)室的尚未發(fā)表的新研究成果。其中的想法是通過探測光源方向和探測鏡面反射,你可以提升 3D 重建的結(jié)果。關(guān)于恢復(fù)光源位置的炫酷視頻顯示其最多能處理 4 個獨(dú)立光源。
演講七:Richard Newcombe 的 DynamicFusion
Richard Newcombe(他最近成立的公司被 Oculus 收購)是最后一位展示者。Richard Newcombe 是 DTAM、KinectFusion 和 DynamicFusion 背后的人,見到他真是非??幔凰壳皬氖绿摂M現(xiàn)實(shí)領(lǐng)域的研發(fā)。
Newcombe 的 DynamicFusion 算法。該技術(shù)在聲望很高的 CVPR 2015中獲得最佳論文獎。
2.研討會演示
在演示會議期間(在研討會中間舉行),許多展示者展示了他們的 SLAM 系統(tǒng)工作中的樣子。這些系統(tǒng)中許多都是以開源軟件包的形式提供的,所以如果你對實(shí)時(shí) SLAM 感興趣,可以嘗試下載這些代碼。但是,最亮眼的演示是 Andrew Davison 展柜上他的來自 2004 年的 MonoSLAM 演示。Andrew 不得不恢復(fù)了已有 15 年歲月的計(jì)算機(jī)(運(yùn)行的是 Redhat Linux)來展示他原來的系統(tǒng),運(yùn)行在原來的硬件上。如果計(jì)算機(jī)視覺社區(qū)將決定舉辦一場復(fù)古視覺的演示會議,那我馬上就將會提名 Andrew 應(yīng)得最佳論文獎。
Andrew 復(fù)古的視覺 SLAM 配置
看著 SLAM 系統(tǒng)專家揮動自己的 USB 攝像頭真是一件有趣的事——他們在展示他們的系統(tǒng)圍繞他們的筆記本電腦構(gòu)建周圍桌子大小區(qū)域的 3D 地圖。如果你仔細(xì)看了這些專家移動攝像頭的方式(即平穩(wěn)的圓圈運(yùn)動),你幾乎就能看出一個人在 SLAM 領(lǐng)域工作了多長時(shí)間。當(dāng)一位非專家級的人拿著攝像頭時(shí),跟蹤失敗的概率明顯更高。
我有幸在演示會議期間和 Andrew 進(jìn)行了交談,我很好奇這一系列的成果(過去 15 年中)中哪一個最讓他感到驚訝。他的回答是 PTAM 最讓他吃驚,因?yàn)槠浔砻髁藢?shí)時(shí)束調(diào)整執(zhí)行的方式。PTAM 系統(tǒng)本質(zhì)上是 MonoSLAM++ 系統(tǒng),但因?yàn)椴捎昧艘环N重量級算法(束調(diào)整)而顯著提高了跟蹤效果并做到了實(shí)時(shí)——在 2000 年早期 Andrew 還認(rèn)為“實(shí)時(shí)”是不可能辦到的。
第三部分:深度學(xué)習(xí) vs SLAM
SLAM 小組討論真是樂趣無窮。在我們進(jìn)入重要的深度學(xué)習(xí) vs SLAM討論之前,我應(yīng)該說明每一位研討會展示者都同意:語義對構(gòu)建更大更好的 SLAM 系統(tǒng)是必需的。關(guān)于未來的方向,這里有很多有趣的小對話。在爭論中,Marc Pollefeys(一位知名的 SfM 和多視角幾何研究者)提醒所有人,機(jī)器人是 SLAM 的一個殺手級應(yīng)用,并建議我們保持對大獎的關(guān)注。這令人非常驚訝,因?yàn)?SLAM 傳統(tǒng)上是適用于機(jī)器人問題的,但過去幾十年機(jī)器人并沒有什么成功(谷歌機(jī)器人?),導(dǎo)致 SLAM 的關(guān)注重點(diǎn)從機(jī)器人轉(zhuǎn)移到了大規(guī)模地圖構(gòu)建(包括谷歌地圖)和增強(qiáng)現(xiàn)實(shí)上。研討會上沒人談?wù)撨^機(jī)器人。
1.將語義信息集成到 SLAM 中
人們對將語義整合到今天最出色的 SLAM 系統(tǒng)中有很大興趣。當(dāng)涉及語義時(shí), SLAM 社區(qū)不幸地卡在了視覺詞袋(bags-of-visual-words)的世界里,而在如何將語義信息整合進(jìn)他們的系統(tǒng)上沒有什么新想法。在語義一端,我們現(xiàn)在已經(jīng)看到 CVPR/ICCV/ECCV 上冒出了很多實(shí)時(shí)語義分割演示(基于卷積神經(jīng)網(wǎng)絡(luò));在我看來,SLAM 需要深度學(xué)習(xí),而深度學(xué)習(xí)也一樣需要 SLAM。
人們經(jīng)常談到將語義整合進(jìn) SLAM,但說起來容易做起來難。圖片來自 Moreno 的博士論文(142 頁):密集型語義 SLAM
2.端到端學(xué)習(xí)會主宰 SLAM 嗎?
在 SLAM 研討會小組討論結(jié)束時(shí),Zeeshan Zia 博士提出了一個震驚所有人的問題,并引發(fā)了一場充滿能量的討論,令人難忘。你應(yīng)該看看小組成員們臉上的表情。那就像是將一個深度學(xué)習(xí)的火球投向一群幾何學(xué)家。他們的面部表情表達(dá)出了他們的困惑、憤怒和厭惡。他們想:你怎么敢質(zhì)疑我們?正是在這些稍縱即逝的時(shí)刻,我們才能真正體會到大會的體驗(yàn)。Zia 的問題基本上是:在構(gòu)建今天的 SLAM 系統(tǒng)時(shí),端到端學(xué)習(xí)很快就將取代大部分人工勞動嗎?
Zia 的問題非常重要,因?yàn)槎说蕉说目捎?xùn)練系統(tǒng)已經(jīng)慢慢進(jìn)入到了很多高級的計(jì)算機(jī)問題中,相信 SLAM 會是一個例外是沒有道理的。有好幾位展示者都指出當(dāng)前的 SLAM 系統(tǒng)過于依賴幾何,以至于讓完全基于深度學(xué)習(xí)的 SLAM 系統(tǒng)看起來不合理了——我們應(yīng)該使用學(xué)習(xí)技術(shù)得到更好的點(diǎn)描述,而不要管幾何。你可以使用深度學(xué)習(xí)做一個計(jì)算器,并不意味你應(yīng)該這么做。
通過卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)立體相似度函數(shù),來自 Yan LeCun 及其合作者
盡管許多小組討論發(fā)言人都使用了有些肯定不行回應(yīng),但讓人驚訝的是,卻是 Newcombe 聲援了深度學(xué)習(xí)和 SLAM 聯(lián)姻的可能。
3.Newcombe 的提議:使用 SLAM 助力深度學(xué)習(xí)
盡管 Newcombe 在深度學(xué)習(xí)可能如何幫助 SLAM 上沒有提供很多證據(jù)或想法,但他卻為 SLAM 如何可能為深度學(xué)習(xí)提供幫助給出了一條清晰的路徑。想想看我們使用大規(guī)模 SLAM 已經(jīng)構(gòu)建出的地圖以及這些系統(tǒng)所提供的對應(yīng)——這難道不是一個構(gòu)建能幫助深度學(xué)習(xí)的萬億級圖像到圖像相關(guān)數(shù)據(jù)集的清晰路徑嗎?其基本思路是:今天的 SLAM 系統(tǒng)是大規(guī)模的對應(yīng)引擎,可以用來生成大規(guī)模數(shù)據(jù)集,而這正是深度卷積神經(jīng)網(wǎng)絡(luò)所需要的。
第四部分:結(jié)語
這次 ICCV 大會上主流的工作(重在機(jī)器學(xué)習(xí))和本次實(shí)時(shí) SLAM 研討會所呈現(xiàn)出現(xiàn)的工作(重在束調(diào)整等幾何方法)之間存在相當(dāng)大的脫節(jié)。主流的計(jì)算機(jī)視覺社區(qū)在過去十年內(nèi)已經(jīng)見證了多次小型變革(如:Dalal-Triggs、DPM、ImageNet、ConvNets、R-CNN),而今天的 SLAM 系統(tǒng)和它們八年前的樣子并沒有很大的不同。Kinect 傳感器可能是 SLAM 領(lǐng)域唯一的最大的徹底變革的技術(shù),但基礎(chǔ)算法仍舊保持著原樣。
集成語義信息:視覺 SLAM 的下一個前沿. 來自 Arwen Wallington 博客的腦圖
今天的 SLAM 系統(tǒng)能幫助機(jī)器在幾何上理解眼前的世界(即在本地坐標(biāo)系中構(gòu)建關(guān)聯(lián)),而今天的深度學(xué)習(xí)系統(tǒng)能幫助機(jī)器進(jìn)行分類推理(即在不同的對象實(shí)例之上構(gòu)建關(guān)聯(lián))。總的來說,在視覺 SLAM 上,我與 Newcombe 和 Davison 一樣興奮,因?yàn)榛谝曈X的算法將會將增強(qiáng)現(xiàn)實(shí)和虛擬現(xiàn)實(shí)轉(zhuǎn)變成一個價(jià)值數(shù)十億美元的產(chǎn)業(yè)。但是,我們不應(yīng)忘記保持對那個萬億美元市場的關(guān)注,那個將重新定義 “工作” 的市場——機(jī)器人。機(jī)器人 SLAM 的時(shí)代很快就要到來了。
SLAM的前世今生
SLAM的前世
我之前從本科到研究生,一直在導(dǎo)航與定位領(lǐng)域?qū)W習(xí),一開始偏重于高精度的慣性導(dǎo)航、衛(wèi)星導(dǎo)航、星光制導(dǎo)及其組合導(dǎo)航。出于對實(shí)現(xiàn)無源導(dǎo)航的執(zhí)念,我慢慢開始研究視覺導(dǎo)航中的SLAM方向,并與傳統(tǒng)的慣性器件做組合,實(shí)現(xiàn)獨(dú)立設(shè)備的自主導(dǎo)航定位。
定位、定向、測速、授時(shí)是人們惆悵千年都未能完全解決的問題,最早的時(shí)候,古人只能靠夜觀天象和司南來做簡單的定向。直至元代,出于對定位的需求,才華橫溢的中國人發(fā)明了令人嘆為觀止的牽星術(shù),用牽星板測量星星實(shí)現(xiàn)緯度估計(jì)。
1964年美國投入使用GPS,突然就打破了大家的游戲規(guī)則。軍用的P碼可以達(dá)到1-2米級精度,開放給大眾使用的CA碼也能夠?qū)崿F(xiàn)5-10米級的精度。
后來大家一方面為了突破P碼封鎖,另一方面為了追求更高的定位定姿精度,想出了很多十分具有創(chuàng)意的想法來挺升GPS的精度。利用RTK的實(shí)時(shí)相位差分技術(shù),甚至能實(shí)現(xiàn)厘米的定位精度,基本上解決了室外的定位和定姿問題。
但是室內(nèi)這個問題就難辦多了,為了實(shí)現(xiàn)室內(nèi)的定位定姿,一大批技術(shù)不斷涌現(xiàn),其中,SLAM技術(shù)逐漸脫穎而出。SLAM是一個十分交叉學(xué)科的領(lǐng)域,我先從它的傳感器講起。
▌離不開這兩類傳感器
目前用在SLAM上的Sensor主要分兩大類,激光雷達(dá)和攝像頭。
這里面列舉了一些常見的雷達(dá)和各種深度攝像頭。激光雷達(dá)有單線多線之分,角分辨率及精度也各有千秋。SICK、velodyne、Hokuyo以及國內(nèi)的北醒光學(xué)、Slamtech是比較有名的激光雷達(dá)廠商。他們可以作為SLAM的一種輸入形式。
這個小視頻里展示的就是一種簡單的2D SLAM。
這個小視頻是賓大的教授kumar做的特別有名的一個demo,是在無人機(jī)上利用二維激光雷達(dá)做的SLAM。
而VSLAM則主要用攝像頭來實(shí)現(xiàn),攝像頭品種繁多,主要分為單目、雙目、單目結(jié)構(gòu)光、雙目結(jié)構(gòu)光、ToF幾大類。他們的核心都是獲取RGB和depth map(深度信息)。簡單的單目和雙目(Zed、leapmotion)我這里不多做解釋,我主要解釋一下結(jié)構(gòu)光和ToF。
▌最近流行的結(jié)構(gòu)光和TOF
結(jié)構(gòu)光原理的深度攝像機(jī)通常具有激光投射器、光學(xué)衍射元件(DOE)、紅外攝像頭三大核心器件。
這個圖(下圖)摘自primesense的專利。
可以看到primesense的doe是由兩部分組成的,一個是擴(kuò)散片,一個是衍射片。先通過擴(kuò)散成一個區(qū)域的隨機(jī)散斑,然后復(fù)制成九份,投射到了被攝物體上。根據(jù)紅外攝像頭捕捉到的紅外散斑,PS1080這個芯片就可以快速解算出各個點(diǎn)的深度信息。
這兒還有兩款結(jié)構(gòu)光原理的攝像頭。
第一頁它是由兩幅十分規(guī)律的散斑組成,最后同時(shí)被紅外相機(jī)獲得,精度相對較高。但據(jù)說DOE成本也比較高。
還有一種比較獨(dú)特的方案(最后一幅圖),它采用mems微鏡的方式,類似DLP投影儀,將激光器進(jìn)行調(diào)頻,通過微鏡反射出去,并快速改變微鏡姿態(tài),進(jìn)行行列掃描,實(shí)現(xiàn)結(jié)構(gòu)光的投射。(產(chǎn)自ST,ST經(jīng)常做出一些比較炫的黑科技)。
ToF(time of flight)也是一種很有前景的深度獲取方法。
傳感器發(fā)出經(jīng)調(diào)制的近紅外光,遇物體后反射,傳感器通過計(jì)算光線發(fā)射和反射時(shí)間差或相位差,來換算被拍攝景物的距離,以產(chǎn)生深度信息。類似于雷達(dá),或者想象一下蝙蝠,softkinetic的DS325采用的就是ToF方案(TI設(shè)計(jì)的),但是它的接收器微觀結(jié)構(gòu)比較特殊,有2個或者更多快門,測ps級別的時(shí)間差,但它的單位像素尺寸通常在100um的尺寸,所以目前分辨率不高。以后也會有不錯的前景,但我覺得并不是顛覆性的。
好,那在有了深度圖之后呢,SLAM算法就開始工作了,由于Sensor和需求的不同,SLAM的呈現(xiàn)形式略有差異。大致可以分為激光SLAM(也分2D和3D)和視覺SLAM(也分Sparse、semiDense、Dense)兩類,但其主要思路大同小異。
這個是Sparse(稀疏)的
這個偏Dense(密集)的
▌SLAM算法實(shí)現(xiàn)的4要素
SLAM算法在實(shí)現(xiàn)的時(shí)候主要要考慮以下4個方面吧:
1. 地圖表示問題,比如dense和sparse都是它的不同表達(dá)方式,這個需要根據(jù)實(shí)際場景需求去抉擇
2. 信息感知問題,需要考慮如何全面的感知這個環(huán)境,RGBD攝像頭FOV通常比較小,但激光雷達(dá)比較大
3. 數(shù)據(jù)關(guān)聯(lián)問題,不同的sensor的數(shù)據(jù)類型、時(shí)間戳、坐標(biāo)系表達(dá)方式各有不同,需要統(tǒng)一處理
4. 定位與構(gòu)圖問題,就是指怎么實(shí)現(xiàn)位姿估計(jì)和建模,這里面涉及到很多數(shù)學(xué)問題,物理模型建立,狀態(tài)估計(jì)和優(yōu)化
其他的還有回環(huán)檢測問題,探索問題(exploration),以及綁架問題(kidnapping)。
這個是一個比較有名的SLAM算法,這個回環(huán)檢測就很漂亮。但這個調(diào)用了cuda,gpu對運(yùn)算能力要求挺高,效果看起來比較炫。
▌以VSLAM舉個栗子
我大概講一種比較流行的VSLAM方法框架。
整個SLAM大概可以分為前端和后端,前端相當(dāng)于VO(視覺里程計(jì)),研究幀與幀之間變換關(guān)系。首先提取每幀圖像特征點(diǎn),利用相鄰幀圖像,進(jìn)行特征點(diǎn)匹配,然后利用RANSAC去除大噪聲,然后進(jìn)行匹配,得到一個pose信息(位置和姿態(tài)),同時(shí)可以利用IMU(Inertial measurement unit慣性測量單元)提供的姿態(tài)信息進(jìn)行濾波融合
后端則主要是對前端出結(jié)果進(jìn)行優(yōu)化,利用濾波理論(EKF、UKF、PF)、或者優(yōu)化理論TORO、G2O進(jìn)行樹或者圖的優(yōu)化。最終得到最優(yōu)的位姿估計(jì)。
后端這邊難點(diǎn)比較多,涉及到的數(shù)學(xué)知識也比較多,總的來說大家已經(jīng)慢慢拋棄傳統(tǒng)的濾波理論走向圖優(yōu)化去了。
因?yàn)榛跒V波的理論,濾波器穩(wěn)度增長太快,這對于需要頻繁求逆的EKF(擴(kuò)展卡爾曼濾波器),PF壓力很大。而基于圖的SLAM,通常以keyframe(關(guān)鍵幀)為基礎(chǔ),建立多個節(jié)點(diǎn)和節(jié)點(diǎn)之間的相對變換關(guān)系,比如仿射變換矩陣,并不斷地進(jìn)行關(guān)鍵節(jié)點(diǎn)的維護(hù),保證圖的容量,在保證精度的同時(shí),降低了計(jì)算量。
列舉幾個目前比較有名的SLAM算法:PTAM,MonoSLAM, ORB-SLAM,RGBD-SLAM,RTAB-SLAM,LSD-SLAM。
所以大家如果想學(xué)習(xí)SLAM的話,各個高校提高的素材是很多的,比如賓大、MIT、ETH、香港科技大學(xué)、帝國理工等等都有比較好的代表作品,還有一個比較有前景的就是三維的機(jī)器視覺,普林斯頓大學(xué)的肖劍雄教授結(jié)合SLAM和Deep Learning做一些三維物體的分類和識別, 實(shí)現(xiàn)一個對場景深度理解的機(jī)器人感知引擎。
http://robots.princeton.edu/talks/2016_MIT/RobotPerception.pdf這是他們的展示。
總的來說,SLAM技術(shù)從最早的軍事用途(核潛艇海底定位就有了SLAM的雛形)到今天,已經(jīng)逐步走入人們的視野,掃地機(jī)器人的盛行更是讓它名聲大噪。同時(shí)基于三維視覺的VSLAM越來越顯主流。在地面/空中機(jī)器人、VR/AR/MR、汽車/AGV自動駕駛等領(lǐng)域,都會得到深入的發(fā)展,同時(shí)也會出現(xiàn)越來越多的細(xì)分市場等待挖掘。
這個是occipital團(tuán)隊(duì)出的一個產(chǎn)品,是個很有意思的應(yīng)用,國內(nèi)賣4000+,大概一個月1000出貨量吧(雖然不是很多,但是效果不錯,pad可玩)虛擬家居、無人飛行/駕駛、虛擬試衣、3D打印、刑偵現(xiàn)場記錄、沉浸式游戲、增強(qiáng)現(xiàn)實(shí)、商場推送、設(shè)計(jì)輔助、地震救援、工業(yè)流水線、GIS采集等等,都等待著VSLAM技術(shù)一展宏圖
▌SLAM的今生——還存在著問題
多傳感器融合、優(yōu)化數(shù)據(jù)關(guān)聯(lián)與回環(huán)檢測、與前端異構(gòu)處理器集成、提升魯棒性和重定位精度都是SLAM技術(shù)接下來的發(fā)展方向,但這些都會隨著消費(fèi)刺激和產(chǎn)業(yè)鏈的發(fā)展逐步解決。就像手機(jī)中的陀螺儀一樣,在不久的將來,也會飛入尋常百姓家,改變?nèi)祟惖纳睢?/p>
不過說實(shí)話,SLAM在全面進(jìn)入消費(fèi)級市場的過程中,也面對著一些阻力和難題。比如Sensor精度不高、計(jì)算量大、Sensor應(yīng)用場景不具有普適性等等問題。
多傳感器融合、優(yōu)化數(shù)據(jù)關(guān)聯(lián)與回環(huán)檢測、與前端異構(gòu)處理器集成、提升魯棒性和重定位精度都是SLAM技術(shù)接下來的發(fā)展方向,但這些都會隨著消費(fèi)刺激和產(chǎn)業(yè)鏈的發(fā)展逐步解決。就像手機(jī)中的陀螺儀一樣,在不久的將來,也會飛入尋常百姓家,改變?nèi)祟惖纳睢?/p>
(激光雷達(dá)和攝像頭兩種 SLAM 方式各有什么優(yōu)缺點(diǎn)呢,有沒有一種綜合的方式互補(bǔ)各自的缺點(diǎn)的呢?)
激光雷達(dá)優(yōu)點(diǎn)是可視范圍廣,但是缺點(diǎn)性價(jià)比低,低成本的雷達(dá)角分辨率不夠高,影響到建模精度。vSLAM的話缺點(diǎn)就是FOV通常不大,50-60degree,這樣高速旋轉(zhuǎn)時(shí)就容易丟,解決方案有的,我們公司就在做vSLAM跟雷達(dá)還有IMU的組合。
(請問目前基于視覺的SLAM的計(jì)算量有多大?嵌入式系統(tǒng)上如果要做到實(shí)時(shí)30fps,是不是只有Nvidia的芯片(支持cuda)才可以?)
第一個問題,雖然基于視覺的SLAM計(jì)算量相對較大,但在嵌入式系統(tǒng)上是可以跑起來的,Sparse的SLAM可以達(dá)到30-50hz(也不需要GPU和Cuda),如果dense的話就比較消耗資源,根據(jù)點(diǎn)云還有三角化密度可調(diào),10-20hz也是沒有問題。
并不一定要用cuda,一些用到cuda和GPU的算法主要是用來加速SIFT、ICP,以及后期三角化和mesh的過程,即使不用cuda可以采用其他的特征點(diǎn)提取和匹配策略也是可以的。
▌最后一個問題
想了解下,您對機(jī)器人的未來趨勢怎么看?
這個問題就比較大了。
機(jī)器人產(chǎn)業(yè)是個很大的Ecosystem,短時(shí)間來講,可能產(chǎn)業(yè)鏈不夠完整,消費(fèi)級市場缺乏爆點(diǎn)爆款。雖然大家都在談?wù)撟鰴C(jī)器人,但是好多公司并沒有解決用戶痛點(diǎn),也沒有為機(jī)器人產(chǎn)業(yè)鏈創(chuàng)造什么價(jià)值。
但是大家可以看到, 大批缺乏特色和積淀的機(jī)器人公司正在被淘汰,行業(yè)格局越來越清晰,分工逐漸完善,一大批細(xì)分市場成長起來。
從機(jī)器人的感知部分來說,傳感器性能提升、前端處理(目前的sensor前端處理做的太少,給主CPU造成了很大的負(fù)擔(dān))、多傳感器融合是一個很大的增長點(diǎn)。
現(xiàn)在人工智能也開始揚(yáng)頭,深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)專用的分布式異構(gòu)處理器及其協(xié)處理器成為緊急需求,我個人很希望國內(nèi)有公司能把這塊做好。
也有好多創(chuàng)業(yè)公司做底層工藝比如高推重比電機(jī)、高能量密度電池、復(fù)合材料,他們和機(jī)器人產(chǎn)業(yè)的對接,也會加速機(jī)器人行業(yè)的發(fā)展。整個機(jī)器人生態(tài)架構(gòu)會越來越清晰,從硬件層到算法層到功能層到SDK 再到應(yīng)用層,每一個細(xì)分領(lǐng)域都有公司切入,隨著這些產(chǎn)業(yè)節(jié)點(diǎn)的完善,能看到機(jī)器人行業(yè)的前景還是很棒的,相信不久之后就會迎來堪比互聯(lián)網(wǎng)的指數(shù)式增長!
責(zé)任編輯:lq
-
移動機(jī)器人
+關(guān)注
關(guān)注
2文章
755瀏覽量
33530 -
SLAM
+關(guān)注
關(guān)注
23文章
417瀏覽量
31758 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5471瀏覽量
120904
原文標(biāo)題:深度好文 | 超全SLAM技術(shù)及應(yīng)用介紹
文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論