泡泡图灵智库,带你精读机器人顶级会议文章
标题: CVTNet: A Cross-View Transformer Network for Place Recognition Using LiDAR Data
作者:Junyi Ma, Guangming Xiong, Jingyi Xu, Xieyuanli Chen
来源:arxiv引用
编译:沈业辉
审核: 杨跃腾
这是泡泡图灵智库推送的第833篇文章,欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权
大家好,今天为大家带来的文章: CVTNet: A Cross-View Transformer Network for Place Recognition Using LiDAR Data
基于激光雷达的地点识别(LPR)是自动驾驶汽车在没有GPS的环境中识别以前行驶过的地点的最关键的技术之一。现有的LPR方法大多采用单一的输入点云表示,没有考虑不同的投影试图,这可能无法充分利用激光雷达传感器的信息。本文提出了一种基于跨视图的Transformer网络,称为CVTNet,用于融合激光雷达数据生成的距离像视图(RIVs)和鸟瞰视图(BEVs)。它使用Intra-Transformer提取视图本身内部的相关性,使用Inter-Transformer提取两个不同视图之间的相关性。在此基础上,我们提出的CVTNet为每个激光帧端到端在线生成一个偏航角不变的全局描述子,并通过当前查询帧与预先构建的数据库之间的描述子匹配来检索以行驶过的位置。我们在三个由不同传感器设置和环境条件下采集的数据集上评估了我们的方法。实验结果表明,该方法与最先进的LPR方法相比,对视点变化和较长时间跨度具有较强的鲁棒性。此外,我们的方法具有良好的实时性,运行速率比典型的激光雷达帧速率更快。
code:https://github.com/bit-Mjy/cvtnet
图1 CVTNet的流程如图所示,它首先对两个分支分别生成多层RIV和BEV图像,然后利用OverlapNetLeg和Intra-Transformer模块对对齐后的类句子特征分别进行编码。然后利用Inter-Transformer模块提取跨视图的内部相关性。最后在三个分支上分别利用NetVLAD和MLP生成最终的偏航角不变全局描述子,用于地点识别的快速检索。
1 多视图多层生成器
为了充分利用激光雷达数据的所有信息,同时保持较快的速度,我们提出在不同的距离/高度上使用多个投影,并基于空间切分形成多层输入。对于球坐标系中的RIVs,该方法首先按预先设定的范围间隔切分区域,得到切分后的空间Er。然后,将球面投影应用于不同距离间隔内的激光点上,生成多层RIV图像。类似地,对于欧氏坐标系下BEVs,用高度间隔切分空间,得到Eb,并为所有间隔生成多层BEV图像。
一个激光雷达与相应RIV中的像素坐标之间的对应关系可以表示为:
一个激光雷达与相应BEV中的像素坐标之间的对应关系可以表示为:
最后MMG生成多层RIVs和BEVs,如图3所示。
2 对齐特征编码器:
为了更好地融合激光雷达数据的不同表示, CVTNet使用了一个对齐特征编码器来提取每个表示的粗糙特征并对齐它们,用于以后的融合。
它首先将所有RIVs和BEVs沿通道尺寸串联起来,然后应用两个具有相同体系结构的OverlapNetLeg[1]、[3]模块将输入压缩成类似句子的特征。OverlapNetLeg是一种全卷积编码器,只在垂直维上压缩RIVs和BEVs,而不改变宽度维,以避免偏航角变化带来的的离散化误差。每个分支输出的粗糙特征随后由Intra-Transformer增强。正如我们以前的工作[3]所证明的,来自RIV分支的特征是偏航角等变的:
类似的,本文提出的BEV分支也偏航角等变:
2.3 多视图融合模块
CVTNet在设计的多视图融合模块中融合了多视图特征。它由一个Inter-Transformer和三个NetVLAD-MLPs组合[22]组成,它首先使用所提出的Inter-Transformer模块来融合来自不同视图的两个分支的特征,详见图4,在Intra-Transformer模块中,也有两个具有l个堆叠的Transformer模块的分支,通过使用来自一个视图的query特征,以及来自另一个视图的key和value特征来提取不同视图的相关性。
Transformer的交叉注意力机制可以被公式化为:
注意力增强特征过程可以公式化为:
最后,MVF在RIV和BEV特征以及交叉融合特征上使用NetVLAD-MLP组合,将来自两个Intra-Transformer和一个Inter-Transformer的特征压缩到全局描述子。
2.4 偏航角不变性
本文进一步从数学上证明了CVTNet产生的多视图融合描述子是偏航角不变的,这使得本文提出的方法对视点变化非常鲁棒。在前面证明部分的基础上,对于旋转之后的Inter-Transformer的第一个Transformer模块,等式(7)变成:
类似的,下面的Cross-Transformer可以变成:
2.5 网络训练
沿用之前工作的方式,使用两帧之间的重叠而不是真实距离来监督网络训练。对于每一个训练元组,利用一个查询描述子Ga、kp个正描述符{Gp}和kn个负描述符{Gn}来计算损失函数:
实验评估部分展示了该方法的优异性能,并验证了该方法能够:(i)使用多视图LiDAR数据在户外大规模环境中实现地点识别和闭环检测的最新性能,(ii)基于所提出的偏航角不变架构,保证在视点不同的条件下,仍能很好地识别地点,(iii)实现单次运行时间小于50ms的快速操作。
这项工作是作者继OverlapTransformer和SeqOT后的又一力作,也集合了前两项工作的优点,在OverlapTransformer中作者引入了Transformer模块来提取特征,保证了全局描述子的旋转不变性,在SeqOT中作者将单一的距离图像拓展至序列距离图像,进一步提高了地点识别的效果,而在这一篇文章中,作者又从视图出发,综合考虑了距离图像和鸟瞰图,再次提高了地点识别的效果。
总的来说,这项工作的设计方式和实验过程都是比较通俗易懂的,如果对这项工作非常感兴趣的话,那么小编推荐从第一项工作OverlapTransformer开始看,甚至更早的工作OverlapNet开始看,那么就可以理解作者一步一步的改进历程。
如果你对本文感兴趣,想要下载完整文章进行阅读,可以关注【泡泡机器人SLAM】公众号。
点击阅读原文, 即可获取本文下载链接。
欢迎来到泡泡论坛,这里有大牛为你解答关于SLAM的任何疑惑。
有想问的问题,或者想刷帖回答问题,泡泡论坛欢迎你!
泡泡网站:www.paopaorobot.org
泡泡论坛:http://paopaorobot.org/bbs/
泡泡机器人SLAM的原创内容均由泡泡机器人的成员花费大量心血制作而成,希望大家珍惜我们的劳动成果,转载请务必注明出自【泡泡机器人SLAM】微信公众号,否则侵权必究!同时,我们也欢迎各位转载到自己的朋友圈,让更多的人能进入到SLAM这个领域中,让我们共同为推进中国的SLAM事业而努力!