3. 相机标定基础:针孔相机模型、内参、外参与标定板设计

RGBD相机的深度数据与彩色图像最终都需要映射到统一的几何坐标系中,而这一映射关系的建立,完全依赖于相机标定。标定的本质,是求解一个从三维世界坐标到二维像素坐标的数学变换,这个变换由针孔相机模型定义,并由内参、外参和畸变系数共同描述。本章将系统拆解这一模型,并给出标定板选型与制作的具体工程方法。

世界坐标系 (Xw, Yw, Zw) 标定板角点 R, t 外参 相机坐标系 (Xc, Yc, Zc) 光心为原点 K 内参 图像坐标系 (x, y) 物理单位(mm) K 像素映射 像素坐标系 (u, v) 离散整数 畸变模型 径向畸变 k1,k2,k3 切向畸变 p1,p2 标定板 棋盘格 / 圆点阵列 提供已知3D坐标 完整投影变换 Zc · [u, v, 1]ᵀ = K · [R | t] · [Xw, Yw, Zw, 1]ᵀ K = [fx, 0, cx; 0, fy, cy; 0, 0, 1]

3.1 针孔相机模型与投影变换

针孔相机模型是计算机视觉中最基础的成像模型。它假设光线沿直线传播,经过相机光心(针孔)后在成像平面上形成倒像。实际工程中,我们将其简化为正立像,并建立四个坐标系之间的变换关系:世界坐标系、相机坐标系、图像坐标系和像素坐标系。

核心原理:世界坐标系中的任意一点Pw,首先通过外参(旋转矩阵R和平移向量t)变换到相机坐标系Pc,然后通过内参矩阵K投影到像素平面。整个过程可用齐次坐标表示为:

Zc · [u, v, 1]ᵀ = K · [R | t] · [Xw, Yw, Zw, 1]ᵀ

其中,内参矩阵K包含焦距fx、fy(单位像素),主点cx、cy(像素坐标),以及可能的倾斜因子s(通常忽略)。fx = f/dx,fy = f/dy,dx、dy为单个像素的物理尺寸。

工程要点:RGBD相机标定时,需要分别标定彩色相机和深度相机,然后求解两者之间的外参(即RGB-D外参)。深度相机的内参通常以“焦距fx、fy”和“主点cx、cy”的形式给出,但深度图的值是毫米或米,需要根据实际传感器规格确认单位。

3.2 内参与畸变模型

内参描述相机本身的几何属性,畸变则描述镜头光学系统引入的偏差。畸变主要分为两类:径向畸变和切向畸变。

畸变类型 数学模型 典型表现 标定参数
径向畸变 x_dist = x(1 + k1r² + k2r⁴ + k3r⁶) 桶形畸变(广角)或枕形畸变(长焦) k1, k2, k3
切向畸变 x_dist = x + [2p1xy + p2(r² + 2x²)] 镜头与传感器不平行导致的梯形失真 p1, p2

判断方法:标定过程中,OpenCV的calibrateCamera()函数会返回5个畸变系数(k1, k2, p1, p2, k3)。对于大多数工业镜头,k3可设为0;但对于广角镜头或鱼眼镜头,必须使用k3甚至更高阶模型。判断畸变是否严重,可观察图像边缘的直线是否弯曲。

常见误区:不要将畸变系数直接用于深度图校正。深度相机的畸变模型与彩色相机相同,但深度图存在“边缘飞点”和“深度噪声”,直接校正会放大噪声。建议先对深度图做中值滤波或双边滤波,再进行畸变校正。

3.3 外参与坐标系变换

外参描述相机在世界坐标系中的位姿。旋转矩阵R(3×3)和平移向量t(3×1)共同构成刚体变换矩阵[R|t](3×4)。在RGBD相机中,外参有两种含义:一是相机相对于世界坐标系的位姿,二是深度相机相对于彩色相机的位姿。

操作流程:标定外参时,通常使用“手眼标定”或“多相机标定”方法。对于RGBD相机,常用方法是将标定板放置在两个相机视野重叠区域,同时采集彩色图和深度图,提取标定板角点在两个坐标系中的坐标,然后求解相对变换。

  1. 采集20-30组不同位姿的标定板图像(彩色+深度同步)
  2. 分别提取彩色图和深度图中的角点坐标
  3. 使用PnP算法求解彩色相机外参和深度相机外参
  4. 计算相对变换:T_depth_to_color = T_color_to_world⁻¹ × T_depth_to_world
经验提醒:深度图角点提取时,由于深度噪声,角点坐标可能不准确。建议在深度图上使用“深度值+灰度值”融合的角点检测方法,或使用圆点标定板(圆心提取更鲁棒)。

3.4 标定板选择与制作

标定板是提供已知三维坐标的基准物。常见类型有棋盘格和圆点阵列,各有优劣。

类型 优势 劣势 适用场景
棋盘格 角点检测算法成熟、精度高 需要整块可见、边缘易反光 彩色相机标定、室内环境
圆点阵列 圆心提取抗噪强、支持部分遮挡 椭圆拟合误差、需要已知排列 深度相机标定、多相机标定

制作要点:标定板应使用哑光材料(如亚克力喷砂板或高质量打印纸+玻璃夹持),避免反光。棋盘格推荐7×10或9×12格,方格边长20-30mm;圆点阵列推荐5×7或7×9圆点,圆点直径10-15mm,间距为直径的2倍。打印后需用游标卡尺测量实际尺寸,因为打印误差会直接影响标定精度。

案例拆解:某机器人项目使用Intel RealSense D435i进行抓取定位。初始标定使用A4纸打印的棋盘格(方格边长25mm),标定后重投影误差0.8像素,但深度图与彩色图对齐误差达5mm。分析发现:棋盘格在深度图中边缘模糊,角点提取偏差大。改用亚克力圆点标定板(圆点直径12mm,间距24mm)后,深度图圆心提取误差从2.1mm降至0.6mm,对齐误差降至1.2mm。复盘经验:深度相机标定必须使用圆点标定板,且标定板平面度要优于0.1mm。

3.5 标定流程与质量评估

完整的标定流程包括:图像采集、角点提取、内参计算、畸变校正、外参求解、重投影误差评估。推荐使用OpenCV或MATLAB标定工具箱,但需注意以下关键点:

  • 图像数量:至少15-20组,覆盖视野中心和边缘,标定板倾斜角度在0°-45°之间
  • 重投影误差:小于0.5像素为优秀,小于1像素为合格,大于1像素需重新采集
  • 标定板位姿:避免标定板与相机平面完全平行,否则外参求解退化
  • 光照控制:避免强光直射和反光,使用漫射光源
风险提示:标定板弯曲是最大误差源。手持标定板时,边缘会自然弯曲,导致角点坐标偏差。建议将标定板贴在平整玻璃或铝板上,并检查角点共面性(通过计算标定板平面拟合残差,应小于0.1mm)。

总结复盘:相机标定的本质是求解内参、外参和畸变系数,针孔模型是基础,畸变校正是精度保障,标定板选型直接影响深度相机标定质量。工程中应优先使用圆点标定板配合深度相机,棋盘格用于彩色相机;标定板必须平整、哑光、尺寸精确;标定后务必检查重投影误差和深度对齐误差。掌握这些基础,后续的深度数据采集与融合才能建立在可靠的几何基准之上。