078|SVO:先用亮度找运动,再让特征做精修
论文:Christian Forster、Matia Pizzoli、Davide Scaramuzza,SVO: Fast Semi-Direct Monocular Visual Odometry,ICRA 2014,15–22。作者提供的八页原稿 · 实验室项目说明。
先接住前作的问题
LK提供小块亮度对齐,特征法则有成熟的几何重投影优化;SVO把两种残差通过独立块精修连接起来。与同年的LSD-SLAM相比,本篇是半直接里程计与稀疏地图路线,不能把后者的全局回环当作SVO原版已有功能。
五个前置概念
五个前置概念:光度误差比较对应图像位置的亮度;重投影误差比较三维点投影与二维观测的位置;逆深度用距离倒数表示远近,适于初始化较远的点;极线约束把另一幅图中的候选对应限制到一条线;束调整联合优化相机位姿与三维结构。
一、问题设定:相邻视频帧怎样连接亮度初始化与几何精修
传统特征流程会先检测、描述和匹配图像点,再用这些匹配估计相机运动。连续视频中两帧通常很接近,已有地图还能预测某个点应该出现在图像哪里。此时重新进行大范围特征识别可能浪费计算。
背景与问题定义
目标是视觉里程计,服务于微型飞行器等平台的状态估计。它不是学习动作策略,也不是原生带全局回环的完整地图优化系统。输入为图像及相机模型;状态包含当前位姿、少量关键帧与地图点,输出相对运动和稀疏地图。
单目相机只测视线方向,不能单凭图像决定真实米制尺度。把整张地图和相机平移一起放大,图像投影不变。高帧率使每步估计更容易,但不能取消这项几何不可辨识性。
二、先直接对齐,再独立调块和优化重投影
1.用稀疏图像块约束一个相机运动
设上一帧中地图点为 ,相机投影为 ,当前相对位姿为 。教学形式的光度残差为
这里 遍历地图点周围的小图像块, 由局部深度近似反投影。优化的是少量运动参数,而不是让每个像素独立移动。所有图像块共享同一个刚体运动,能利用已有结构限制搜索自由度。
原文 §IV-A 用李代数增量和 Gauss–Newton 更新求解亮度最小二乘,并利用逆合成思想复用参考图像的雅可比。图像金字塔增大可处理的位移范围。这个阶段节省检测与描述子匹配,但依然依赖图像梯度、深度与运动初值。
2.让每个图像块独立对齐
如果地图点深度有误,严格要求所有点跟随同一投影运动可能留下小偏差。§IV-B 在预测位置附近进一步对齐各个特征小块,得到亚像素二维观测 。这一步放松了刚体模型对每个对应的直接束缚,也因此重新产生可供几何优化使用的重投影残差。
随后优化
并按设置优化结构或局部束调整。不要把两个目标混成同一个损失:第一阶段比较亮度,最后阶段比较位置;独立块对齐在两者之间建立桥梁。
原文指出仅保留首阶段会产生更多漂移,因为它主要与上一帧对齐;后续利用关键帧和地图形成更稳定约束。此处是作者的实验观察与设计解释,文中没有提供覆盖所有序列的完整三阶段逐项统计消融表。
3.地图点先接受多次检验
§V 沿极线搜索相关图像块并三角化。观测既可能接近真实深度,也可能是误匹配,因此采用高斯加均匀分布的混合观测模型:
是内点概率, 描述正常测量的不确定性。公式先按原文的深度记号说明模型;其实现采用逆深度滤波,不应把深度的方差数值原封不动当成逆深度方差。滤波更新综合多次观测,置信度足够才把点插入地图。
这不是证明所有错误点都被消除:重复纹理产生的相关错误可能连续出现,且估计的位姿本身也有误差。独立观测假设失效时,分布可能过早变窄。概率模型提供的是处理外点的机制,而不是“地图永远没有外点”的证书。
“不在运动估计阶段重新提取特征”并不等于“系统完全不提取特征”。原稿 §VI 仍在建图时使用 FAST,并用图像网格促使角点分布均匀。
混合模型怎样让一次坏匹配“少说话”?固定候选真实深度 ,并假定观测落在均匀外点分布的支持区间内,观测属于内点的条件概率为
原创密度比较取 ,均匀外点区间宽度10。观测恰在预测均值上时,高斯密度约3.989,;若偏离1,即十个标准差,高斯项接近零,该观测主要被解释为外点。这里比较的是概率密度而非把密度3.989当成超过1的概率;完整滤波还要积分深度不确定性并更新内点概率,不能把这条条件式冒充整套原算法。
若暂时条件化为可靠内点,先验均值1、方差0.04,与观测1.1、方差0.01的高斯融合给均值1.08、方差0.008。这是为什么地图点要经多帧检验再加入的数值直觉。但帧率升高时相邻视角基线也可能更小,测量并不必然更独立或更有深度信息;原文的高速度结果不能直接换算成同倍数的信息增长。
整相机亮度对齐给出初值,各块精修才提供几何后端的对应。下面把这三阶段与深度接受规则接起来,再对照速度精度实验。
三、跟踪并延迟接受深度,用多帧证据检查新点
输入:已标定单目视频、当前稀疏地图和关键帧
跟踪线程对每帧执行:
建立图像金字塔,投影已有地图点
联合对齐稀疏图像块,得到相机运动初值
在预测位置附近独立对齐各特征块
最小化几何重投影误差,精修位姿及允许更新的结构
判断是否需要关键帧,将观测交给建图线程
建图线程:
在缺少地图点的图像区域提取新角点并初始化深度滤波器
根据新位姿沿极线查找对应,形成三角化测量
用内点/外点混合模型更新深度及置信度
仅把足够收敛的点加入可用于跟踪的地图
输出:相机里程计与稀疏三维点
四、读速度与精度的各自测试条件

读图:上下分别是笔记本与嵌入式平台,横轴单位均为处理时间。先读完整运动估计与各阶段,再讨论吞吐;处理能力高于相机帧率不表示获得了更多观测。
实验设置:速度和精度采用了哪些条件
本篇是 2014 年单目版本;SVO Pro 与多相机后作的 IMU 先验和回环不属于原始实验。运动估计帧率也不是整机闭环频率。
| 项目 | 设置与检验对象 |
|---|---|
| 图像 | 下视 MAV 相机及手持序列;BlueFox 全局快门,752×480 |
| 定量轨迹 | 84 m MAV 记录,平均离地约 1.2 m,动作捕捉真值 |
| 对齐 | 前 10 帧与真值对齐,包含尺度;另报告相对误差,减少对初始对齐的依赖 |
| Fast 设置 | 每帧最多 120 特征、最多 10 关键帧,不做局部 BA |
| Accurate 设置 | 最多 200 特征、50 关键帧,启用局部 BA |
| 对照 | 面向 MAV 修改过的 PTAM,而非未经修改的 2007 原版 |
| 平台 | 笔记本 Intel i7 2.8 GHz;Odroid-U2 四核 Cortex-A9 1.6 GHz;算法最多使用两个核 |
| 不确定性 | 展示误差曲线、RMSE、中位数及时间分解;没有多次独立采集的统一置信区间 |
比较并不是严格同特征数实验:PTAM 跟踪约 160—220 点,SVO Fast 上限为 120。原文还讨论对照版本省略最高分辨率特征及部分亚像素精修。这些差异解释了速度和精度的来源,也限制了把全部收益归因于单一“直接法”标签。
五组证据与边界
表 I、图 12(第 6 页):计算规模不同。 Fast 和 Accurate 不只改变一个开关,还改变特征、关键帧预算。它们可以比较实际配置,但不能作为“仅局部 BA”的干净消融。

读图:蓝色与绿色曲线分别受各自的特征预算限制,因此速度和精度比较同时改变了计算规模。
表 II(第 7 页):相对误差。 Fast、Accurate、PTAM 的位置 RMSE 分别为 0.0059、0.0051、0.0164 m/s;旋转 RMSE 为 0.4295、0.4519、0.4585 deg/s。这不是整程 ATE。Accurate 的旋转值并没有优于 Fast,故不能说更重配置在每项指标上都更好。
图 8–10(第 6 页):漂移与尺度。 初始对齐后误差仍随时间变化,尺度也会漂移。结果支持短期跟踪表现,不能把初始用真值校准尺度后的轨迹当作算法自行恢复绝对尺度。

读图:三个分量随时间的变化并不相同,初始对齐不能消除后续积累的位置漂移。

读图:三组曲线给出各姿态分量的误差变化,局部波动与长期偏差都应看清,而不能只比较某一瞬间。

读图:纵轴是尺度漂移百分比,曲线仍在零点附近波动并偏离,不能据初始真值对齐声称单目系统自行恢复了绝对尺度。
图 13–14(第 7 页):运动估计时间。 笔记本总计 3.04 ms,嵌入式 18.17 ms,对应约 329 和 55 帧每秒的计算吞吐;PTAM 的报告值分别约 91 和 27 fps。图中分项不应被强行相加视为精确等式,主文还指出建图代价随深度滤波器数量变化。高于相机帧率的处理能力不是相机真的采到了更多图像。
图 15–图 17(第 7—8 页):纹理与平台。 重复、高频纹理上的地图图示显示更少外点,机载演示说明集成可行;这是场景证据,没有给出跨照明、动态遮挡、所有地表的失败概率。飞行控制还需要尺度和惯性状态估计,不能把整套控制能力归给纯单目前端。

读图:绿色特征点覆盖地面和墙面重复纹理;这是所示场景的跟踪证据,不是所有重复纹理条件下的成功率统计。

读图:右图箭头指出偏离主体几何的外点,而左图点云更集中;该对照用于解释深度过滤的效果。

读图:箭头标明机载处理器和相机位置,说明系统集成的硬件条件;飞行控制仍依赖额外状态估计和控制模块。
五、保留小运动、光度和单目漂移限制
贡献是将直接跟踪、局部特征精修与带外点模型的延迟建图组合起来,使“少而可靠的点”支持较轻的跟踪。其收益依赖时间连续性;相机被快速搬到完全不同位置时,原有投影可能不再提供可靠搜索中心。
自构例子。 地面有重复瓷砖。一次两帧匹配可能把第 3 块误认成第 4 块,得到错误深度。立即插入地图会让后续位姿被错误几何牵引;先积累不同视角的深度测量,则不一致测量可能被外点分支吸收。但如果每次都错到同一重复位置,滤波也可能自信地错。因此需要足够视差、模型检查及多样观测。
纯旋转是另一项明确的几何边界:它能产生图像运动,却没有三角化距离所需的平移基线。再高的帧率也不能凭空让未知深度收敛。极弱纹理、曝光突变、运动模糊和滚动快门也会破坏对齐所用的假设。
六、追问:去掉图像块独立微调而直接进入几何优化,会改变哪条信息接口?
去掉图像块独立微调而直接进入几何优化,会改变哪条信息接口?
参考答案:几何优化使用显式图像对应,独立微调为各点修正位置,不能简单与整相机的亮度对齐合并。省掉这一阶段会改变后端得到的观测。比较时应固定地图、初值和预算,并分别检查块位置误差与最终位姿。
七、比较半直接分工与直接联合优化
- 平行路线:DSO:用少量像素联合优化,而不是用尽所有像素。直接联合优化光度变量与几何,不再采用相同的半直接分工。
八、自测与参考答案
1.SVO 都用亮度对齐了,为什么最后还优化重投影误差?
直接对齐共享一个刚体运动,受地图深度误差影响;独立块对齐得到更自由的亚像素观测,最后再由几何一致性综合它们,并联系关键帧和地图。三个阶段各自承担初始化、对应精修和结构约束,不能视为重复做同一件事。
2.深度滤波器的方差很小,是否就说明该点真实可靠?
只在观测模型及误差假设合理时才可这样解释。重复纹理造成的相关错误、错误相机位姿或过小测量噪声,会让滤波器过度自信。应检查多视角一致性及误差来源,不能只看方差阈值。
3.300 fps 的论文结果能否证明飞行器的闭环控制频率也是 300 Hz?
不能。它是特定笔记本上运动估计阶段的处理能力;相机采样、建图、融合、通信和执行器都有各自时序。机载平台的原文值约 55 fps,完整控制链还需要单独测量端到端延迟。