三角测量(sfm 双视图重建)

在这里插入图片描述

1.极限约束与本征矩阵

设世界坐标系中有一点 p p p ,坐标为 X X X,它在左相机的图像坐标系为 x 1 ′ x'_1 x1像素坐标系为 x 1 x_1 x1,在右相机中的图像坐标系为 x 1 ′ x'_1 x1 x = K x ′ x=Kx' x=Kx其中 K K K为相机的内参矩阵,如图1(图中的 x 1 x_1 x1图像坐标系下的坐标,和公式的不同)双目视角成像 p p p到两个相机光心垂直距离分别为 s 1 s_1 s1 s 2 s_2 s2,且两个相机有相同的内参矩阵 K K K ,世界坐标系到两个相机坐标系的变换关系为 [ R 1 , T 1 ] [R_1,T_1] [R1,T1] [ R 2 , T 2 ] [R_2,T_2] [R2,T2] ,根据相机成像原理我们可以得到下面两个等式:
s 1 x 1 = K ( R 1 X + T 1 ) s_1x_1=K(R_1X+T_1) s1x1=K(R1X+T1) s 2 x 2 = K ( R 2 X + T 2 ) s_2x_2=K(R_2X+T_2) s2x2=K(R2X+T2)
由于 K K K是可逆的得到 s 1 x 1 ′ = R 1 X + T 1 s_1x'_1=R_1X+T_1 s1x1=R1X+T1 s 2 x 2 ′ = R 2 X + T 2 s_2x'_2=R_2X+T_2 s2x2=R2X+T2设世界坐标系的原点为相机1的相机坐标系则有 s 1 x 1 ′ = X s_1x'_1=X s1x1=X s 2 x 2 ′ = R 2 X + T 2 s_2x'_2=R_2X+T_2 s2x2=R2X+T2
公式1带入公式2得到: s 2 x 2 ′ = s 1 R 2 x 1 ′ + T 2 s_2x'_2=s_1R_2x'_1+T_2 s2x2=s1R2x1+T2
对上式两边同时叉乘 T 2 T_2 T2 (叉乘方向为右手系垂直方向,大小为向量组成的平行四边形面积,向量叉乘自身为0)得到:
s 2 T 2 ^ x 2 ′ = s 1 T 2 ^ R 2 x 1 ′ s_2\widehat{T_2}x'_2=s_1\widehat{T_2}R_2x'_1 s2T2 x2=s1T2 R2x1
然后上式与 x 2 ′ x'_2 x2做内积得到( T 2 ^ x 2 ′ \widehat{T_2}x'_2 T2 x2方向垂直与 x 2 ′ x'_2 x2):
0 = x 2 ′ T 2 ^ R 2 x 1 ′ 0=x'_2\widehat{T_2}R_2x'_1 0=x2T2 R2x1
其中 E = T 2 ^ R E=\widehat{T_2}R E=T2 R 由上式可以看出空间中的同一点在两个相机的图象坐标系满足的关系,和空间中的坐标点以及点到相机的距离都没有关系。上式也被称为极线约束, E E E被称为本征矩阵。
然后通过5点法或者8点法求解 ,通过SVD求解 R R R, T T T 。通过SVD求解的 R R R T T T 没有正负性需要正则化,所以尺度无法确定。

2. 三角化

求解到 R R R T T T 后,由前面公式得到 s 2 x 2 ′ = R 2 X + T 2 s_2x'_2=R_2X+T_2 s2x2=R2X+T2 ,公式中未知元素为 x 2 x_2 x2 x x x 两边对 x 2 ′ x'_2 x2 做叉积消除 s 2 s_2 s2 得: x 2 ′ ^ R 2 X = − x 2 ′ ^ T 2 \widehat{x'_2}R_2X=-\widehat{x'_2}T_2 x2 R2X=x2 T2化为其次方程得: x 2 ^ [ R 2 , T 2 ] [ X , 1 ] T = 0 \widehat{x_2}[R_2,T_2][X,1]^T=0 x2 [R2,T2][X,1]T=0然后用SVD分解法求解 X X X左侧0空间再把最后一个元素归一化到1求得 x x x 然后把 R , T R,T R,T开始的两个公式求得真实世界 X X X
这里实现了一个python版本的demo:sfm_python

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

shenhuaifeng

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

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

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

打赏作者

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

抵扣说明:

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

余额充值