Paper閱讀:Dynamic-SLAM

前言

論文原文:Semantic monocular visual localization and mapping based on deep learning in dynamic environment
在動態環境中工作時,由於動態對象的干擾,傳統的SLAM框架的性能很差。 通過在對象檢測中利用深度學習的優勢,提出了一種語義動態的動態地圖定位和映射框架Dynamic-SLAM,以解決動態環境中的SLAM問題。

本文的主要三大貢獻:

  1. 針對SLAM系統提出了一種基於相鄰幀速度不變性的丟失檢測補償算法,提高SSD的recall rate,爲後續模塊提供了良好的依據。

  2. 提出了一種選擇跟蹤算法,以一種簡單有效的方式消除動態對象,提高了系統的魯棒性和準確性。

  3. 構建了基於特徵的可視化動態SLAM系統。 構建了基於SSD的目標檢測模塊線程,並將其檢測結果作爲先驗知識提升SLAM性能。

主要希望解決問題:動態環境下的SLAM。
在這裏插入圖片描述

Missed detection compensation algorithm(漏檢補償算法)

傳統目標檢測任務無法通過上下文信息來提高檢測精度。但SLAM中,視頻幀按時間順序到達時,檢測結果將以柔和的方式掃描到先前的幀中,從而預測下一個檢測結果,從而避免丟失或丟失。 對於SLAMIDE問題中的動態對象檢測任務,Recall rate更加重要。

TPTP+FN\frac {TP}{TP+FN}

模型基於以下合理假設:動態對象的運動速度在短時間內趨於保持恆定(即加速度趨於0)。
vv表示動態物體的速度,用amaxa_{max}表示像素平面中動態物體速度變化率的閾值。那麼有以下關係:Δv<=amax\Delta v<=a_{max}

先前幀和當前幀之間的相應邊界框可以通過v∆v確認,也就是說可以預測上一幀物體在當前幀的位置。
下面的Kai^Ka_i就表示預測的物體center位置,由上一幀物體位置+前幾幀該物體位移的平均值+容錯閾值 組成。
Kc^^K\hat{c}表示物體最後估計的center,也就是漏檢補償的座標,由上一幀物體位置+前幾幀該物體位移平均值組成。
在這裏插入圖片描述

算法:已知SSD會輸出檢測物體的list,那麼遍歷當前幀中上一幀出現過得物體list,預測這些物體在當前幀的bbx位置,再遍歷當前幀所有的bounding box是否有被預測框包含,如果有則說明在這一幀被檢測到了,如果沒有表示沒有檢測到,那麼就把這個物體加上。
在這裏插入圖片描述
效果:
在這裏插入圖片描述
在這裏插入圖片描述

Seletive Tracking Method(選擇跟蹤算法)

作用:不提取/少提取有dynamic object 的特徵點,減少Bundle Adjustment求解的誤差。

作者提出把一些常見動態物體打分,但是後面似乎沒有說到要用到這個分值。
在這裏插入圖片描述
SLAM執行特徵點採集匹配後,往往會執行pnp求出pose的初值,然後再用BA最小化重投影誤差:
在這裏插入圖片描述
Dynamic-SLAM中,把動態物體區域(Mask)設爲1,非動態物體區域設爲0:
在這裏插入圖片描述
核心在於以下式子,13式是計算靜態點的平均位移,12式是計算動態點的位移是否超過 靜態點的平均位移×閾值,如果超過了就說明這個動態點在移動,不適合作爲BA求解的一份子,剔除該特徵點。
在這裏插入圖片描述
整體算法如下:遍歷當前幀的特徵點,計算靜態點的平均位移。
如果是動態點,就看它是否小於所有靜態點的平均位移(這裏還要×一個係數),以此來判斷這個動態點是否在動。
在這裏插入圖片描述
效果如下:
在這裏插入圖片描述
在這裏插入圖片描述

總結

這篇論文是我第一篇看的語義slam,之前聽很多人推薦過(估計是因爲開源的緣故?),他的側重點不在於建圖,而在於使SLAM更加精確,消除了部分動態物體對pose求解造成的影響。相對於其他理論算法的提升,似乎深度學習+SLAM的搭配更加容易,但後續還會再看看類似的領域看有沒有更加創新的思維。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章