0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡單的V-SLAM介紹

新機(jī)器視覺 ? 來源:知乎 ? 作者:黃浴 ? 2020-08-28 15:15 ? 次閱讀

【導(dǎo)讀】SLAM是“Simultaneous Localization And Mapping”的縮寫,可譯為同步定位與建圖。最早,SLAM 主要用在機(jī)器人領(lǐng)域,是為了在沒有任何先驗知識的情況下,根據(jù)傳感器數(shù)據(jù)實時構(gòu)建周圍環(huán)境地圖,同時根據(jù)這個地圖推測自身的定位。因此本文以簡單清晰的文字為大家介紹了視覺V-SLAM。

簡單的V-SLAM介紹,就當(dāng)入門:)。

首先,從雙目立體幾何(stereo geometry)原理開始來定義外極(epipolar)約束:兩個攝像頭光心分別是 c0 和 c1,3-D 空間點(diǎn) p 在兩個圖像平面的投影點(diǎn)分別是 x0 和 x1,那么直線 c0c1 和兩個圖像平面的交點(diǎn)即外極點(diǎn)(epipole)e0 和 e1,pc0c1 平面稱為外極平面(epipolar plane),它和兩個圖像平面的交線 l0 和 l1 即外極線(epipolar line);可以看到兩個攝像頭坐標(biāo)系之間的轉(zhuǎn)換滿足(R,t),同時說明攝像頭 c0 的圖像點(diǎn) x0 在攝像頭 c1 的圖像對應(yīng)點(diǎn) x1 一定落在其外極線 l1,反之依然;

(a)對應(yīng)一條光線的外極線 (b)對應(yīng)的外極線集合和外極平面 外極線約束

這里需要定義一個本質(zhì)矩陣(essential matrix)E 和一個基礎(chǔ)矩陣(fundamental matrix)F:E = [t]×R,其中 [t]× 是反對稱矩陣,即定義向量

那么

而 F = A?TEA?1,其中 A 是攝像頭內(nèi)參數(shù)矩陣;對矩陣 E 和矩陣 F 來說,均滿足外極約束方程x1TEx0 =0,x1TFx0 =0

前者是攝像頭已標(biāo)定情況下圖像特征點(diǎn)的對應(yīng)關(guān)系,后者是攝像頭未標(biāo)定情況下圖像特征點(diǎn)的對應(yīng)關(guān)系;

其次,得到外極線約束(以F矩陣為例,E矩陣同樣)如下

l1=Fx0,l0=x1F,

以及,外極點(diǎn)約束(以F矩陣為例,E矩陣同樣)如下

Fe0=0,F(xiàn)Te1=0;

根據(jù)上面圖像特征點(diǎn)的外極約束方程,有8 點(diǎn)算法求解 F 和 E,以 F 為例,給定一組匹配特征點(diǎn)(n> 7)

定義F矩陣元素fij(i=1~3,j=1~3),那么線性齊次方程組為

簡記為

Qf = 0

做SVD得到Q = USVT,而最終F的解是V最右的奇異向量(singular vector);

另外,因為E矩陣完全由攝像頭外參數(shù)(R和t共6個未知參數(shù),但有一個不確定平移尺度量)決定,所以存在5 點(diǎn)算法求解E矩陣;

可以分解E得到攝像頭外參數(shù),其步驟如下:

i. 同樣對E矩陣做奇異值分解(SVD):

ii. 那么第一個攝像頭投影矩陣簡單設(shè)為

而第二個攝像頭矩陣P2有四種可能情況,如圖(a)-(d)所示:

其中

從E矩陣分解得到R和t

根據(jù)視圖方向與攝像頭中心到3-D點(diǎn)的方向之間夾角可以發(fā)現(xiàn),四個可能中只有情況(a)是合理的解;

確定兩個視角的姿態(tài)之后,匹配的特征點(diǎn) x,x’可以重建其 3-D 坐標(biāo)X,即三角化(triangulation)理論;首先存在一個線性解:設(shè)兩個攝像頭投影矩陣為 P 和 P’,相應(yīng)的它們列向量為pi,pi’,i=1~3,則有方程組:AX= 0

其中

但一些誤差干擾的存在,上述線性解是不存在的;所以需要一個非線性的解,這里采用F 矩陣定義的外極約束方程xTFx’= 0,得到最小化誤差函數(shù)為

下面采用外極線 l, l’的來約束定義誤差,如圖所示,將目標(biāo)函數(shù)重寫為

外極線定義的誤差

另外,在已知重建的 3-D 點(diǎn)集,如何和新視角的 2-D 圖像特征點(diǎn)匹配呢?這個問題解法稱為PnP(Perspective n Points),算法如下:

i. 首先,3D 點(diǎn)表示為 4 個控制點(diǎn)的加權(quán)和;

ii. 控制點(diǎn)坐標(biāo)是求解的(12)未知數(shù);

iii. 3D點(diǎn)投影到圖像上以控制點(diǎn)坐標(biāo)建立線性方程;

iv. 控制點(diǎn)坐標(biāo)表達(dá)為零特征向量(null eigenvectors)線性組合;

v. 上面組合的權(quán)重(bi)是新未知數(shù)(<4);

vi. 增加剛體(rigidity)約束以得到bi二次方程;

vii. 根據(jù)bi數(shù)目(無論線性化,或重新線性化)求解。

(注:有時候3-D-2-D匹配比3-D之間匹配的精度高)

PnP求解的示意圖

這里需要補(bǔ)充兩個概念,一是魯棒估計的隨機(jī)樣本共識法(RANSAC,RANdom SAmple Consensus),另一個是全局優(yōu)化的集束修正法(BA,bundle adjustment):

i. RANSAC的目的是在包含異常點(diǎn)(outlier)的數(shù)據(jù)集上魯棒地擬合一個模型,如圖 2-12 所示:

1. 隨機(jī)選擇(最?。?shù)據(jù)點(diǎn)子集并實例化(instantiate)模型;

2. 基于此模型,將所有數(shù)據(jù)點(diǎn)分類為內(nèi)點(diǎn)(inlier)或異常點(diǎn);

3. 迭代重復(fù) 1-2 步;

4. 選擇最大的內(nèi)地集,以此重新估計最終模型。

RANSAC示意圖

ii. BA的目的是優(yōu)化全局參數(shù)估計,對 SLAM 來說,結(jié)構(gòu)重建的 3-D 點(diǎn)X和其對應(yīng)的 2-D 特征點(diǎn)x,還有估計的視角變換參數(shù)(甚至包括攝像頭內(nèi)參數(shù))P,位于一個重投影(reprojection)誤差函數(shù) D 最小化框架下(如圖所示),即

BA示意圖

這里集束(Bundle)指2-D點(diǎn)和3-D點(diǎn)之間的光線集,而修正(Adjustment)是指全局優(yōu)化過程;其解法是非線性迭代的梯度下降法,如Gauss-Newton 方法和其修正 Levenberg-Marquardt 方法,因為問題自身的特性,這里的雅可比矩陣是非常稀疏的;另外,只取重建 3-D 點(diǎn)修正的話,稱為 structure only BA,而只取視角變換修正的話,稱為 motion-only BA;

在以上基礎(chǔ)之上,再重新審視SLAM過程:

i. 首先要提到概念 VO,即視覺里程計(visual odometry);VO 是 SLAM 的一部分,VO 主要是估計視角之間的變換,或者運(yùn)動參數(shù),它不需要輸出制圖(mapping)的結(jié)果,而且 BA 就是 motion-only 的模式;

ii. SLAM 方法分兩種途徑,一種是遞推濾波器方法,另一種是批處理估計方法;

a)濾波器方法,比如卡爾曼濾波遞推估計,實際上建立一個狀態(tài)空間的觀測模型和狀態(tài)轉(zhuǎn)換(運(yùn)動)模型;觀察模型描述當(dāng)攝像頭姿態(tài)和地標(biāo)位置(來自于地圖)已知時觀測(地標(biāo))的概率; 運(yùn)動模型是系統(tǒng)狀態(tài)(攝像頭姿態(tài))轉(zhuǎn)換的概率分布,即馬爾可夫過程; 那么在遞歸貝葉斯估計中,同時更新系統(tǒng)狀態(tài)和建立的地圖,其中融合來自不同視角的觀測來完成制圖,而估計系統(tǒng)狀態(tài)可計算攝像頭的姿態(tài),即定位問題;

b)批處理估計方法,也稱“關(guān)鍵幀”方法,其步驟是:

1)首先通過選擇的頭兩(關(guān)鍵)幀,采用雙目幾何的特征點(diǎn)匹配得到初始的3-D點(diǎn)云重建;

2)正常模式:假設(shè) 3D 地圖可用,并且估計出攝像頭增量運(yùn)動,跟蹤特征點(diǎn)并使用 PnP 進(jìn)行攝像頭姿態(tài)估計;

3)恢復(fù)模式:假設(shè) 3D 地圖可用,但跟蹤失敗故沒有增量運(yùn)動,可相對于先前重建的地圖重新定位(re-localize)攝像頭姿勢;

4)關(guān)鍵幀 BA:保持一個“關(guān)鍵幀”子集,狀態(tài)向量是所有關(guān)鍵幀的 3D 地標(biāo)和對應(yīng)攝像頭姿勢,BA 可以在與跟蹤模塊并列的線程中調(diào)整狀態(tài)估計;

(注意:關(guān)鍵幀的選擇策略是算法性能很重要的一個因素)

SLAM 中的閉環(huán)(loop closure)問題:當(dāng)攝像頭又回到原來位置,稱為閉環(huán),需要檢測閉環(huán),并以此在 BA 框架下優(yōu)化結(jié)構(gòu)和運(yùn)動估計;閉環(huán)檢測和重定位是類似的,可以基于圖像特征的匹配實現(xiàn),俗稱“基于圖像的重定位(image-based re-localization),當(dāng)關(guān)鍵幀子集較大的時候,需要對特征匹配進(jìn)行壓縮和加速,比如詞包(bag of words)法和K維-樹(KD-tree)數(shù)據(jù)結(jié)構(gòu)等等;

SLAM 中的傳感器可以是單目、雙目、深度傳感器(RGB-D)甚至激光雷達(dá),也可以和 IMU 融合,稱為 VINS(visual inertial navigation system)。

附錄:G-N 和 L-M 的非線性最小二乘算法

假設(shè)有觀測向量 zi’,其預(yù)測模型為 zi = zi(x),其中x為模型參數(shù);那么最小二乘(LS)法就是最小化如下代價函數(shù):平方誤差加權(quán)和(weighted Sum of Squared Error,SSE)

其中 Wi 是一個任意對稱正定(symmetric positive definite,SPD) 矩陣,特征誤差函數(shù)為

雅可比矩陣J和黑森(Hessian)矩陣H的計算為

那么 H 近似為

H≈J?WJ

作為梯度下降法,其 G-N 迭代的步進(jìn)量即 z → z + delta z,由下面方程組計算

對于上面 G-N 的迭代步進(jìn)量計算,可能左邊的矩陣不可逆。為此,一種改進(jìn)的方法是在對角線元素中加入阻尼因子(Damped factor),即 L-M 迭代的步進(jìn)量計算變成如下方程組

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    211

    文章

    28566

    瀏覽量

    207713
  • 攝像頭
    +關(guān)注

    關(guān)注

    60

    文章

    4857

    瀏覽量

    95994
  • SLAM
    +關(guān)注

    關(guān)注

    23

    文章

    426

    瀏覽量

    31883

原文標(biāo)題:簡單明了,一文入門視覺SLAM

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    一種基于MASt3R的實時稠密SLAM系統(tǒng)

    本文提出了一種即插即用的單目SLAM系統(tǒng),能夠在15FPS的幀率下生成全局一致的位姿和稠密幾何圖形。 01 ? 本文核心內(nèi)容 視覺SLAM乃是當(dāng)今機(jī)器人技術(shù)與增強(qiáng)現(xiàn)實產(chǎn)品的基礎(chǔ)性構(gòu)建模塊。通過
    的頭像 發(fā)表于 12-27 15:25 ?354次閱讀

    利用VLM和MLLMs實現(xiàn)SLAM語義增強(qiáng)

    語義同步定位與建圖(SLAM)系統(tǒng)在對鄰近的語義相似物體進(jìn)行建圖時面臨困境,特別是在復(fù)雜的室內(nèi)環(huán)境中。本文提出了一種面向?qū)ο?b class='flag-5'>SLAM的語義增強(qiáng)(SEO-SLAM)的新型SLAM系統(tǒng),借
    的頭像 發(fā)表于 12-05 10:00 ?234次閱讀
    利用VLM和MLLMs實現(xiàn)<b class='flag-5'>SLAM</b>語義增強(qiáng)

    最新圖優(yōu)化框架,全面提升SLAM定位精度

    同時定位與地圖構(gòu)建(SLAM)是一項關(guān)鍵技術(shù),允許移動機(jī)器人在部分或完全未知的環(huán)境中自主導(dǎo)航。它包括使用機(jī)載傳感器同時估計機(jī)器人狀態(tài)和構(gòu)建傳感器檢測到的環(huán)境地圖。SLAM可以根據(jù)傳感器和地圖構(gòu)建技術(shù)
    的頭像 發(fā)表于 11-12 11:26 ?553次閱讀
    最新圖優(yōu)化框架,全面提升<b class='flag-5'>SLAM</b>定位精度

    激光雷達(dá)在SLAM算法中的應(yīng)用綜述

    SLAM算法運(yùn)行的重要傳感器?;诩す饫走_(dá)的SLAM算法,對激光雷達(dá)SLAM總體框架進(jìn)行介紹,詳細(xì)闡述前端里程計、后端優(yōu)化、回環(huán)檢測、地圖構(gòu)建模塊的作用并總結(jié)所使用的算法;按由2D到
    的頭像 發(fā)表于 11-12 10:30 ?903次閱讀
    激光雷達(dá)在<b class='flag-5'>SLAM</b>算法中的應(yīng)用綜述

    MG-SLAM:融合結(jié)構(gòu)化線特征優(yōu)化高斯SLAM算法

    同步定位與地圖構(gòu)建 (SLAM) 是計算機(jī)視覺中的一個基本問題,旨在在同時跟蹤相機(jī)姿勢的同時對環(huán)境進(jìn)行地圖構(gòu)建?;趯W(xué)習(xí)的密集 SLAM 方法,尤其是神經(jīng)輻射場 (NeRF) 方法,在捕獲密集光度
    的頭像 發(fā)表于 11-11 16:17 ?389次閱讀
    MG-<b class='flag-5'>SLAM</b>:融合結(jié)構(gòu)化線特征優(yōu)化高斯<b class='flag-5'>SLAM</b>算法

    從算法角度看 SLAM(第 2 部分)

    作者: Aswin S Babu 正如我們在[第 1 部分]中所討論的,SLAM 是指在無地圖區(qū)域中估計機(jī)器人車輛的位置,同時逐步繪制該區(qū)域地圖的過程。根據(jù)使用的主要技術(shù),SLAM 算法可分為三種
    的頭像 發(fā)表于 10-02 16:39 ?370次閱讀
    從算法角度看 <b class='flag-5'>SLAM</b>(第 2 部分)

    一種適用于動態(tài)環(huán)境的實時視覺SLAM系統(tǒng)

    既能保證效率和精度,又無需GPU,行業(yè)第一個達(dá)到此目標(biāo)的視覺動態(tài)SLAM系統(tǒng)。
    的頭像 發(fā)表于 09-30 14:35 ?551次閱讀
    一種適用于動態(tài)環(huán)境的實時視覺<b class='flag-5'>SLAM</b>系統(tǒng)

    深度解析深度學(xué)習(xí)下的語義SLAM

    隨著深度學(xué)習(xí)技術(shù)的興起,計算機(jī)視覺的許多傳統(tǒng)領(lǐng)域都取得了突破性進(jìn)展,例如目標(biāo)的檢測、識別和分類等領(lǐng)域。近年來,研究人員開始在視覺SLAM算法中引入深度學(xué)習(xí)技術(shù),使得深度學(xué)習(xí)SLAM系統(tǒng)獲得了迅速發(fā)展,并且比傳統(tǒng)算法展現(xiàn)出更高的精度和更強(qiáng)的環(huán)境適應(yīng)性。
    發(fā)表于 04-23 17:18 ?1340次閱讀
    深度解析深度學(xué)習(xí)下的語義<b class='flag-5'>SLAM</b>

    步進(jìn)電機(jī)的簡單介紹

    步進(jìn)電機(jī)的命名,參數(shù),轉(zhuǎn)速簡單介紹
    的頭像 發(fā)表于 04-17 21:40 ?1170次閱讀

    工程實踐中VINS與ORB-SLAM的優(yōu)劣分析

    ORB-SLAM是一種基于特征的單目視覺SLAM系統(tǒng),廣泛用于實時三維地圖構(gòu)建和機(jī)器人定位。該系統(tǒng)使用ORB特征進(jìn)行高效的視覺識別和地圖重建,支持關(guān)鍵幀技術(shù)和回環(huán)檢測來優(yōu)化地圖的準(zhǔn)確性。
    的頭像 發(fā)表于 04-08 10:17 ?3023次閱讀
    工程實踐中VINS與ORB-<b class='flag-5'>SLAM</b>的優(yōu)劣分析

    什么是SLAM?SLAM算法涉及的4要素

    SLAM技術(shù)可以應(yīng)用在無人駕駛汽車、無人機(jī)、機(jī)器人、虛擬現(xiàn)實等領(lǐng)域中,為這些領(lǐng)域的發(fā)展提供了支持。SLAM技術(shù)的發(fā)展已經(jīng)逐漸從單純的定位和地圖構(gòu)建轉(zhuǎn)向了基于場景理解的功能。
    發(fā)表于 04-04 11:50 ?2595次閱讀

    什么是SLAM?基于3D高斯輻射場的SLAM優(yōu)勢分析

    基于NeRF的SLAM算法采用全局地圖和圖像重建損失函數(shù),通過可微分渲染捕獲稠密的光度信息,具有高保真度。
    的頭像 發(fā)表于 04-01 12:44 ?777次閱讀

    從基本原理到應(yīng)用的SLAM技術(shù)深度解析

    LSD-SLAM 即 Large-Scale Direct SLAM,兼容單目相機(jī)和雙目相機(jī)。LSD-SLAM是一種基于光流跟蹤的直接法SLAM,但是實現(xiàn)了半稠密建圖,建圖規(guī)模大,可以
    發(fā)表于 02-26 09:41 ?9510次閱讀
    從基本原理到應(yīng)用的<b class='flag-5'>SLAM</b>技術(shù)深度解析

    基于NeRF/Gaussian的全新SLAM算法

    基于NeRF的SLAM算法采用全局地圖和圖像重建損失函數(shù),通過可微分渲染捕獲稠密的光度信息,具有高保真度。
    的頭像 發(fā)表于 01-26 10:48 ?678次閱讀
    基于NeRF/Gaussian的全新<b class='flag-5'>SLAM</b>算法