计算没有点对应的基本矩阵?
Posted
技术标签:
【中文标题】计算没有点对应的基本矩阵?【英文标题】:Compute fundamental matrix without point correspondences? 【发布时间】:2014-09-07 03:59:34 【问题描述】:我想验证我对基本矩阵的理解是否正确,以及是否可以在不使用任何对应点对的情况下计算 F。
基本矩阵计算为F = inv(transpose(Mr))*R*S*inv(Ml)
,其中Mr和Ml是左右固有相机矩阵,R是将右坐标系带到左边的旋转矩阵,S是斜对称矩阵
S = 0 -T[3] T[2] where T is the translation vector of the right coordinate system
T[3] 0 -T[1] from the left.
-T[2] T[1] 0
我知道可以使用 8 点算法计算基本矩阵,但我没有任何点对应关系。但是,我的两个相机都经过校准,所以我有所有内在和外在参数。从上面基本矩阵的定义来看,只用这些参数就可以计算出F了,对吧?
(我遇到的问题是,基本矩阵从定义上计算出来似乎是错误的。现在我只想知道我上面的理解是否正确。)
【问题讨论】:
如果你已经校准了你的相机并且有外在参数和内在参数,那么是的,你不需要点对应。当您不知道相机的参数(又名未校准)并希望仅从点对应关系中确定基本矩阵时,使用点对应关系。你是如何校准相机的?有代码可以给我们看吗? @Booley 您好,我对您在上面提到的 F 矩阵公式中的偏斜矩阵有疑问。如果我的两台相机具有以下外部参数:1,0,0,15 | 0,1,0,0 | 0, 0, 1, 0 和 1,0,0,25 | 0,1,0,0 | 0, 0, 1, 0 它们之间的偏差是: ? 0, 0, 0 | 0, 0, -10 | 0, 10, 0 也尝试计算基本矩阵,尝试使用 F 找到对应的 x' 点,如上所述。 【参考方案1】:如果您有每个相机相对于公共坐标系的旋转和平移,那么您可以计算相机之间的旋转和平移,然后使用您引用的公式来计算基本矩阵。
更好的方法是将两个摄像机一起校准为一个立体系统。计算机视觉系统工具箱的最新版本 (2014a) 可让您做到这一点。见this example。
【讨论】:
您好,我有一个问题。如果我的两台相机具有以下外部参数:1,0,0,15 | 0,1,0,0 | 0, 0, 1, 0 和 1,0,0,25 | 0,1,0,0 | 0, 0, 1, 0 它们之间的偏差是: ? 0, 0, 0 | 0, 0, -10 | 0, 10, 0 也尝试计算基本矩阵,尝试使用 F 找到对应的 x' 点,如上所述【参考方案2】:我更愿意像“多视图几何”第 9 章中的方程式那样做。我已经在 Matlab 中验证了这些。没错。
如果你能得到两个相机的内在和外在矩阵,你可以计算 F 矩阵:
F = [e']_x * P' *p^+
(详细定义请参考“Multiple View Geometry”的pp244)
【讨论】:
以上是关于计算没有点对应的基本矩阵?的主要内容,如果未能解决你的问题,请参考以下文章