論文閱讀 ICRA2020: TextSLAM


在感知不是很穩定的情況下, 感覺這種檢測划定范圍, 使用圖像本身的重建方法還是比較合適的.

Abstract

text緊耦合進視覺SLAM的pipeline.

關鍵的idea是把每個檢測到的text作為平面特征, 它包含足夠的紋理和語義信息.

文字特征是用三個參數表示的, 並且使用光度不變誤差.

1. Introduction

眾所周知, 引入高等級的特征比如 line [8] 或者是 平面[9]會導致更好的表現.

Text提取和識別在飛速的發展, 比如COCO-Text[12], DOST[13], ICDAR[14].

[17]在Tange的 SLAM用text特征來促進回環.

貢獻

  • text特征用了3DOF的參數形式, 是緊湊且允許即時初始化.
  • 使用光度誤差. 它對於光照變化和模糊魯邦.
  • 緊耦合的text SLAM.

a) 平面特征

現存的方法都需要3D信息來發現平面特征, 一般使用RGBD相機.

text在真實世界里大多在平面上, 所以可以是好的平面特征.

b) 對象特征

現存方法需要預先掃描的3D模型來精准的擬合圖像上的觀測. [27]也嘗試了用深度相機實時重建3D模型, 但是還是很難泛化.

另一種方法是3D bounding boxes或者是quadrics[30]來近似一般物體. 但是這個就會損失精度.

與一般對象不同, text對象的幾何是很簡單的.

c) Text-aided navigation

text是天生的優秀的人造marker來幫助導航.

3. Text 特征

A. 參數化

每個text patch都是被一個bounding box包圍.

1593326356064

平面被表示為: \(n^T p + d = 0\). \(n\)是平面的法向量, \(d\)是平面到origin的距離. 但是, 這個表示方式是over parameterization, 會導致rank deficient在非線性最小二乘優化問題里.

我們用一個更緊湊的參數化方法, 3DOF:

\[\theta = (\theta_1, \theta_2, \theta_3)^3 = -n/d \]

這個參數化方法就跟3D點的逆深度很接近了.


主幀中的每個3D點有圖像歸一化坐標 \(m=(u,v)^T\) 和它的逆深度\(\rho = 1/h\).

$ h \cdot \boldsymbol{n}^{\mathrm{T}} \tilde{\boldsymbol{m}}+d=0\(, 這里\)\tilde{m}$ 表示齊次坐標. 得到: \(\rho=1 / h=-\boldsymbol{n}^{\mathrm{T}} / d \tilde{\boldsymbol{m}}=\boldsymbol{\theta}^{\mathrm{T}} \tilde{\boldsymbol{m}}\)

我們可以用簡單的點乘來快速推斷一個text的2D歸一化坐標的逆深度.

如果我們最少有三個點在text patch上(和他們的逆深度), 我們就可以獲得text參數:

\[\left[\begin{array}{c} \tilde{m}_{1}^{\mathrm{T}} \\ \vdots \\ \tilde{m}_{n}^{\mathrm{T}} \end{array}\right] \boldsymbol{\theta}=\left[\begin{array}{c} \rho_{1} \\ \vdots \\ \rho_{n} \end{array}\right] \]

這個使得我們可以快速的初始化平面.

B. Projection of the 3D text object onto a target image

\(T=T_t^{-1}T_h\).

給定平面參數 \(\theta\) 和圖像觀測點 \(m\), 3D點是 $ p=\tilde{m}/\rho = \tilde{m} / (\theta^T \tilde{m})$.

然后轉化到target坐標系.

\[\begin{array}{l} u^{\prime}=\left(\boldsymbol{r}_{1} \tilde{\boldsymbol{m}}+t_{1} \tilde{\boldsymbol{m}}^{\mathrm{T} \boldsymbol{\theta}}\right) /\left(\boldsymbol{r}_{3} \tilde{\boldsymbol{m}}+t_{3} \tilde{\boldsymbol{m}}^{\mathrm{T}} \boldsymbol{\theta}\right) \\ v^{\prime}=\left(\boldsymbol{r}_{2} \tilde{\boldsymbol{m}}+t_{2} \tilde{\boldsymbol{m}}^{\mathrm{T}} \boldsymbol{\theta}\right) /\left(\boldsymbol{r}_{3} \tilde{\boldsymbol{m}}+t_{3} \tilde{\boldsymbol{m}}^{\mathrm{T}} \boldsymbol{\theta}\right) \end{array} \]

r1, r2, r3是旋轉矩陣的行向量. 上式實際上是homography transformation. \(\mathbf{H} \sim \mathbf{R}+\boldsymbol{t} \boldsymbol{\theta}^{\mathrm{T}}\)

所以整個3D text點投影可以被描述為一個homography mapping

\[m' = h(m, T_h, T_t, \theta) \]

C. Photometric error for text object

我們用了zero mean normalized cross-correlation (ZNCC)作為匹配cost來解決光度變化.

\[Z N C C\left(I_{h}, I_{t}\right)=\sum_{m \in \Omega} \tilde{I}_{h}(\boldsymbol{m}) \tilde{I}_{t}\left(\boldsymbol{m}^{\prime}\right) \]

越大表示越近似. 但是很難在SLAM里直接使用ZNCC, 因為不能被轉化為非線性最小二乘問題. 所以我們用了:

\[E\left(I_{h}, I_{t}\right)=\sum_{m \in \Omega}\left(\tilde{I}_{h}(\boldsymbol{m})-\tilde{I}_{t}\left(\boldsymbol{m}^{\prime}\right)\right)^{2} \]

盡管跟SSD類似, 但是它包括了額外的歸一化操作來保證對於光度變化的魯邦.

我們擴展了這個能量函數:

\[\sum_{m \in \Omega}\left(\tilde{I}_{h}(\boldsymbol{m})^{2}+\tilde{I}_{t}\left(\boldsymbol{m}^{\prime}\right)^{2}\right)-2 \sum_{\boldsymbol{m} \in \Omega} \tilde{I}_{h}(\boldsymbol{m}) \tilde{I}_{t}\left(\boldsymbol{m}^{\prime}\right) \]

我們發現這個能量函數和最大化ZNCC是一致的, 因為\(\Sigma \tilde{I_h}(m)^2=1\)而且\(\Sigma \tilde {I_t}(m')^2=1\).

4. TextSLAM系統

1593328410767

A. text對象的初始化

我們用了EAST[40].

一旦text對象被提取了, 我們在區域中檢測FAST角點, 然后用KLT跟蹤到下一個關鍵幀. 然后text對象就用跟蹤的點初始化. \(m_i\)\(m_i'\) 表示對應的點.

\[\left[\tilde{\boldsymbol{m}}_{i}^{\prime}\right]_{\times} \boldsymbol{t} \tilde{\boldsymbol{m}}_{i}^{\mathrm{T}} \boldsymbol{\theta}=-\left[\tilde{\boldsymbol{m}}_{i}^{\prime}\right]_{\times} \mathbf{R} \tilde{\boldsymbol{m}}_{i} \]

注意左邊的矩陣的rank是1. 它需要最少3對來解決\(\theta\). 然后進一步用優化光度誤差來refine參數.

在初始化之后, 為毛保留了text四邊形(quadrilateral), 四個角點可以被投影到別的視角來預測外觀.

B. Camera pose estimation with text objects

點和text對象都會被用於相機位姿估計.

\[E\left(\mathbf{T}_{t}\right)=E_{\text {point}}\left(\mathbf{T}_{t}\right)+\lambda_{w} E_{t e x t}\left(\mathbf{T}_{t}\right) \]

點的cost是幾何的, text的是光度的. 需要 \(\lambda_w\) 來平衡.

\(\lambda_w = \sigma_{rep} / \sigma_{photo}\). \(\sigma_{rep}\) 表示重投影誤差的標准差. \(\sigma_{photo}\) 表示光度誤差的標准差.

C. BA with text obejcts

選用了最少15個FAST點來優化text參數.

5. Experiment

1593330822897

6. Conclusion & Future Work

沒啥.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM