首页 > 其他分享 >【SLAM与多视图几何】【Fundamental Matrix】F矩阵代数推导详解

【SLAM与多视图几何】【Fundamental Matrix】F矩阵代数推导详解

时间:2023-01-18 15:13:46浏览次数:43  
标签:Matrix 投影 矩阵 三维 视图 相机 二维 SLAM 光心

核心图片详解

在这里插入图片描述
两个视角同时看到了三维空间点中的X 在两个视角中分别为二维点x、x'。e' 认为是左边相机光心在右边的投影 l' 可能是对极直线?不过名称不重要 重要的是e' 和 x' 均在直线 l' 上

代数推导

已知三维点为X 三维点在相机二维平面的表示为x 三维点和它对应的二维点必存在对应关系 所以不难理解可以用以下的方式来表示:

\[PX = x \]

我们假设相机光心点为C 那么PC等于多少?C作为相机的光心 而P作为投影矩阵PC的投影当然会有一点特殊 这里认为PC=0也不奇怪。
假设\(P^+\)为P的伪逆矩阵 所以有:

\[X = P^+x \]

即使用左边的二维点表示出了三维点的坐标 右边的投影矩阵我们设为P‘
则用上式的三维点投影到右边的二维平面:

\[x' = P'P^+x \]

前面说到左边相机的光心坐标我们假设为C 那么C在右侧相机的投影我们可以得出:

\[e' = P'C \]

又因为 e’ x' 在直线 l' 上 所以根据点和线的基本关系式可以得出:

\[l' = (P'C)×(P'P^+x) \]

然后我们把上式和上上式合在一起:

\[l' = [e]_×(P'P^+x) \]

其实合不合意义不大
然后因为 x' 在直线 l' 上
所以根据点和线的基本关系我们可以得出:

\[x'^Tl' = 0 \]

将上上式代入之前 其实就已经出现F矩阵了 F矩阵其实就是:

\[F = [e]_×(P'P^+) = (P'C)×(P'P^+) \]

所以对于对极几何中的两个相机平面对应的点 x x' 我们可以直接有如下结论:

\[x'^TFx = 0 \]

原文精彩展示

在这里插入图片描述

F矩阵的推导过程

在这里插入图片描述

结论展示

原文的例子

在这里插入图片描述

P 和 P‘ 涵盖了相机矩阵K和两个相机之间的位姿变换Rt 因为前一帧的相机是基准 所以R为单位阵 t为0 图中的0表示的是三维向量,C中的1为相机光心的齐次表示
P中K右乘的矩阵的增广的部分其实是光心C的非齐次表示 因此是0 而 P' 中同样的位置也是相机光心 C’ 的非齐次表示 C‘ 和 C 相差了一个t 因此也变得没那么奇怪了

标签:Matrix,投影,矩阵,三维,视图,相机,二维,SLAM,光心
From: https://www.cnblogs.com/linglingdog/p/17059842.html

相关文章