相机标定原理

引言

相机标定是计算机视觉中的一个基础问题,它的目标是确定相机的内参(如焦距、光心等)和外参(如相机的位置和姿态)。在实际应用中,标定过程有助于将二维图像坐标转换为三维世界坐标,进而为计算机视觉中的各种任务,如三维重建、姿态估计、机器人导航等提供基础。通过标定,我们能够消除由相机镜头带来的畸变,获取更准确的成像信息。

本文将介绍相机标定的基本原理,包括摄像机模型、标定方法、常见的标定工具和案例应用,并通过具体实例来展示如何进行相机标定。

摄像机模型

1.1 透视投影模型

在相机标定中,我们通常使用透视投影模型来描述相机成像的过程。透视投影是一种将三维世界中的点投影到二维平面上的方式。在此模型下,物体的每个点都通过相机的中心与图像平面上的点之间的连线进行映射。

假设有一个三维空间中的点 X=[X,Y,Z]T X = [X, Y, Z]^T ,其在相机坐标系下的投影点 x=[x,y]T x = [x, y]^T ,那么通过透视投影矩阵,投影关系可以表示为:

s[xy1]=K[Rt01][X1]s \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} = \mathbf{K} \cdot \begin{bmatrix} R & t \\ 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} X \\ 1 \end{bmatrix}

其中:

  • s s 是尺度因子
  • K \mathbf{K} 是相机的内参矩阵
  • R R t t 分别是相机的旋转矩阵和平移向量
  • X X 是三维世界坐标系中的点
  • x x 是图像坐标系中的点

内参矩阵 K \mathbf{K} 通常包括相机的焦距、光心位置等参数。外参矩阵由旋转矩阵 R R 和平移向量 t t 组成,描述了相机坐标系和世界坐标系之间的关系。

1.2 相机的内外参

  • 内参:包括焦距、主点位置(光心位置)和畸变系数等参数。焦距决定了相机的视野范围,主点通常对应图像中心,而畸变系数则与镜头产生的光学畸变有关。

  • 外参:描述相机相对于世界坐标系的位置和姿态。外参通过旋转矩阵 R R 和平移向量 t t 将世界坐标系中的点转换到相机坐标系。

相机标定方法

相机标定的目的是计算相机的内参和外参,通常有以下几种方法:

2.1 基于标定板的方法

这是最常用的标定方法,利用一个已知尺寸的标定板(通常是一个棋盘格)来进行标定。标定板上有一些明显的特征点(如角点),我们通过检测这些角点来进行标定。

步骤

  1. 拍摄标定板:将标定板放置在多个不同的位置和姿态下,拍摄多张图像。每张图像中,标定板上的特征点(通常是棋盘格的角点)应清晰可见。

  2. 角点检测:利用计算机视觉中的角点检测算法(如 Harris 角点检测)在图像中提取出标定板上的角点位置。

  3. 计算内参和外参:通过一系列的图像和特征点坐标,采用最小二乘法或者其他优化方法来估算相机的内参和外参。

案例

假设我们需要为一个机器人相机进行标定。我们使用一个标准的棋盘格标定板,在不同的角度和位置拍摄了多张图像,并提取了图像中的角点。通过这些角点的图像坐标和标定板上实际物理位置的对应关系,我们可以估算出相机的内参和外参。

2.2 基于自标定的方法

自标定方法不需要使用外部的标定板,而是通过相机自身的运动来进行标定。通过多个图像间的相对运动,可以估算相机的内外参。

步骤

  1. 相机运动采集图像:通过相机在空间中沿着不同轨迹拍摄多张图像,确保每张图像之间的相对运动可以得到估计。

  2. 匹配特征点:在不同图像之间寻找相同的特征点(如使用 SIFT、SURF、ORB 等特征提取算法)。

  3. 计算相对运动和相机参数:通过图像之间的相对运动(即相机的旋转和平移),可以计算出相机的内外参。

应用场景

自标定方法适用于那些无法使用传统标定板的场景,比如无人机、机器人等移动设备。在这些情况下,通过相机的自身运动采集图像,并在图像中匹配特征点,可以实现相机标定。

2.3 基于结构光的标定方法

结构光标定方法利用相机和投影仪等设备进行配合,通过投射已知模式的光线(如条纹、点云等)来对相机进行标定。这种方法在一些需要高精度标定的应用中常常使用。

2.4 基于深度相机的标定方法

随着深度相机(如 Kinect、RealSense 等)的普及,深度相机的标定也成为了一项重要技术。深度相机可以同时获取图像和深度信息,通过图像和深度信息的配合,进行精确的三维标定。

标定算法与工具

3.1 张正友标定法

张正友标定法是最常用的相机标定方法之一,由张正友教授提出。该方法通过在多个不同视角下拍摄棋盘格标定板,并通过最小二乘法来估算相机的内外参。该方法具有实现简单、计算高效等优点,广泛应用于工业检测、机器人视觉等领域。

3.2 OpenCV标定工具

OpenCV 提供了强大的相机标定工具,包括标定算法的实现以及图像处理功能。OpenCV 中的标定函数(如 cv2.calibrateCamera)可以自动执行标定过程,通过图像中的角点和实际世界坐标的对应关系,来计算相机的内外参。

相机标定应用实例

4.1 机器人视觉

在机器人视觉中,相机标定是实现自主导航和环境感知的基础。通过标定,我们可以将相机拍摄的图像中的物体位置转化为世界坐标系中的位置,从而帮助机器人进行路径规划、障碍物避让等任务。

实例

假设一个机器人配备了一个相机和激光雷达。通过标定机器人相机,我们可以将相机图像中的物体位置与激光雷达的深度信息进行融合,从而实现更准确的三维建图与定位。

4.2 三维重建

三维重建是相机标定的一个重要应用,通过多个相机的视角获取同一物体的图像,并结合相机的内外参,可以重建物体的三维模型。该技术广泛应用于虚拟现实、增强现实以及电影制作等领域。

实例

在电影制作中,多个摄像机拍摄同一场景,通过标定这些相机,可以得到每个摄像机的准确位置和方向,从而合成出虚拟角色与真实场景的互动。

4.3 增强现实(AR)

增强现实(AR)应用需要将虚拟物体与真实世界结合。为了使虚拟物体能够准确地叠加到现实世界的图像上,首先需要对相机进行标定。相机的内外参可以帮助系统准确地计算虚拟物体的位置和角度,实现更真实的增强现实效果。

实例

在手机 AR 应用中,相机会根据拍摄到的图像,通过标定得到相机的内外参,从而确定虚拟物体在屏幕上的正确位置。

4.4 自动驾驶

在自动驾驶中,车辆的视觉系统需要通过多个摄像头来感知周围环境。相机标定是确保视觉系统能够