五点法求解相机的相对位姿

ref:An Efficient Solution to theFive-Point Relative Pose Problem

1. 问题描述

对极几何是算法的基础,用来描述两个相机视图之间的几何关系。

  • 基本矩阵: 一个 3x3 的秩为 2 的矩阵,包含了两个相机的内参和相对位姿(旋转 R 和平移 t)信息,满足如下方程,其中 x 和 x' 是一对匹配的特征点在两个图像上的归一化相机坐标(或像素坐标):x'ᵀ * F * x = 0

  • 本质矩阵: 一个 3x3 的秩为 2 的矩阵,假设相机已经被标定(已知内参矩阵 K),矩阵只包含相对位姿信息(R 和 t)。它与基本矩阵的关系是:E = K'ᵀ * F * K,约束方程是:x'ᵀ * E * x = 0 (这里的 x 是归一化相机坐标)

  • 最终目标:从一系列匹配点对 (x, x') 中,求解出 E 或 F,然后从 E 或 F 中分解出旋转矩阵 R 和平移向量 t。

2. 五点法原理

作为视觉SLAM领域的主流算法,非常适用于已知内参的相机(如手机、自动驾驶汽车上的相机),并且在任何场景下(包括看似"退化"的场景)都需要鲁棒估计位姿的情况。

  1. 求解本质矩阵 E:五点法专门用于求解本质矩阵 E,直接工作在已知相机内参的前提下,使用归一化相机坐标。

  2. 自由度:本质矩阵 E 有 5 个自由度(3个来自旋转,2个来自平移方向,平移的尺度无法确定),理论上最少需要 5 对匹配点来求解。

  3. 数学过程:将 x'ᵀ * E * x = 0 方程展开,虽然 E 有 9 个元素,但由于尺度不变性和内在约束(秩为 2,行列式为 0),它只有 5 个自由度,每个点对可以提供一个方程,用 5 个点构建一个线性方程组,但由于方程是非线性的,最终会转化为一个 10次方程的求解问题,最多可以得到 10 个可能的实数解。

  4. 筛选正确解:将这 10 个可能的 E 矩阵代入更多的匹配点,选择那个使得大部分点满足 x'ᵀ * E * x ≈ 0 的解。

  5. 分解位姿:从最终确定的 E 中,通过 SVD 分解恢复出 4 组可能的 (R, t) 组合。再通过点必须在两个相机前方(正深度) 的约束筛选出唯一正确的位姿。

3. 对比其他点数

  • 八点法:作为最简单的线性方法,是OpenCV视觉库的标准实现。原理是将 x'ᵀ * F * x = 0 或 x'ᵀ * E * x = 0 方程改写为关于矩阵元素的线性方程,每个点对提供一个线性方程,F 有 7 个自由度,但八点法通过最小二乘直接求解,因此,需要至少 8 个点来避免欠定问题,无法处理纯旋转或所有点共面的退化场景。

  • 七点法:使用 7 对点,可以构建一个 7x9 的矩阵,解是 2维零空间的基础向量 F1 和 F2 的线性组合:F = α * F1 + (1-α) * F2。利用 F 矩阵秩为 2 的约束 det(F) = 0,代入线性组合得到一个关于 α 的三次方程,最多可得到 3 个实数解,然后从最多3个解中筛选出正确的 F,同样无法处理退化场景。

  • 六点法:用于在已知部分运动参数的情况下,减少了自由度,从而可以用更少的点求解。比如,在平面假设下,使用 6 个点通过最小二乘来更鲁棒地估计单应性矩阵 H,然后从 H 中分解出 R 和 t

默认条件下,不同点数平移误差随噪声变化的对比结果:a. 最小值横向运动案例b. 最小值纵向运动案例c. 100点横向运动案例d. 100点纵向运动案例

相关推荐
weixin_466485112 天前
halcon标定助手的使用
数码相机
诸葛务农4 天前
ToF(飞行时间)相机在人形机器人非接触式传感领域内的应用
数码相机·机器人
塞北山巅4 天前
相机自动曝光(AE)核心算法——从参数调节到亮度标定
数码相机·算法
美摄科技5 天前
相机sdk是什么意思?
数码相机
phyit5 天前
全景相机领域,影石何以杀出重围?
数码相机
鄃鳕5 天前
装饰器【Python】
开发语言·python·数码相机
聪明不喝牛奶5 天前
【已解决】海康威视相机如何升级固件
数码相机
PAQQ5 天前
1站--视觉搬运工业机器人工作站 -- 相机部分
数码相机·机器人
诸葛务农5 天前
人形机器人基于视觉的非接触式触觉传感技术
数码相机·机器人
moonsims6 天前
被动式热成像摄像机也称前视红外 (FLIR) 摄像机-Sierra-Olympia Technologies 中波红外摄像机
数码相机