E = Kᵀ F K 的数学原理

一、为什么需要从 F 得到 E?

若两台相机的内参矩阵分别是

  • K1:左相机

  • K2​:右相机

则基础矩阵与本质矩阵关系为:

  • F(基础矩阵) 工作在 像素坐标系(image coordinates)

  • E(本质矩阵) 工作在 归一化相机坐标系(camera normalized coordinates)

两者的区别是:

像素坐标需要使用内参矩阵 K 才能转成真实的几何光线方向。

符号 含义 维度
(F) 基础矩阵(像素坐标下 epipolar 几何) 3×3
(E) 本质矩阵(相机归一化坐标系下 epipolar 几何) 3×3
(K) 相机内参矩阵 3×3
(x, x') 像素坐标(齐次) 3×1
(\tilde{x}, \tilde{x}') 归一化坐标(投影到相机坐标系) 3×1

二、核心思想:像素坐标与归一化坐标的关系

像素坐标:

三、E = T× R 为什么必须在归一化空间?

通过几何可以得:

这个公式成立的前提是:

  • x1,x 必须表示为 3D 相机坐标系下的方向向量

  • 而不是像素坐标

像素坐标要转换:

E = Kᵀ F K 的更几何化推导(直观图)

cpp 复制代码
像素点 x1  --K^{-1}-->   归一化点 x̂1   --极几何-->   x̂2  --K-->  像素点 x2

极线约束在两个世界中都应该成立:

cpp 复制代码
pixel:           x2ᵀ F x1 = 0
normalized:      x̂2ᵀ E x̂1 = 0

因为

cpp 复制代码
像素坐标 = K * 归一化坐标

四、MATLAB 数值验证

下面的代码会:

  1. 随机生成 R、T

  2. 构造真实的本质矩阵 Etrue = T×R

  3. 假设内参 K

  4. 计算 F = K^{-T} Etrue K^{-1}

  5. 再恢复 Eest = Kᵀ F K

  6. 验证 Eest 是否等于 Etrue(在尺度内)

cpp 复制代码
%% 随机生成 R
[U,~,V] = svd(randn(3,3));
R = U*V';
if det(R)<0, R(:,3) = -R(:,3); end

%% 随机平移 T
T = randn(3,1);
T = T / norm(T);
%============================================================
%% 叉乘矩阵
Tx = [0 -T(3) T(2);
      T(3) 0 -T(1);
     -T(2) T(1) 0];

%% 真实本质矩阵
E_true = Tx * R;
%============================================================
%% 相机内参  自己设置的
K = [1000 0 320;
     0 1000 240;
     0    0   1];
%============================================================
%% 根据 E_true 构造 F
F = inv(K)' * E_true * inv(K);

%% 再根据 F 恢复 E
E_est = K' * F * K;

%% 归一化以比较
E_true = E_true / norm(E_true);
E_est  = E_est  / norm(E_est);


disp('真实 E :');
disp(E_true);

disp('恢复 E = K'' F K :');
disp(E_est);

disp('误差 = ');
disp(E_est - E_true);

五、总结

矩阵 坐标系 几何意义
F 像素坐标 两幅图像的极线关系
E 归一化相机坐标 相机相对姿态(R、T)的真正规律
相关推荐
Jerry28 分钟前
LeetCode 28. 找出字符串中第一个匹配项的下标
算法
Jerry2 小时前
LeetCode 459. 重复的子字符串
算法
海石5 小时前
1500分的题目,确实有实力,不过还是我略胜一筹
算法·leetcode
海石5 小时前
【记忆化搜索】条条大路通AC,走好适合你的那一条,走到后再考虑走得快
算法·leetcode
Jerry7 小时前
LeetCode 151. 反转字符串中的单词
算法
a1117769 小时前
LM 算法迭代过程动画演示(SLAM)
算法
头茬韭菜10 小时前
Context 的生死抉择:四层压缩、截断算法与 Session Memory
算法·ai
Jerry10 小时前
LeetCode 541. 反转字符串 II
算法
Jerry10 小时前
LeetCode 344. 反转字符串
算法
搞科研的小刘选手10 小时前
【香港大学主办&IEEE出版】第六届计算机视觉、应用与算法国际学术会议(CVAA 2026)
算法·计算机视觉·应用·学术会议