其他分享
首页 > 其他分享> > Structure SLAM 论文阅读(二):结构线分类(StructVIO等)

Structure SLAM 论文阅读(二):结构线分类(StructVIO等)

作者:互联网

一、StructVIO : Visual-inertial Odometry with Structural Regularity of Man-made Environments

摘要

介绍

结构线和Atlanta World

Atlanta World是多个具备不同水平方向 ϕ i ∈ [ 0 , π / 2 ] \phi_i \in [0,\pi/2] ϕi​∈[0,π/2]的Manhattan Worlds的组合,如图所示。在这里插入图片描述
我们在里程计起点建立 Z Z Z 轴朝上(重力方向相反)的全局世界坐标系 W {W} W 。
每条线被锚定在第一次被图像中被观测到的局部坐标系,称这个坐标系统为“起始帧” S {S} S,其方向与这条直线所属的局部Manhattan World的 ϕ i \phi_i ϕi​ 相同,原点设置为该帧相机的位置。该起始帧原点位置 W p s ^Wps Wps, 会在滤波器中继续进行优化估计。

对于锚定在起始帧 S S S 上的一条给定直线,我们可以找到一个旋转 L S R ^S_LR LS​R 来将这条线从参数空间 L L L 转换到 S S S 。该条直线被对齐到 L L L 的 Z Z Z 轴上,如下图所示。在这里插入图片描述
在参数空间 L L L 中,该条线可以用其与 X Y XY XY平面的交点来表示,即 L l p = ( a , b , 0 ) T ^Ll_p=(a,b,0)^T Llp​=(a,b,0)T。这里我们使用逆深度重新表示该条直线,即 ( θ , ρ , 0 ) T (\theta,\rho,0)^T (θ,ρ,0)T, 其中 ρ = 1 / a 2 + b 2 \rho=1/\sqrt{a^2+b^2} ρ=1/a2+b2 ​ 和 θ = atan2 ( b , a ) \theta=\text{atan2}(b,a) θ=atan2(b,a)。
该条线段在起始帧中可以通过以下公式计算:
L S R l p = a L S R ( : , 1 ) + b L S R ( : , 2 ) = cos θ ρ L S R ( : , 1 ) + sin θ ρ L S R ( : , 2 ) \begin{aligned} ^S_LRl_p &=a{^S_LR(:,1)}+b^S_LR(:,2) \\ &= {\text{cos}\theta \over \rho}{^S_LR(:,1)}+{\text{sin}\theta \over \rho}{^S_LR(:,2)} \end{aligned} LS​Rlp​​=aLS​R(:,1)+bLS​R(:,2)=ρcosθ​LS​R(:,1)+ρsinθ​LS​R(:,2)​
对于每个结构线,无论对齐到局部Manhattan World的哪一个轴上,旋转 L S R ^S_LR LS​R 一定是下面三个矩阵之一:
[ 0 0 1 0 1 0 − 1 0 0 ] \begin{bmatrix}0 & 0 & 1\\ 0 &1 & 0\\ -1 & 0 & 0 \end{bmatrix} ⎣⎡​00−1​010​100​⎦⎤​, [ 1 0 0 0 0 1 0 − 1 0 ] \begin{bmatrix}1 & 0 & 0\\ 0 &0 & 1\\ 0 & -1 & 0 \end{bmatrix} ⎣⎡​100​00−1​010​⎦⎤​ 和 [ 1 0 0 0 1 0 0 0 1 ] \begin{bmatrix}1 & 0 & 0\\ 0 &1 & 0\\ 0 & 0 & 1 \end{bmatrix} ⎣⎡​100​010​001​⎦⎤​,分别是对齐到 X X X, Y Y Y, Z Z Z轴。

从起始帧 S S S 到世界坐标系下的变换由旋转 S W R ( ϕ i ) ^W_SR(\phi_i) SW​R(ϕi​) 和 相机位置 W P s ^WPs WPs决定,其中 S W R ( ϕ i ) ^W_SR(\phi_i) SW​R(ϕi​)是绕重力方向轴的旋转,即
S W R ( ϕ i ) = [ cos ϕ i sin ϕ i 0 -sin ϕ i cos ϕ i 0 0 0 1 ] ^W_SR(\phi_i)=\begin{bmatrix} \text{cos}\phi_i & \text{sin}\phi_i & 0\\\text{-sin}\phi_i & \text{cos}\phi_i & 0\\ 0 & 0& 1\end{bmatrix} SW​R(ϕi​)=⎣⎡​cosϕi​-sinϕi​0​sinϕi​cosϕi​0​001​⎦⎤​
对于竖直线段,它们的起始帧坐标轴和世界坐标系保持一致,即 S W R = I 3 × 3 ^W_SR=I_{3\times3} SW​R=I3×3​。我们使用 S W R ( ϕ 0 ) ^W_SR(\phi_0) SW​R(ϕ0​), ( ϕ 0 = 0 ) (\phi_0=0) (ϕ0​=0) 来表示这类起始帧。
为了获取图像中的结构线投影,可以如下计算:
W l p = S W R ( ϕ i ) R S R L l p + W p S ^Wl_p= {^W_SR}(\phi_i){^S_R}R^Ll_p+{^Wp_S} Wlp​=SW​R(ϕi​)RS​RLlp​+WpS​
以及
C l p = W C R W l p + C p W ^Cl_p={^C_WR}^Wl_p+^Cp_W Clp​=WC​RWlp​+CpW​
用逆深度表示法 ( θ , ρ , 0 ) T (\theta,\rho,0)^T (θ,ρ,0)T 来取代 L l p ^Ll_p Llp​,则其在图像平面上的2D投影齐次坐标为:
C l p ∼ W C R S W R ( ϕ i ) L S R ⋅ r + ( W C R W p S + C p W ) ⋅ ρ ^Cl_p \sim {^C_WR}{^W_SR(\phi_i)}{^S_LR}\cdot r+({^C_WR^Wp_S+{^Cp_W}})\cdot \rho Clp​∼WC​RSW​R(ϕi​)LS​R⋅r+(WC​RWpS​+CpW​)⋅ρ,其中 r = [ cos θ , sin θ , 0 ] T r=[\text{cos}\theta, \text{sin}\theta,0]^T r=[cosθ,sinθ,0]T。经参数空间 Z Z Z 轴投影后的消影点齐次坐标计算如下:
C v ∼ W C R S W R ( ϕ i ) L S R ( : , 3 ) ^Cv \sim {^C_WR} {^W_SR(\phi_i)} {^S_L}R(:,3) Cv∼WC​RSW​R(ϕi​)LS​R(:,3)
考虑相机内参,这图像中的直线表示为:
i m l = ( K − T ) ( C l p × C v ) ^{im}l=(K^{-T})(^Cl_p \times {}^Cv) iml=(K−T)(Clp​×Cv)

通过上述定义,给定逆深度表示 l = ( θ , ρ ) T l=(\theta,\rho)^T l=(θ,ρ)T,局部Manhattan World 方向 ϕ i \phi_i ϕi​ ,以及该直线对齐的轴(用 L S R ^S_LR LS​R 描述)等参数,我们在3D线和2D观测之间建立了联系。
直线投影可以写作这些参数的函数,
i m l = Π ( l , ϕ i , L S R , C I τ , I W τ ) ^{im}l=\Pi(l,\phi_i,^S_LR,{^I_C\tau},{^W_I\tau}) iml=Π(l,ϕi​,LS​R,CI​τ,IW​τ)
其中 C I τ ^I_C\tau CI​τ 为IMU和相机之间的相对位姿变换,可以继续被滤波器优化。

系统概述

主要是EKF框架,略过。

关键实现

  1. 直线检测和跟踪
  1. 结构线段识别
  1. 结构线初始化

二、Leveraging Structural Information to Improve Point Line Visual-Inertial Odometry

摘要

标签:phi,text,cos,Manhattan,SLAM,World,StructVIO,sin,Structure
来源: https://blog.csdn.net/ydy1107/article/details/121231148