4. 视觉传感器基础

在无人机VIO(Visual-Inertial Odometry)系统中,视觉传感器是获取环境几何与运动信息的核心来源。相机把三维世界投影为二维像素,而VIO要做的,正是从这些像素反推无人机的位姿与速度。因此,理解相机的成像模型、内参外参、畸变模型,以及图像预处理与特征跟踪方法,是搭建可靠VIO前端的第一步。本章围绕单目、双目、RGB-D三类相机展开,梳理从物理成像到特征点跟踪的完整链路。

一、三类相机的成像模型与差异

单目相机只有一个镜头,通过针孔模型把三维点投影到归一化平面,再经内参映射为像素坐标。它结构简单、成本低,但存在尺度不确定性——单张图像无法直接恢复绝对深度,必须依靠运动或IMU激励才能观测尺度。双目相机由两个已知基线的相机组成,通过左右图像的视差计算深度,尺度由基线物理长度确定,因此在静止时也能获得深度,但标定与立体匹配计算量更大。RGB-D相机(如结构光或ToF)主动发射红外光并测量飞行时间或散斑位移,直接输出深度图,在室内弱纹理场景下优势明显,但受阳光干扰、测量距离和反射材质影响较大。

三者的核心区别可归纳为:单目靠“运动”获得尺度,双目靠“基线”获得尺度,RGB-D靠“主动测距”获得深度。在无人机上,单目+IMU是主流轻量方案,双目用于需要即时深度的避障与建图,RGB-D则多用于室内低速平台。

二、内参、外参与畸变模型

针孔模型下,三维点 P=[X,Y,Z] 投影到像素 p=[u,v] 的关系为:

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

其中 fx, fy 为焦距(像素单位),cx, cy 为主点,这四个量构成内参矩阵 K。外参描述相机相对机体或世界坐标系的位姿,由旋转 R 与平移 t 组成,VIO中相机-IMU外参的准确性直接影响融合精度。

真实镜头并非理想针孔,存在径向畸变与切向畸变。径向畸变使直线变弯,常用 k1, k2, k3 描述;切向畸变由镜头与成像面不平行引起,用 p1, p2 描述。去畸变通常在预处理阶段完成,把畸变像素映射回理想针孔模型,避免后续几何计算被污染。

标定建议:使用棋盘格或AprilTag,采集20~30张不同姿态图像,覆盖画面边缘区域;标定后务必用重投影误差评估,一般要求平均误差小于0.3像素。

三、图像预处理与特征点提取

原始图像进入VIO前端前,通常要经过灰度化、去畸变、直方图均衡或CLAHE增强、降采样等步骤。灰度化降低计算量,去畸变保证几何一致,CLAHE在逆光或弱纹理场景下提升对比度,有助于特征稳定提取。

特征点提取常用FAST、Harris、Shi-Tomasi和ORB。FAST速度快,适合机载实时;Shi-Tomasi角点质量高,常用于光流跟踪的起点;ORB在FAST基础上加入方向与描述子,兼顾速度与匹配能力。提取时需限制每格图像中的特征数量,避免特征聚集在纹理丰富区域,导致位姿估计病态。

视觉前端处理链路:从成像到光流跟踪 三维场景 点/线/纹理 相机成像 针孔+畸变 图像预处理 灰度/去畸变/增强 特征提取 FAST/Shi-Tomasi 光流跟踪 LK/金字塔 位姿估计 对极/PNP IMU预积分 角速度/加速度 VIO融合 滑动窗口优化 关键参数与约束 内参 K(fx,fy,cx,cy) · 畸变 k1,k2,p1,p2 · 外参 T_cam_imu · 基线 b · 跟踪窗口 21×21 · 金字塔层数 3~4

四、光流跟踪方法与工程实践

光流跟踪利用亮度恒定假设,在相邻帧间寻找同一特征点的对应位置。Lucas-Kanade(LK)光流是最常用的方法,它假设局部窗口内运动一致,通过最小化灰度差求解位移。为应对无人机快速运动导致的大位移,通常采用金字塔LK光流:在低分辨率层先估计粗略位移,再逐层细化到原始分辨率。

工程实现中,常用OpenCV的 calcOpticalFlowPyrLK 进行跟踪,配合 goodFeaturesToTrack 提取角点。跟踪后需做前向-后向一致性检查,剔除误匹配;同时监控跟踪点数量,低于阈值时重新提取,保证VIO前端持续有足够观测。

// 伪代码:金字塔LK光流跟踪
goodFeaturesToTrack(prev_img, pts_prev, maxCorners=150, quality=0.01, minDist=20);
calcOpticalFlowPyrLK(prev_img, curr_img, pts_prev, pts_curr, status, err,
                     winSize=Size(21,21), maxLevel=3);
// 前向-后向校验
calcOpticalFlowPyrLK(curr_img, prev_img, pts_curr, pts_back, status2, err2);
keep = (status==1) & (status2==1) & (norm(pts_prev-pts_back) < 1.0);

五、常见误区与复盘

误区 后果 改进措施
忽略去畸变直接算光流 边缘区域几何误差大,位姿漂移 预处理阶段统一去畸变
特征点过度集中 位姿估计病态,尺度观测差 网格化限制每格特征数
光流窗口过大 运动不连续区域跟踪失败 窗口21×21,配合金字塔
相机-IMU外参未标定 融合发散,轨迹尺度错误 离线标定+在线估计
弱纹理场景强行跟踪 跟踪点大量丢失,前端失效 CLAHE增强或切换双目/RGB-D
在无人机高速飞行或强光逆光场景下,单目LK光流容易丢失特征。此时应降低跟踪阈值、增加金字塔层数,或引入IMU预测特征位置,缩小搜索范围,提高跟踪鲁棒性。

综上,视觉传感器基础是VIO工程的“地基”:成像模型决定了几何关系,内参外参决定了坐标变换,畸变模型决定了像素可信度,预处理与特征跟踪决定了前端观测质量。只有把这些环节逐一落实,后续的滑动窗口优化与IMU融合才能稳定收敛,无人机才能在复杂环境中实现可靠的定位与导航。