4. 视觉传感器与成像模型

视觉惯性组合导航中,视觉支路的第一性问题不是“图像里有什么”,而是“三维空间中的点如何被投影到像素平面”。只有把这条投影链路写清楚,后续的特征匹配、位姿估计、惯性预积分融合才有统一的几何基准。本节围绕针孔模型、畸变模型、内参标定、外参标定以及飞行器视觉观测特点展开,重点说明各参数的定义、来源与使用方式。

一、针孔模型:从三维点到像素

针孔模型把相机简化为一个光心和一个成像平面。设相机坐标系为 Oc-XcYcZc,其中 Zc 沿光轴向前,Xc 向右,Yc 向下,这是视觉领域最常用的约定。空间点 P = (X, Y, Z) 在归一化平面上的投影为:

x = X / Z
y = Y / Z
u = fx * x + cx
v = fy * y + cy

其中 fx、fy 是以像素为单位的焦距,cx、cy 是主点坐标。写成矩阵形式即 p = K · [R|t] · Pw,K 为内参矩阵,[R|t] 为外参。需要特别强调:Z 是深度,单目图像丢失了 Z,这正是视觉惯性融合要借助 IMU 和运动约束恢复的量。

实际相机并非理想针孔。像素可能不是正方形,因此 fx ≠ fy;主点通常接近图像中心但不严格等于分辨率的一半;若考虑像素轴倾斜,还会出现斜切因子 s,不过现代工业相机一般可忽略。教学中常取 640×480 分辨率、fx = fy = 500、cx = 320、cy = 240 作为示例参数,这组值仅用于说明量级,不代表任何具体相机实测结果。

二、畸变模型:径向与切向

真实镜头存在制造与装配误差,导致直线在图像中变弯。畸变通常建模在归一化平面上,先对 (x, y) 施加畸变,再乘内参得到像素坐标。径向畸变由 k1、k2、k3 描述,切向畸变由 p1、p2 描述:

r² = x² + y²
x_dist = x(1 + k1 r² + k2 r⁴ + k3 r⁶) + 2 p1 x y + p2(r² + 2x²)
y_dist = y(1 + k1 r² + k2 r⁴ + k3 r⁶) + p1(r² + 2y²) + 2 p2 x y

广角或鱼眼镜头畸变显著,普通镜头在边缘也可能有数像素偏移。畸变系数与内参一起标定,使用时有两种策略:一是先对整幅图像去畸变再提特征,计算量大但后续模型简单;二是保留原始图像,在投影时把畸变模型嵌入重投影误差,精度更高但需要每次迭代计算畸变。工程中常根据算力与精度需求选择。

针孔投影链路与内外参作用位置 世界坐标系 Pw = (Xw, Yw, Zw) 飞行器/标定板坐标 外参 [R | t] 世界 → 相机 6 自由度位姿 相机坐标系 Pc = (Xc, Yc, Zc) Zc 为深度 归一化平面 x = Xc/Zc y = Yc/Zc 畸变模型 k1,k2,k3 径向 p1,p2 切向 内参 K fx, fy, cx, cy 像素单位 像素坐标 u = fx·x_d + cx v = fy·y_d + cy 标定与使用要点 • 内参标定:固定焦距与分辨率,采集多姿态棋盘格,最小化重投影误差,输出 K 与畸变系数。 • 外参标定:确定相机与 IMU 之间的 R_ci、t_ci,常用联合标定或基于运动的方法。 • 飞行器特点:高频振动、快速旋转、光照变化、运动模糊,需短曝光与良好同步。 • 时间同步:相机与 IMU 时间戳偏差会直接破坏外参和尺度估计,需硬件触发或在线估计。

三、内参标定:把 K 和畸变系数求出来

内参标定的标准做法是张正友标定法。准备一块已知格距的棋盘格,例如 9×6 格、方格边长 25 mm,用相机从不同角度拍摄 15~25 张图像,要求棋盘格覆盖画面中心与四角、倾斜角度多样。对每张图提取角点,得到像素坐标;同时已知棋盘格在世界平面上的三维坐标(取 Z=0)。

标定本质是一个非线性最小二乘问题:给定多组对应点,优化 K、k1、k2、p1、p2 以及每张图的外参,使重投影误差最小。OpenCV 中可用 calibrateCamera 完成,输出 RMS 重投影误差。经验上,RMS 小于 0.5 像素说明标定质量较好;若大于 1 像素,应检查角点提取、图像模糊或棋盘格平整度。标定完成后,建议用未参与标定的图像做验证,观察去畸变后直线是否恢复平直。

标定不是一次性的。更换镜头、改变焦距、调整分辨率或受到强烈冲击后,内参都可能变化,应重新标定并记录标定日期与条件。

四、外参标定:相机与 IMU 的相对位姿

视觉惯性系统中,外参指相机坐标系与 IMU 坐标系之间的旋转 R_ci 和平移 t_ci。它决定了 IMU 测量的角速度和加速度如何与视觉观测对齐。外参误差会直接引入尺度漂移和姿态偏差,因此不能随意取单位阵。

常见标定方式有两类。第一类是联合标定:同时采集相机图像和 IMU 数据,利用两者对同一运动的观测一致性,把 R_ci、t_ci 与 IMU 零偏、时间延迟一起优化,典型工具如 Kalibr。第二类是基于运动的方法:让设备做充分的旋转和平移激励,分别估计相机和 IMU 的旋转轨迹,再求两者之间的旋转关系。平移部分通常较难观测,需要足够的线加速度激励。

标定质量可通过重投影误差、IMU 预积分残差和轨迹一致性判断。若外参旋转误差达到数度,融合轨迹在快速转弯时会出现明显扭曲。实际使用中,外参应作为待优化量或至少保留在线修正能力,而不是永久固定。

五、飞行器视觉观测的特点

把上述模型放到飞行器上,会面临几个与地面机器人不同的约束。第一,飞行器运动剧烈,角速度可达每秒数百度,图像容易出现运动模糊,需要短曝光和全局快门;卷帘快门在快速旋转下会产生几何畸变。第二,振动频率高,相机与 IMU 的机械安装必须刚性,否则外参会随振动变化。第三,光照变化大,从室内到室外、从顺光到逆光,特征提取稳定性下降,需要自动曝光与鲁棒描述子。第四,机载算力有限,畸变校正和特征提取要在实时性与精度之间折中。

因此,飞行器视觉惯性系统通常采用“相机 + IMU 紧耦合”结构:IMU 提供高频运动先验,视觉提供低频但无漂移的观测,二者在滑动窗口内联合优化。理解针孔投影、畸变、内外参,正是理解这个优化问题中每一项残差来源的前提。

若相机与 IMU 时间戳未对齐,即使内外参标定准确,融合结果仍会出现尺度错误和轨迹抖动。时间同步应与空间标定同等重视。

六、一份可执行的内外参标定检查清单

阶段关键动作观察指标判断依据
内参准备固定焦距、分辨率、曝光;拍摄 15~25 张多姿态棋盘格角点覆盖画面四角与中心覆盖不足则重拍
内参求解运行 calibrateCamera,输出 K 与畸变系数RMS 重投影误差< 0.5 px 为佳,> 1 px 需排查
内参验证用未参与标定的图像去畸变直线是否恢复平直边缘仍弯曲则重新标定
外参激励充分旋转与平移,覆盖三轴角速度与加速度激励幅值激励不足则平移外参不可观
外参求解联合标定 R_ci、t_ci 与时间延迟重投影误差、预积分残差残差收敛且轨迹一致
在线验证实际飞行或手持运动,检查融合轨迹快速转弯时的姿态偏差偏差大则修正外参或时间戳

把这张清单落到工程中,核心就是三件事:内参要准、外参要真、时间要齐。三者缺一,后续所有视觉惯性融合算法都建立在错误的几何基准上。掌握本节内容后,读者应能独立完成一次相机内参标定,理解外参标定的输入输出,并能根据飞行器的运动与光照条件判断视觉观测是否可靠。