視覺SLAM十四講 第十二講筆記

2021-09-05 11:09:58 字數 2029 閱讀 6296

講完了前端後端,這一講講的是回環檢測。比起之前的內容要容易理解多了=-=

其思路是:

回環檢測的作用:消除累積誤差。

累積誤差是怎麼來的呢?前端根據區域性(相鄰或相近)幀給出位姿估計,後端也是根據前端已有的結果進行優化(比如p(x

k∣xk

−1

)p(x_k|x_)

p(xk​∣

xk−1

​)),這樣,當前端每一幀都存在誤差時,基於誤差的估計就會更加不準確。一段時間後就會出現累積誤差

回環檢測所做的,是不依賴於前一幀的資訊,直接比較當前幀和之前的任意幀,跳過其中的誤差。如果檢測出當前幀和之前某一幀相似,就可以用這個資訊矯正累積誤差。(那麼,是根據之前的幀矯正,還是根據當前幀矯正呢,怎麼矯正?)

要做回環檢測,面臨的問題是:怎麼知道這個地方之前有沒有來過,即怎麼判斷幀間的相似性。

兩種思路:

那麼問題轉變成:如何計算影象相似性?

這裡引入兩個概念:

正常來講,判定是回環的閾值提高,會使得準確率提高,同時時召回率下降。

slam中,要求回環檢測的高準確率。

現在的問題是,如何衡量兩張影象的相似性。

前段中使用了特徵點匹配,但存在費時、受光照影響的問題。因此,這裡把特徵點進行聚合抽象,使用詞袋模型進行匹配檢測。

一些概念:

字典的特性:只描述特徵有沒有出現,或出現的程度(次數、頻率等),不關心其位置資訊。

接下來的問題是:如何構造詞典。

其方法是,使用聚類生成。使用的基本是k-means。

在構造字典時,若使用乙個向量(vector)儲存,查詢時就是o(n)的複雜度。因此,選擇使用樹形結構,而且是乙個規則k叉樹

一顆k叉樹,深度為d,其能容納k

dk^d

kd個單詞(實際上是kd−

1+

1k^+1

kd−1+1

,書上這裡寫的應該不嚴謹,或者說這裡是沒有樹根的)。每一層的特徵都是抽象層次逐漸降低,樹根是最廣泛的概括特徵,第二層分k類,第三層又在第二層的每個節點特徵基礎上再分k類……。這樣,查詢一次的複雜度是o(d

)o(d)

o(d)

,原先是o(n

)=o(

kd

)o(n)=o(k^d)

o(n)=o

(kd)

。接下來的問題是,給出了兩幀影象在字典中的詞袋模型(0/n向量),如何評價,它們倆的相似度?顯然,可以使用計算範數的方法,但是,不同的特徵應該有不同的權重。要考慮單詞的區分性或重要性

這裡使用的方法是tf-idf。其中:

影象中乙個單詞的權重就是:

n i=

tfi∗

idfi

n_i=tf_i*idf_i

ni​=tf

i​∗i

dfi​

同時表示了這個單詞的本身重要性和它在這幅影象的重要性。

乙個影象的bow就是:

a =(

w1,n

1),.

..,(

wi,n

i),.

..,(

wn,n

n)

a=a=

(w1​

,n1​

),..

.,(w

i​,n

i​),

...,

(wn​

,nn​

)它本質是乙個向量,其中n是所有單詞(字典規模),n

in_i

ni​可能為0,表示這個單詞不存在。

給出了bow,就可以計算兩個bow之間的相似性,來代表兩個影象的相似性。計算方法可以用各種範數。

字典變大,使得總體評分降低。但相似幀與非相似幀間的差距拉大。

對評分除以當前幀與上一幀的相似評分,來進行歸一化。

最好稀疏選取。

檢測出回環後,持續多幀認為是真回環,或做運動估計,檢查與之前的估計是否相近。

視覺SLAM十四講第四講

主要目標 理解李群與李代數的概念,掌握 so 3 se 3 與對應李代數的表示方式。理解 bch 近似的意義。學會在李代數上的擾動模型。使用 sophus 對李代數進行運算。旋轉矩陣自身是帶有約束的 正交且行列式為 1 它們作為優化變數時,會引入額外的約束,使優化變得困難。通過李群 李代數間的轉換關...

《視覺SLAM十四講》筆記 第二講 初識SLAM

自身位置 定位 周圍環境 建圖 感測器分類 視覺slam 強調未知環境 單目相機 monocular 單目相機的資料 影象 以二維的形式反映了三維的世界。無法通過單張得到深度資訊。存在尺度不確定性 雙目相機 stereo 兩個相機間的距離 基線已知。基線越大,能測量的距離越遠。因此,無人車上的雙目相...

《視覺SLAM十四講》第2講

目錄本講主要內容 1 視覺slam中的感測器 2 經典視覺slam框架 3 slam問題的數學表述 想象乙個在室內的移動機械人在自由地探索室內的環境,那麼定位與建圖可以直觀地理解成 1 我在什麼地方?定位 2 周圍環境是怎樣的?建圖 而要完成定位和建圖則需要各種感測器的支援。感測器一般可以分為兩類,...