admin管理员组

文章数量:1613384

核心图片详解


两个视角同时看到了三维空间点中的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=PP+x
前面说到左边相机的光心坐标我们假设为C 那么C在右侧相机的投影我们可以得出:
e ′ = P ′ C e' = P'C e=PC
又因为 e’ x’ 在直线 l’ 上 所以根据点和线的基本关系式可以得出:
l ′ = ( P ′ C ) × ( P ′ P + x ) l' = (P'C)×(P'P^+x) l=(PC)×(PP+x)
然后我们把上式和上上式合在一起:
l ′ = [ e ] × ( P ′ P + x ) l' = [e]_×(P'P^+x) l=[e]×(PP+x)
其实合不合意义不大
然后因为 x’ 在直线 l’ 上
所以根据点和线的基本关系我们可以得出:
x ′ T l ′ = 0 x'^Tl' = 0 xTl=0
将上上式代入之前 其实就已经出现F矩阵了 F矩阵其实就是:
F = [ e ] × ( P ′ P + ) = ( P ′ C ) × ( P ′ P + ) F = [e]_×(P'P^+) = (P'C)×(P'P^+) F=[e]×(PP+)=(PC)×(PP+)
所以对于对极几何中的两个相机平面对应的点 x x’ 我们可以直接有如下结论:
x ′ T F x = 0 x'^TFx = 0 xTFx=0

原文精彩展示

F矩阵的推导过程

结论展示

原文的例子

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

本文标签: 代数矩阵视图几何详解