目录
一、三维重建基础
1、线性解法
2、非线性解法
3、多视图几何的关键问题
二、极几何
1、极几何关系
2、极几何特例
3、本质矩阵
4、本质矩阵的性质
5、基础矩阵
6、基础矩阵的性质
7、基础矩阵的作用
三、基础矩阵估计
1、八点法
2、归一化的八点法
四、单应矩阵
一、三维重建基础
下图中表示,两个摄像机对同一个物体进行拍摄,两个摄像机之间存在旋转平移的关系,但由于噪声的存在,两条直线通常不相交,我们应该如何通过两个摄像机像平面的点p和p'以及两个摄像机内参数K和K',三角化的矩阵R和T,来计算世界坐标系下的P点的坐标。
1、线性解法
通过摄像机模型关系我们可以得到:
那么我们可以根据上面的式子,对于同一个点以及两个像平面点之间的对应关系,写出四个齐次方程,但是未知数只有三个,所以是一个超定齐次线性方程组,可以用齐次方程的最小二乘解来进行计算。
2、非线性解法
非线性解法对于下图来说,由于存在噪声,对于P点再两个平面的投影MP和M'P*与真实的像平面p和p'存在一定的误差,所以寻找min{d(p,MP)+d(p',M'P)}的值,仍然是一个齐次非线性方程组的问题,所以用牛顿法和L-M方法来求解。
3、多视图几何的关键问题
摄影机几何:从一张或多张图像中求解摄像机的内外参数
场景几何:通过二至多幅图片寻找3D场景坐标
对应关系:已知一个图像的p点,如何在另一个图像上找到p'点
二、极几何
1、极几何关系
极几何:描述同一场景或者物体的两个视点图像间的几何关系。极几何主要解决的就是多视图几何的第三个问题——p与p'的对应关系。
对于下图,两个平面就是指两个视点图像,也就是两个摄像机的像平面。
极平面:过点的平面,也就是所组成的平面,这两个平面相似。
基线:的连线
极线:极平面与成像平面的交线即直线
极点:基线与成像平面的交点
存在以下性质:
(1)极平面相交于基线,应该是基线在极平面上
(2)极线相交于极点
(3)对于不同的世界坐标点P和点Q,在两个像平面的极点不变
(4) p的对应点在另一个相机的极线l'上(对应点指的是两个相机之间的三角化R,T对应关系)
(5)p'的对应点在另一个相机的极线l上
2、极几何特例
(1)平行视图
平行视图是指两个摄像机之间三角化没有旋转关系,只有u轴的横向平移关系,基线平行于图像平面,两个极点位于无穷远处,极线平行于图像坐标的u轴。
(2) 前向平移
前向平移建立在两个摄像机具有两个方向的平移关系,但仍然保持极点位置相同,注意不是说同一个物体在同一个位置上。
通过极几何的约束,可以将搜索范围缩小到对应的极线上,而并没有做到对应点,所以存在一个方向上的误差问题。
3、本质矩阵
本质矩阵:对规范化摄像机拍摄的两个视点图像间的极几何关系进行代数描述。
本质矩阵的关系表达式:,其中摄像机1经过平移T变换,旋转R变换得到摄像机2。对于世界坐标的点P投影到摄影机1的像平面p点,投影到摄像机2的像平面p'点有下面关系成立:,即,如何证明?
我们假设有两个像平面I和I',分别为像平面的原点,图像I上点p的像素坐标为(u,v),图像I'上的点p'像素坐标为(u',v'),假设两个相机均为规范化相机则两者的投影矩阵M均等于I,并使得两摄像机内参数相等K=K'=I,此时对于世界坐标系的欧式坐标和两个图像点上的齐次坐标必然一致。
我们知道任意一个I的点p经过R,T变换得到I上的点p' ,我们可以描述为,由于旋转矩阵R是一个正交矩阵,其转置等于其逆,有,所以可以推出p'在的坐标。
注意点均为该像平面坐标系下原点,所以令p'等于0,可以得到在的坐标。
由于我们在坐标系下,为垂直于的方向,而p点在直线上,所以,有,所以推出
4、本质矩阵的性质
(1)p对应的极线是l',对应关系
(2)p'对应的极线是l,对应关系
(3)
(4)E是奇异的,rank为2
(5)E有5个自由度 (三个平移三个旋转,由于行列式为0,去掉一个自由度)
5、基础矩阵
基础矩阵就是一般化摄像机情况的本质矩阵,但仍然排除外参数的问题,只考虑内参数。
基础矩阵数学表达:,此时满足
基础矩阵推导:
由于两个不同的摄像机,所以定义不同的内参数K和K',相较于规范化相机,对一般相机的像平面上的点有下面关系成立:
沿用本质矩阵中的推导,仍然能推出,注意此时是F而不是E。
6、基础矩阵的性质
基本上性质与本质矩阵相似,只不过由于多了两个参数K和K'所以为7个自由度。
7、基础矩阵的作用
通过基础矩阵,我们无需知道两个摄像机的内外参数,(外参数只有两个摄像机之间做了三角化,摄像机1与世界坐标之间没有旋转平移关系),就可以建立相同场景在不同视图的对应关系,基础矩阵中包含了摄像机内参数信息。
三、基础矩阵估计
1、八点法
首先由于,我们可以转化成的齐次形式,此时我们定义新的列向量参数为,由于参数列向量一共有8个有效值,所以我们只需要找8组点就可以解这个齐次线性方程组。
解齐次线性方程组,仍然可以用齐次线性方程组的最小二乘解,通过找大于8个点,通过求解一个SVD问题即可。
但此时有一个问题,当前的 与基础矩阵并不一致,这个不一致不是不是一个3*3矩阵的形式,这一方面可以通过reshape来修改,但由于多组点不一定均为正确点,噪声点的出现,可能导致矩阵的秩为3,而一般基础矩阵的秩为2,所以我们要进行秩2校正。
通过寻找 ,求解新的经过校正的,可以与真实的基础矩阵之间有很小的误差。
下面为八点法流程:
2、归一化的八点法
由于计算八点法求齐次线性方程组的最小二乘解过程中,参数之间数值差异过大,导致精度较低,误差较大,所以对八个点进行归一化处理。
对每幅图像施加变换T(平移与缩放),让其满足原点为图像上八个点的重心,各个点到坐标原点的均方根距离均为,所以主要是计算两台摄像机的两幅图像中的T和T'。
归一化八点法的流程:
四、单应矩阵
单应矩阵的前提是空间平面的多个点均在同一平面上,即空间平面在两个摄像机下的投影几何。
单应矩阵的重要结论:,其中, ,证明如下:
单应矩阵H有什么作用?
单应矩阵可以得到p和p'的点对点对应关系:。
H只有8自由度,只需要4对点的对应关系,即可计算出H,这样就可以计算出两者的关系,相较于基础矩阵更加简单,但要求也更多,世界坐标系的点必须在同一平面上。
Reference:https://www.bilibili.com/video/BV1dr4y1C7nf/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=2152dec20715e478285cc87cc31201ed