Matrix 从基本矩阵解释摄像机矩阵?

Matrix 从基本矩阵解释摄像机矩阵?,matrix,3d,Matrix,3d,这是另一个堆栈溢出问题的后续问题,如下所示: 就像在那个问题上一样,我试图从一个基本矩阵中得到一个摄像机矩阵,最终目标是从二维点进行三维重建。这里给出的答案是好的、正确的。我就是不明白。上面写着,“如果你能阅读Hartley和Zisserman的教科书,你可以查看第9.5.3节,在那里你可以找到你需要的。”他还提供了一个到源代码的链接 现在,除了其他内容外,本手册第9.5.3节还说: 结果9.12。非零矩阵F是基本矩阵 对应于一对摄像机矩阵P和P当且仅当PTFP 是斜对称的 对我来说,那是胡言

这是另一个堆栈溢出问题的后续问题,如下所示:

就像在那个问题上一样,我试图从一个基本矩阵中得到一个摄像机矩阵,最终目标是从二维点进行三维重建。这里给出的答案是好的、正确的。我就是不明白。上面写着,“如果你能阅读Hartley和Zisserman的教科书,你可以查看第9.5.3节,在那里你可以找到你需要的。”他还提供了一个到源代码的链接

现在,除了其他内容外,本手册第9.5.3节还说:

结果9.12。非零矩阵F是基本矩阵 对应于一对摄像机矩阵P和P当且仅当PTFP 是斜对称的

对我来说,那是胡言乱语。(我查了一下“斜对称”——这意味着倒数是负数。我不知道这与任何事情有什么关系。) 下面是给出的源代码():

这也是一个谜

所以我想知道的是,一个如何解释另一个?从那句话中获取代码似乎是一种黑魔法。我或任何人如何理解“非零矩阵F是对应于一对相机矩阵P和P的基本矩阵,当且仅当PTFP是斜对称的。”这意味着代码告诉你要做什么,这基本上是 '以奇异值分解为例。以第一个矩阵为例。以第三列为例。对其值执行一些奇怪的重新排列。这就是你的答案。“我怎么会自己想出这个代码?”

有人能用通俗易懂的英语向我解释一下9.5.3节和这段代码吗?

Aha,“PTFP”实际上是我也很好奇的东西,在文献中找不到答案。然而,我发现:

您提到的4x4斜对称矩阵不仅仅是任何矩阵。它实际上是基线的双普吕克矩阵(另请参见)。换句话说,它只提供摄影机中心所在的线,这对于重建任务本身没有用处

您提到的条件与更普遍的事实相同,即视图1和0的基本矩阵是视图0和1的基本矩阵的负转置(此处使用MATLAB/Octave语法)

首先考虑基本矩阵将一幅图像中的点x0映射到另一幅图像中的线l1

l1=F*x0

接下来,考虑投影矩阵的转置将图像中的线<强> L1 < /强>投影到空间<<强> E<强>空间

E=P1'*l1
(我发现这在大多数几何/计算机视觉课程中都非常简单和低调)

现在,我将使用一个几何参数:两条线是对应的极线,如果它们对应于相同的极线平面,也就是说,任何一条线的反投影都给出了相同的极线平面。代数:

E=P0'*l0
E=P1'*l1
因此(重要等式)

现在我们就快到了。假设我们有一个3D点X和它的两个投影

x0=P0*X
x1=P1*X
以及极线

l1=F*x0
l0=-F'*x1
我们可以把它放到重要的等式中,我们得到了所有的X

P0'*-F'*P1*X=P1'*F*P0*X
最后

P0'*-F'*P1=P1'*F*P0
如你所见,左手边是右手边的负转置。所以这个矩阵是一个斜对称的4x4矩阵

我还将这些想法发表在下文第二节B(接近本段末尾)中。它还应该解释为什么这个矩阵是基线的表示

Aichert, André, et al. "Epipolar consistency in transmission imaging."
IEEE transactions on medical imaging 34.11 (2015): 2205-2219.
https://www.ncbi.nlm.nih.gov/pubmed/25915956
@john ktejik的最后一点注意:斜对称意味着矩阵与其负转置(而非逆转置)相同

P0'*-F'*P1=P1'*F*P0
Aichert, André, et al. "Epipolar consistency in transmission imaging."
IEEE transactions on medical imaging 34.11 (2015): 2205-2219.
https://www.ncbi.nlm.nih.gov/pubmed/25915956