从零手写VIO第六章作业(三角化理论推导及代码仿真)

4 篇文章 0 订阅

一、三角化

1. 理论推导

在这里插入图片描述
在这里插入图片描述
由于噪声影响,通常来说 D D D是一个满秩矩阵,我们应该求最小二乘解 y y y

2.最小二乘解 y y y几何意义

由于噪声的影响, O 1 P O_{1}P O1P O 2 P O_{2}P O2P不能相交于一点,解出的最小二乘解就是到两条射线距离和最短的点
在这里插入图片描述

二、求最小二乘解 y y y

三角化问题最终转化为最小二乘问题

m i n ∥ D y ∥ 2 2 s . t . ∥ y ∥ = 1 \begin{aligned} min \|D y\|_{2}^{2} \\ s.t. \|y\|=1 \end{aligned} minDy22s.t.y=1

其中
∥ D y ∥ 2 2 = y T D ⊤ D y \begin{aligned} \|D y\|_{2}^{2} =y^{T} D^{\top} D y \end{aligned} Dy22=yTDDy

对D进行SVD分解
D 2 n ∗ 4 = U 2 n ∗ 2 n Σ 2 n ∗ 4 V 4 ∗ 4 T \begin{aligned} D_{2n*4} = \mathrm{U}_{2n*2n} \Sigma_{2n*4} \mathrm{V}_{4*4}^{\mathrm{T}} \end{aligned} D2n4=U2n2nΣ2n4V44T

则有
( D T D ) 4 ∗ 4 = V Σ ⊤ Σ V ⊤ = ∑ i = 1 4 σ i 2 v i v i T \begin{aligned} \left(D^{T} D\right)_{4 * 4}=V \Sigma^{\top} \Sigma V^{\top}=\sum_{i=1}^{4} \sigma_{i}^{2} v_{i} v_{i}^{T} \end{aligned} (DTD)44=VΣΣV=i=14σi2viviT

D满秩且 σ 1 2 > σ 2 2 > σ 3 2 > σ 4 2 \sigma_{1}^{2}>\sigma_{2}^{2}>\sigma_{3}^{2}>\sigma_{4}^{2} σ12>σ22>σ32>σ42

因为 v 1 , v 2 , v 3 , v 4 v_{1} , v_{2} ,v_{3}, v_{4} v1,v2,v3,v4为一组标准正交基,且 y y y维数为四

y = ∑ i = 1 4 k i v i y=\sum_{i=1}^{4} k_{i} v_{i} y=i=14kivi,因为 ∥ y ∥ 2 2 = 1 \|y\|_{2}^{2}=1 y22=1,故有 ∑ i = 1 4 k i 2 = 1 \sum_{i=1}^{4} k_{i}^{2}=1 i=14ki2=1


y T D T D y = ( ∑ i = 1 4 k i v i ) ⊤ ( ∑ i = 1 4 σ i 2 v i v i ⊤ ) ( ∑ i = 1 4 k i v i ) = ∑ i = 1 4 k i 2 σ i 2 ⩾ σ 4 2 \begin{aligned} y^{T} D^{T} D y &=\left(\sum_{i=1}^{4} k_{i} v_{i}\right)^{\top}\left(\sum_{i=1}^{4} \sigma_{i}^{2} v_{i} v_{i}^{\top}\right)\left(\sum_{i=1}^{4} k_{i} v_{i}\right) \\ &=\sum_{i=1}^{4} k_{i}^{2} \sigma_{i}^{2} \geqslant \sigma_{4}^{2} \end{aligned} yTDTDy=(i=14kivi)(i=14σi2vivi)(i=14kivi)=i=14ki2σi2σ42

当且仅当 y = v 4 y=v_{4} y=v4时等号成立,原问题取最小值
故路标点 y y y的齐次坐标归一化后的坐标即为SVD分解后最小奇异值对应的向量 v 4 v_{4} v4
最终求得路标点坐标 y = k ∗ v 4 y=k*v_{4} y=kv4,其中 k ∗ ( v 4 ) 4 = 1 k*(v_{4})_{4}=1 k(v4)4=1(将归一化形式恢复成齐次坐标形式)

三、三角化仿真

1. 代码实现

在这里插入图片描述
在这里插入图片描述

注意要对 D T D D^{T}D DTD进行SVD分解,不是对 D D D进行SVD分解。
投影矩阵是
P = [ R c w , t c w ] \mathbf{P}=\left[\mathbf{R}_{cw}, \mathbf{t}_{cw}\right] P=[Rcw,tcw]
表示从世界坐标系到camera系投影,别搞错了。

2. 仿真结果

在这里插入图片描述

四、奇异值比例与观测噪声之间的关系

\quad 若不存在噪声,则矩阵 D T D D^{T}D DTD秩为3,即 σ 4 = 0 \sigma_4 = 0 σ4=0,但实际场景通常是存在噪声的,我们要判断 σ 4 < < σ 3 \sigma_4<<\sigma_3 σ4<<σ3是否成立。此部分我们将讨论观测噪声与 σ 4 σ 3 \frac{\sigma_4}{\sigma_3} σ3σ4之间的关系。

1. 观测噪声建模

在三角化时我们都是用归一化平面坐标,首先要确定像素平面误差与归一化平面误差之间的关系。

根据观测方程有
u = f x X Z + c x v = f y Y Z + c y \begin{aligned} u = f_{x} \frac{X}{Z} + c_x &\\ v = f_{y} \frac{Y}{Z} + c_y & \end{aligned} u=fxZX+cxv=fyZY+cy
以横坐标为例,若像素平面观测误差为 δ u \delta u δu个像素,设归一化平面差 σ \sigma σ个单位
δ u = f x ( X Z + σ ) − f x ( X Z ) = f x σ \begin{aligned} \delta u= f_{x} (\frac{X}{Z} + \sigma) - f_{x} (\frac{X}{Z} ) = f_{x}\sigma&\\ \end{aligned} δu=fx(ZX+σ)fx(ZX)=fxσ

解得
σ = δ u f x \begin{aligned} \sigma = \frac{\delta u}{f_{x}}&\\ \end{aligned} σ=fxδu
其中
f x = f d x \begin{aligned} f_{x}= \frac{f}{dx} \end{aligned} fx=dxf

f f f为相机焦距, f x f_{x} fx为相机在 u u u轴上的归一化焦距, d x dx dx为相机一个像素单元的长度。

现以NiKon D700相机为例进行求解其内参:
焦距 f = 35 m m f = 35mm f=35mm 最高分辨率:4256×2832 传感器尺寸:36.0×23.9 mm

根据以上定义可以有:

u 0 = 4256 / 2 = 2128 v 0 = 2832 / 2 = 1416 d x = 36.0 4256 ( m m / p i x e l ) d y = 23.9 2832 ( m m / p i x e l ) f x = f / d x = 4137.8 f y = f / d y = 4147.3 \begin{aligned} u_0 = 4256/2 = 2128 \\ v_0 = 2832/2 = 1416 \\ dx = \frac{36.0}{4256} (mm/pixel) \\ dy = \frac{23.9}{2832} (mm/pixel) \\ f_x = f/dx = 4137.8 \\ f_y = f/dy = 4147.3 \\ \end{aligned} u0=4256/2=2128v0=2832/2=1416dx=425636.0(mm/pixel)dy=283223.9(mm/pixel)fx=f/dx=4137.8fy=f/dy=4147.3

由此看来 f x 、 f y f_{x}、f_{y} fxfy通常是 1 e 3 1e^{3} 1e3量级。

所以我们设归一化平面观测误差建模 e \textbf e e服从 N ( 0 , δ u 1000 ) \mathcal N(0, \frac{\delta u}{1000}) N(0,1000δu)分布。

2. 实验

仿真代码

假设第三帧和第四帧可观测到路标点P
在这里插入图片描述

实验结果

标准差奇异值比例标准差奇异值比例
1/10000.00004954126/10000.0271588
2/10000.0007882817/10000.036579
3/10000.003128738/10000.0472432
4/10000.00698199/10000.0590794
5/10000.019047610/10000.0720082

在这里插入图片描述

五、奇异值比例与观测帧数之间的关系

为了尽可能消除随机性,得到奇异值比例与观察测帧数更普遍的结论,固定标准差为1/1000,对每一个观测帧数都测试100次,奇异值比值取平均数。

代码

在这里插入图片描述

实验结果

在这里插入图片描述
可以看出比值总体呈上升趋势,因为观测帧数多,误差累积大,如一、2所示,空间中某点到各条射线的距离和将增大。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值