从零开始学习SLAM(五):极几何与极约束

文章参考计算机视觉life

前备知识

概念

几何关系:

上图中:

极平面(Epipolar plane):点c0, c1, p三点确定的平面;

极点(Epipoles): c0 c1 连线与两个平面的交点

基线(Baseline):c0 c1的连线

极线(Epipolar line):极平面与两像平面的交线

旋转矩阵:R

平移矩阵:t

旋转平移矩阵:T

内参:焦距,归一化坐标

外参:旋转、平移矩阵

向量叉乘和点乘的概念:

叉乘只在三维空间中有定义,比如两个向量 a和b 的叉乘写作 a x b,它是与向量 a, b都垂直的向量,其方向通过右手定则决定。

点乘:

a * b = ||a||* ||b|| *cos(θ)

因此如果两个互相垂直的向量点乘,cos(θ) = 0,点乘结果也为0。

极约束推理

上图表示的是一个运动的相机在两个不同位置的成像,其中:

左右两个平行四边形分别是相机在不同位置的成像平面C0, C1分别是两个位置中相机的光心,也就是针孔相机模型中的针孔P是空间中的一个三维点,p0, p1分别是P点在不同成像平面上对应的像素点。

如果将点P沿着C0-P0所在的直线移动,你会发现P在左边相机的成像一直不变,都是P0,这时候P在右边相机的成像点p1是一直在变化的

现在我们把极平面中C0-C1-P0-P1单拎出来,看下面的图,由于C0-C1-P-P0-P1都是共面的,所以得到结论一:

也就是说 一个同时垂直于C0C1与C1P1的向量也垂直于C0P0。

p0, p1都是图像上的二维点,不过,这里我们会把它变成三维的方向向量来考虑我们假设一个归一化的图像平面,该平面上焦距f =1 ,因此我们可以定义在以C0为原点的坐标系下

而在以C1为原点的坐标系下

事实上,你在C0-C1-p0-p1组成的极平面上,保证的方向不变,在极平面上随便移动,结论1中等式都成立。同样的道理,在极平面上,保证

方向不变,在极平面上随便移动,结论1中等式仍然都成立。

p0在以C0为原点的参考坐标系,p1在以C1为原点的参考坐标系,所以我们还是需要转换坐标系。这里我们把所有点的坐标都转换到以C0为原点的坐标系。前面说过这些向量都是方向向量和向量起始位置无关,所以这里坐标系变换只考虑旋转就可以。我们记 R 为从C1坐标系到C0坐标系的旋转矩阵

小白:那么 RP1 就是P1在以C0为原点的C0坐标系了,所以在C0坐标系下结论一可以改写为:



已知:p0TEP1 = 0

根据上一节知识点:

从世界坐标系到相机坐标系的公式为:

那么z=1时从相机坐标系到图像坐标系的公式就为, p0 = k-1p0', p1 = k-1p1'

p0TEP1 = 0 ----> p0'T k-TEk-1p1' = p0'T(k-TEk-1)p1' = p0'TFp1'

这里的F 即为基本矩阵 ,E即为本质矩阵,所以本质矩阵和基本矩阵的区别在于,本质矩阵是使用归一化相机坐标系下的点表示极线约束,基本矩阵是使用图像坐标系下的点表示极线约束的。

相关推荐
光电的一只菜鸡15 小时前
相机里面的AON模式是什么
数码相机
峥嵘life18 小时前
Android16 Camera2录像中拍照后预览模糊问题分析与解决总结
人工智能·数码相机·wireshark
疯狂的维修21 小时前
工业相机的镜头如何分辨景深
数码相机·自动化
峥嵘life21 小时前
Android16 开机后立即打开相机闪退问题分析与解决总结
android·开发语言·数码相机·策略模式
中达瑞和-高光谱·多光谱1 天前
光谱相机如何守护月饼食品安全?
数码相机·高光谱·多光谱·高光谱相机
LabVIEW开发1 天前
LabVIEW 接住 800 Mbps 在轨视频流
数码相机·计算机视觉·labview·labview知识·labview功能·labview程序
把我格子衫拿来1 天前
相机标定误差很小,为什么测量仍不准?从 OpenCV 重投影误差到独立验证
python·数码相机·opencv·计算机视觉·相机标定
moonsims2 天前
面向高危现场作业空间安全智能节点AiBrainBox-S:多模态空间融合、动态风险区、身份-视觉轨迹关联、设备级实时安全推理
人工智能·数码相机·无人机
福大大架构师每日一题2 天前
ComfyUI v0.40.0发布:资产系统、原生 LoRA 堆栈、Qwen 3.5、3D 输出、相机节点与多项合作节点全面更新
数码相机·3d
LittroInno2 天前
远距巡检怎么选云台相机:先算焦距、视场与目标像素预算
数码相机·机器视觉·巡检·焦距·云台相机·视场角