4. 相机与成像基础

在机器人远程操作视觉反馈系统中,相机是“眼睛”,而相机模型决定了三维世界如何被投影到二维图像上。理解相机模型、内参外参、畸变、分辨率与帧率以及深度相机原理,是后续做标定、手眼协调、三维重建和远程操控的基础。本节从成像链路出发,把关键概念串成一条可操作的认知路径。

一、针孔相机模型:三维到二维的投影

最常用的相机模型是针孔模型。它假设光线通过一个理想小孔,在像平面上形成倒立图像。设世界坐标为 (X, Y, Z),相机坐标为 (Xc, Yc, Zc),像素坐标为 (u, v),则投影关系可写为:

u = fx * (Xc / Zc) + cx
v = fy * (Yc / Zc) + cy

其中 fx、fy 是焦距在像素单位下的表示,cx、cy 是主点(光轴与像平面交点)的像素坐标。这个公式说明:同一个物体,距离越远,在图像中越小;焦距越大,成像越大。针孔模型忽略了镜头厚度和畸变,但在大多数工业相机和机器人视觉中,它是标定和计算的起点。

核心记忆:内参描述“相机自身如何成像”,外参描述“相机在世界中的位置和朝向”。

二、内参与外参:标定到底在标什么

内参矩阵通常写成 3×3 形式:

K = [ fx   0   cx
       0   fy   cy
       0    0    1 ]

内参只与相机内部结构有关,包括焦距、主点、像素尺寸等。外参则是一个旋转矩阵 R 和一个平移向量 t,描述相机坐标系相对于世界坐标系(或机器人基座、末端执行器)的位姿。外参不是相机固有属性,而是安装位置决定的。远程操作中,如果相机装在机械臂末端,外参会随关节运动变化;如果固定在支架上,外参相对稳定,但仍需定期复核。

标定流程一般包括:制作标定板、采集多角度图像、提取角点、求解内参和畸变系数、再求解外参。常用工具如 OpenCV 的 calibrateCamera 和 solvePnP。标定质量直接影响后续三维定位精度,因此要保证标定板覆盖画面不同区域,并避免只在一个小范围内采集。

三、畸变模型:为什么直线会变弯

真实镜头存在畸变,主要分为径向畸变和切向畸变。径向畸变使图像边缘向外或向内弯曲,常用 k1、k2、k3 描述;切向畸变由镜头与像平面不平行引起,常用 p1、p2 描述。去畸变就是把带畸变的像素坐标映射回理想针孔模型下的坐标。

x_distorted = x(1 + k1*r^2 + k2*r^4 + k3*r^6)
y_distorted = y(1 + k1*r^2 + k2*r^4 + k3*r^6)
x_corrected = x_distorted + 2*p1*x*y + p2*(r^2 + 2*x^2)
y_corrected = y_distorted + p1*(r^2 + 2*y^2) + 2*p2*x*y

在远程操作中,畸变会让操作者看到的画面边缘产生“拉伸”或“压缩”,影响对距离和角度的判断。尤其是广角镜头用于大范围监控时,畸变校正必须开启。很多相机支持硬件去畸变,也可以在软件端用 undistort 完成。

四、分辨率与帧率:清晰度与实时性的权衡

分辨率决定图像细节,帧率决定画面流畅度。远程操作对两者都有要求:分辨率太低,看不清目标;帧率太低,操作延迟明显,容易造成误操作。但两者往往互相制约,因为高分辨率意味着更大的数据量和更高的传输带宽。

参数典型值对远程操作的影响
分辨率640×480 / 1280×720 / 1920×1080越高越清晰,但带宽和计算量增加
帧率15 / 30 / 60 fps越高越流畅,低于15 fps 易产生卡顿感
曝光时间1 ms ~ 30 ms过长会拖影,过短会欠曝
传输延迟50 ms ~ 300 ms直接影响操作手感和安全性
实操建议:远程操控优先保证 30 fps 和 720p;若带宽不足,可先降分辨率,再考虑降帧率,因为帧率对操作手感更敏感。

五、深度相机与 RGB-D 成像原理

普通相机只能提供二维颜色信息,深度相机则同时给出每个像素到相机的距离。RGB-D 相机通常由 RGB 传感器和深度传感器组成,输出彩色图和深度图。深度获取主要有三种路线:

  • 结构光:投射已知图案,根据图案变形计算深度,适合近距离高精度场景。
  • 飞行时间(ToF):发射调制光并测量往返相位差,响应快,适合中距离。
  • 双目立体视觉:用两个相机视差计算深度,成本低,但依赖纹理和光照。

RGB-D 数据在远程操作中非常有用:操作者不仅能看到颜色,还能感知物体远近,辅助抓取和避障。但深度图常有空洞、噪声和边缘不连续问题,需要滤波和配准。RGB 与深度图的对齐(registration)依赖内参和外参,若对齐不准,彩色边缘和深度边缘会错位。

相机成像链路与 RGB-D 深度获取 世界坐标 (X, Y, Z) 物体真实位置 外参 R, t 相机坐标 (Xc, Yc, Zc) 以光心为原点 内参 K 像素坐标 (u, v) 图像平面 含畸变校正 投影公式: u = fx·(Xc/Zc) + cx v = fy·(Yc/Zc) + cy 畸变模型 径向:k1, k2, k3 切向:p1, p2 去畸变:undistort() 边缘弯曲 → 校正后恢复直线 RGB-D 深度获取 结构光 ToF 双目立体 输出:彩色图 + 深度图 需对齐:RGB 与深度配准

六、案例与常见误区

假设一台 RGB-D 相机安装在移动机器人上,用于远程抓取。操作者看到彩色图中目标在画面右侧,但深度图显示该区域距离异常,导致抓取失败。复盘发现:深度图与彩色图未对齐,且相机外参因云台转动发生了变化。解决方法是重新标定内参和畸变,更新外参,并开启深度-彩色配准。

常见误区:只标定一次就长期使用;忽略畸变校正;把外参当成固定值;只看分辨率不看帧率;深度图不做滤波直接用于抓取。

总结来看,相机模型是投影基础,内参外参是空间关系,畸变模型是误差修正,分辨率和帧率是实时性权衡,RGB-D 则把颜色和深度结合。远程操作视觉反馈系统的可靠性,正建立在这些基础参数的准确性和一致性之上。