【原创】SLAM学习笔记(三)视觉里程计-本质矩阵

文章目录

本质矩阵

根据定义,本质矩阵 E E E是一个3X3矩阵,有9个未知数,其有如下特征:

  1. 本质矩阵是有对极约束定义的
  2. 根据 E = t ^ R E=t\hat{}R E=t^R证得本质矩阵E的奇异值必定是 [ σ σ 0 ] T [\sigma \sigma 0]^T [σσ0]T的形式,这成为本质矩阵的内在性质
  3. 由于平移和旋转各有3个自由度(共6个自由度),又有尺度等价性,故 E E E有5个自由度

八点法

由于 E E E有5个自由度,所以通常由8点法来估计 E E E,这就是8点法,设 x 1 = [ u 1 , v 1 , 1 ] T x_1=[u_1, v_1, 1]^T x1=[u1,v1,1]T, x 2 = [ u 2 , v 2 , 1 ] T x_2=[u_2, v_2, 1]^T x2=[u2,v2,1]T为一对匹配归一化坐标点,根据对极约束有
( u 1 , v 1 , 1 ) ( e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 e 9 ) ( u 2 v 2 1 ) = 0 (u_1, v_1,1) \Bigg (\begin{matrix} e_1&e_2&e_3\\e_4&e_5&e_6\\e_7&e_8&e_9 \end{matrix}\Bigg) \Bigg (\begin{matrix} u_2\\v_2\\1 \end{matrix}\Bigg) =0 (u1,v1,1)(e1e4e7e2e5e8e3e6e9)(u2v21)=0
把矩阵E展开,写成向量形式,
e = ( e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 e 9 ) T e=(\begin{matrix} e_1&e_2&e_3&e_4&e_5&e_6&e_7&e_8&e_9 \end{matrix})^T e=(e1e2e3e4e5e6e7e8e9)T
因此对极约束可以写成与e有关的线性形式
( u 2 v 1 u 2 v 1 u 2 u 2 v 1 u 2 v 1 v 2 v 1 1 ) e = 0 (\begin{matrix} u_2v_1&u_2v_1&u_2&u_2v_1&u_2v_1&v_2&v_1&1 \end{matrix})e=0 (u2v1u2v1u2u2v1u2v1v2v11)e=0
对于其他点也有相同的表示,把所有点放到一个方程中,变为线性方程组:
( u 2 1 v 1 1 u 2 1 v 1 1 u 2 1 u 2 1 v 1 1 u 2 1 v 1 1 v 2 1 v 1 1 1 u 2 2 v 1 2 u 2 2 v 1 2 u 2 2 u 2 2 v 1 2 u 2 2 v 1 2 v 2 2 v 1 2 1 . . . . . . . . . . . . . . . . . . u 2 8 v 1 8 u 2 8 v 1 8 u 2 8 u 2 8 v 1 8 u 2 8 v 1 8 v 2 8 v 1 8 1 ) ( e 1 e 2 . . . . . . e 9 ) = 0 ( 矩 阵 ) \Bigg(\begin{matrix} u_2^1v_1^1&u_2^1v_1^1&u_2^1&u_2^1v_1^1&u_2^1v_1^1&v_2^1&v_1^1&1 \\u_2^2v_1^2&u_2^2v_1^2&u_2^2&u_2^2v_1^2&u_2^2v_1^2&v_2^2&v_1^2&1 \\...&&&&...&&&...\\...&&&&...&&&...\\u_2^8v_1^8&u_2^8v_1^8&u_2^8&u_2^8v_1^8&u_2^8v_1^8&v_2^8&v_1^8&1 \\ \end{matrix}\Bigg)\Bigg(\begin{matrix}e_1\\e_2\\...\\...\\e_9 \end{matrix}\Bigg)=0(矩阵) (u21v11u22v12......u28v18u21v11u22v12u28v18u21u22u28u21v11u22v12u28v18u21v11u22v12......u28v18v21v22v28v11v12v1811......1)(e1e2......e9)=0()
其系数矩阵由特征点的位置构成大小为8X9,e位于该矩阵的零空间中,如果系数矩阵是满秩的(秩为8),e的各元素可由上述方程求得,根据估得的E恢复出相机运动Rt,这个过程由SVD分解求得。设E的SVD为 E = U D V T E=UDV^T E=UDVT,其中U、V为正交矩阵,D为奇异值对角阵
D = d i a g ( σ , σ , 0 ) D=diag(\sigma,\sigma,0) D=diag(σ,σ,0)在SVD中存在两个可能的tR与其对应
t 1 ^ = U R z ( π 2 ) Σ U T t_1\hat{}=UR_z(\frac\pi2)\Sigma U^T t1^=URz(2π)ΣUT t 2 ^ = U R z ( − π 2 ) Σ U T t_2\hat{}=UR_z(-\frac\pi2) \Sigma U^T t2^=URz(2π)ΣUT R 1 = U R z T ( − π 2 ) Σ V T R_1=UR_z^T(-\frac\pi2)\Sigma V^T R1=URzT(2π)ΣVT R 2 = U R z T ( π 2 ) Σ V T R_2=UR_z^T(\frac\pi2) \Sigma V^T R2=URzT(2π)ΣVT
R z ( π 2 ) = ( 0 − 1 0 1 0 0 0 0 0 ) R_z(\frac\pi2)=\Bigg(\begin{matrix}0&-1&0\\1&0&0\\0&0&0 \end{matrix}\Bigg) Rz(2π)=(010100000)表示沿Z轴旋转90度的矩阵

实际计算中 D = d i a g ( σ 1 , σ 2 , σ 3 ) D=diag(\sigma_1,\sigma_2,\sigma_3) D=diag(σ1,σ2,σ3) σ 1 ≥ σ 2 ≥ σ 3 \sigma_1\geq \sigma_2\geq \sigma_3 σ1σ2σ3,舍弃第三个并且用 σ 1 \sigma_1 σ1, σ 2 \sigma_2 σ2均值代入计算
即:
E = U d i a g ( σ 1 + σ 2 2 , σ 1 + σ 2 2 , 0 ) V T E=Udiag(\frac{\sigma_1+\sigma_2}2,\frac{\sigma_1+\sigma_2}2,0)V^T E=Udiag(2σ1+σ2,2σ1+σ2,0)VT

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A.Star

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值