Deep Global-Relative Networks for End-to-End 6-DoF VisualLocalization and Odometry && 2018
作者: Yimin Lin1, Zhaoxiang Liu1, Jianfeng Huang1Chaopeng Wang1, Guoguang Du1, Jinqiang Bai2,Shiguo Lian1, Bill Huang1
研究机构:cloudmind、北航
这是一个辅助学习的相机位姿估计模型,以序列数据为输入,同时预测相对位姿和绝对位姿。
因此除了可以作为相机位姿估计器之外,还可以解决VO(视觉里程计)任务。
在视觉里程计任务中,由于还预测了相机的绝对位姿,因此可以避免累计误差带来的漂移。
模型结构
模型由三个网络组成:
- CNN1: 负责进行图像的特征提取,选择具有分辨性的特征输入到后面的网络中
- RCNN2: 这里 RCNN指的是Recurrent Convolutional Neural Networks,即循环神经网络,在本文中作者使用了LSTM。RCNN2 负责估计序列图像间的相对位姿变换。
- RCNN3:也是LSTM,负责估计每张图像中相机的绝对位姿变换
最终将RCNN1和RCNN2的输出通过全连接层融合,分别得到相机的位置和旋转。网络结构:
CNN1:
- 作为特征提取网络,由ResNet50的前三个残差块Res1,Res2,Res3构成。
- CNN1分别对每张图像进行处理提取特特征用于后续网络
RCNN1:
- 相对位姿估计网络。使用Res4、Res5将两个图像的特征进行连接融合,然后使用两个LSTM单元挖掘长距离图像之间的对应关系。在每个时间步通过一个1024维的全连接层输出位姿预测。
RCNN2:
-
绝对位姿估计网络。使用Res4、Res5处理当前图像的特征,然后用一个LSTM估计绝对位姿。最后一个1024维的全连接层将输入reshape为1024,与相对位姿预测数据相匹配。
-
注意,论文提到,LSTM存储了最近时间内过去几帧的绝对位姿数据,因此能够提高绝对位姿的预测精度。
最后将fc1、fc2的输出连接,使用fc3,fc4,fc5进行融合,得到位姿的估计值。
训练
以往的基于学习的位姿估计方法在切换到新的场景时需要重新训练,费时费力。本文指出DGRNets可以加快在未知场景中的训练速度。
CNN1只负责提通用特征,因此不需重新训练。只要重新训练RCNN2即可,因为RCNN2存储的是场景中的地标信息。这样CNN1+RCNN2的组合就可以用于输出相机的绝对位姿估计了。
两个损失函数:
-
CTC loss: Cross Transformation Constraints loss,利用相邻帧之间的几何一致性对模型的相对位姿估计误差进行约束。
假设一个序列为一个样本,一个样本有5张图像,则相对位姿预测值如下图:
定义CTC损失函数:
- CTC loss + MSE : 这里的MSE就是传统的位姿真值和预测值之间的误差。使用该损失函数对整个网络模型进行训练。
分别在室内数据集Microsoft 7-Scenes 和室外数据集KITTI上进行了测试:
Microsoft 7-Scenes:评估位姿预测精度
由于使用了几何约束信息,大幅领先于PoseNet、DeepVO
由于将绝对位姿和相对位姿融合进行预测,而VLocNet是独立分开预测的,因此DGRNets性能领先.
总体上说,位置误差较小,但是普遍朝向预测误差较大,这是因为训练集的序列中朝向变化小,训练时容易过拟合,因此测试集上误差大。而DGRNets的RCNN2 解决了朝向预测中的累计误差问题,因此达到了SOTA。
KITTI:评估户外大场景的VO性能
论文说VO的SOTA是VISO2,可是这是2011年的文章(??),DeepVO性能较差,所以论文还放了对比图:
可以看出DGRNets基本消除了漂移现象。
论文提出的DGRNets将相对位姿和绝对位姿任务结合,互相辅助学习,并将几何约束关系纳入到损失函数中,提升了相机重定位性能的同时,还在VO任务中消除了累积误差,实现了漂移矫正。