对极几何的基础矩阵和本质矩阵3

对极几何系列篇:
对极几何的基础矩阵和本质矩阵1
对极几何的基础矩阵和本质矩阵2

前面介绍了对极几何的原理和基础矩阵F的求解,接下来介绍如何求解E矩阵和根据E矩阵分解相机的姿态 R和t。
世界坐标点P,在两个相机上的投影分别为p1,p2, 内参矩阵为k1, K2, 外参为[R1 T1], [R2 T2]

计算E矩阵

根据基础矩阵F
F = K 2 − T E K 1 − T F = K^{-T}_2EK^{-T}_1 F=K2TEK1T
K1,K2是已知的,因而可以根据F矩阵计算E,E矩阵是奇异矩阵,det(E)=0, 并且有两个相等的特征值。这样解出来的E矩阵不一定满足该性质,需要SVD分解。
在这里插入图片描述
由于本质矩阵的尺度等价性,S也可以设置为 diag([1 1 0])

从E矩阵中分解相机姿态R和t

分解的结果是两个相机之间的旋转和平移。假设左相机的外参[I 0], 右相机的为[R t]。
这里推导R和t.
p 1 = R 1 P + T 1 p 2 = R 2 P + T 2 p_1 = R_1P+T_1 \\ p_2 = R_2P+T_2 p1=R1P+T1p2=R2P+T2
那么
p 2 = R 2 R 1 − 1 p 1 + T 2 − R 2 R 1 − 1 T 1 p_2=R_2R^{-1}_1p_1+T_2-R_2R^{-1}_1T_1 p2=R2R11p1+T2R2R11T1
所以
{ R = R 2 R 1 − 1 t = T 2 − R T 1 \left\{ \begin{matrix} R = R_2R^{-1}_1 \\ t = T_2-RT_1 \end{matrix} \right. {R=R2R11t=T2RT1

如果已知两个相机的外参,比如同时拍摄同一张棋盘格,那么R和t ,其实就可以解出来了。
E = [ t × ] R E = [t_{\times}]R E=[t×]R

但在只知道特征点匹配的情况下,只能通过矩阵分解的方式。
矩阵E分解步骤:

  1. 对E进行分解, E = U S V T E=USV^T E=USVT, 并且 d e t ( U V T ) = 1 det(UV^T)=1 det(UVT)=1.

  2. 对任意一个E,存在两种可能的t,R与它对应:
    t 1 × = U R z ( π 2 ) S U T t 2 × = U R z ( − π 2 ) S U T R 1 = U R z T ( π 2 ) S V T R 2 = U R z T ( − π 2 ) S V T t_{1\times} = UR_z(\frac\pi{2})SU^{T} \\ t_{2\times} = UR_z(-\frac\pi{2})SU^{T} \\ R_1 = UR^{T}_z(\frac\pi{2})SV^{T} \\ R_2 = UR^{T}_z(-\frac\pi{2})SV^{T} \\ t1×=URz(2π)SUTt2×=URz(2π)SUTR1=URzT(2π)SVTR2=URzT(2π)SVT
    其中 R z ( π 2 ) R_z(\frac{\pi}2) Rz(2π) 是沿z轴旋转90度,也就是
    R z T ( π 2 ) = [ 0 − 1 0 1 0 0 0 0 1 ] R z T ( − π 2 ) = [ 0 1 0 − 1 0 0 0 0 1 ] R^{T}_z(\frac\pi{2})=\left[\begin{matrix} 0 & -1 & 0 \\ 1 & 0 & 0\\ 0 & 0 & 1 \end{matrix}\right] \\ R^{T}_z(-\frac\pi{2})=\left[\begin{matrix} 0 & 1 & 0 \\ -1 & 0 & 0\\ 0 & 0 & 1 \end{matrix}\right] RzT(2π)=010100001RzT(2π)=010100001

  3. 这样子就会有4种解,如何确定一种解呢,根据已知的世界坐标点,应该在两个相机的前方,也就是坐标的z值是大于0的,那么代入就可以确定R和t。
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值