Triangulate

  • 考虑某路标点 yy 在若干个关键帧 k=1,,nk = 1, · · · , n 中看到。

  • yR4\mathbf{y} \in \mathbb{R}^{4} ,取齐次坐标。每次观测为 xk=[uk,vk,1]\mathbf{x}_{k}=\left[u_{k}, v_{k}, 1\right]^{\top},取归一化平 面坐标 (这样可以忽略掉内参)。

  • 记投影矩阵Pk=[Rk,tk]R3×4\mathbf{P}_{k}=\left[\mathbf{R}_{k}, \mathbf{t}_{k}\right] \in \mathbb{R}^{3 \times 4},为 World 系到 Camera 系 投影关系:

    k,λkxk=Pky\forall k, \lambda_{k} \mathbf{x}_{k}=\mathbf{P}_{k} \mathbf{y}

其中 λk\lambda_{k} 为观测点的深度值 (末知) 。

我们以一个通用方程来描述,这里我们把 λ\lambda 放到了左边,但是效果是一样的。

k,λkxk=[Rk,tk]y\forall k, \lambda_{k} \mathbf{x}_{k}=\left[\mathbf{R}_{k}, \mathbf{t}_{k}\right]\mathbf{y}
λk[ukvk1]=[p1p2p3p4p5p6p7p8p9p10p11p12][XYZ1]\lambda _k\left[\begin{array}{l} u_k\\ v_k\\ 1 \end{array}\right]=\left[\begin{array}{cccc} p_{1} & p_{2} & p_{3} & p_{4} \\ p_{5} & p_{6} & p_{7} & p_{8} \\ p_{9} & p_{10} & p_{11} & p_{12} \end{array}\right]\left[\begin{array}{l} X \\ Y \\ Z \\ 1 \end{array}\right]

根据上面式子中的第三行

λk=Pk,3y\lambda_k =P^{\top}_{k,3}\mathbf{y}

Pk,3TP^{T}_{k,3}PkP_k 的第 3 行。

λk=Pk,3Ty\lambda_k =P^{T}_{k,3}\mathbf{y} 带入前两行得到

ukPk,3y=Pk,1yvkPk,3y=Pk,2y\begin{array}{l} u_{k} \mathbf{P}_{k, 3}^{\top} \mathbf{y}=\mathbf{P}_{k, 1}^{\top} \mathbf{y} \\ v_{k} \mathbf{P}_{k, 3}^{\top} \mathbf{y}=\mathbf{P}_{k, 2}^{\top} \mathbf{y} \end{array}

每次观测将提供两个这样的方程,视 y\mathrm{y} 为末知量,并将 y\mathrm{y} 移到等 式一侧:

[u1P1,3P1,1v1P1,3P1,2unPn,3Pn,1vnPn,3Pn,2]y=0Dy=0\left[\begin{array}{c} u_{1} \mathbf{P}_{1,3}^{\top}-\mathbf{P}_{1,1}^{\top} \\ v_{1} \mathbf{P}_{1,3}^{\top}-\mathbf{P}_{1,2}^{\top} \\ \vdots \\ u_{n} \mathbf{P}_{n, 3}^{\top}-\mathbf{P}_{n, 1}^{\top} \\ v_{n} \mathbf{P}_{n, 3}^{\top}-\mathbf{P}_{n, 2}^{\top} \end{array}\right] \mathbf{y = 0} \rightarrow \mathbf{D y}=\mathbf{0}

于是, yyD\mathrm{D} 零空间中的一个非零元素。

由于 DR2n×4\mathbf{D} \in \mathbb{R}^{2 n \times 4} ,在观测次于大于等于两次时,很可能 D\mathbf{D} 满秩, 无零空间。 寻找最小二乘解:

minyDy22, s.t. y=1\min _{\mathbf{y}}\|\mathbf{D} \mathbf{y}\|_{2}^{2}, \quad \text { s.t. }\|\mathbf{y}\|=1

解法: 对 DD\mathbf{D}^{\top} \mathbf{D} 进行 SVD:

DD=i=14σi2uiuj\mathbf{D}^{\top} \mathbf{D}=\sum_{i=1}^{4} \sigma_{i}^{2} \mathbf{u}_{i} \mathbf{u}_{j}^{\top}

其中 σi\sigma_{i} 为奇异值,且由大到小排列, ui,uj\mathbf{u}_{i}, \mathbf{u}_{j} 正交。此时,取 y=u4y = u_4 ,那么该问题的目标函数值为 σ4σ_4 。判断该解有效性的条件: σ4σ3σ_4 ≪ σ_3 。若该条件成立,认为三角化有效,否则认为三角化无效。实用当中,还需要加上 yy 投影正负号的判定作为依据

TIPS

一般我们通过两对点进行三角化

[u1P1,3P1,1v1P1,3P1,2u2P2,3P2,1v2P2,3P2,2]y=0Dy=0\left[\begin{array}{c} u_{1} \mathbf{P}_{1,3}^{\top}-\mathbf{P}_{1,1}^{\top} \\ v_{1} \mathbf{P}_{1,3}^{\top}-\mathbf{P}_{1,2}^{\top} \\ u_{2} \mathbf{P}_{2, 3}^{\top}-\mathbf{P}_{2, 1}^{\top} \\ v_{2} \mathbf{P}_{2, 3}^{\top}-\mathbf{P}_{2, 2}^{\top} \end{array}\right] \mathbf{y = 0} \rightarrow \mathbf{D y}=\mathbf{0}

则有

Ay=0A\mathbf{y}=0

SVD求解,右奇异矩阵的最后一行就是最终的解。

Last updated