ORB_SLAM2:单应性矩阵H、基础矩阵F、本质矩阵E、张正友标定法与kalibr区别、pnp、三角化
单应性矩阵、基础矩阵、本质矩阵都是在解决已知图像 1 中的点 p1 和图像 2 中对应的点 p2两幅图像之间到底存在什么几何关系三者最大的区别是其中H 直接把一个图像点变到另一个图像点上F : 告诉你另一个图像点应该落在哪条极线上E: 在去掉相机内参后描述相机运动和极几何单应性矩阵1.核心定义单应性矩阵是一个3*3的可逆矩阵通常有个8个自由度它描述了两个平面之间的映射关系。2. 几何物理意义单应性矩阵本质是把一个平面上的点从一个成像平面投影到另一个成像平面的线性变换。想象你拍了一张明信片正面然后你换了个角度再拍一张。虽然明信片在两幅图中形状变了长方形变梯形但明信片表面上的所有点在两张照片之间的映射关系就是一个单应性矩阵。关键前提所有点必须共面比如地面、墙面、书本封面。3. 矩阵结构与自由度4. 从世界平面到图像平面假设世界坐标系中有一个平面其法向量为 n距离相机光心距离为 d。第一个视角相机内参 K1外参 [R1∣t1]第二个视角相机内参 K2外参 [R2∣t2]对于平面上一点 X满足平面方程。推导可得结论单应性矩阵由相机内参、两帧之间的旋转和平移以及平面的距离和朝向共同决定。5. 单应性矩阵的分解如果你已知相机内参 K可以从 H中分解出旋转矩阵 R和平移向量 t以及平面法向量 n。分解结果是多解的通常有 4 组解但通过物理约束如法向量朝前、点在前方可筛选出唯一正确解。这在视觉 SLAM和AR/VR中非常常见——用于从平面特征恢复相机运动。6. 如何求解单应性矩阵1直接线性变换法DLT2RANSACDLTRANSAC 算法1. 随机抽样随机选取一小部分数据点计算拟合模型2.检查一致性检查哪些数据点符合模型符合这个模型的称为内点不符合称为外点3.重复迭代重复上述步骤多次找到最好的模型内点数量最大并剔除外点。本质矩阵1. 核心定义本质矩阵E是一个 3*3 的矩阵用于描述已标定相机已知内参K在不同视角下同一空间点之间的几何约束。它是对极几何在归一化坐标下的表示2. 几何意义根据定义本质矩阵 E 是一个 3 × 3 的矩阵内有 9 个未知数。从 E 的构造方式上看有以下值得注意的地方• 本质矩阵是由对极约束定义的。由于对极约束是等式为零的约束所以对 E 乘以任意非零常数后对极约束依然满足。我们把这件事情称为E 在不同尺度下是等价的。• 本质矩阵E 的奇异值必定是 [σ, σ, 0] 的形式。这称为本质矩阵的内在性质。• 另一方面由于平移和旋转各有 3 个自由度故 t ∧ R 共有 6 个自由度。但由于尺度等价性故E 实际上有 5 个自由度。3. 矩阵结构与自由度本质矩阵的秩为2仅在已经经过标定的相机下使用4. 本质矩阵的求解E 具有 5 个自由度的事实表明我们最少可以用 5 对点来求解 E。但是E 的内在性质是一种非线性性质在估计时会带来麻烦因此也可以只考虑它的尺度等价性使用 8 对点来估计 E——这就是经典的八点法Eight-point-algorithm。如果 8 对匹配点组成的矩阵满足秩为 8 的条件那么 E 的各元素就可由上述方程解得。接下来就是从E中分解出R 、t的问题。从 E 分解到 t, R 时一共存在 4 个可能的解。不过幸运的是只有第一种解中 P 在两个相机中都具有正的深度。因此只要把任意一点代入 4 种解中检测该点在两个相机下的深度就可以确定哪个解是正确的了。基础矩阵张正友标定法张正友标定法利用多幅不同姿态的平面棋盘格图像通过棋盘格平面与图像之间的单应性关系建立约束并利用旋转矩阵列向量的正交性和等模性质求解相机内参随后结合畸变模型通过最小化棋盘格角点的重投影误差对相机内参、畸变参数以及棋盘格外参进行非线性优化。张正友标定法的核心其实就是“利用平面棋盘格 → 求单应性 H → 利用旋转矩阵的正交约束 → 求相机内参 K” 即利用H反推K。Kalibr标定张正友标定法主要是在“相机看到棋盘格”这件事上求相机参数Kalibr的核心思想则是让多个传感器同时观测/感知同一个运动通过建立统一的运动和观测模型把相机内参、相机-IMU外参、时间偏移等参数放进一个优化问题中联合估计。猜一组参数 │ ▼ 计算Camera预测结果 │ ▼ 计算IMU预测结果 │ ▼ 和真实数据比较 │ ▼ 计算误差 │ ▼ 调整参数 │ ▼ 再次计算 │ ▼ 误差越来越小PnP已知一组 3D 空间点 Pi和它们在图像上的 2D 投影点 pi求相机的位姿 R,t相机看到一个世界点实际上经历了三角化已知两个相机的位置和姿态以及同一个空间点在两个图像中的 2D 像素位置反推出这个空间点的 3D 坐标。假设空间中有一个点PP ● / \ / \ / \ / \ / \ ● C1 C2 ● 相机1 相机2