• 论文阅读 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:

    [ heta = ( heta_1, heta_2, heta_3)^3 = -n/d ]

    这个参数化方法就跟3D点的逆深度很接近了.


    主帧中的每个3D点有图像归一化坐标 (m=(u,v)^T) 和它的逆深度( ho = 1/h).

    $ h cdot oldsymbol{n}^{mathrm{T}} ilde{oldsymbol{m}}+d=0(, 这里) ilde{m}$ 表示齐次坐标. 得到: ( ho=1 / h=-oldsymbol{n}^{mathrm{T}} / d ilde{oldsymbol{m}}=oldsymbol{ heta}^{mathrm{T}} ilde{oldsymbol{m}})

    我们可以用简单的点乘来快速推断一个text的2D归一化坐标的逆深度.

    如果我们最少有三个点在text patch上(和他们的逆深度), 我们就可以获得text参数:

    [left[egin{array}{c} ilde{m}_{1}^{mathrm{T}} \ vdots \ ilde{m}_{n}^{mathrm{T}} end{array} ight] oldsymbol{ heta}=left[egin{array}{c} ho_{1} \ vdots \ ho_{n} end{array} ight] ]

    这个使得我们可以快速的初始化平面.

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

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

    给定平面参数 ( heta) 和图像观测点 (m), 3D点是 $ p= ilde{m}/ ho = ilde{m} / ( heta^T ilde{m})$.

    然后转化到target坐标系.

    [egin{array}{l} u^{prime}=left(oldsymbol{r}_{1} ilde{oldsymbol{m}}+t_{1} ilde{oldsymbol{m}}^{mathrm{T} oldsymbol{ heta}} ight) /left(oldsymbol{r}_{3} ilde{oldsymbol{m}}+t_{3} ilde{oldsymbol{m}}^{mathrm{T}} oldsymbol{ heta} ight) \ v^{prime}=left(oldsymbol{r}_{2} ilde{oldsymbol{m}}+t_{2} ilde{oldsymbol{m}}^{mathrm{T}} oldsymbol{ heta} ight) /left(oldsymbol{r}_{3} ilde{oldsymbol{m}}+t_{3} ilde{oldsymbol{m}}^{mathrm{T}} oldsymbol{ heta} ight) end{array} ]

    r1, r2, r3是旋转矩阵的行向量. 上式实际上是homography transformation. (mathbf{H} sim mathbf{R}+oldsymbol{t} oldsymbol{ heta}^{mathrm{T}})

    所以整个3D text点投影可以被描述为一个homography mapping

    [m' = h(m, T_h, T_t, heta) ]

    C. Photometric error for text object

    我们用了zero mean normalized cross-correlation (ZNCC)作为匹配cost来解决光度变化.

    [Z N C Cleft(I_{h}, I_{t} ight)=sum_{m in Omega} ilde{I}_{h}(oldsymbol{m}) ilde{I}_{t}left(oldsymbol{m}^{prime} ight) ]

    越大表示越近似. 但是很难在SLAM里直接使用ZNCC, 因为不能被转化为非线性最小二乘问题. 所以我们用了:

    [Eleft(I_{h}, I_{t} ight)=sum_{m in Omega}left( ilde{I}_{h}(oldsymbol{m})- ilde{I}_{t}left(oldsymbol{m}^{prime} ight) ight)^{2} ]

    尽管跟SSD类似, 但是它包括了额外的归一化操作来保证对于光度变化的鲁邦.

    我们扩展了这个能量函数:

    [sum_{m in Omega}left( ilde{I}_{h}(oldsymbol{m})^{2}+ ilde{I}_{t}left(oldsymbol{m}^{prime} ight)^{2} ight)-2 sum_{oldsymbol{m} in Omega} ilde{I}_{h}(oldsymbol{m}) ilde{I}_{t}left(oldsymbol{m}^{prime} ight) ]

    我们发现这个能量函数和最大化ZNCC是一致的, 因为(Sigma ilde{I_h}(m)^2=1)而且(Sigma ilde {I_t}(m')^2=1).

    4. TextSLAM系统

    1593328410767

    A. text对象的初始化

    我们用了EAST[40].

    一旦text对象被提取了, 我们在区域中检测FAST角点, 然后用KLT跟踪到下一个关键帧. 然后text对象就用跟踪的点初始化. (m_i)(m_i') 表示对应的点.

    [left[ ilde{oldsymbol{m}}_{i}^{prime} ight]_{ imes} oldsymbol{t} ilde{oldsymbol{m}}_{i}^{mathrm{T}} oldsymbol{ heta}=-left[ ilde{oldsymbol{m}}_{i}^{prime} ight]_{ imes} mathbf{R} ilde{oldsymbol{m}}_{i} ]

    注意左边的矩阵的rank是1. 它需要最少3对来解决( heta). 然后进一步用优化光度误差来refine参数.

    在初始化之后, 为毛保留了text四边形(quadrilateral), 四个角点可以被投影到别的视角来预测外观.

    B. Camera pose estimation with text objects

    点和text对象都会被用于相机位姿估计.

    [Eleft(mathbf{T}_{t} ight)=E_{ ext {point}}left(mathbf{T}_{t} ight)+lambda_{w} E_{t e x t}left(mathbf{T}_{t} ight) ]

    点的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

    没啥.

  • 相关阅读:
    JVM内存问题分析
    CAS
    普通内部类,匿名内部类和静态内部类
    文章简介
    conda更换下载源
    MySQL常见约束
    MySQL常见的数据类型
    DDL(数据定义语言)
    DML语言(数据操纵语言)
    进阶9:联合查询
  • 原文地址:https://www.cnblogs.com/tweed/p/13203224.html
Copyright © 2020-2023  润新知