计算机视觉——相机标定(Camera Calibration)
在进行机器人视觉相关项目的过程中,首先要进行相机标定,此博客记录相机标定的相关原概念及实施方法。
1. 简介
在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定。相机标定是非常关键的环节。
- 进行摄像机标定的目的:求出相机的内、外参数,以及畸变参数。
- 标定相机后通常是想做两件事:一个是由于每个镜头的畸变程度各不相同,通过相机标定可以校正这种镜头畸变矫正畸变,生成矫正后的图像;另一个是根据获得的图像重构三维场景。
2. 原理
相机标定的基本原理是通过已知的三维世界坐标系中的点和对应的二维图像坐标系中的点,建立一个数学模型,将三维世界坐标系中的点投影到二维图像坐标系中。这个数学模型通常包括以下几个部分:
- 相机内参矩阵(Intrinsic Matrix):描述相机的内部几何特性,包括焦距、主点坐标等。
- 畸变系数(Distortion Coefficients):描述图像畸变,包括径向畸变和切向畸变。
- 旋转矩阵和平移向量(Rotation Matrix and Translation Vector):描述相机在世界坐标系中的姿态,也可以叫做外参数。
常用标定步骤:
- 准备标定板:使用一个已知尺寸的标定板(如棋盘格),并拍摄多张不同角度和位置的图像。
- 检测角点:在每张图像中检测标定板的角点,并记录其二维图像坐标。
- 生成世界坐标:根据标定板的尺寸,生成标定板角点的三维世界坐标。
- 计算内参和畸变系数:使用检测到的角点和生成的世界坐标,计算相机的内参矩阵和畸变系数。
- 计算旋转矩阵和平移向量:计算每张图像的旋转矩阵和平移向量。
- 计算重投影误差:将世界坐标系中的点投影到图像坐标系中,并与实际检测到的图像坐标进行比较,计算重投影误差。
常用术语
内参矩阵: Intrinsic Matrix
焦距: Focal Length
主点: Principal Point
角点: Corner Point
径向畸变: Radial Distortion
切向畸变: Tangential Distortion
旋转矩阵: Rotation Matrices
平移向量: Translation Vectors
平均重投影误差: Mean Reprojection Error
重投影误差: Reprojection Errors
重投影点: Reprojected Points
3. 相机模型
3.1 四大坐标系
世界坐标系是一个全局坐标系,用于描述物体在真实世界中的位置。世界坐标系用
(X_w, Y_w, Z_w)
表示,独立于相机,可以任意选择原点和坐标轴的方向。
**相机坐标系 (Camera Coordinate System)**以相机的光学中心为原点, Z Z Z轴指向相机的正前方, X X X轴和 Y Y Y轴分别指向相机的右侧和下方,用于描述物体在相机视角下的位置。通常,相机坐标系用 ( X c , Y c , Z c ) (X_c, Y_c, Z_c) (Xc,Yc,Zc) 表示。
**图像坐标系 (Image Coordinate System)**是二维坐标系,用于描述物体在相机成像平面上的投影位置。通常,图像坐标系用 ( x , y ) (x, y) (x,y)表示,图像坐标系的原点通常位于成像平面的中心, x x x轴和 y y y轴分别指向图像的右侧和下方。
**像素坐标系 (Pixel Coordinate System)**是二维坐标系,用于描述物体在数字图像中的像素位置。通常,像素坐标系用 ( u , v ) (u, v) (u,v) 表示,即列数和行数。像素坐标系的原点通常位于图像的左上角, u u u轴和 v v v轴分别指向图像的右侧和下方。
3.2 坐标系间的转换关系
3.2.1 世界坐标系到相机坐标系
世界坐标系到相机坐标系的转换通常通过一个刚体变换(旋转和平移)来实现。这个变换可以用一个4x4的变换矩阵 T w c T_{wc} Twc 表示,包含旋转矩阵 R R R和平移向量 t t t
[
X
c
Y
c
Z
c
1
]
=
T
w
c
[
X
w
Y
w
Z
w
1
]
=
[
R
t
0
1
]
[
X
w
Y
w
Z
w
1
]
[XcYcZc1] class="MathJax_Display MathJax_Processed">
评论记录:
回复评论: