第三章 相机标定原理:针孔模型与畸变模型、标定板设计、内参与外参的物理意义
相机标定,说白了就是搞清楚相机到底是怎么“看”世界的。我刚开始接触3D测量时,总觉得标定是个麻烦事,随便标一下就行。直到有一次,一个精密零件测量项目,数据怎么都对不上,折腾了两天才发现是标定参数出了问题。从那以后,我养成了一个习惯:标定之前,先把原理吃透。
这一章,我们就来聊聊相机标定的核心原理。我会结合自己踩过的坑,把针孔模型、畸变模型、标定板设计,还有内参外参的物理意义,掰开揉碎了讲清楚。
3.1 针孔模型:相机成像的“理想国”
针孔模型是相机成像最基础的数学模型。它假设光线通过一个小孔,在成像平面上形成倒立的像。虽然真实相机复杂得多,但这个模型是理解一切标定的起点。
公式很简单,但物理意义很深刻:
u = f * (X / Z) + u0
v = f * (Y / Z) + v0
其中 (X, Y, Z) 是三维空间点坐标,(u, v) 是图像像素坐标,f 是焦距, (u0, v0) 是主点坐标。
我个人习惯把这个模型想象成一个“投影漏斗”。空间点通过光心,投影到成像平面上。焦距决定了这个漏斗的“开口大小”,主点决定了漏斗中心在图像上的位置。
3.2 畸变模型:现实世界的“变形记”
真实相机不是完美的针孔。镜头的光学特性、装配误差,都会导致图像变形。这就是畸变。畸变主要分两类:径向畸变和切向畸变。
3.2.1 径向畸变
径向畸变是沿着镜头半径方向的变形。离图像中心越远,变形越明显。常见的有两种:
- 桶形畸变: 图像向外凸出,像桶一样。广角镜头常见。
- 枕形畸变: 图像向内凹陷,像枕头一样。长焦镜头常见。
数学上,径向畸变用多项式来描述:
x_corrected = x * (1 + k1 * r^2 + k2 * r^4 + k3 * r^6)
y_corrected = y * (1 + k1 * r^2 + k2 * r^4 + k3 * r^6)
其中 (x, y) 是畸变点坐标,r 是点到中心的距离,k1, k2, k3 是径向畸变系数。
3.2.2 切向畸变
切向畸变是由于镜头和成像平面不平行造成的。它会让图像在某个方向上发生“拉伸”。
x_corrected = x + [2 * p1 * x * y + p2 * (r^2 + 2 * x^2)]
y_corrected = y + [p1 * (r^2 + 2 * y^2) + 2 * p2 * x * y]
p1, p2 是切向畸变系数。
3.3 标定板设计:圆点阵 vs 棋盘格
标定板是标定的“尺子”。选对设计,事半功倍。目前主流的有两种:圆点阵和棋盘格。
| 特性 | 圆点阵 | 棋盘格 |
|---|---|---|
| 特征提取 | 圆心提取精度高,亚像素稳定 | 角点提取,受光照影响较大 |
| 鲁棒性 | 对遮挡、部分缺失不敏感 | 角点易被遮挡干扰 |
| 适用场景 | 高精度3D测量、大视场标定 | 常规2D视觉、小视场标定 |
| Halcon支持 | find_caltab、find_circle_center | find_chessboard、find_corners |
我个人更偏爱圆点阵。为什么?因为圆心提取的鲁棒性更好。在3D测量中,标定板往往需要倾斜放置,棋盘格的角点在这种角度下容易模糊,而圆点阵的圆心依然清晰可辨。
- 圆点直径:建议占标定板宽度的1/10 ~ 1/15
- 圆点间距:建议为直径的2~3倍
- 阵列大小:至少7x7,推荐11x9或更大
- 背景与圆点:高对比度,如黑色圆点+白色背景
3.4 内参与外参的物理意义
标定结果会得到两组参数:内参和外参。理解它们的物理意义,是正确使用标定结果的关键。
3.4.1 内参:相机的“内部基因”
内参描述了相机本身的固有属性,一旦标定好,只要不改变焦距或镜头,内参就固定不变。
- 焦距 (fx, fy): 单位是像素。它决定了空间点在图像上的“缩放比例”。fx 和 fy 通常很接近,但如果有像素非正方形,两者会有差异。
- 主点 (cx, cy): 光轴与成像平面的交点。理想情况下在图像中心,但实际会有偏移。
- 畸变系数 (k1, k2, k3, p1, p2): 描述镜头畸变的程度。
你想想看,内参其实就是相机的“身份证”。每个相机都有自己的内参,换一个相机,内参就得重新标定。
3.4.2 外参:相机在世界的“位置和姿态”
外参描述了相机坐标系和世界坐标系之间的转换关系。它由旋转矩阵 R 和平移向量 T 组成。
- 旋转矩阵 R: 3x3矩阵,描述两个坐标系之间的旋转关系。它包含了三个旋转角度:绕X轴(俯仰角)、绕Y轴(偏航角)、绕Z轴(翻滚角)。
- 平移向量 T: 3x1向量,描述两个坐标系原点之间的位移。
外参是“动态”的。每次移动相机或标定板,外参都会变。在3D测量中,我们通常把标定板放在一个固定位置,然后通过外参把相机坐标系下的测量结果转换到世界坐标系下。
3.5 知识体系总览
为了让你更直观地理解本章的知识结构,我画了一张图:
这张图把本章的核心内容串起来了。从相机标定出发,分成成像模型、标定板设计、参数体系三大块。成像模型是理论基础,标定板是工具,参数体系是最终结果。三者缺一不可。
3.6 本章小结
这一章我们聊了相机标定的核心原理。针孔模型是理想化的起点,畸变模型让这个理想模型更贴近现实。标定板的设计直接影响标定精度,我个人推荐圆点阵。内参和外参的物理意义,是理解标定结果的关键。