英国诺丁汉大学
本文设计了一个孪生神经网络,其以图像对为输入,网络的每一支各输出一个绝对位姿估计,以及共同预测一个相对位姿。除了常见的绝对位姿损失函数之外,作者还设计了三个基于相对位姿数据的损失函数项。
网络的两支时共享权重特征的。在测试时,选择网络的任意一支对图像进行位姿估计即可
可以看出网络的backbone式ResNet50,输出的特征图分别被GPRU和RPRU模块作为输入。
GPRU:global pose regression unit
一个1024的全连接层,然后接了两个3和4 的全连接层,输出位置和姿态估计。
这里每个全连接层后面要dropout防止过拟合,初始化时候使用xavier初始化(用于线性层,如果是非线性层则使用kaimin初始化)
GPRU以特性图为输入。
RPRU: relative pose regression unit
结构和GPRU相同,但是输入变成了两个特征图的连接。
损失函数:
1.绝对位位姿损失:
LG=LGx+LGqLGx=∥x−x^∥2LGq=∥∥∥∥q−∥q^∥q^∥∥∥∥2
2.相对几何损失:
根据绝对位姿真值的计算相对位姿真值:xrel=x−xrefqrel=qref∗×q带∗为共轭四元数计算相对几何损失:LC=LCx+LCqLCx=∥x^rel−xrel∥2LCq=∥q^rel−qrel∥2
3.相对位姿回归损失:
这里计算的是预测的相对位姿的损失,而上一项是关于预测的绝对位姿损失
LR=LRx+LRqLRx=∥xrel−xrel∥2LRq=∥∥∥qrel−∥qrel∥qrel∥∥∥2
4.自适应度量损失:
LMD=2N1n=1∑N{max(dx+α×dq−d,0)}2
dx dq是相对位姿的L2距离,d是两个输出特征之间的L2距离 :
dx=∥x−xref∥2dq=∥q−qref∥2d=∥f−fref∥2
该损失期望两个输出的特征之间的差异 不小于 输入图像对的位姿之间的差异
总的损失函数:
L=LG+LC+LR+LMD
除了最后一项,其每一项由位置损失和姿态损失组成,因此可以写成:
L=Lx+Lq+LMD
其中:
Lx=LGx+LCx+LRxLq=LGq+LCq+LRq
为了去掉损失函数中的权重参数,最后作者使用了PoseNet2中的可学习参数的损失函数形式:
L=Lx×exp(−s^x)+s^x+Lq×exp(−s^q)+s^q+LMD
实验结果:
- 7-scenes:
- cambridge
由于端到端的深度学习重定位方法。
对各个损失函数的性能测试:
对图像对选择的实验验证:
-
随机选择两个图像最为输入
-
选择前后连续的两个图像
结果显示使用相邻两帧作为输入更加精确