Literature Review: 基於稀疏直接法的建圖

LR: Direct Sparse Mapping

Abstract

Photometric bundle adjustment (PBA).前端

目前的PBA無法處理reobservation.後端

咱們提出DSM(direct sparse mapping).session

1. Introduction

邊緣化策略經過移除舊的相機和點來減小計算量, 可是還保持系統對於不可觀的自由度(絕對的位姿和pose)的一致性.app

一般光度收斂半徑在1-2個像素. 因此一個標準的PBA不能補償drift. 因此, 咱們提出了multi-scale PBA來成功處理收斂性的難題.框架

咱們須要保證PBA對於spurious(假的) observations的魯棒性. 他們主要由稀疏的關鍵幀形成, 會致使阻擋和場景的reflections這樣會破壞光度一致性的假設. 咱們用基於t-distribution的influence function融合進PBA來處理.dom

  • 能夠重複使用已存地圖信息的地圖(用光度的)
  • Local Map Covisibility Window(LMCW)來選擇一樣場景下的關鍵幀, 即便不是時間上連續的.
  • coarse-to-fine的優化scheme來提高PBA的收斂半徑. 這個策略能夠利用豐富的幾何信息.
  • 用t-distribution來作外點處理.
  • 在EuRoC數據上的驗證
  • make our implementation publicly available

VINS-mono的前段和OKVIS相似, 可是用了額外的BRIEF來作迴環檢測.ide

LSD-SLAM用了FAB-MAP.函數

LDSO在DSO上接了一個ORB-DBoW.oop

他們都有如下缺點:學習

  • A different objective function and points to those of the odometry
  • loop closure detection relies on feature repeatability, missing many corrections
  • 偏差是均勻分配的, 頗有可能不是最優解.
  • 儘管軌跡在空間裏被修正了, 可是地圖點沒有被重複使用.

一直相對的, Full SLAM像ORB-SLAM和DSM複用了地圖.

DVO提出了probabilistic formulation給直接法的關聯. [16]提出了用t-distribution魯棒性. [17]提出在光度偏差李t-distribution好使, 可是幾何偏差很差使.

3. Direct mapping

有front-end和back-end.

前端跟蹤幀和點, 也提供了粗略的初始化.

後端決定用哪些幀構成局部滑窗, 共同優化全部的關鍵幀和地圖點.

每一個地圖點有一個主幀, in which it was spawn, 由逆深度表示.

投影: \(\mathbf{u}=\pi(\mathbf{p})=\mathbf{K}\left(p_{x} / p_{z}, p_{y} / p_{z}, 1\right)^{T}\)

反投影: \(\mathbf{p}=\pi^{-1}(\mathbf{u}, \rho)=\rho^{-1} \mathbf{K}^{-1}\left(u_{x}, u_{y}, 1\right)^{T}\)

A. Photometric Model

\(E_{p}=\sum_{\mathbf{u}_{k} \in \mathcal{N}_{p}} w_{k}\left(\left(I_{i}\left[\mathbf{u}_{k}\right]-b_{i}\right)-\frac{e^{a_{i}}}{e^{a_{j}}}\left(I_{j}\left[\mathbf{u}_{k}^{\prime}\right]-b_{j}\right)\right)\)

\(w_{g_{k}}=\frac{c^{2}}{c^{2}+\|\nabla I\|_{2}^{2}}\)

B. Photometric Bundle Adjustment

\(E=\sum_{I_{i} \in \mathcal{K}} \sum_{\mathbf{p} \in \mathcal{P}_{i}} \sum_{j \in \operatorname{obs}(\mathbf{p})} \sum_{\mathbf{u}_{k} \in \mathcal{N}_{p}} w_{k} r_{k}^{2}(\boldsymbol{\xi})\)

LMCW複用地圖點, 其中的初始解不在收斂半徑內, PBA也無法優化.

因此提出了coarse-to-fine的優化框架over all active keyframes. 在每一層, 咱們迭代直道收斂, 結果做爲下一層的初值.

咱們用LM. 每一次迭代的增量爲: \(\delta \boldsymbol{\xi}^{(t)}=-\mathbf{H}^{-1} \mathbf{b}\)

這裏\(\mathbf{H}=\mathbf{J}^{T} \mathbf{W} \mathbf{J}+\lambda \operatorname{diag}\left(\mathbf{J}^{T} \mathbf{W} \mathbf{J}\right), \mathbf{b}=\mathbf{J}^{T} \mathbf{W} \mathbf{r}\), \(\mathbf{W} \in \mathbb{R}^{m \times m}\)是對角陣, 由權重\(\omega_k\)組成.

4. LMCW: Local Map Covisibility Window

是用來選擇active關鍵幀和地圖點的策略.

LMCW包括兩部分: 1. temporal. 2. covisible

\(N_t\)很重要, 由於至關於探索, 初始新的點. 當一個新的關鍵幀被插入, 咱們把它插入到temporal part, 而後移除另外一個. 因此咱們維護了固定大小的temporal KFs.

  1. 永遠保持最新的兩個關鍵幀, 保證里程計的精度.
  2. 剩下的關鍵幀在空間中均勻的分佈. 咱們丟掉關鍵幀最大化: \(s\left(I_{i}\right)=\sqrt{d\left(I_{1}, I_{i}\right)} \sum_{j=3}^{N_{t}}\left(d\left(I_{i}, I_{j}\right)\right)^{-1}\)
    1. 這裏\(d(I_i, I_j)\)是關鍵幀i和j的\(L_2\)距離. 這個策略偏心高度共視的.

第二個部分是\(N_c\)共視的關鍵幀. 咱們但願選擇和temporal part共視的幀.

  1. 計算distance map來定義depleted(廢棄的)區域. temporal part的全部地圖點投影到最近的關鍵幀, 這樣distance map註冊了, 對於每個像素, 有最近地圖點投影的距離.
  2. 在舊關鍵的list中選擇一個關鍵幀. 選擇最大化在depleted area投影點數的幀. 咱們丟棄掉視角大於一個閾值的點來檢測和移除可能被遮擋(occluded)的點.
  3. 更新distance map來定義新的depleted areas.
  4. 從(2)迭代直道\(N_c\)共視關鍵幀被選擇了, 或者沒有合適的幀.

5. Robust Non-Linear PBA

LMCW選擇了widely separated關鍵幀可是沒有考慮任何光度一致性. 因此有可能有些點不能產生廣度一致的圖像. 他們多是由於遮擋或者是場景反光致使的.

爲了使得PBA對於缺乏光度一致的狀況的魯邦, 咱們提出了一種外點管理策略 based on photometric error distribution.

最大後驗機率MLP等價於最小化負對數機率(negative log-likelihood). \(\boldsymbol{\xi}^{*}=\underset{\boldsymbol{\xi}}{\operatorname{argmin}}-\sum_{k}^{n} \log p\left(r_{k} | \boldsymbol{\xi}\right)\)

上面的式子等價於讓導數爲0. 也就是re-weighted最小二乘. \(w\left(r_{k}\right)=-\frac{\partial \log p\left(r_{k}\right)}{\partial r_{k}} \frac{1}{r_{k}}\)

因此這個解直接被光度偏差的分佈\(p(r_k)\)(看[15])影響. 而後咱們考慮不一樣的分佈.

Gaussian Distribution: 若是偏差s被認爲是在0附近的正態分佈\(\mathcal{N}(0, \sigma^2_n)\), 那麼偏差分佈的模型就是: \(p\left(r_{k}\right) \propto \exp \left(r_{k}^{2} / \sigma_{n}^{2}\right)\). 這個模型致使constant distribution of weights, 也就是標準的最小二乘. 可是它等價的對待全部點, 這樣外點也不能被neutralized. \(w_{n}\left(r_{k}\right)=\frac{1}{\sigma_{n}^{2}}\)

Student's t-distribution: [15] 分析了RGB-D里程計的稠密光度偏差. 它展現說t-distribution解釋了稠密光度偏差比正態分佈更好, 權重函數是: \(w_{t}\left(r_{k}\right)=\frac{\nu+1}{\nu+\left(\frac{r_{k}}{\sigma_{t}}\right)^{2}}, \quad\) when \(\mu=0\)

咱們學習了稀疏光度偏差, 而後結論是t-distribution也合理的解釋了稀疏模型.

與正態分佈相比, t-distribution快速的下降權重由於errors move to the tail, 外點被分配了一個更小的權重.

除此之外, [15]固定了\(\nu=5\), 咱們學習了當\(\nu\)和尺度\(\sigma_t\)切合時的表現.

爲了切合t-distribution, we minimize the negative log-likelihood of the probability density function with respect to ν and σt using the gradient free iterative Nelder-Mead method [20].

Besides, we filter out the gross outliers before fitting the t-distribution. We approximate the scale value \(\hat{\sigma}\) using the Median Absolute Deviation (MAD) as \(\hat{\sigma}=1.4826\) MAD and reject errors that \(r_{k}>3 \hat{\sigma}\)

M-estimators: 當偏差的分佈難以獲知的時候, 或者它被認爲是正態分佈的. 只用M-estimator是一個流行的方案. 就是huber estimator. 由於它沒有徹底移除高偏差的觀測, 只是下降了他們的影響力, 這個對於再觀測處理很關鍵. \(w_{h}\left(r_{k}\right)=\left\{\begin{array}{ll}{\frac{1}{\sigma_{n}^{2}}} & {\text { if }\left|r_{k}\right|<\lambda} \\ {\frac{\lambda}{\sigma_{n}^{2}\left|r_{k}\right|}} & {\text { otherwise }}\end{array}\right.\)

這裏\(\lambda\)通常是固定的, 或者動態的改動讓\(\lambda = 1.345\sigma_n\) 對應 \(\mathcal{N}(0, \sigma_n^2)\). 這樣的話, huber給外點線性的影響.

A. Implementation of the probabilistic model into the PBA

咱們研究了在每一個關鍵幀的偏差分佈, 結論說他們之間是有區別的. 這些變化可能來自於運動模糊, 遮擋或者是噪聲. 因此, 咱們對於每個關鍵幀來擬合偏差分佈. 這樣使得PBA對於不一樣的場景能夠有調節, 好比一個特定的偏差可能在常規的狀況是外點, 可是在motion blur的狀況下是內點.

B. Outlier Management

每一個觀測有8個像素. 爲了考慮一個像素觀測是否是內點, 它須要在目標關鍵幀的偏差分佈的95%內. 對於比較挑戰的關鍵幀, 這個閾值能夠高一些, 更permissive(許可的). 當局部的PBA完成的時候, 咱們會在mask裏計算內點的個數. 當一個觀測的外電像素大於30%的時候, 這個觀測會被標記爲外點, 並從地圖點的觀測list中移除. 另外, 在優化的時候, 若是外點像素超過60%, 這個觀測會直接被捨棄, i.e. \(\omega(r) = 0\).

6. Front-End

Frame-tracking: 每一幀用local map來跟蹤. 初始估計由速度模型給出. 咱們用coarse-to-fine的優化策略, 跟在PBA裏同樣, 來估計初始估計比較粗糙的狀況. 對於大偏差的物理和session 5同樣. 另外, 咱們用[21]裏的inverse compositional approach來處理每次迭代重複計算雅克比的過程.

New Keyframe Decision: 當移動至沒有探索過的區域的時候, 會插入新的關鍵幀.

  1. 地圖可見比率和最新關鍵幀, i.e. \(s_{u}=N^{-1} \sum \min \left(p_{z} / p_{z}^{\prime}, 1\right)\). \(N\)是在上一個關鍵幀總可見點.
  2. 跟蹤幀和上一幀的視差, 由translation \(t\) 和local map的平均逆深度\(\bar{\rho}: s_{t}=\|\mathbf{t} \bar{\rho}\|_{2}\)定義
  3. 光度變化: 由relative brightness transfer function(跟蹤幀和上一關鍵幀), i.e. \(s_a = |a_k - a_i|\).

一個綜合的分數會被用於肯定是否插入關鍵幀: \(w_{u} s_{u}+w_{t} s_{t}+w_{a} s_{a}>1\)

New Map Point Tracking: 每個關鍵幀有一列候選點. 咱們用新跟蹤的幀初始化候選點的逆深度. 在極線上搜索最小光度偏差的匹配. 只有distinctive points with low uncertainty會被激活.

記住, 這個延遲的策略會要求幾個匹配來得到一個好的初始化, 當極線比較小的時候, 同時也產生比較小的視差. 爲了保證有足夠的初始化好的點來激活, 咱們保持keyframe的候選點直道這個關鍵幀掉出滑窗.

7. Results

A. Parameter analysis and tuning

1. Coarse-to-fine PBA: 咱們衡量了金字塔層數\(N_p\).

沒有金字塔的時候, DSM-SM(滑窗版本) 比DSM效果好. 這時候DSM無法從reobservation獲利. 可是DSM在有更多金字塔層級的時候, 能夠複用地圖點從而得到更高的準確度.

儘管coarse-to-fine的策略對DSM提高明顯, 對於DSM-SW卻沒有啥提高. 這個也是可預見的, 由於DSM須要更大的收斂半徑, 可是DSM-SW缺不須要.

注意DSM在80%的runs下得到低於0.1m的RMS ATE的精度, 可是DSM-SW只有40%.

2. Robust Influence Function: 咱們研究了model和權重的選擇.

3. Number of covisible keyframes in the LMCW:

B. Quantitative results

8. Discussion & Future Work

即便用persistent map, 咱們也知道不可能處理全部的再觀測. 在大場景下, 累計偏差使得重複檢測地圖點再觀測成爲不可能.

9. Conclusion

相關文章
相關標籤/搜索