相机标定的意义:
- 相机标定:使用带有pattern的标定板来求解相机参数的过程;
- 用一个简化的数学模型来代表复杂的三维到二维的成像过程;
- 相机参数包括:相机内参(焦距等),外参(旋转矩阵等),镜头畸变参数
- 用途:畸变矫正,双目视觉,结构光,三维重建,SLAM等
- 世界坐标系(World Coords):点在真实世界中的位置,描述相机的位置,单位为m;
- 相机坐标系(Camera Coords):以相机sensor中心为原点,建立相机坐标系,单位m;
- 图像物理坐标系:经过小孔成像后得到的二维坐标系,单位是mm,坐标原点是图中的点c;
- 像素坐标系(Pixcel Coords):成像点在相机sensor上像素的行数和列数,不带有任何的物理单位
- 主点:光轴与图像平面的交点为主点,图中的点p。
1、世界坐标系到相机坐标系的转换
点p在不同坐标系的表示:
- 世界坐标系:;
- 相机坐标系:
坐标系之间的转换:
- R:相机坐标系对于世界坐标系的旋转矩阵;
- T:相机坐标系对于世界坐标系的平邑矩阵。
转换关系:
2、相机坐标系到图像坐标系的转换
- 假设点在图像坐标系的成像点是;
- 基于小孔成像的原理;
- 空间中一点成像在平面中,与XOY平面平行,距离原点f的平面;
- 取一个截面ZOY,可以得到上图,根据相似三角形关系可以计算得到:
- 化简后可以得到:
- 写为矩阵可得:
3、图像坐标系到像素坐标系的转换
坐标系的转换:
- 图像坐标系的点到像素坐标系的的转换;
- 图像坐标系的原点在sensor的中央,单位是mm;
- 像素坐标系的原点在sensor的左上角,单位是Pixel,也就是像素的行数和列数;
- 转换关系:
- 矩阵表示:
- :sensor的固有参数,代表每个像素的毫米数;
- :代表图像坐标系原点(光心)相对像素坐标系原点的偏移量
综上:相机坐标系到像素坐标系的转换公式:
- 相机坐标系和世界坐标系重合,不考虑世界坐标系的旋转平移:
- 上式中:,焦距除以单个像素的大小
- 相机的标定过程中,不能标定得到,可以通过标定得到
4、完整坐标系转换
世界坐标系到像素坐标系转换:
相机内参:相机的焦距,像素坐标系的相对偏移量
相机外参:世界坐标系到相机坐标系的转换关系,相机再世界坐标系的位置矩阵
5、镜头畸变
镜头畸变:
经过透视后的实际成像和理想成像之间的误差即为镜头畸变
主要分为径向畸变和切向畸变
径向畸变
- 增加的透镜形状造成,沿透镜的径向分布
- 分为桶形畸变和枕形畸变
- 远离透镜中心的地方比较靠近中心的地方更加弯曲
- 光心处的畸变为0,距离光心越远畸变越大
- 廉价相机,畸变更严重
- 径向畸变的数学多项式描述:
- 是没有畸变的像素点,畸变后的位置
- :径向畸变系数,摄像头的内参,一般使用前两项,鱼眼相机会使用第三项。
切向畸变:
- 相机sensor和镜头不平行导致
- 切向畸变的数学表达式:
- 两个畸变合并:
6、平面的单应性关系:
- 定义:从一个平面到另一个平面的投影映射
- 世界坐标系的物体平面到成像平面之间的映射,即两个平面之间的单应性关系
- 模型平面:标定使用的标定板平面
- 模型平面上的一点:(向量增广为了方便计算)
- 映射到成像平面上的点:
- 它们两者之间的单应性关系:
- :单应性矩阵,单应性矩阵有8个自由度,8个自由度参数求解
- 四个点可以得到8个方程,所以至少四个点就可以求解单应性关系
- Opencv接口:fingHomography
- 求解方法:1.重投影误差最小化;2.RANSAC
基本变量:
- 二维点:,对应的三维空间中的点
- 增加1得到增广向量:,
- 根据前面的模型,三位点到投影点的关系可以描述为:
- :转换尺度因子,:外参,旋转平移矩阵
- :外参,可以表示为:
- :代表图像坐标系元代你(光心)相对像素坐标系原点的偏移量
- :焦距除以单个像素的大小,在两个轴的比例因子
- :两个坐标轴的倾斜角的参数
- 前面没有提到,因为我们认为两个坐标轴是垂直的,世界可能不垂直
- 相机标定
- 我么可以假设,标定板平面在世界坐标系的z坐标是0,R的第列矩阵为,那么可以得到:
- 标定平面和成像平面的单应性关系:
- 如前所述,可以通过两个平面上的多个点求解单应性矩阵H
- 假设
- 根据上式可以得到:
- 相机成像的两个约束条件:
- 旋转向量分别代表绕轴的旋转量,所以这两个向量是正交的,故:
2. 旋转向量是单位向量