为什么基本矩阵有7个自由度?

nab*_*abs 6 camera image-processing computer-vision

基本矩阵中有9个参数用于关联左右图像的像素坐标,但仅有7个自由度(DOF).

在我搜索的几个页面上的原因是:

  1. 均匀方程意味着我们失去了一定程度的自由

  2. F = 0的决定因素,因此我们失去了另一个自由度.

我不明白为什么这两个原因意味着我们失去了2个自由度 - 有人可以解释一下吗?

Cur*_*pus 9

我只是为了考试而修改这个,我也被困了很长时间.但现在让我试着以最简单的方式解释这一点.

我们最初有9DOF,因为基本矩阵由9个参数组成,这意味着我们需要9个对应点来计算基本矩阵(F).但由于这两个原因,我们只需要7个对应点.

原因1:

我们失去了DOF,因为我们使用齐次坐标.这基本上是通过添加额外维度将nD点表示为矢量形式的方式.即)2D点(0,2)可以表示为[0,2,1],通常为[x,y,1].使用带有2D/3D变换的齐次坐标时有一些有用的属性,但我假设你知道这一点.

现在给出表达像素坐标的表达式p和p':

p'=[u',v',1] and p=[u,v,1]
Run Code Online (Sandbox Code Playgroud)

基本矩阵:

F = [f1,f2,f3]
    [f4,f5,f6]
    [f7,f8,f9]
Run Code Online (Sandbox Code Playgroud)

和基本矩阵方程:

(transposed p')Fp = 0
Run Code Online (Sandbox Code Playgroud)

当我们用代数形式复用这个表达式时,我们得到以下结果:

uu'f1 + vu'f2 + u'f3 + uv'f4 + vv'f5 + v'f6 + uf7 + vf8 + f9 = 0. 
Run Code Online (Sandbox Code Playgroud)

在线性方程形式Af = 0的均匀系统中(基本上是上述公式的分解),我们得到两个分量A和f.

A:

[uu',vu',u', uv',vv',v',u,v,1] 
Run Code Online (Sandbox Code Playgroud)

f(f基本上是矢量形式的基本矩阵):

[f1,f2'f3,f4,f5,f6,f7,f8,f9]
Run Code Online (Sandbox Code Playgroud)

现在,如果我们查看向量A的分量,我们有8个未知数,但由于齐次坐标,有一个已知值1,因此我们现在只需要8个方程.

原因2:

det F = 0.
Run Code Online (Sandbox Code Playgroud)

行列式是可以从方阵获得的值.

我不完全确定这个属性的数学细节,但我仍然可以推断出基本的想法,希望你也可以.

基本上给出了一些矩阵A.

A = [a,b,c]
    [d,e,f]
    [g,h,i]
Run Code Online (Sandbox Code Playgroud)

可以使用以下公式计算行列式:

det A = aei+bfg+cdh-ceg-bdi-afh
Run Code Online (Sandbox Code Playgroud)

如果我们使用基本矩阵查看行列式,代数看起来像这样:

F = [f1,f2,f3]
    [f4,f5,f6]
    [f7,f8,f9]

det F = (f1*f5*f8)+(f2*f6*f7)+(f3*f4*f8)-(f3*f5*f7)-(f2*f4*f9)-(f1*f6*f8)
Run Code Online (Sandbox Code Playgroud)

现在我们知道基本矩阵的行列式为零:

det F = (f1*f5*f8)+(f2*f6*f7)+(f3*f4*f8)-(f3*f5*f7)-(f2*f4*f9)-(f1*f6*f8) = 0
Run Code Online (Sandbox Code Playgroud)

因此,如果我们只得出基本矩阵的f1 ... f9参数中的7个,我们可以使用上面的行列式方程计算出最后一个参数.

因此基本矩阵具有7DOF.

我注意到你在一个月前发布了这个,所以也许你已经有了自己的答案.如果你有自己的逻辑解释,那么很高兴知道你是否同意我的这种解释(将有助于我的修订).否则希望这个帮助.对我有意义.对不起任何错别字,但我希望你至少得到一般的想法.


小智 6

F只有7个自由度的原因是

  1. F 是一个 3x3 齐次矩阵。同质意味着矩阵中存在尺度歧义,因此尺度无关紧要(如@Curator Corpus 的示例所示)。这会降低一个自由度。
  2. F 是一个秩为 2 的矩阵。它不是一个满秩矩阵,所以它是奇异的,它的行列式为零(证明在这里)。F 是秩为 2 的矩阵的原因是它将 2D 平面(图像 1)映射到通过(图像 2 的)对极的所有线(在图像 2 中)。

希望能帮助到你。