多视图几何

本文介绍多视图几何的基本原理,包括外极几何、基础矩阵计算、照相机矩阵恢复等内容,并探讨如何从多个视图中恢复三维结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、外极几何
如果有一个场景的两个视图以及视图中的对应图像点,那么根据照相机间的空间相对位置关系、照相机的性质以及三维场景点的位置,可以得到对这些图像点的一些几何关系约束。

三维场景点XX经过4×4的单应性矩阵H变换为HXHX后,则HXHX在照相机PH1PH−1里得到的图像点和XX在照相机P里得到的图像点相同。
λx=PX=PH1HX=H^X^λx=PX=PH−1HX=H^X^

因此,当我们分析双视图几何关系时,总是可以将照相机间的相对位置关系用单应性矩阵加以简化。这里的单应性矩阵通常只做刚体变换,即值通过单应性矩阵变换了坐标系。一个比较好的做法是,将原点和坐标轴与第一个照相机对齐。
P1=K1[I|0]P1=K1[I|0]P2=K2[R|t]P2=K2[R|t]
其中K1K1K2K2是标定矩阵,RR是第二个照相机的旋转矩阵,t是第二个照相机的平移向量。

同一个图像点经过不同的投影矩阵产生的不同投影点必须满足
xT2Fx1=0(*)(*)x2TFx1=0
其中:
F=KT2StRK11F=K2−TStRK1−1
矩阵StSt为反对称矩阵:
St=0t3t2t30t1t2t10St=[0−t3t2t30−t1−t2t10]
公式为外极约束条件,矩阵F为基础矩阵,基础矩阵可以由两照相机的参数矩阵(相对于旋转RR和平移t)表示。由于det(F)=0det(F)=0,所以基础矩阵的秩小于等于2,我们将在估计FF的算法中用到这些性质。

上述公式表明,我们可以借助F来恢复出照相机参数,而FF可以从对应的投影图像点计算出来。在不知道照相机内参数(K1K2K2)的情况下,仅能恢复照相机的投影变换矩阵。在知道照相机内参数的情况下,重建是基于度量的。

第二个视图中的图像点x2x2,利用公式,我们找到对应第一幅图像的一条直线:
x2TFx1=l1Tx1=0
其中lT1x1=0l1Tx1=0是第一幅图像中的一条直线。这条直线称为对应于点x2x2的外极线,点x2x2在第一幅图像中的对应点一定在这条直线上。所以,基础矩阵可以将对应点的搜索限制在外极线上。

外极线都经过一点ee,称为外极点(另一照相机光心对应的图像点),因为外极点在所有的外极线上,所以Fe1=0,因此,我们可以通过计算FF的零向量来计算出外极点。同理,另一个外极点可以通过计算e2TF=0得到。

2、计算FF:八点法
八点法是通过对应点来计算基础矩阵的算法。
外极约束可以写成线性系统的形式:

[x21x11x21y12x21w11w21xw11x22x12x22y12x22w12w22w12x2nx1nx2ny1nx2nw1nw2nxw1n][F11F12F13F33]=Af=0

其中,ff包含F的元素,Xi1=[xi1,yi1,wi1]X1i=[x1i,y1i,w1i]Xi2=[xi2,yi2,wi2]X2i=[x2i,y2i,w2i]是一对图像点,共有nn对对应点。
基础矩阵中共有9个元素,由于尺度是任意的,所以只需要8个方程。
我们通常用SVD算法来计算最小二乘解。由于算法得出的解可能秩不为2(基础矩阵的秩小于等于2),所以我们通过将最后一个奇异值置0来得到秩最接近2的基础矩阵。

3、照相机和三维结构的计算
三角剖分
给定照相机参数模型,图像点可以通过三角剖分来恢复出这些点的三维位置。
对于两个照相机P1P2P2的视图,三维实物点XX的投影为x1x2x2

[P1P2x100x2]Xλ1λ2=0[P1−x10P20−x2][Xλ1λ2]=0

我们可以通过SVD算法来得到三维点的最小二乘估计值。

4、由三维点计算照相机矩阵
如果已经找到了一些三维点及其图像投影,我们可以使用直接线性变换的方法来计算照相机矩阵PP。本质上,这是三角剖分方法的逆问题,有时我们将其称为照相机反切法。利用该方法恢复照相机矩阵同样也是一个最小二乘问题。

每个三维点(齐次坐标下)按照λixi=PXi投影到图像点xi=[xi,yi,1]xi=[xi,yi,1],相应的点满足下面的关系

XT100XT2000XT100XT2000XT100XT2x1y11000000x2y21000000PT1PT2PT3λ1λ2=0[X1T00−x100⋯0X1T0−y100⋯00X1T−100⋯X2T000−x20⋯0X2T00−y20⋯00X2T0−10⋯⋮⋮⋮⋮⋮⋮⋮][P1TP2TP3Tλ1λ2⋮]=0

其中,p1p1p2p2p3p3是矩阵PP的三行,上面的式子可以写得更紧凑,如下所示
Mv=0
然后,我们可以使用SVD分解估计出照相机矩阵。

5、由基础矩阵计算照相机矩阵
在两个视图的场景中,照相机矩阵可以由基础矩阵恢复出来。假设第一个照相机矩阵归一化为P1=[I|0]P1=[I|0],现在我们需要计算出第二个照相机矩阵P2P2,研究分为两类,未标定的情况和已标定的情况

(1)未标定的情况——投影重建
重建只能由射影变换计算出来
因此,在无标定的情况下,第二个照相机矩阵可以使用一个3×3的射影变换的得出,一个简单的方法是
P2=[SeF|e]P2=[SeF|e]
其中,ee是左极点,满足eTF=0SeSe是反对称矩阵。使用该矩阵做出的三角剖分很有可能会发生畸变,如倾斜的重建。

(2)已标定的情况——度量重建
在已标定的情况下,重建会保持欧式空间的一些度量特性。
给定标定矩阵KK,我们可以将它的逆K1作用于图像点xK=K1xxK=K−1x,因此,在新的图像坐标系下,照相机方程变为
xk=K1K[R|t]X=[R|t]Xxk=K−1K[R|t]X=[R|t]X
在新的图像坐标系下,点同样满足之前的基础矩阵方程
xTK2FxK1=0xK2TFxK1=0
在标定归一化的坐标系下,基础矩阵称为本质矩阵。为了区别未标定的情况,以及归一化了的图像坐标,我们通常将其记作EE,而非F

6、多视图重建
SfM(Structure from Motion,从运动中恢复结构)
假设照相机已经标定,计算重建可以分为下面4个步骤:
(1)检测特征点,然后在两幅图像间匹配
(2)由匹配计算基础矩阵
(3)由基础矩阵计算照相机矩阵
(4)三角剖分这些三维点

7、立体图像
Z=fbxlxrZ=fbxl−xr
ff是经过矫正图像的焦距,b是两个照相机中心之间的距离,xlxlxrxr是左右两幅图像中对应点的xx坐标。分开照相机中心的距离称为基线。

8、计算视差图
ncc(I1,I2)=x(I1(x)μ1)(I2(x)μ2)x(I1(x)μ1)22(I2(x)μ2)2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值