3. 相机标定基础
在多相机大视野拼接与尺寸测量中,标定是整条测量链的“地基”。拼接需要知道各相机之间的空间关系,尺寸测量需要把像素距离换算成毫米,这两件事都依赖同一组参数:内参、外参和畸变系数。本节从成像模型出发,把参数含义、标定流程和标定板选择串成一条可执行的线索。
一、针孔模型:像素坐标与三维点的桥梁
针孔模型把相机简化为一个小孔成像系统。设世界坐标系下一点 P_w = (X, Y, Z),先经外参变换到相机坐标系:
P_c = R · P_w + t
R 为 3×3 旋转矩阵,t 为 3×1 平移向量
再经内参投影到像素平面。若相机坐标系下点为 (X_c, Y_c, Z_c),归一化坐标为 x = X_c/Z_c,y = Y_c/Z_c,则像素坐标:
u = fx · x + cx
v = fy · y + cy
内参矩阵 K = [ fx 0 cx
0 fy cy
0 0 1 ]
其中 fx、fy 是以像素为单位的等效焦距,cx、cy 是主点(光轴与像面的交点)像素坐标。内参只与相机和镜头自身有关,与相机摆放位置无关;外参 R、t 描述相机相对世界坐标系的位置和姿态,会随相机移动而改变。多相机拼接时,正是通过各相机外参把不同视角统一到同一世界坐标系。
二、畸变模型:为什么直线会变弯
真实镜头不满足理想针孔假设,主要引入径向畸变和切向畸变。径向畸变使点沿径向偏移,常用 k1、k2、k3 描述;切向畸变由镜头与像面不平行引起,用 p1、p2 描述。以归一化坐标 (x, y) 为例,r² = x² + y²:
x_dist = x(1 + k1r² + k2r⁴ + k3r⁶) + 2p1xy + p2(r² + 2x²)
y_dist = y(1 + k1r² + k2r⁴ + k3r⁶) + p1(r² + 2y²) + 2p2xy
普通工业镜头通常取 k1、k2、p1、p2 五项即可;广角或大视野镜头畸变明显,需加入 k3。畸变系数与内参一起在标定中求解。测量前必须先去畸变,否则边缘区域的像素误差会直接放大为毫米级尺寸偏差。
三、张正友标定法:从平面棋盘格到参数
张正友标定法使用一块平面棋盘格,在多个不同姿态下拍摄。由于棋盘格平面可设 Z = 0,单应矩阵 H 把棋盘格坐标映射到像素坐标,而 H 与内参、外参存在约束关系。利用旋转矩阵的正交性,可从多张图像的单应矩阵中解出内参初值,再通过最大似然估计优化全部参数。
实际操作中,以 OpenCV 为例,典型流程如下:
# 1. 定义棋盘格内角点数量,例如 9×6
pattern_size = (9, 6)
# 2. 生成世界坐标:每个格子边长 10 mm
objp = np.zeros((9*6, 3), np.float32)
objp[:, :2] = np.mgrid[0:9, 0:6].T.reshape(-1, 2) * 10.0
# 3. 对每张图 findChessboardCorners + cornerSubPix
# 4. calibrateCamera(objpoints, imgpoints, img_size, None, None)
# 返回 ret, K, dist, rvecs, tvecs
标定完成后重点看两个量:一是重投影误差 ret,即所有角点由三维点投影回图像后与检测角点的平均像素偏差,一般要求小于 0.3 像素,大视野测量建议控制在 0.1~0.2 像素;二是逐张图像的误差分布,若某张明显偏大,说明该姿态拍摄质量差或角点误检,应剔除后重新标定。
四、标定板选择:精度与视野的匹配
标定板不是越大越好,也不是格子越密越好,关键是让棋盘格在图像中占据足够面积,同时角点清晰可检。常用选择依据如下:
| 考虑因素 | 推荐做法 | 原因 |
|---|---|---|
| 棋盘格尺寸 | 占图像宽度 1/2 ~ 2/3 | 角点分布覆盖视场,约束更均匀 |
| 格子边长 | 大视野选 20~50 mm,小视野选 5~10 mm | 保证角点亚像素检测稳定 |
| 材质 | 陶瓷或铝基板,玻璃基板用于高精度 | 热膨胀小、平面度好 |
| 图案 | 黑白棋盘格或圆点阵列 | 棋盘格角点检测成熟,圆点抗模糊 |
| 拍摄姿态 | 倾斜 15°~45°,覆盖画面四角与中心 | 充分激励畸变与焦距参数 |
五、标定结果如何用于拼接与测量
得到各相机的 K、dist 后,先对图像去畸变,再用外参把各相机坐标系统一到同一世界坐标系。多相机拼接时,若相机之间没有共同视野,可借助同一块标定板分别标定各相机到世界坐标系的外参,从而建立相机间变换。尺寸测量时,用标定得到的像素当量(mm/pixel)或直接通过投影关系反算实际距离。需要强调的是,标定完成后相机、镜头、焦距、光圈一旦变动,内参和外参都可能失效,必须重新标定。
把本节内容压缩成一句话:针孔模型给出“三维点如何变成像素”的数学关系,畸变模型修正镜头带来的非线性偏移,内参描述相机自身、外参描述相机位姿,张正友标定法用多姿态棋盘格同时求解这些参数,而标定板的选择与拍摄质量决定了参数是否可靠。后续拼接与测量中的所有坐标换算,都建立在这组参数之上。