DVO SLAM詳解之跟蹤

2021-08-08 04:40:47 字數 1209 閱讀 4560

dvo-slam的跟蹤通過將當前幀與關鍵幀進行幀間匹配進而確定當前幀對應的相機位姿來實現,本文將從幀間匹配和關鍵幀選取這兩部分解釋dvo-slam跟蹤的具體操作流程。

幀間匹配即計算兩幀影象間的相機運動變換矩陣,dvo-slam中用平行計算的方式同時計算當前幀與前一幀及關鍵幀間的運動變換矩陣r_odometry、r_keyframe,相關**在local_tracker.cpp中。

(1) 選取參考幀中灰度梯度及深度梯度值較明顯的點作為參考點,這裡的參考幀指當前幀的前一幀和當前幀對應的關鍵幀。

(2) 理想情況下,存在乙個幀間運動變換量,使得參考點的灰度值、深度值與其投射到當前幀中的點的灰度值、深度值差為零。實際應用中,通過最小化殘差函式來求幀間運動,dvo-slam中使用高斯牛頓法迭代求解這個問題。

(3) 將上一步求到的幀間運動變換矩陣、資訊矩陣、似然估計值儲存到結果當中,為之後的關鍵幀選取、閉環檢測做準備。

高斯牛頓法求解幀間運動變換的具體流程如下圖所示:

(1) 累積迭代增量,作為本次迭代的初始值。

(2) 計算各點的殘差。

(3) dvo-slam中假設殘差服從t分布,因此這裡根據t分布計算個殘差的權重。

(4) 計算t分布的方差引數。

(5) 計算殘差的似然估計。

(6) 求本次迭代增量。

(1) r_keyframe的後驗概率估計反應了r_keyframe的可信度,當可信度低於某一閾值時則重選關鍵幀。

(2) dvo-slam使用直接法進行幀間匹配,該方法基於灰度一致假設,所以r_keyframe和r_odometry的位移不能過大,當位移超過某一閾值則重選關鍵幀。

(3) validconstraints / validpixels反應了落在當前幀中的參考點相對於參考點總數的比例,比例越高說明相機的位姿變換越小,越低說明位姿變換越大,當比值低於某一閾值則重選關鍵幀。

meanshift運動跟蹤演算法詳解

這幾天學習 學習opencv 中的第十章運動跟蹤,裡面講到了meanshift演算法,根據書上所講實在難以理解,meanshift在運動跟蹤這個過程中到底起到什麼作用,於是經過幾天不斷地看相關資料和別人的部落格文章,慢慢思路清晰了,也終於知道了meanshift這個演算法它到底是什麼作用,起到什麼樣...

Opencv之邊界跟蹤

問題描述 一般是將二值化後的影象進行邊界的提取。需要說明的是這個提取不是簡單的找到邊界,而是按照順序的找出來。即邊界上的點是按照鄰接關係依次給出。相關演算法 1 這裡解釋 程式實現 還有canny演算法之類的一推 opencv的現有演算法 有兩個函式 findcontours和cvfindconto...

ORB SLAM2詳解(四)跟蹤

這一部分是orb slam系統中最基本的一步,會對每一幀影象進行跟蹤計算。tracking執行緒執行在主線程中,主要思路是在當前幀和 區域性 地圖之間尋找盡可能多的對應關係,來優化當前幀的位姿。每次新採集到一幀影象,就是用下列介面將影象傳入slam系統就行處理。該 位於主程式中 pass the i...