ViPR: Visual-Odometry-aided Pose Regression for 6DoF Camera Localization CVPR 2020

德国纽伦堡夫琅和费集成电路研究所,德国纽伦堡大学,德国慕尼黑路德维希-马克西米利安大学

本文提出了VIPR,一个使用视觉里程计辅助进行重定位的网络,并提出了一个可用于相机重定位和视觉里程计评估的高精度工业数据集。

如果把本文看成是Posenet基础上的改进,那么可以将VIPR的结构描述为:

  • 将Posenet改进为使用三张连续图象为输入,输入对应的三个绝对位姿,作为对真实位姿的逼近。
  • 在此基础上使用相对位姿信息辅助预测:四张连续图象构成三个图像对,使用FlowNet2.0提取其对应的光流信息,然后用级联的LSTM对三个光流进行相对位姿预测,得到三个相对位姿
  • 将三个绝对位姿和三个相对位姿连接:然后输入到一个级联LSTM中,最后得到一个精确的绝对位姿预测

综上,VIPR包括四个模块:

  1. 数据预处理模块:输入4张图象构成3个图像对,前三张图像进行亮度归一化输入到APR中,图像对输入到FlowNet2.0中提取光流信息然后输入到RPR中。
  2. APR:绝对位姿估计模块,以三张序列图像为输入,posenet-based,
  3. RPR:相对位姿估计模块,以FlowNet2.0提取的光流信息为输入,LSTM -based
  4. PE:位姿估计模块,以APR、RPR的输出为输入,LSTM-based

ViPR: Visual-Odometry-aided Pose Regression for 6DoF Camera Localization CVPR 2020

APR:绝对位姿回归模块

以3连续图像为输入,同时输出3个对应的绝对位姿,用于捕获时间上下文。

RPR:相对位姿回归模块

使用FlowNet2.0计算三个图像对的光流估计:

ViPR: Visual-Odometry-aided Pose Regression for 6DoF Camera Localization CVPR 2020

这里作者提到光流图的尺寸太大(224x224x3)会导致LSTM记不住时间维度上的特征,因此采用了类似于平均池化并Flatten的操作,得到的尺寸为(256X3)

ViPR: Visual-Odometry-aided Pose Regression for 6DoF Camera Localization CVPR 2020

最后使用三个级联的LSTM和两个FC输出相对位姿预测

PE模块:

将APR与RPR输出的三个绝对位姿、三个相对位姿连接然后输入到两个级联的LSTM中,使用两个FC回归最终的绝对位姿: ViPR: Visual-Odometry-aided Pose Regression for 6DoF Camera Localization CVPR 2020

损失函数:

RPR、PE模块均使用最简便的位姿损失:
RPR:L=α2Δp~trΔptr2+β2Δq~ΔqΔq22PE:L(P,ΔP)=α3p~p2+β3q~qq22 RPR:\mathcal{L}=\alpha_{2}\left\|\Delta \tilde{\boldsymbol{p}}^{t r}-\Delta \boldsymbol{p}^{t r}\right\|_{2}+\beta_{2}\left\|\Delta \tilde{\boldsymbol{q}}-\frac{\Delta \boldsymbol{q}}{\|\Delta \boldsymbol{q}\|_{2}}\right\|_{2} \\ PE:\mathcal{L}(P, \Delta P)=\alpha_{3}\|\tilde{\boldsymbol{p}}-\boldsymbol{p}\|_{2}+\beta_{3}\left\|\tilde{\boldsymbol{q}}-\frac{\boldsymbol{q}}{\|\boldsymbol{q}\|_{2}}\right\|_{2}
APR 模块使用Posenet,没有提到损失函数,不过位姿损失就是Posenet提出的。

实验评估:

数据集只用了7Scenes,原因是其他数据集上前后帧差别太大,时间上下文太多LSTM学不到,或者是位姿真值不够精确等

本文还提出了一个工业数据集,面向仓库货架等场景。包含三个场景,每个场景包括一些不同的特点(如运动模糊,几何尺寸、光照变化、重复结构等)。总覆盖面积1320M^2,精度<1mm。数据集地址

ViPR: Visual-Odometry-aided Pose Regression for 6DoF Camera Localization CVPR 2020

注意baseline是posenet和lstm-posenet,因为作者把本文看成是在pose net基础上的改进,只需要证明性能优于posenet即可.

推理速度:7-9ms