3. 相机标定基础:针孔相机模型、内参、外参与标定板设计
RGBD相机的深度数据与彩色图像最终都需要映射到统一的几何坐标系中,而这一映射关系的建立,完全依赖于相机标定。标定的本质,是求解一个从三维世界坐标到二维像素坐标的数学变换,这个变换由针孔相机模型定义,并由内参、外参和畸变系数共同描述。本章将系统拆解这一模型,并给出标定板选型与制作的具体工程方法。
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为单个像素的物理尺寸。
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相机,常用方法是将标定板放置在两个相机视野重叠区域,同时采集彩色图和深度图,提取标定板角点在两个坐标系中的坐标,然后求解相对变换。
- 采集20-30组不同位姿的标定板图像(彩色+深度同步)
- 分别提取彩色图和深度图中的角点坐标
- 使用PnP算法求解彩色相机外参和深度相机外参
- 计算相对变换: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倍。打印后需用游标卡尺测量实际尺寸,因为打印误差会直接影响标定精度。
3.5 标定流程与质量评估
完整的标定流程包括:图像采集、角点提取、内参计算、畸变校正、外参求解、重投影误差评估。推荐使用OpenCV或MATLAB标定工具箱,但需注意以下关键点:
- 图像数量:至少15-20组,覆盖视野中心和边缘,标定板倾斜角度在0°-45°之间
- 重投影误差:小于0.5像素为优秀,小于1像素为合格,大于1像素需重新采集
- 标定板位姿:避免标定板与相机平面完全平行,否则外参求解退化
- 光照控制:避免强光直射和反光,使用漫射光源
总结复盘:相机标定的本质是求解内参、外参和畸变系数,针孔模型是基础,畸变校正是精度保障,标定板选型直接影响深度相机标定质量。工程中应优先使用圆点标定板配合深度相机,棋盘格用于彩色相机;标定板必须平整、哑光、尺寸精确;标定后务必检查重投影误差和深度对齐误差。掌握这些基础,后续的深度数据采集与融合才能建立在可靠的几何基准之上。