4. 视觉传感器与特征

在视觉与IMU融合姿态估计系统中,视觉前端负责从图像中提取可跟踪的几何信息,而IMU提供高频的角速度和加速度观测。要让两者在同一坐标系下协同工作,必须先理解相机如何把三维世界投影为二维像素,以及如何从像素中稳定地提取和匹配特征点。本节围绕相机模型、针孔成像、畸变校正、特征点检测与匹配四个核心环节展开,为后续的视觉惯性联合优化打下基础。

一、针孔成像与相机模型

针孔模型是最常用的相机成像近似。它假设光线通过一个理想小孔,在像平面上形成倒立的投影。设相机坐标系下一点为 P_c = [X, Y, Z]^T,归一化平面坐标为 x = X/Z、y = Y/Z,再经内参矩阵 K 映射到像素坐标:

u = fx * (X/Z) + cx
v = fy * (Y/Z) + cy

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

其中 fx、fy 为焦距(像素单位),cx、cy 为主点。内参由标定获得,外参则描述相机相对世界或IMU的位姿。针孔模型忽略了镜头厚度与光线弯曲,因此实际图像还需引入畸变模型。

核心理解:针孔模型完成的是“三维点 → 归一化平面 → 像素”的投影链;姿态估计中,视觉观测残差正是建立在“重投影误差”之上。

二、畸变校正:从畸变像素到理想像素

真实镜头存在径向畸变和切向畸变。径向畸变使直线弯曲,常用 k1、k2、k3 描述;切向畸变由镜头与成像平面不平行引起,用 p1、p2 描述。去畸变时通常先在归一化平面计算畸变后的坐标,再反解或迭代求理想坐标:

x_dist = x(1 + k1*r^2 + k2*r^4 + k3*r^6)
         + 2*p1*x*y + p2*(r^2 + 2*x^2)
y_dist = y(1 + k1*r^2 + k2*r^4 + k3*r^6)
         + p1*(r^2 + 2*y^2) + 2*p2*x*y
r^2 = x^2 + y^2

工程上常使用 OpenCV 的 initUndistortRectifyMap 与 remap 预计算映射表,实现实时去畸变。若忽略畸变,特征点匹配会出现系统性偏移,尤其在图像边缘区域,会直接污染视觉惯性里程计的位姿估计。

实操建议:标定后先检查重投影误差,通常应小于 0.5 像素;若边缘误差明显偏大,应增加标定图像数量或更换畸变模型。

三、特征点检测与匹配基础

特征点是图像中具有可重复性、显著性和可区分性的局部结构,常见有角点、斑点与边缘交点。经典方法包括 Harris、FAST、Shi-Tomasi、SIFT、SURF、ORB 等。视觉惯性系统中更偏好计算量低、分布均匀的 FAST 或 ORB 特征,并配合光流跟踪或描述子匹配。

匹配的基本流程为:检测关键点 → 计算描述子 → 依据描述子距离建立候选匹配 → 使用比率测试、交叉验证或 RANSAC 剔除误匹配。对于单目视觉惯性系统,还需通过本质矩阵或基础矩阵约束进一步筛选。

针孔成像、畸变校正与特征匹配链路 三维点 P(X,Y,Z) 相机 内参 K 外参 R,t 投影 像平面 / 像素 含畸变像素 畸变校正 k1,k2,k3,p1,p2 理想像素 特征检测 FAST / ORB 关键点+描述子 描述子匹配 汉明距离 / 欧氏距离 比率测试 + 交叉验证 几何验证 RANSAC / 本质矩阵 剔除误匹配 视觉观测 重投影误差 送入 VIO 优化 关键点与描述子进入匹配 IMU 提供高频位姿先验,与视觉特征观测共同约束相机运动与姿态

四、案例与场景:VIO 前端的典型处理

以单目视觉惯性里程计为例,前端通常按以下顺序处理一帧图像:

  1. 读取原始图像,利用标定参数进行去畸变;
  2. 在图像金字塔上提取 FAST 角点,并计算 ORB 描述子;
  3. 与上一帧或局部地图进行描述子匹配,同时用光流做跟踪补充;
  4. 通过 RANSAC 与对极几何剔除误匹配;
  5. 将保留的特征点作为视觉观测,与IMU预积分残差一起送入滑动窗口优化。

在纹理丰富、光照稳定的室内场景中,ORB 特征通常能提供足够的匹配对;而在弱纹理或快速运动场景中,光流跟踪与IMU预测可以显著提升鲁棒性。

五、常见误区与复盘

误区 后果 改进方式
忽略畸变校正 边缘特征偏移,重投影误差增大 标定后统一去畸变,检查边缘误差
只做描述子匹配,不做几何验证 误匹配进入优化,位姿漂移 加入 RANSAC、对极几何或 PnP 验证
特征点分布过于集中 退化场景下约束不足 网格化提取,限制单格特征数量
内外参混用或时间戳不同步 视觉与IMU观测不一致 统一坐标系,严格时间同步与标定
复盘要点:视觉前端的质量直接决定 VIO 的上限。若发现轨迹在转弯或快速运动时明显漂移,应优先检查去畸变、特征匹配内点率和时间同步,而不是直接调优化权重。

掌握相机模型、畸变校正与特征匹配基础后,后续就可以进一步讨论视觉观测如何与IMU预积分联合构建残差,并在滑动窗口中完成姿态估计。