多视图几何 本质矩阵与基本矩阵

本文旨在明晰本质矩阵与基本矩阵的概念,以及具体的计算方法

预备知识:

  • 对极几何,可以参考多视图几何相关书籍。
  • 平面表示方式: 给定平面过一点 a a a以及平面上的任一点 x x x,以及其法向量 n n n,平面可以写成
    ( x − a ) n = 0 (x-a){n}=0 (xa)n=0
  • 叉乘与反对称矩阵的关系,下式中, A A A代表向量 a a a对应的反对称矩阵:
    a × b = A b a \times b = Ab a×b=Ab

一. 本质矩阵
Essential Matrix

  1. 几何解释:多视图系统中,用于描述不同相机之间位姿关系 (外参) 的矩阵. 当图像投影到归一化平面之后,用E矩阵表达对极约束。

  2. 定义:
    现以左相机坐标系为参考坐标,其中有一点 P l P_l Pl,右相机相对于左相机的位姿关系为 [ R , T ] [R, T] [R,T],并且 P l P_l Pl点在右相机坐标系中的表示为 P r P_r Pr(从世界坐标系来看,表示的同一点).

    根据坐标系的变换关系,可以找到右相机坐标系中的点
    P r = R ( P l − T ) P_r=R(P_l-T) Pr=R(PlT)
    此时,考虑到对极平面过 P l P_l Pl与右相机中心 T T T, 有这两个向量(点用向量表示出来),求出平面的法向量
    n = P l × T n=P_l\times T n=Pl×T
    P l P_l Pl T T T带入平面方程,由此可以构建平面:
    ( P l − T ) T ( T × P l ) = 0 (P_l-T)^{T}(T \times P_l)=0 (PlT)T(T×Pl)=0
    从上面的式子,看到了 ( P l − T ) (P_l - T) (PlT)的结构,为了关联 P l P_l Pl P r P_r Pr,我们用 P l P_l Pl表示出 P r P_r Pr, 将叉乘表示为反对称矩阵S,并代入上式:
    ( R − 1 P r ) T S P l = 0 (R^{-1}P_r)^{T} SP_l = 0 (R1Pr)TSPl=0
    注意旋转矩阵R的转置与逆相等,稍加整理:
    P r T R S P l = 0 P_r^{T} RS P_l = 0 PrTRSPl=0
    此时,我们用令矩阵 E = R S E = RS E=RS,也就得到了
    P r T E P l = 0 P_r^{T} E P_l=0 PrTEPl=0
    当然了,如果我们想对应到图像平面归一化平面),只需要找到图像平面上的坐标与世界坐标的关系 p l = P l f l / Z l p_l={P_l f_l /Z_l} pl=Plfl/Zl, p r = P r f r / Z r p_r=P_r f_r / Z_r pr=Prfr/Zr ,带入上式,即可得
    p r T E p l = 0 p_r^{T} E p_l=0 prTEpl=0
    到此,我们就很清楚基本矩阵的来源了。

  3. 本质矩阵的性质

    有5个参数,3个决定旋转,2个决定平移(无法确定尺度)
    秩为2,行列式为0
    两个非零奇异值是相等的,因为其中的反对称矩阵与旋转矩阵

  4. 具体计算

    根据上面的理论知识,我们知道基本矩阵描述的是两个相机坐标系下点的几何约束关系. 分别可以用3D坐标系下的 P i P_i Pi和归一化平面上的点 p i p_i pi表示.

    实际求解时,我们会根据相机内参以及匹配好的特征点找到归一化平面上的对应点 p p p, 并由多对匹配点构造线性方程组进行求解. (参考SLAM14讲)

    opencv API:cvFindEssentialMat

二. 基础矩阵
Fundamental Matrix

  1. 用途

    描述多相机拍摄到的图像像素之间的变换关系,相比于本质矩阵 E E E,包含相机内参. 能够将一个像素点映射为另一个图像上的的一条线,也就是所谓对极线

  2. 定义
    如果已经理解本质矩阵 E E E的定义,我们很容易通过加入相机内参得到基础矩阵 F F F. 设 M M M为相机内参, q q q为像素点,则有 q = M p q=M p q=Mp, 也就是 p = M − 1 q p = M^{-1} q p=M1q,带入基本矩阵中,可得
    q r T ( M r − 1 ) T E M l − 1 q l = 0 q_r^{T} (M_r^{-1})^{T} E M_l^{-1} q_l=0 qrT(Mr1)TEMl1ql=0

    简洁起见,令 F = ( M r − 1 ) T E M l − 1 F = (M_r^{-1}) ^ {T} EM_l^{-1} F=(Mr1)TEMl1
    也即
    q r T F q l = 0 q_r^{T} F q_l = 0 qrTFql=0

    以上,明确了基础矩阵 F F F.

  3. 基础矩阵的性质

  4. 具体计算

    opencv API:cvFindFundamentalMat


参考&致谢:
learning opencv

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值