CS231A笔记
文章截图大多来自斯坦福CS231A课程;
1 基本概念
相机的旋转矩阵: 正交矩阵
极点
- 极线
极平面
【推荐文章】: 对极几何(Epipolar Geometry)
叉乘:两个向量的叉乘可以由一个向量的斜对称矩阵和另一向量的积;
1.1 特点
- 前向平移—极点都处于同一位置
1.2 本质矩阵
- 相机是 标准相机:K = I
由图中可以看出,p经过变换得到p’:
得到:
通过叉乘:可以将上个式子变成:
- 定义:
为本质矩阵(The Essential Matrix):
3*3的矩阵;
自由度: 5(3:Rotation 2:translation)
rank : 2 ,奇异矩阵
用处
- 计算p 和 p’的极线
表示:p被E投射到 第二幅图像上的极线l’上;
表示:p’被E投射到 第一幅图像上的极线l上;
- 极点和矩阵的联系
1.3 基本矩阵(Fundamental Matrix)
- 相机是非标准的;
对应两个相机,两个相机的投影矩阵为:
定义世界坐标系 相机坐标系中的点P在两个位置的相机图片上的投影为:
根据本质矩阵得到:
推导出,两个相机的位置变换:
其中:
F就被称为: 基本矩阵
- 3* 3 矩阵
- 奇异矩阵 Rank :2
- 包含R, T;
- 包含 相机参数 K,K’
- 自由度 : 7 ()
用处
基本矩阵已知,已知一张图片上一点和另一张图片上的对应点, 就可以求出p和p’的对应关系;
自由度的分析
#2 THE Eight-Point 算法
2.1 八点算法
- 给予两张图片,没有相机内外参数;
求出基本矩阵
方法:
_Eight-Point 算法_
- 至少8对 对应点
则每队对对应点满足:
即:
展开,可以得到:
对于所有对应点,使用一下公式:
简写为:
- W : N*9 矩阵 , N: 对应对的数量
- f: 基本矩阵
- 使用svd分解
- w: 非满秩的
- f: 真实的基本矩阵秩为2
- #基本矩阵的基本解法之8点算法
3.2 Normalized Eight-Point算法
标准的8点算法存在的问题:
- p点, 和通过基本矩阵将点p’映射到的极线上l= Fp’,两者的距离很大;点和极线之间的均值误差如下:
- 8个对应点组成的矩阵W: 最好只有一个奇异值为0或者近似为0,其他的都为非零;这样能够使得svd效果好;
- 像素值的范围过大;如pi = (1832; 1023;)
解决方法:
- 归一化像素点
- 新坐标系的原点应该位于图像点的质心处(平移);
表示为:
- 新坐标系的原点应该位于图像点的质心处(平移);
- 其次,变换后的图像点距原点的均方距离应为2像素(缩放)
如图所示,
然后用新坐标系下的图像应用8点算法计算出Fq;
然后通过反归一化,获得真实的基本矩阵;