01 本质矩阵、基础矩阵 注:参考高翔博士的SLAM十四讲第7章内容,这里给大家附出来,方便大家理解! 现在,假设我们从两张图像中得到了一对配对好的特征点,如图7.9所示(假如后面我们有若干对这样的 匹配点 ,根据这些点的匹配关系,我们就可以恢复处相机的运动),我们希望求取两帧图像 之间 的运动: 设: 第一帧到第二帧的运动为 两个相机的中心分别为 中有一个特征点 中对应特征点 我们知道两者是通过特征匹配得到的,如果匹配正确,说明它们确实是同一个空间点在两个 成像平面上的投影。 现在,我们用一些术语来描述它们之间的关系,连线 1. 极平面:这时 2. 基线: 和连线 在三维空间中相交于点 : 三个点确定一个平面,称为极平面 , 3. 极点: 连线与像平面 4. 极线:极平面与像平面 第一帧的射线 的交线 是某个像素可能出现的空间位置,因为该射线上所有点都会投影到同一个像 素点。同时,如果不知道 幅图的极线)就是 、 的交点 的位置,那么当我们在第二幅图像上看时,连线 可能出现的投影位置(也就是射线 的投影)。 我们从代数角度来分析这里的几何关系,假设在第一帧的坐标系下,设 根据之前将的针孔相机模型,我们知道两个像素点 (也就是第二 的像素位置为: 的空间位置为: 相机发生了刚体运动,相当于点进行了刚体运动,所以 点进行了旋转、平移。 其中: :相机内参矩阵 、 :两个坐标系的相机运动 我们使用齐次坐标,并且记: 上式仅差一个常数系数 ,称为尺度意义下相等,那么,上述两个投影关系可写为: 现在取: 其中: 将 是两个像素点的归一化平面上的坐标。 代入到 ,因而有: 可以得: 两边同时左乘 ( ): 同时,两侧同时左乘 观测等式左侧, : 是一个与 和 都垂直的向量,它再和 做内积时,将得到 。 由于等式左侧严格为零,乘以任意非零常数之后也为0,于是得到简洁的式子: 记:本质矩阵 : 重新代入 ,有: 记:基础矩阵 : 因而: 本质矩阵 本质矩阵 : 基础矩阵 : 这两个式子称为对极约束,它的几何意义是: 三者共面。 02 单应矩阵 除了基本矩阵,二视图几何中还存在另一种常见的矩阵:单应矩阵,它描述了两个平面之间的映射关 系。 单应矩阵:描述处于共同平面上的一些点在两张图像之间的变换关系。 设图像 和 有一对匹配好的特征点 和 ,这两个特征点都落在平面 上,设这个平面满足方 程: 其中: :平面法向量 :平面上任意一个点的三维坐标 :距离原点距离 改写为: 回顾之前公式,设 的空间位置为 ,那么两个像素点 有: 结合有 任意一个点: 于是我们得到了一个直接描述图像坐标 之间的变换的矩阵,将其记为 03 重投影矩阵 重投影矩阵 :实现了世界坐标系{world}和像素坐标{pixel}之间的转换。 假设: :旋转矩阵(右相机->左相机) :平移矩阵(右相机->左相机) 、 :左相机主点 ,称为单应矩阵: :右相机主点 那么: 则转换关系: 其中: :视差。 相应的3D坐标: 当校正正确时, ,相应: 其中: 之所以有负号,是因为 要减去 为负数 :是因为像素坐标的原点在左上角,而相机坐标系的原点在光心上 注:具体如何用,我们之后在双目结构光算法中详细讲!