DeepVO
Wang 2017 · 论文
一句话总结 — DeepVO(ICRA 2017)是端到端学习式视觉里程计的开创性工作:一个循环卷积网络(RCNN)直接从原始单目视频回归6自由度相机位姿,取代了整个经典VO流程。
问题
经典单目VO由一套标准流程构成——相机标定、特征检测、特征匹配/跟踪、异常值剔除(RANSAC)、运动估计、尺度估计、局部优化(BA)——其各个组件”需要被精心设计并针对不同环境专门调优才能表现良好”,而且恢复绝对尺度需要先验知识(例如相机高度)。DeepVO提出了在当时颇为激进的问题:一个深度网络能否端到端地学习从原始图像序列到相机位姿的整个映射,“不采用经典VO流程中的任何模块(甚至连相机标定也不需要)”?
方法与架构
- 输入张量。 每一对连续的RGB帧(减去均值,缩放到64的整数倍——例如在KITTI上为1280×384)被堆叠成一个单一张量,使网络学习帧间的运动特征,而非单帧外观。
- CNN特征提取器。 9个卷积层,每层后接ReLU(Conv6除外,共17层),感受野从7×7逐步缩小到5×5再到3×3,通道数从64增长到1024。该结构受FlowNet启发(并用其预训练权重初始化),即一种光流风格的几何表示——相当于特征提取+匹配的学习式对应物。
- 深度RNN。 两层堆叠的LSTM(各1000个隐藏状态)接收Conv6的特征。普通RNN的更新方式为
但这里使用了LSTM(带记忆单元 的输入门、遗忘门和输出门)来捕捉长期依赖关系——隐式地建模运动动力学以及纯逐帧对方法所忽略的帧间关系。每个时间步都会输出一个位姿估计。
- 概率框架与损失函数。 该系统对 建模,并通过最小化位置 和欧拉角朝向 的均方误差来求解最优参数:
其中尺度因子 用于平衡朝向与位置。选用欧拉角而非四元数,因为四元数的单位范数约束会阻碍优化过程。
- 训练。 使用Theano、Adagrad(学习率0.001),在一块Tesla K40上训练最多200轮,配合dropout和早停;论文表明过拟合会产生极佳的训练集轨迹,但测试集VO表现会严重退化。
实验结果
- KITTI(有真值)。 在序列00、02、08、09(切分为7410个子序列样本)上训练,在03、04、05、06、07、10上测试,使用KITTI指标(100-800米长度区间上的平均RMSE漂移)。测试序列上的均值:DeepVO为5.96% / 每100米6.12°( / ),相比单目VISO2-M为17.48% / 16.52,双目VISO2-S为1.89% / 1.96。最佳序列为05(2.62 / 3.61)和07(3.91 / 4.60)。
- 除高速时的平移误差外,DeepVO一贯优于单目VISO2——训练数据几乎全部低于60公里/小时;随着轨迹长度增加,误差逐渐向双目VISO2靠近。
- KITTI序列11-21(无真值)。 在00-10全部序列上训练后,其轨迹远优于VISO2-M,大致与双目VISO2-S相当——序列12除外(时速50-90公里,高速训练数据较少)。
- 尺度。 绝对尺度”完全由网络自身维持,并在端到端训练中被隐式学习到”——没有进行任何尺度估计或与真值的后处理对齐。
- 论文结论明确将学习式VO定位为几何方法”可行的补充”,而非替代——这一定位后来也得到了验证。
对SLAM的意义
在大多数课程体系中,“学习式SLAM”正是从DeepVO开始的:它既展示了希望(无需手工工程、隐式尺度、通过RNN获得的时间先验),也暴露了核心局限(对训练域的记忆化——论文自己在高速场景下的失败案例)——这正是端到端位姿回归的问题所在。理解DeepVO为何难以泛化——网络中完全没有显式几何——正是自监督路线(SfM-Learner、UnDeepVO)以及后续几何-学习混合系统最好的出发点。