大牛講堂|SLAM最終話:視覺裡程計

2021-01-11 雷鋒網

雷鋒網按:本文作者高翔博士。Simultaneous Localization and Mapping,即時定位與地圖構建技術。無論在室內、野外、空中還是水下,SLAM是機器人進入未知環境遇到的第一個問題。本期將給大家介紹SLAM的視覺裡程計。

本講主要關注視覺裡程計。為了講清楚它的來龍去脈,我們會進行一些公式的推導。視覺裡程計算法需要大量的幾何知識,我們將在必要的時候,以Tips的形式介紹一些背景知識。

一、裡程計

在裡程計問題中,我們希望測量一個運動物體的軌跡。這可以通過許多不同的手段來實現。例如,我們在汽車輪胎上安裝計數碼盤,就可以得到輪胎轉動的距離,從而得到汽車的估計。或者,也可以測量汽車的速度、加速度,通過時間積分來計算它的位移。完成這種運動估計的裝置(包括硬體和算法)叫做裡程計(Odometry)。

裡程計一個很重要的特性,是它只關心局部時間上的運動,多數時候是指兩個時刻間的運動。當我們以某種間隔對時間進行採樣時,就可估計運動物體在各時間間隔之內的運動。由於這個估計受噪聲影響,先前時刻的估計誤差,會累加到後面時間的運動之上,這種現象稱為漂移(Drift)。

漂移是我們不希望看到的,它們擾亂全局軌跡的估計。但是,如果沒有其他校正機制,而只有局部運動的情況下,這也是所有裡程計都不可避免的現象之一。

二、視覺裡程計

如果一個裡程計主要依靠視覺傳感器,比如單目、雙目相機,我們就叫它視覺裡程計。

和傳統裡程計一樣,視覺裡程計最主要的問題是如何從幾個相鄰圖像中,估計相機的運動。

相鄰圖像間的相似性,為我們估計相機運動提供了依據。目前,視覺裡程計的主要方法分為基於特徵點的方法和不使用特徵點的直接法兩種。特徵點方法也叫稀疏方法,而使用特徵點描述的也叫稠密方法

Tips

我們知道,相機能夠把三維空間中的信息變成一張二維的照片。這件事情是怎麼做到的呢?我們需要一個數學模型來清楚地描述它,也就是相機模型。其中,針孔模型是最常用,也是最簡單的相機模型。

在這個模型中,我們考慮一個空間點X=[x,y,z],它投影在相機平面,並產生了一個像素p,位於照片中的[u,v]位置。假設相機光圈中心對準z軸,成像平面位於z=1處,那麼根據下圖描述的關係,投影方程即為:

寫成慣用的矩陣形式,則有:

把z寫在左邊,寫成zp的形式,表示z為p的深度值。我們可以看到,投影公式的形式是相當簡單的。實際當中,每個相機的焦距、光圈中心都有所不同,這些稱為它們的內參,一般用C表示。於是投影方程變為:

又,因為相機本身相對外部世界存在著一個運動。這個運動包括三維空間裡的旋轉和位移,由一個旋轉矩陣R和平移向量T描述,所以最後的投影關係為:

這個方程描述了相機內參、位姿和像素之間的關係。其中內參可以通過標定相機求取,p可以在圖像中觀察到,而z,X,R,T則是待估計的變量。

三、特徵匹配

基於特徵的方法是當前視覺裡程計的主流方式,有很長時間的研究歷史。特徵方法認為,對於兩張圖像,應該首先選取一些具有代表性的點,稱為特徵點。之後,僅針對這些特徵點估計相機的運動,同時估計特徵點的空間位置。圖像裡其他非特徵點的信息,則被丟棄了。

特徵點方法把一個對圖像的運動估計轉換為對兩組點之間的運動估計。於是,它的主要問題為:

我們如何獲取圖像特徵點?如何匹配它們?


如何根據已知特徵點,計算相機的運動?

1、計算特徵點

第一個問題屬於計算機視覺的研究範圍,和幾何關係不大,我們在此簡單地加以介紹。過去的研究中,人們設計了很多特徵點提取方法,包括圖像中的角點、色塊等。近年來流行的特徵點計算則更為複雜,主要的目的是,在圖像發生一定的改變後,特徵點提取算法仍能提取出相同的點,並能判別它們之間的相關性。
常用的特徵點有Harris角點、SIFT、SURF、ORB等。它們能夠標識出,計算機認為圖像裡哪些點比較特殊,具有較重要的意義。

一張圖像中的Sift特徵點

對於每一個特徵點,為了說明它與其他點的區別,人們還使用「描述子」(Descriptor)對它們加以描述。描述子通常是一個向量,含有特徵點和周圍區域的信息。如果兩個特徵點的描述子相似,我們就可以認為它們是同一個點。根據特徵點和描述子的信息,我們可以計算出兩張圖像中的匹配點。

匹配點的示意圖

2、根據匹配好的特徵點估計相機運動

在匹配好特徵點後,我們可以得到兩個一一對應的像素點集。接下來要做的,就是根據兩組匹配好的點集,計算相機的運動了。在普通的單目成像中,我們只知道這兩組點的像素坐標。而在雙目和RGBD配置中,我們還知道該特徵點離相機的距離。因此,該問題就出現了多種形式:

· 2D-2D形式:通過兩個圖像的像素位置來估計相機的運動。


· 3D-2D形式:假設已知其中一組點的3D坐標,以及另一組點的2D坐標,求相機運動。


· 3D-3D形式:兩組點的3D坐標均已知,估計相機的運動。

那麼問題就來了:是否需要為這三種情況設計不同的計算方法呢?答案是:既可以單獨做,也可以統一到一個大框架裡去做。

單獨做的時候,2D-2D使用對極幾何的方法,3D-2D使用PnP求解算法,而3D-3D則稱為ICP方法(準確地說,ICP不需要各點的配對關係)。

統一的框架,就是指把所有未知變量均作為優化變量,而幾何關係則是優化變量之間的約束。由於噪聲的存在,幾何約束通常無法完美滿足。於是,我們把與約束不一致的地方寫進誤差函數。通過最小化誤差函數,來求得各個變量的估計值。這種思路也稱為Bundle Adjustment(BA,中文亦稱捆集優化或光束法平差)。

代數方法簡潔優美,但是它們對於噪聲的容忍性較差。存在誤匹配,或者像素坐標存在較大誤差時,它給出的解會不可靠。而在優化方法中,我們先猜測一個初始值,然後根據梯度方向進行迭代,使誤差下降。Bundle Adjustment非常通用,適用於任意可以建模的模型。但是,由於優化問題本身非凸、非線性,使得迭代方法往往只能求出局部最優解,而無法獲得全局最優解。也就是說,只有在初始值足夠好的情況下,我們才能希望得到一個滿意的解。

因此,在實際的VO中,我們會結合這兩種方法的優點。先使用代數方法估計一個粗略的運動,然後再用Bundle Adjustment進行優化,求得可精確的值。

3、重建

在2D-2D情形下,我們通過兩個圖像的像素位置,估計了相機的運動。在此過程中,並沒有用到這些像素點的3D空間位置信息(而且我們也不知道)。不過,在得到相機運動之後,就可以根據這個運動信息,計算各個特徵點的空間位置,該問題也稱為三角化(Triangularization)。在原理上,只要我們在空間中的不同位置拍攝到了同一個點,就可以通過照片中的像素位置,來估計這個點在真實空間中的位置。

(圖片來自Wikipedia)

在SLAM中,三角化的結果,可以視為一種地圖。這樣,我們建立了對地圖的一種點雲描述:即通過大量的空間點,來估計整個地圖的樣貌。這雖然是一種較粗略的描述,但我們也能看出地圖裡究竟有些什麼東西。在特徵點方法中,因為我們只重構特徵點的空間位置,這種方法也常常被稱為稀疏重構。

四、直接法(Direct Methods)

除了使用特徵點以外,直接法為我們提供了另一種思路。直接法認為,對圖像提取特徵點的過程中,丟棄了圖像裡大量有用的信息。因為之後的運動估計、重建過程並未使用除特徵點以外的信息。舉例來說,對於一張640x480的圖像,原本有30萬左右的像素,但是我們只用了其中幾百個特徵點而已。此外,由於特徵點的設計缺陷,我們無法保證對於每個圖,都能提以足夠的、有效的特徵點。經驗告訴我們,這只是在大部分時候是可行的。

直接法跳過了提取特徵點的步驟。它構建一個優化問題,直接根據像素信息(通常是亮度),來估計相機的運動。這種方法省去了提特徵的時間,然而代價則是,利用了所有信息之後,使得優化問題規模遠遠大於使用特徵點的規模。因此,基於直接法的VO,多數需要GPU加速,才能做到實時化。此外,直接方法沒有提特徵點,它假設相機運動是連續的、緩慢的。只有在圖像足夠相似時才有效。而特徵點方法在圖像差異較大時也能工作。

因為利用了圖像中所有的信息,直接法重構的地圖是稠密的,這與基於稀疏特徵點的VO有很大不同。在稠密地圖裡,你可以看到每處的細節,而不是離散的點。

五、小結

本節介紹了VO的基本原理。

VO的目標是根據拍攝的圖像估計相機的運動。它的主要方式分為特徵點法直接方法。其中,特徵點方法目前佔據主流,能夠在噪聲較大、相機運動較快時工作,但地圖則是稀疏特徵點;直接方法不需要提特徵,能夠建立稠密地圖,但存在著計算量大、魯棒性不好的缺陷。

敬請期待下一期地平線大牛講堂!

雷鋒網註:本文由大牛講堂授權雷鋒網(公眾號:雷鋒網)發布,如需轉載請聯繫原作者並註明作者和出處,不得刪減內容。如有興趣可關注公號「地平線機器人技術」,了解最新消息。

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 大牛講堂|SLAM第一篇:基礎知識
    傳感器之視覺SLAM視覺SLAM是21世紀SLAM研究熱點之一,一方面是因為視覺十分直觀,不免令人覺得:為何人能通過眼睛認路,機器人就不行呢?另一方面,由於CPU、GPU處理速度的增長,使得許多以前被認為無法實時化的視覺算法,得以在10 Hz以上的速度運行。硬體的提高也促進了視覺SLAM的發展。
  • 無人機視覺slam給你答案
    所有視覺SLAM系統都在不斷的工作,以使重新投影誤差(Reprojection Error)或投影點與實際點之間的差異最小化,通常是通過一種稱為Bundle Adjustment(BA)的算法解決方案。視覺SLAM系統需要實時操作,這涉及到大量的運算,因此位置數據和映射數據經常分別進行Bundle Adjustment,但同時進行,便於在最終合併之前加快處理速度。
  • 重用地圖的單目視覺慣導SLAM系統
    摘要近些年來有很多優秀的視覺慣導融合的裡程計系統,計算高精度和魯棒性的傳感器的增量運動。C.閉環檢測閉環的主要作用是機器人又回到原來到過的地方的時候降低裡程計帶來的累計誤差。場景充實別模塊匹配最近的關鍵幀和原來的一個關鍵幀。利用兩幀的詞袋匹配可以得到剛體變換,然後執行優化的過程來降低裡程計帶來的累計誤差。這種優化在大場景中很耗時,所以執行位姿圖優化,==這樣就可以忽略結構==,也可以很好的收斂。
  • 視覺SLAM技術以及其應用詳解
    、傳感器之視覺SLAM 視覺SLAM是21世紀SLAM研究熱點之一,一方面是因為視覺十分直觀,不免令人覺得:為何人能通過眼睛認路,機器人就不行呢?另一方面,由於CPU、GPU處理速度的增長,使得許多以前被認為無法實時化的視覺算法,得以在10 Hz以上的速度運行。硬體的提高也促進了視覺SLAM的發展。
  • 超多學術大牛!
    超多學術大牛!科學前沿講座周二講座時間:10月27日 18:30-20:30講座地點:雁棲湖校區 教一樓009講座題目:三維視覺信息處理明德講堂周二講座時間:10月27日 18:30-20:30講座地點:雁棲湖校區 教二樓104講座題目:術的時代
  • No slam dunk?
    by the fire department is no slam dunk.Certainly, no slam dunk.According to Woodward, Tenet reassured the president that 「it’s a slam dunk case」 that Saddam had weapons of mass destruction.
  • 一文看懂SLAM導航技術分類、典型應用及國內發展現狀
    SLAM可以快速構建局部3D地圖,並與地理信息系統(GIS)、視覺對象識別技術相結合,可以輔助無人機識別路障並自動避障規劃路徑,曾經刷爆美國朋友圈的Hovercamera無人機,就應用到了SLAM技術。無人駕駛領域:視覺裡程計。SLAM技術可以提供視覺裡程計功能,並與GPS等其他定位方式相融合,從而滿足無人駕駛精準定位的需求。
  • 大牛播放器
    大牛播放器的伺服器設在美國,其最大的特點是採用了先進的P2P技術傳輸,也就是說如果使用觀看的人越多則觀看起來就會越流暢。太平洋下載中心為您提供大牛播放器官方下載。大牛播放器官方下載截圖2下載大牛播放器免費版安裝包,解壓並打開文件夾雙擊exe程序進入安裝嚮導界面
  • 關於英特爾實感技術Visual SLAM和T265追蹤攝像頭的介紹
    我們今天重點關注的技術稱為視覺慣性裡程計(VIO),它實際是最接近大多數動物感知世界方式的電子等效方案:將CMOS傳感器充當感知周圍環境的眼睛;IMU作為內耳來感知平衡和方向;以及一個充當大腦,將信息融合到瞬時位置和映射中的計算組件。VIO已成為近年來最有前景的SLAM技術之一,並且算法和變體正在不斷發展和改進。
  • 綜藝丨《姐姐們的slam dunk》和學姐乾杯雞湯
    不過在韓國娛樂圈非常厲害的六個人湊在一起,並不是為了橫掃韓國樂壇斬獲八個第一名,她們最終的目的是為了幫助成員之一的閔孝琳,實現成為偶像女團的夢想。《姐姐們的slam dunk》是KBS電視時隔8年推出的女性綜藝節目,這檔節目的宗旨就是幫六位姐姐實現年輕時沒有完成的夢想。
  • 蘭博基尼大牛百公裡油耗有多高,白給我們開都加不起油!
    某土豪近日就在網上曬了蘭博基尼大牛的油耗,看完之後小馬心裡瞬間震驚!這種車就算白給我們開,估計我們也開不起,因為加不起油!車主去加油站把油加滿,當時的表顯裡程為19694km,出去浪了一圈兒回來又油加滿,此次共加了204.18元的汽油,共計24.25升,98號汽油油價為8.42元。
  • 王思聰賣掉的蘭博基尼,8年裡程不過萬,網友:一點不意外
    除了這輛車之外,他還有一輛蘭博基尼、法拉利等跑車,不過的蘭博基尼大牛已經賣掉了,還引起了很多人的好奇心。蘭博基尼大牛是蘭博基尼旗下最有代表性的一款車,國內很多富二代都非常喜歡這款車,不過這輛車子是一款限量版的車型,所以並不是人人都有機會能夠得到的,王聰買這輛車也已經有8年的時間了,現在可能是開膩了,所以轉手賣出去了。
  • 語音專題第四講,語音識別之解碼器技術簡介|大牛講堂
    人工智慧產品這種交互功能的實現是與語音解碼器技術密切相關的。本期「大牛講堂」主講潘復平博士將為我們科普高大上的「語音識別專題」之語音解碼技術。基本原理當前主流的語音識別系統多基於統計理論的貝葉斯準則。雷鋒網(公眾號:雷鋒網)註:本文由大牛講堂授權雷鋒網發布,如需轉載請聯繫原作者,並註明作者和出處,不得刪減內容。有興趣可以關注公號地平線機器人技術,了解最新消息。 雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。
  • 它不是蘭博基尼大牛!但卻比大牛貴3倍!還是純電超跑
    雖然這款車的前臉與蘭博基尼大牛無比相近,但從車尾無的全開放式擴散器來看,它有著很大不同。實際上,它採用一臺中置電機驅動,最大功率671匹馬力,續航裡程約為300公裡。
  • 「少女與戰車 最終章 第2話」劇場版主視覺圖、PV公開~
    「少女與戰車 最終章 第2話」劇場版主視覺圖、PV公開~ 新聞 178動漫原創 ▪ 2018-11-19 13:01:58
  • 「PSYCHO-PASS 心理測量者3」全新視覺圖公開~最終話今日放送!
    「PSYCHO-PASS 心理測量者3」全新視覺圖公開~最終話今日放送! 動漫 178動漫原創 ▪ 2019-12-12 14:50:00 TV動畫「PSYCHO-PASS 心理測量者3」全新視覺圖公開,由人物原案天野明親自作畫
  • 鐵打的「國民老公」,流水的超跑,王思聰賤賣名下蘭博基尼大牛
    這次王思聰出售的兩臺超跑都是各個品牌的「扛把子」,其中的蘭博基尼大牛更是被賤賣。校長出售的這兩臺車分別是保時捷918Spyder和蘭博基尼LP700-4。而王思聰出售的另一臺超跑蘭博基尼LP700-4,也就我們俗稱的「大牛」就顯得黯淡了很多,首先它新車的起售價僅為613.7萬元,落地價格在700萬元左右,而且王思聰這臺大牛的年限也比較長了,他是在2012年7月份上牌,至今已將近8年時間,而且總裡程也超過了5000公裡,不過平均每年才600多公裡,可見校長的車是真多啊。
  • 「大牛」來啦!等等?大牛是誰?
    「大牛」來啦!等等?大牛是誰?圖中兩個萌萌噠小機器人就是傳說中的大牛啦!法律機器人——大牛,是九原法院最新引進的國內首款真正擁有「智慧」的人工智慧法律機器人,利用雲端應用技術實現其運行模式。它擁有融入自然語言、法律語言處理技術、深度學習技術以及150項專利技術和15項核心發明專利,還擁有利用自身知識可以舉一返三的學習功能。
  • 北京蘭博基尼大牛出租_頂速超跑俱樂部只給您滿意的服務
    北京蘭博基尼大牛出租,頂速超跑俱樂部只給您滿意的服務,從技術上講,它不是一種保險形式。北京蘭博基尼大牛出租, 「蘭博基尼Huracan」是蘭博基尼的一種型號。邁巴赫S級是梅賽德斯-奔馳旗下的子品牌梅賽德斯-邁巴赫發布的首款車型。9升V8雙渦輪發動機,滿足高速運動的需要。China GT寧波決戰!
  • 對比雷射SLAM與視覺SLAM:誰會成為未來主流趨勢?
    基於視覺的 SLAM 方案目前主要有兩種實現路徑,一種是基於 RGBD 的深度攝像機,比如 Kinect;還有一種就是基於單目、雙目或者魚眼攝像頭的。VSLAM 目前尚處於進一步研發和應用場景拓展、產品逐漸落地階段。雷射 SLAM:早在 2005 年的時候,雷射 SLAM 就已經被研究的比較透徹,框架也已初步確定。雷射 SLAM,是目前最穩定、最主流的定位導航方法。