3、视觉定位基础:视觉定位的基本原理(特征点、光流、视觉里程计),以及在下视摄像头中的应用

视觉定位是PX4精准降落系统中感知层的核心环节。它的任务不是“看清”地面,而是回答一个更基本的问题:无人机相对于地面标志物,当前处于什么位置和姿态? 在GPS信号良好时,这个问题可以由卫星导航回答;但在树荫、楼宇峡谷、桥下或室内环境中,GPS精度急剧下降甚至完全失效,此时视觉定位便成为唯一可靠的相对位姿信息来源。本章将系统讲解视觉定位的三大基础技术——特征点法、光流法和视觉里程计,并重点分析它们在下视摄像头场景中的工程应用与约束条件。

下视视觉定位技术链路与融合关系 下视摄像头 全局快门 / 广角 / 低畸变 30-60 FPS 图像帧 特征点法 ORB / FAST / SIFT 稀疏匹配 适合纹理丰富场景 计算量中等 光流法 LK稀疏 / 稠密光流 像素运动场估计 适合纹理均匀场景 计算量低 视觉里程计 帧间位姿估计 PnP / 对极几何 累计漂移需融合 输出6DoF位姿 位姿融合 EKF / 互补滤波 IMU + 视觉 + 气压计 输出:位置/速度/姿态 精准降落 控制回路 关键约束:光照变化 / 运动模糊 / 纹理缺失 / 尺度变化 / 实时性(<20ms) 工程策略:多算法融合 + IMU辅助 + 自适应ROI

上图展示了PX4下视视觉定位的完整技术链路。摄像头采集图像后,三大算法模块并行或级联工作:特征点法提供稀疏但精确的匹配关系,光流法提供稠密的像素运动场,视觉里程计则基于前两者估计无人机的6自由度位姿变化。最终所有估计结果与IMU、气压计等传感器在扩展卡尔曼滤波(EKF)中融合,输出稳定、高频的位姿估计,供精准降落控制回路使用。下面我们逐一深入每个模块的原理与工程实现。

3.1 特征点法:从像素到几何约束

3.1.1 核心原理

特征点法的基本思想是:在图像中寻找具有显著纹理特征的像素点(角点、斑点等),然后通过描述子(Descriptor)在不同帧之间进行匹配,从而建立像素对应关系。以ORB特征为例,它结合了FAST角点检测和BRIEF描述子,具有旋转不变性和尺度不变性(通过图像金字塔实现)。在PX4下视场景中,常用的特征点包括:

  • FAST角点:计算极快,适合实时系统,但缺乏尺度不变性。
  • ORB特征:FAST + rBRIEF描述子,兼顾速度与鲁棒性,是PX4视觉里程计中的默认选择。
  • AKAZE:非线性尺度空间特征,对光照变化更鲁棒,但计算量较大。

特征点匹配后,通过对极几何约束(Essential矩阵或Fundamental矩阵)可以恢复两帧之间的相对旋转和平移。当已知地面标志物的实际尺寸时,还可以通过PnP(Perspective-n-Point)算法直接求解相机在世界坐标系中的位姿。

3.1.2 下视场景中的工程挑战

下视摄像头与水平前视摄像头有本质区别:地面纹理往往呈现重复性、周期性(如草地、瓷砖、柏油路),这会导致特征匹配出现大量误匹配。此外,无人机降落过程中高度不断降低,图像尺度变化剧烈,特征点的尺度金字塔层数需要动态调整。下表总结了特征点法在下视场景中的关键参数与推荐值:

参数推荐值说明
特征点数量150-300过多增加计算量,过少导致位姿估计退化
金字塔层数4-8层适应高度变化,每层尺度因子1.2-1.5
匹配阈值汉明距离 < 50ORB描述子为二进制,使用汉明距离
RANSAC迭代次数200-500剔除误匹配,保证本质矩阵求解稳定
ROI区域图像中心70%避免图像边缘畸变和运动模糊影响
经验提示:在PX4实际飞行中,建议将下视摄像头设置为全局快门模式,避免卷帘快门在高速下降时产生果冻效应,导致特征点位置偏移。若硬件不支持全局快门,应限制最大下降速度不超过2m/s。

3.2 光流法:像素运动场与速度估计

3.2.1 核心原理

光流法不依赖特征描述子,而是直接估计图像中每个像素(或稀疏网格点)的运动矢量。其理论基础是亮度恒定假设:同一空间点在相邻两帧图像中的灰度值不变。对于下视摄像头,当无人机水平移动时,地面像素在图像平面上产生平移光流;当无人机垂直升降时,产生膨胀/收缩光流(即FOE,Focus of Expansion)。

在PX4中,光流传感器(如PX4FLOW或下视摄像头+光流算法)输出的不是像素流场,而是经过标定后的角速度补偿值。具体公式为:

v_x = (flow_x - ω_y * f) * h / f
v_y = (flow_y + ω_x * f) * h / f

其中,flow_x和flow_y是光流算法输出的像素位移,ω_x和ω_y是IMU测量的角速度,f是焦距(像素单位),h是当前高度(由激光测距或气压计提供)。这个公式的核心思想是:先去除旋转分量,再通过高度换算得到真实水平速度。

3.2.2 光流法的适用边界

光流法在下视场景中最大的优势是计算量低,适合在嵌入式平台上高频运行(100Hz以上)。但它有两个致命弱点:

  1. 对纹理极度敏感:在纯色地面(如水泥地、雪地)上,光流方程病态,无法求解。
  2. 尺度不确定性:光流只能给出像素运动,必须依赖外部高度信息才能换算成米制速度。高度误差会直接线性传递到速度估计中。
风险提示:当无人机在低空(<1m)快速下降时,光流膨胀效应非常剧烈,像素位移可能超过算法搜索范围(通常为±4像素)。此时应切换至特征点法或直接依赖IMU加速度积分,否则速度估计会严重失真。

3.3 视觉里程计:帧间位姿估计与累积漂移

3.3.1 核心原理

视觉里程计(Visual Odometry, VO)的任务是连续估计相机(即无人机)的运动轨迹。它通常采用以下流程:

  1. 特征提取与匹配:在连续帧之间建立特征对应关系。
  2. 运动估计:通过2D-2D对极几何(本质矩阵分解)或3D-2D PnP求解帧间相对位姿。
  3. 局部优化:使用滑动窗口或关键帧机制,对最近N帧的位姿和地图点进行捆绑调整(Bundle Adjustment)。
  4. 尺度恢复:单目VO存在尺度模糊,必须融合IMU(视觉惯性里程计,VIO)或已知地面标志物尺寸来恢复真实尺度。

在PX4精准降落场景中,视觉里程计通常与IMU进行紧耦合或松耦合融合。PX4默认使用LPE(Local Position Estimator)或EKF2中的视觉位姿融合模块,接收VO输出的位姿增量或位姿。

3.3.2 下视VO的退化场景与应对

下视VO与水平VO最大的不同在于:旋转自由度退化。当无人机悬停或缓慢下降时,下视摄像头几乎只能看到纯平移运动,此时对极几何中的旋转估计变得病态。工程上通常采用以下策略:

  • IMU预积分:用IMU的角速度积分来补偿帧间旋转,视觉只负责估计平移。
  • 平面约束:假设降落区域为近似平面,将VO问题简化为单应矩阵(Homography)估计,减少未知量。
  • 关键帧策略:只在位移超过阈值(如5cm)时插入关键帧,避免微小抖动导致的数值不稳定。
案例拆解:PX4 + 下视摄像头在室内停车场精准降落
背景与约束:某物流无人机需要在室内停车场(无GPS)降落到一个1m×1m的充电平台上。平台表面为哑光金属,带有高对比度的H形标志。无人机搭载下视全局快门摄像头(640×480@60fps,焦距约300像素),激光测距仪(量程0.1-4m),以及PX4自动驾驶仪(EKF2启用视觉融合)。
初始现象:使用纯光流法时,无人机在距离平台2m高度开始水平漂移,无法稳定悬停在标志上方。日志显示光流输出速度噪声达到±0.3m/s,远超控制死区。
分析过程:检查光流图像发现,金属平台表面存在镜面反射,导致亮度恒定假设失效;同时,H形标志在低分辨率下边缘模糊,光流网格点落在标志边缘时产生错误运动矢量。
解决方案:① 将光流算法切换为特征点法(ORB,200个特征点),并设置ROI为图像中心50%区域,避开平台边缘反光区;② 在EKF2中启用视觉位姿融合,将VO输出的位姿增量与IMU预积分融合,权重设为视觉:IMU=3:1;③ 增加激光测距仪的高度权重,确保尺度估计准确。
结果对比:切换后,悬停水平漂移降低至±0.05m以内,降落成功率从68%提升至97%。
复盘经验:下视视觉定位不能依赖单一算法。在纹理复杂但反光的场景中,特征点法优于光流法;但特征点法在纯色地面会失效,因此PX4中应配置算法自动切换逻辑(如通过图像熵判断纹理丰富度)。

3.4 常见误区与工程总结

误区后果正确做法
认为光流法可以替代激光测距高度误差导致速度估计发散光流必须与测距传感器(激光/气压计)融合
忽略卷帘快门效应高速下降时图像畸变,特征匹配失败选用全局快门摄像头或限制下降速度
固定特征点数量不变低空时特征点溢出,高空时特征点不足根据图像金字塔层数动态调整特征点数量
VO输出直接用于控制累积漂移导致位置发散必须经过EKF与IMU融合,并定期用标志物修正
忽略曝光时间调整快速下降时运动模糊严重设置自动曝光,并限制最大曝光时间(如2ms)