OpenCV相机标定
相机参数的估计过程称为相机标定。 opencv安装可以参考这篇文章
相机标定概述
这意味着我们拥有关于相机的所有信息(参数或系数),这些信息用于确定真实世界中的3D点与其在该标定相机捕获的图像中的相应2D投影(像素)之间的精确关系。
通常包含下面两种参数
- 内部参数相机/镜头系统。例如透镜的焦距、光学中心和径向畸变系数。
- 外部参数这是指相机相对于某些世界坐标系的方位(旋转和平移)。
下图中,使用几何标定估计的透镜参数来消除图像失真。
标定流程
要找到三维点在图像平面上的投影,我们首先需要使用外部参数将点从世界坐标系转换为相机坐标系。接下来,使用相机的内部参数,将点投影到图像平面上。所谓标定,就是找到这两个转换的参数
标定过程的目标是使用一组已知的三维点\((X_w,Y_w,Z_w)\)及其对应的图像坐标 \((u,v)\),找到3×3内参矩阵K、3×3旋转矩阵R、3×1平移向量T。当我们得到相机的内部和外部参数值时,相机就被称为标定相机。
标定方法
- 校正:当我们完全控制成像过程时,执行校准的最佳方法是从不同的视角捕获一个物体或已知尺寸模式的多个图像。我们将在这篇文章中学习的基于圆点格的方法属于这一类。也可以棋盘格图案。
- 几何线索:有时我们在场景中有其他的几何线索,如直线和消失点,可以用来标定。
- 基于深度学习的:当我们对成像设置的控制非常小(例如,我们有场景的单个图像)时,仍然可以使用基于深度学习的方法获取相机的校准信息。