相机模型 + 对极几何(相机之间的约束)
针孔相机模型 / 鱼眼相机模型(无人机使用)
针孔相机模型
三维空间的物体如何反应在图像上呢?
- 世界坐标系 -> 相机坐标系(这个转换实际上就是一个刚体变换:旋转+平移)
- 相机坐标系 - >世界坐标系 (刚体变换的逆变换)
- Xw世界坐标Xc相机坐标X_w 世界坐标 X_c 相机坐标Xw?世界坐标Xc?相机坐标 R是正交矩阵,正交矩阵的逆和它的转置是一样的
世界坐标到相机坐标系
- 有些场景里需要绘制相机,所以需要绘制相机位置和朝向。相机坐标系中的z轴就是相机的朝向
- 相机朝向 在世界坐标系中的朝向:将相机坐标系中的原点和z轴一个点都投影到世界坐标系中,然后相减就是相机在世界坐标系中的朝向(实际上就是旋转矩阵R的第三行)。
- 齐次坐标:齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示,是指一个用于投影几何里的坐标系统。
- 定义齐次坐标也可以很容易区分点和向量。点的最后一个齐次坐标为1,向量的最后一个齐次坐标为0(所以平移就对其没有作用,只有旋转对其有作用)
相机坐标系到归一化像平面
- 从相机坐标到像平面坐标,其失去了一个ZcZ_cZc?,也就是失去了深度信息。只有知道这个深度,我们才能从二维图像确定该点在三维图像中的的位置
归一化像平面到像素坐标系
- 其中间差了一个单位。即像素的单位是,每一毫米有多少个像素。而归一化像平面的单位是毫米。这里一般将α和β\alpha 和 \betaα和β与fff乘在一起作为一个焦距。
- 由于归一化像平面其坐标是图像的中心,而图片的坐标通常是左上角,所以这中间还涉及到了一个平移。
成像过程总结
- 这里K我们常称为内参矩阵。因为其里面涉及的αβu0v0\alpha \beta u_0 v_0αβu0?v0?都是一个内参数
- 如果估计相机的外参数就是对相机的姿态估计(3维的跟踪)。如果估计内参数就是对相机的标定。
相机的畸变(径向畸变)
- 径向畸变发生在像平面上。
- 由r2=x2+y2r^2 = x^2 + y^2r2=x2+y2可知,当坐标点越偏离中心点,其畸变的程度就越大。
估计径向畸变的系数使用最小二乘法
径向畸变矫正
实现简单的相机c++类,完成相机投影过程的代码。