CS231A笔记
文章截图大多来自斯坦福CS231A课程;
本章节许多问题没有看懂,o(╥﹏╥)o
主题: 图片校正 Image Rectification
#1 问题
- 两个图片平行的问题
- 无旋转 R = I
- 平移: 假设在x 轴上平移
那么 本质矩阵为:
计算极线的方向:
可知,两张图片的极线是水平的;
可以得知,两点是共享同一个坐标轴 v的;
2 Rectification: making two images “parallel”
- 平行图片的优点
2.1 三角化
- point triangulation
- 距离计算
2.2 对应性问题
2.2.1 对应性方法
两个图片共享v轴,只在u轴上变化;
这种方法造成强度的改变;
窗口大小不同的结果为;
存在四个不同的问题:
3 校正两张图片
校正两个图片不需要就知道相机的内参K和外参矩阵R,T,只需要通过基础矩阵计算极线;
然后计算所以极线的交点—极点;由于噪点的干扰,不可能交于一点,因此计算极点,利用最小二乘方法求得极线拟合一点;
并且在极线上的每一点:
如果定义极线集合:
可以得到:
因此整个步骤为:
- 通过归一化8点算法获取基本矩阵
- 极线交于极点: 通过最小二乘误差拟合
- svd计算 极点
在求得极点e,e’后,如果极点在水平方向上不是无限的,说明图片没有平行,如果点是无限的,说明图片平行了;
因此,我们的目的:
- 寻找一对单应性矩阵H1,H2,使得极点无穷,即两张图片平行;
(1). 寻找H2:令e’在水平方向上无限,即为点(f,0,0)
- 将第二幅图的中心移动到(0,0,1)在齐次坐标系下;
这个平移矩阵为:
(2). 应用一个旋转矩阵:使极点坐标旋转到水平坐标轴上,变为(f, 0, 1)
- 如果e‘在平移后Te’的坐标为:(e1’,e2’,1),旋转矩阵为:
(3). 将极点坐标由(f,0,1)==>(f,0,0)
- 只需要变换矩阵:
经过上面几个步骤。我们可以得到无限极点:这个单应性变换H2为:
- 为了寻找单应性矩阵H1,,需要最小化两个图片对应点的均方差之和来获得H1
求导后,可以得到:
!
计算式子中的未知参数:
(1). 首先计算M
任意3*3的斜对称矩阵:
因为任何向量的叉积矩阵 是一个斜对称矩阵:
如图,a向量的叉乘矩阵为斜对称矩阵;
因此,前面公式中:
合并后,
如果M每一列缩放e,则F也需要变化:
(2). 计算Ha矩阵中的参数a
- 已经知道了H2, M,如果将图片1中的点p变换到图片2中,然后经过H2变换:
这两个点应该是最近点,然后使用最小二乘发来最小化误差:
假设两个点齐次坐标为:
最小化式子为:
因为最后一项两个点在水平线上,则为常数
最终,这个问题变成了解决最小二乘问题:
求得a的参数后,得到了HA,H2,M三个矩阵,根据上面的式子:
最终可以求得H1;