在感知不是很穩定的情況下, 感覺這種檢測划定范圍, 使用圖像本身的重建方法還是比較合適的.
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.
2. Related Work
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包圍.
平面被表示為: \(n^T p + d = 0\). \(n\)是平面的法向量, \(d\)是平面到origin的距離. 但是, 這個表示方式是over parameterization, 會導致rank deficient在非線性最小二乘優化問題里.
我們用一個更緊湊的參數化方法, 3DOF:
這個參數化方法就跟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參數:
這個使得我們可以快速的初始化平面.
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坐標系.
r1, r2, r3是旋轉矩陣的行向量. 上式實際上是homography transformation. \(\mathbf{H} \sim \mathbf{R}+\boldsymbol{t} \boldsymbol{\theta}^{\mathrm{T}}\)
所以整個3D text點投影可以被描述為一個homography mapping
C. Photometric error for text object
我們用了zero mean normalized cross-correlation (ZNCC)作為匹配cost來解決光度變化.
越大表示越近似. 但是很難在SLAM里直接使用ZNCC, 因為不能被轉化為非線性最小二乘問題. 所以我們用了:
盡管跟SSD類似, 但是它包括了額外的歸一化操作來保證對於光度變化的魯邦.
我們擴展了這個能量函數:
我們發現這個能量函數和最大化ZNCC是一致的, 因為\(\Sigma \tilde{I_h}(m)^2=1\)而且\(\Sigma \tilde {I_t}(m')^2=1\).
4. TextSLAM系統
A. text對象的初始化
我們用了EAST[40].
一旦text對象被提取了, 我們在區域中檢測FAST角點, 然后用KLT跟蹤到下一個關鍵幀. 然后text對象就用跟蹤的點初始化. \(m_i\) 和 \(m_i'\) 表示對應的點.
注意左邊的矩陣的rank是1. 它需要最少3對來解決\(\theta\). 然后進一步用優化光度誤差來refine參數.
在初始化之后, 為毛保留了text四邊形(quadrilateral), 四個角點可以被投影到別的視角來預測外觀.
B. Camera pose estimation with text objects
點和text對象都會被用於相機位姿估計.
點的cost是幾何的, text的是光度的. 需要 \(\lambda_w\) 來平衡.
\(\lambda_w = \sigma_{rep} / \sigma_{photo}\). \(\sigma_{rep}\) 表示重投影誤差的標准差. \(\sigma_{photo}\) 表示光度誤差的標准差.
C. BA with text obejcts
選用了最少15個FAST點來優化text參數.
5. Experiment
6. Conclusion & Future Work
沒啥.