VIO-GO
Sakhrieh 2025 · 论文
一句话总结 — VIO-GO将一个基于事件的VIO流水线(Ultimate SLAM)包装在一个基于梯度的参数优化器中:带动量的批量梯度下降能自动针对不同场景调优前端和后端参数,在HDR和动态场景中相较固定参数运行方式将平均位置误差降低了60%。
问题
将事件表示为运动补偿边缘图像的基于事件的VIO系统(Ultimate SLAM及其衍生系统)对配置极为敏感:每帧的事件数量、噪声率阈值、特征检测器设置以及后端关键帧数量都取决于场景纹理、事件速率和传感器单元。逐序列的人工调参能够产生论文中公布的头条数据,但在实际场景中并不实用——而恰恰是在低光照和快速运动的工业4.0仓储/物流场景中,事件相机最具吸引力。VIO-GO瞄准的正是这种较不显眼的失效模式:不是提出一个新的估计器,而是对现有估计器进行自动化调参。
方法与架构
- 基础估计器。 VIO-GO在Ultimate SLAM之上实现:前端从运动补偿事件的时空窗口构建边缘图像,检测FAST角点,并用Lucas-Kanade跟踪器对其(以及标准帧特征)进行跟踪;后端运行基于关键帧的视觉惯性非线性优化,其代价函数结合了两个加权重投影误差项(事件帧特征和标准帧特征)以及一个惯性误差项。
- VIO-GO模块。 一个辅助优化循环在某个序列上运行完整的VIO流水线,针对真值测量平均位置误差(MPE),并通过批量梯度下降——即在整个数据集上计算目标函数的梯度以获得稳定收敛——更新所选参数,并加入动量项以抑制振荡并帮助跳出局部极小值。参数初始化为其取值范围的上界;IMU偏置则固定为数据集标定值。
- 可扩展的参数集合。 比较了四种配置:VIO-GO2(事件帧大小——即每帧抽取的事件数量——和噪声事件率)、VIO-GO4(+事件包大小、帧归一化因子)、VIO-GO6(+地标中值深度、FAST检测器阈值、金字塔层级、后端关键帧数量),以及VIO-GO8(+关键帧选择的特征数量阈值)。事件窗口大小被视为最关键的旋钮,因为它决定了边缘图像是清晰还是运动模糊。
实验结果
- 基准数据集:Event Camera Dataset(DAVIS;boxes、dynamic、hdr、poster、shapes序列),MPE(%)通过EVO工具在5秒片段上进行SE(3)对齐计算;在搭载Ubuntu 20.04/ROS Noetic的Apple M1笔记本上运行。
- 参数规模的影响:平均MPE从VIO-GO2的0.47%降至GO4的0.45%、GO6的0.38%,以及VIO-GO8的0.36%——从2个调优参数到8个,降幅达24%;在hdr_boxes上,平均APE从0.031米降至0.020米。VIO-GO8也是速度最快的(平均耗时16.39秒,相比GO2的18.98秒,提升13.6%),因为调优后的特征/关键帧阈值减少了冗余计算。
- 与基线方法对比:VIO-GO8的平均MPE为0.36%,优于固定参数的Ultimate SLAM(0.89%;即摘要中提到的60%提升)、Rebecq 2017的事件+IMU方法(0.43%)、EKLT-VIO(0.54%)以及EVIO(2.57%)——在实用(非手动调参)方法中,10个序列里有7个表现最佳。
- 相较Ultimate SLAM原始的逐序列手动调参结果(平均0.30%),VIO-GO8在boxes_translation(0.25%)、hdr_boxes(0.35%)以及hdr_poster(0.25%)上仍能胜出——而这些结果是自动调参得到的。
对SLAM的意义
大多数事件VIO论文引入的是新的估计器;而VIO-GO则着眼于此类系统在实践中表现不佳的一个更不显眼的原因——针对具体场景参数配置不当——并证明自动化调参能够恢复(甚至在HDR场景中超越)手动调参的性能。对于部署基于事件的VIO的实践者而言,该工作是了解哪些旋钮对性能影响最大(事件窗口大小居首)的有用参考。它处于事件SLAM文献中偏应用的一端,与ESVIO和DEVO的架构进展形成互补。