4. 相机模型与成像几何
在机器视觉计量中,相机不是一台“直接输出毫米”的仪器,而是一台把三维世界投影到二维像素阵列的几何变换器。要让像素坐标可靠地换算成物理尺寸,必须显式建立并标定这套几何变换关系。本节围绕针孔模型、畸变模型、内参与外参四个核心概念展开,并说明它们各自如何影响最终的尺寸测量结果。
一、针孔模型:从三维点到像素的投影链
针孔模型(Pinhole Model)是最基础的成像几何近似:假设所有光线都通过一个理想光心,在像平面上形成倒立实像。在机器视觉中通常把像平面翻转到光心前方,得到正立的虚拟像平面,便于建立右手坐标系。设世界坐标系下一点为 P_w = (X_w, Y_w, Z_w),相机坐标系下为 P_c = (X_c, Y_c, Z_c),则完整投影链为:
P_c = R · P_w + t // 外参:世界 → 相机
u = fx · (X_c / Z_c) + cx // 内参:相机 → 像素
v = fy · (Y_c / Z_c) + cy
其中 R 为 3×3 旋转矩阵,t 为 3×1 平移向量,二者合称外参,描述相机在世界中的位姿;fx、fy 为以像素为单位的等效焦距,cx、cy 为主点像素坐标,合称内参。写成齐次矩阵形式即经典的 K[R|t] 投影矩阵,K 为内参矩阵。
这里有一个对尺寸测量极其关键的结论:单目相机在针孔模型下只能确定“像素—方向”的对应关系,无法仅凭一张图像恢复 Z_c。也就是说,同一个像素点可能对应空间中一条射线上的任意深度。因此,若被测物位于已知工作距离的平面上(如背光测量平台、标定板平面),可以通过平面约束把像素尺度换算为物理尺度;若被测物深度未知,则必须借助双目、结构光、激光三角或已知基准物来提供尺度信息。
二、畸变模型:真实镜头的非线性偏差
针孔模型是线性投影,而真实镜头存在制造与装配误差,导致成像点偏离理想位置,这就是畸变。机器视觉中最常用的是 Brown-Conrady 模型,主要包含径向畸变与切向畸变:
// 归一化像点 (x, y) = (X_c/Z_c, Y_c/Z_c)
r² = x² + y²
x_dist = x(1 + k1·r² + k2·r⁴ + k3·r⁶) + 2p1·x·y + p2(r² + 2x²)
y_dist = y(1 + k1·r² + k2·r⁴ + k3·r⁶) + p1(r² + 2y²) + 2p2·x·y
其中 k1、k2、k3 为径向畸变系数,p1、p2 为切向畸变系数。径向畸变使直线在图像边缘弯曲:k1 > 0 表现为枕形畸变,k1 < 0 表现为桶形畸变。切向畸变则源于镜头与传感器不平行,使图像产生轻微梯形或剪切变形。
畸变对尺寸测量的影响是“位置相关”的:图像中心附近畸变很小,越靠近边缘越大。若用未校正的图像直接测量,同一长度的物体放在画面中心与放在边缘,测得的像素长度可能相差几个到几十个像素。以一台 500 万像素、fx = 4000 px、k1 = -0.12 的镜头为例,在归一化半径 r = 0.6 处,径向缩放因子约为 1 + k1·r² = 1 - 0.0432,即该处像素尺度被压缩约 4.3%。若被测物长 100 mm、成像约 2000 px,边缘处未校正的测量误差可达约 86 px,换算后接近 4 mm 量级——这在高精度计量中是不可接受的。因此,标定必须同时求解内参与畸变系数,测量前先对图像做去畸变重映射。
三、内参与外参:各自管什么
内参描述相机自身的成像属性,与相机在世界中的位置无关,包括 fx、fy、cx、cy 以及畸变系数。它决定“相机坐标系下的方向如何映射到像素”。外参描述相机相对于世界坐标系的位姿,包括旋转 R 与平移 t,它决定“世界坐标如何进入相机坐标系”。
二者对测量的影响方式不同:内参误差主要表现为全局尺度偏差与畸变残差,通常通过标定板多姿态图像一次性求解;外参误差则表现为被测物在相机视野中的位置与姿态偏差,若测量基准建立在世界坐标系上,外参不准会直接引入倾斜投影误差。例如相机光轴与被测平面不垂直时,一个正方形在图像中会变成梯形,其边长测量值随位置变化。工程上常通过“相机垂直于被测平面”或“用标定板建立物面坐标系”来抑制这类误差。
四、对尺寸测量的综合影响与工程对策
把上述模型串起来看,一次尺寸测量的误差来源可以分解为:外参引起的投影倾斜误差、内参引起的尺度误差、畸变引起的非线性位置误差,以及深度未知引起的尺度不确定性。工程上通常按以下顺序处理:
- 标定内参与畸变:用棋盘格或圆点标定板拍摄 15~25 张不同姿态图像,覆盖画面四角与中心,求解
fx、fy、cx、cy、k1、k2、p1、p2,重投影误差一般应控制在 0.1~0.3 px 以内。 - 建立物面基准:若测量对象位于固定平面,用标定板或已知尺寸基准件在该平面上建立像素—毫米比例,避免直接依赖外参。
- 去畸变重映射:测量前用标定结果对图像做 undistort,使直线恢复为直线,再提取边缘或角点。
- 控制工作距离与姿态:保持相机光轴垂直于被测平面,减小倾斜投影误差;若无法垂直,需用单应矩阵做平面校正。
- 定期复标:温度变化、镜头松动、对焦调整都会改变内参,建议每班次或每次更换工装后复标一次。
理解针孔模型、畸变模型与内外参的分工,是后续标定、手眼标定与测量不确定度分析的基础。只有把“像素如何变成毫米”这条链路中的每一环都显式建模并验证,尺寸测量结果才具备可溯源性和可重复性。