admin管理员组文章数量:1612827
核心图片详解
两个视角同时看到了三维空间点中的X 在两个视角中分别为二维点x、x’。e’ 认为是左边相机光心在右边的投影 l’ 可能是对极直线?不过名称不重要 重要的是e’ 和 x’ 均在直线 l’ 上
代数推导
已知三维点为X 三维点在相机二维平面的表示为x 三维点和它对应的二维点必存在对应关系 所以不难理解可以用以下的方式来表示:
P
X
=
x
PX = x
PX=x
我们假设相机光心点为C 那么PC等于多少?C作为相机的光心 而P作为投影矩阵PC的投影当然会有一点特殊 这里认为PC=0也不奇怪。
假设
P
+
P^+
P+为P的伪逆矩阵 所以有:
X
=
P
+
x
X = P^+x
X=P+x
即使用左边的二维点表示出了三维点的坐标 右边的投影矩阵我们设为P‘
则用上式的三维点投影到右边的二维平面:
x
′
=
P
′
P
+
x
x' = P'P^+x
x′=P′P+x
前面说到左边相机的光心坐标我们假设为C 那么C在右侧相机的投影我们可以得出:
e
′
=
P
′
C
e' = P'C
e′=P′C
又因为 e’ x’ 在直线 l’ 上 所以根据点和线的基本关系式可以得出:
l
′
=
(
P
′
C
)
×
(
P
′
P
+
x
)
l' = (P'C)×(P'P^+x)
l′=(P′C)×(P′P+x)
然后我们把上式和上上式合在一起:
l
′
=
[
e
]
×
(
P
′
P
+
x
)
l' = [e]_×(P'P^+x)
l′=[e]×(P′P+x)
其实合不合意义不大
然后因为 x’ 在直线 l’ 上
所以根据点和线的基本关系我们可以得出:
x
′
T
l
′
=
0
x'^Tl' = 0
x′Tl′=0
将上上式代入之前 其实就已经出现F矩阵了 F矩阵其实就是:
F
=
[
e
]
×
(
P
′
P
+
)
=
(
P
′
C
)
×
(
P
′
P
+
)
F = [e]_×(P'P^+) = (P'C)×(P'P^+)
F=[e]×(P′P+)=(P′C)×(P′P+)
所以对于对极几何中的两个相机平面对应的点 x x’ 我们可以直接有如下结论:
x
′
T
F
x
=
0
x'^TFx = 0
x′TFx=0
原文精彩展示
F矩阵的推导过程
结论展示
原文的例子
P 和 P‘ 涵盖了相机矩阵K和两个相机之间的位姿变换Rt 因为前一帧的相机是基准 所以R为单位阵 t为0 图中的0表示的是三维向量,C中的1为相机光心的齐次表示
P中K右乘的矩阵的增广的部分其实是光心C的非齐次表示 因此是0 而 P’ 中同样的位置也是相机光心 C’ 的非齐次表示 C‘ 和 C 相差了一个t 因此也变得没那么奇怪了
版权声明:本文标题:【SLAM与多视图几何】【Fundamental Matrix】F矩阵代数推导详解 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1728642790a1167330.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论