一般的说法是基础矩阵7自由度是因为一共9个数,秩为2(行列式不是0)减去一个自由度,尺度等价性再减去一个自由度,但是为什么本质矩阵也满足上面俩条件但是只在6的基础上减去一个自由度呢?


谢邀。

考虑这些矩阵的自由度时,重点在于理解parameterization之后有多少个待定的参数,然后明确一个点,在双视图几何中,fundamental matrix以及essential matrix仅由相机的内参两张图片之间的相对变换决定,与绝对位置没有关系。接下来理一下这几个矩阵的自由度问题:

  1. 最简单的homography(单应矩阵 mathbf{H} ),可以将二维射影空间 mathbb{P}^2 中的一个点 mathbf{x} 变换到 mathbb{P}^2 中的另一个点 h(mathbf{x}) 。根据射影空间的性质,必然存在一个 3 	imes 3 的矩阵mathbf{H},使得 h(mathbf{x}) = mathbf{Hx} 。回顾齐次坐标系的定义,放缩一个点的坐标依然得到这个点本身,所以有 h(mathbf{x})=(alphamathbf{H})mathbf{x} = mathbf{H}(alphamathbf{x}) = mathbf{H}mathbf{x} 。换句话说,在不加任何限制的情况下,仅仅考虑二维射影空间中的变换,一个单应矩阵 mathbf{H} 可由9个参数确定,扣去scale的一个,自由度为8。这个部分很好理解。

2. 接下来考虑fundamental matrix(基础矩阵 mathbf{F} )的情况。 mathbf{F} 的推导有两种方法(Chapter 9 in [1]),本质上都是求解图片A中的一个点 mathbf{x} 与图片B中对应的点 mathbf{x} 应该满足什么样的约束。第一种是我个人比较喜欢的逆投影表示,由纯矩阵运算推导,过程可以参见这个答案,另一种是几何方法推导,利用transfer via a plane的方法,利用第二种方法可以比较快地推导出自由度为7。这个方法包含以下三步:

  • mathbf{x} 的一个可能的位置表示为 mathbf{x} = mathbf{H}_{pi}mathbf{x} ,即通过平面 pi 进行射影变换(Chapter 13 in [1])
  • mathbf{x} 这个可能的位置应该与图片B中的epipole共同组成epipolar line l ,因此有 l = [e]_{	imes}mathbf{H}_{pi}mathbf{x}
  • mathbf{x} 应该落在 l 上,即 mathbf{x}^T[e]_{	imes}mathbf{H}_{pi}mathbf{x} = 0 ,其中 mathbf{F} = [e]_{	imes}mathbf{H}_{pi}

由1可知, mathbf{H}_{pi} 作为一个homography matrix,自由度是8,然而 [e]_{	imes} 作为一个skew symmetric matrix,秩只有2,由 	ext{rank}(AB) leq min(	ext{rank}(A), 	ext{rank}(B)) ,得知 mathbf{F} 必然为singular matrix,这个额外的条件使得 mathbf{F} 的自由度为7。

3. 最后来看Essential matrix(本质矩阵 mathbf{E} ),也就是题主觉得不解的地方。因为 mathbf{E} 可以理解为 mathbf{F} 的一个特例,其中涉及的两个投影矩阵都不包含相机内参。注意开头所说的,双视图几何中绝对位置不重要,所以我们可以不失一般性地假定图片A位于 mathbf{0} ,旋转为 mathbf{I} ,图片B位于 mathbf{t} ,旋转为 mathbf{R} 。这样, e 退化为 mathbf{t} ,而 mathbf{H}_{pi} 退化为 mathbf{R} 。换言之,我们可以得到 mathbf{E}=[mathbf{t}]_{	imes}mathbf{R} 。 其中 mathbf{t} 有3个自由度, mathbf{R} 有3个自由度,考虑translation在scale上的等价性减去1个自由度,得到自由度为5。

作为对比,我们看一下究竟是什么使得 mathbf{E} 的自由度比 mathbf{F} 要少,可以看到其核心就在于 mathbf{E} 去除了两个相机内参 mathbf{K}mathbf{K} 的影响。在这个答案的结论中,我们得知 mathbf{F} = [mathbf{e}]_{	imes} mathbf{P}mathbf{P}^dagger ,也就是 mathbf{H}_{pi} = mathbf{P}mathbf{P}^dagger = mathbf{K}[mathbf{R}|t]left(mathbf{K}[mathbf{R}|t]
ight)^{dagger} 。这里可以看出,一个最简单的 mathbf{K} 也需要4个参数定义,两个内参矩阵就是8个参数,哪怕考虑了 mathbf{t}mathbf{R} 的相对关系一共只需要6个参数,加起来也已经14个参数,超过了最后 3	imes3 矩阵的9个参数,所以 mathbf{F} 可以用9个参数为起点来考虑。作为对比,在 mathbf{E} 中, mathbf{t}mathbf{R} 一共6个参数已经比9要小,所以应该以6作为起点来考虑。

另外一个有趣的点是,为什么 mathbf{F}mathbf{E} 都考虑了scale的等价性,而只有 mathbf{F} 考虑了singularity的限制呢?这个问题我个人的理解是,singularity的约束实际上来自于skew symmetric矩阵的一个特性:前两个singular value必然相等且第三个singular value为0。在 mathbf{F} 的计算中,一个homography矩阵 mathbf{H}_{pi} 会使得相乘后的结果矩阵singular value发生变化,进而导致结果矩阵可能出现non-singular的情况,因而需要加上singularity的约束。在 mathbf{E} 的计算中,旋转矩阵 mathbf{R} 不会改变singular value的值(证明请google之),这使得相乘后的结果依然保持了前两个singular value相等且第三个singular value为0的性质,singularity得到了保持,也就不需要额外的singularity约束了。

Reference:

[1] Hartley, R., Zisserman, A. (2003). Multiple view geometry in computer vision. Cambridge university press.


推荐阅读:
查看原文 >>
相关文章