摄影测量中的计算机视觉之Reconstruction

Reconstruction

已知两幅图中的匹配点
{ x i , x i ′ } \left\{\boldsymbol{x}_{i}, \boldsymbol{x}_{i}^{\prime}\right\} {xi,xi}
估计camera matrix
P , P ′ \mathbf{P}, \mathbf{P}^{\prime} P,P
和3D点.
X X X

1 第一步计算基础矩阵F
x ′ T F x = 0 \boldsymbol{x'}^{T} \mathbf{F} \boldsymbol{x}=0 xTFx=0
2 设第一个相机对应的camera matrix 为
P = [ I ∣ 0 ] = [ 1 0 0 0 0 1 0 0 0 0 1 0 ] \mathbf{P}=[\mathbf{I} | \mathbf{0}]= \left[\begin{array}{llll} {1} & {0} & {0} & {0} \\ {0} & {1} & {0} & {0} \\ {0} & {0} & {1} & {0} \end{array}\right] P=[I0]=100010001000

世界坐标系和相机坐标系统一.

第二个相机对应的camera matrix为
P ′ = K [ 1 0 0 0 0 1 0 0 0 0 1 0 ] [ R t 0 T 1 ] \mathbf{P'}=\mathbf{K}\left[\begin{array}{llll} {1} & {0} & {0} & {0} \\ {0} & {1} & {0} & {0} \\ {0} & {0} & {1} & {0} \end{array}\right]\left[\begin{array}{ll} {\mathbf{R}} & {\mathbf{t}} \\ {\mathbf{0}^{\mathrm{T}}} & {1} \end{array}\right] P=K100010001000[R0Tt1]

由于基础矩阵F是点在图像坐标系下的转化矩阵,而本质矩阵F是点在摄像机坐标系下的转化,因此,在这里我们需要得到本质矩阵E.
为什么?
因为我们得到图像坐标系下的点x是从世界坐标系到相机坐标系再到图像坐标系.
所以我们要求世界坐标系下的点X就需要从像素坐标系(求F)到图像坐标系(求E)再到世界坐标系(得到X).
所以现在求得F,就需要从F推出E.
公式如下:
E = K ′ ⊤ F K \mathbf{E}=\mathbf{K}^{\prime \top} \mathbf{F} \mathbf{K} E=KFK
E是由6个外参组成的.
E = [ R ∣ T ] \mathbf{E}=[\mathbf{R} | \mathbf{T}] E=[RT]
现在如何分解E求得R和T呢?
用SVD
E = U Σ V ⊤ \mathbf{E}=\mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^{\top} E=UΣV
之前有说过,这样分解出来秩不一定等于2,所以需要调整.
W = [ 0 − 1 0 1 0 0 0 0 1 ] \mathbf{W}=\left[\begin{array}{ccc} {0} & {-1} & {0} \\ {1} & {0} & {0} \\ {0} & {0} & {1} \end{array}\right] W=010100001
还有就是U和V的行列式都必须要大于0,如果不大于0,需要乘-1让其大于0.
这里我也不知道原因.
det ⁡ ( U ) > 0 ∧ det ⁡ ( V ) > 0 \operatorname{det}(U)>0 \wedge \operatorname{det}(V)>0 det(U)>0det(V)>0
不过我之前有看过说也可以判断R的行列式是不是等于1的.因为R的行列式等于-1意味着旋转和反射? 不是很懂. 求解.

总之这样弄下来,我们可以得到两个R,两个T.
R 1 = U W V ⊤ R 2 = U W ⊤ V ⊤ T 1 = U 3 T 2 = − U 3 \mathbf{R}_{1}=\mathbf{U} \mathbf{W} \mathbf{V}^{\top} \quad \mathbf{R}_{2}=\mathbf{U} \mathbf{W}^{\top} \mathbf{V}^{\top} \quad \mathbf{T}_{1}=U_{3} \quad \mathbf{T}_{2}=-U_{3} R1=UWVR2=UWVT1=U3T2=U3
所以到底该选择哪个R和T组成H(外参对应的矩阵)呢?
H = [ R t 0 T 1 ] H=\left[\begin{array}{cc} {\mathbf{R}} & {\mathbf{t}} \\ {\mathbf{0}^{\mathrm{T}}} & {1} \end{array}\right] H=[R0Tt1]

3.根据前面写的P’的公式,求出这四组E和R对应的P’,再用triangularization恢复出X在相机世界坐标系下的点(见triangularization相关文章).
选择Z>0的点,这样就一定在两个相机镜头的前面.
在这里插入图片描述

只有(a)是符合点X在两个摄像机前方的.
因为是以第一个相机为参考坐标系,所以第一个相机的坐标是(0,0,0,1)
从图上可以看出,B到A的三个平移变量,Z是肯定不变的,所以第二个相机的Z也是0.
总之这样判断就可以求出P啦.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值