3. 视觉定位原理
视觉定位的本质,是把相机图像里的“像素位置”转换成运动平台能够执行的“物理位置”。这条链路里最容易出错的地方,往往不是算法本身,而是坐标系定义不统一、标定参数含义理解偏差,以及把单应性矩阵当成万能变换。下面从坐标系、映射模型、标定参数三个层面展开。
一、先定义清楚坐标系,再谈映射
在视觉与运动平台闭环系统中,至少涉及四个坐标系,必须逐一明确原点、轴向和单位:
- 像素坐标系 (u, v):以图像左上角为原点,u 向右、v 向下,单位为像素。这是相机输出的原始坐标。
- 图像物理坐标系 (x, y):以相机光轴与成像平面的交点为原点,单位为毫米,与像素坐标之间通过像元尺寸和主点偏移关联。
- 相机坐标系 (Xc, Yc, Zc):原点在光心,Zc 沿光轴指向被摄物,Xc、Yc 与图像平面平行。
- 平台/世界坐标系 (Xw, Yw, Zw):固定在运动平台工作台上,是最终要输出的物理坐标。通常取平台机械原点为原点,Xw、Yw 与平台两轴平行。
方向约定必须全文一致。本课程统一约定:平台 X 轴向右为正,Y 轴向前(远离操作者)为正,旋转角逆时针为正。若实际设备方向不同,应在标定前通过坐标变换统一,而不是在后续计算中临时取反。
二、从像素到物理:完整映射链
当相机光轴垂直于工作平面、且工作平面为平面时,像素坐标到平台坐标的映射可以分解为三步:
- 像素坐标 → 图像物理坐标:x = (u − cx)·dx,y = (v − cy)·dy。其中 dx、dy 为像元物理尺寸(mm/pixel),(cx, cy) 为主点像素坐标。
- 图像物理坐标 → 相机归一化坐标:Xc/Zc = x/f,Yc/Zc = y/f,f 为焦距(mm)。这一步引入了深度 Zc。
- 相机坐标 → 平台坐标:通过外参旋转矩阵 R 和平移向量 t 完成 [Xw, Yw, Zw]ᵀ = R·[Xc, Yc, Zc]ᵀ + t。
如果工作平面高度固定(Zw 已知),上述链可以合并为一个 3×3 的单应性矩阵 H,直接建立像素坐标到平台坐标的齐次映射:
[Xw] [u]
[Yw] = H · [v]
[ 1] [1]
H 有 8 个自由度,因此至少需要 4 组不共线的对应点才能求解。实际标定中通常采集 9~25 个点,用最小二乘求解,以降低噪声影响。
三、单应性变换的适用边界
单应性成立的前提是:被摄对象位于同一平面,且相机与平台之间为刚性固定。一旦工作平面高度变化、相机发生松动或镜头焦距改变,H 就不再有效。很多现场“定位漂移”问题,根源就是标定后相机被碰动,而 H 仍被继续使用。
此外,单应性矩阵不能直接分解出物理意义上的焦距、主点等内参。如果后续需要做深度估计或三维重建,必须回到完整的相机模型,而不是依赖 H。
四、标定参数的含义与检查
标定输出的参数可分为内参和外参两类:
| 参数 | 含义 | 典型检查方式 |
|---|---|---|
| fx, fy | 等效焦距(像素单位) | 与镜头标称焦距、像元尺寸换算值对比,偏差应小于 5% |
| cx, cy | 主点像素坐标 | 应接近图像中心,偏差过大说明标定板覆盖不均 |
| k1, k2 | 径向畸变系数 | 畸变校正后直线应恢复为直线 |
| R, t | 相机相对平台的旋转与平移 | 用未参与标定的验证点检查重投影误差 |
| H | 像素到平台的单应矩阵 | 验证点映射误差应小于 0.5 像素或 0.05 mm |
标定完成后,必须用独立验证点检查。若平均误差超过阈值,应检查标定板平整度、点提取精度、相机是否移动,而不是直接调参掩盖问题。
五、一个可复现的标定检查流程
假设使用 9 点标定板,平台行程 200 mm × 200 mm,相机分辨率 1280 × 720,像元尺寸 3.45 μm。操作顺序如下:
- 将标定板固定在工作台,确保板面与平台 XY 平面平行,高度与后续工件一致。
- 控制平台依次移动到 9 个位置,每个位置记录平台坐标 (Xw, Yw) 和图像中对应标记点的像素坐标 (u, v)。
- 用 7 个点求解 H,剩余 2 个点作为验证点。
- 计算验证点映射误差:将验证点像素坐标代入 H,得到预测平台坐标,与真实平台坐标比较。
- 若误差大于 0.05 mm,检查标定板是否倾斜、点提取是否偏心、相机是否在采集过程中移动。
理解坐标系定义、映射链和标定参数含义,是后续闭环补偿能够正确计算偏差的前提。只有先保证“像素→物理”这一步准确且可验证,运动平台的补偿量才有意义。