【论文翻译】GCN-v1:Geometric Correspondence Network for Camera Motion Estimation
摘要
本文提出一种新的学习方法生成几何匹配用于视觉里程计。将CNN和RNN结合训练,同时检测关键点并生成其对应的描述子。借助刚体变换,通过将source frame中的点warp到reference frame中实现对网络的优化。本质上,就是对warp的学习。整个训练过程聚焦于相机的运动而不是图像内部的运动,这会给匹配带来更好的一致性,并且有助于最终的位姿估计。实验结果显示该方法比其他DL和手动检测方法有更好的效果。此外,为了证明我们方法的前景,我们使用了基于这些关键点的简单SLAM实现,并获得了与ORB-SLAM相当的性能。
Introduction
为训练CNN和RNN结合的网络,作者提取一张图像中的高梯度的点,利用相机运动将其warp到下一张图像。该网络并没有尝试学习重构高梯度的点并且基于这些点计算描述子,而是学习能够学习寻找实现更好匹配的特征点和描述子。事实上,这些warp到新图像中的点也许并不是该图像上的高梯度的点。
利用SLAM中的标签数据集中包含的ground truth位姿对该数据集执行warp操作,从而生成训练集。
主要贡献点:
形成了一个可优化的网络框架用于相机的运动估计,可以同时学习特征点的位置(用于运动估计)和特征点对应的描述子(用于匹配)。
GCN系统
整体的网路结构如下:
先是利用CNN提取图像多尺度的特征,然后是浅层的双向循环网络,预测kp在两张图像的位置。
A.稠密的特征提取
金字塔网络主干:
CNN提取特征分为卷积与反卷两部分:
卷积部分:利用带有bottleneck和batch normalization的ResNet-50。在ImageNet上预训练获得预训练参数。
反卷部分:上采用,恢复图像尺度,并且与卷积部分加入shortcut,从而胡得更加细化的特征。
深度度量学习:
度量学习是为优化CNN的。以二范数距离作为度量函数,度量学习以可以将输入样本按照相似性映射到特征空间,相似的在特征空间距离近,反之则远。带有度量学习的CNN网络训练可以使得特征被优化,从而用于最近邻匹配。
利用triplet loss来执行度量学习
其中,y是x的正样本,用warp方式获得:
z是负样本,是hardest negative sample mining,最近的负样本:即在特征空间的负样本中选择距离x最近的点(有助于加速收敛)
B.循环掩膜预测
循环结构:将检测kp作为一个二分类问题,利用CNN提取的稠密特征作为输入。为了同时对两幅图像的kp位置进行预测,网络利用了时间和空间信息。利用浅层双向循环卷积网络来实现该目的。RCNN按照如下结构进行组织:
f是feature map,h和v是中间信心,o表示给定位置点是kp的概率。通过使用双向网络,通过最大化正、负时间序列的一致性来直接优化RCNN的预测。
mask分类:kp的分类是对每个像素标记0或1的掩码。如下图右图所示
白色的点是1,即kp。给第一张图的kp赋值1.然后将其warp到第二张图,生成masks。然后,对每个像素进行加权交叉熵操作:
c是给定点的label,o是网络预测的kp,而x是真实提前生成的kp,y是通过warp得到的kp。α是与网络收敛相关的平衡因子:因为kp的数量远少于总计的像素点。
C.多任务训练
多任务训练的最终loss是A中的loss和(9)的加权组合。采用自适应梯度下降(ADAM)方法来优化。除ResNet-50之外,其他权重都是随机初始化的。特征向量的维度是64(该实验中,64比较合适,维度增大性能提升有限,维度太小网络不收敛)learning rate设置的较小。triplet loss的margin设置为1.α1=0.1,α2=1.0
实现
训练用TUM的fr2,测试用fr1/3。对序列进行二次采样(每四张采一次),从而提供更难的样本用于训练。
训练数据的生成:使用Harris算法,运行两次,先是整张图,再是将一张图4x4的grid,对每个子图进行kp检测
构建了一个轻量级的SLAM系统与其他SLAM系统进行比较,包括BA,位姿图优化以及基于闭环检测的词典。关键帧的位姿在跟踪期间不断被优化。
实验
三个测试:一是利用不同的特征点,二是GCN与其他神经网络方法的对比,三是该轻量级的SLAM系统和其他三个RGB-D SLAM系统进行比较:ORB-SLAM, Elastic Fusion以及RGBDTAM。
对同一个系统采用不同类型的特征点的实验结果如下:
与其他网络的对比
与其他三个SLAM系统的比较:
接下来的方向:
作者的目的也是将其部署到无人机上,接下来的方向是利用更加轻量级的网络,比如squeezeNet。描述符变成ORB一样的二进制的(GCNv2已经实现)。