yaw角旋转等变性,就是一帧激光点云相对于z轴的旋转等价于本帧rangeimage的平移。图四展示了yaw角旋转等变的一个简单示例。沿着yaw角旋转前后,rangeimage发生了平移。值得注意的是,yaw角旋转等变性要不仅要求三维点云旋转等价于rangeimage的平移,还要求旋转前后整个图的信息是没有增减的。
图4yaw角旋转等变性示例这就是rangeimage的旋转等变性。正得益于三维点云绕z轴的旋转等价于rangeimage的平移,OverlapTransformer后续的结构才会输出一系列yaw角旋转等变的中间特征图,进而最终将yaw角旋转等变性转化为yaw角旋转不变性,从而保证多角度地点识别的可行性。03-2rangeimage编码器利用球面投影将三维点云转换至rangeimage后,将其输入到rangeimage编码器的OverlapNetLeg。OverlapNetLeg由一系列卷积层组成,我们在陈谢沅澧博士于年提出的OverlapNetLeg结构的基础上进行了修改,结构如1表所示。表1rangeimage编码器
所采用的OverlapNetLeg
rangeimage编码器对原始OverlapNetLeg卷积结构修改的目的是为了保证后续特征图的旋转等变性。修改的地方在于,rangeimage编码器使用的卷积仅用来压缩高度(height)方向,并不压缩宽度(width)方向;此外,卷积并不使用padding和dropout。得益于对卷积结构的特殊设计,rangeimage编码器所输出的特征图仍然具有yaw角旋转等变性。也就是说,当输入的三维点云关于yaw角进行旋转时,rangeimage编码器输出的特征图符合图4所示的平移规律。03-3Transformer模块rangeimage编码器的编码结果被输入到Transformer结构中进行特异性增强。Transformer结构最初在自然语言处理领域中被提出,现在越来越多的被其它领域使用,并且达到了非常不错的效果。OverlapTransformer是如何利用它的呢?以OverlapTransformer的输入为64xx1的rangeimage为例,rangeimage编码器对输入进行了高度上的压缩,也就是64被压缩至1,宽度方向维度不变,通道方向扩张到维度。这里我们把这个1xx的输出特征图看作是一个长的句子,句子中每个单词是维。输入到Transformer的多头注意力机制中就是要把这个句子进行通道上的切割(如图5所示),然后分别输入到点积注意力模块中。使用Transformer模块的目的是为了兼顾全局感受野和局部感受野的信息,增强句子中单词与单词之间的联系,这里我们使用它来增强被rangeimage编码器编码后的特征之间的联系。需要注意的是,Transformer模块的输出仍然具有yaw角旋转等变性,具体证明可见OverlapTransformer论文。图5将特征图进行通道方向的切割后输入多头注意力机制03-4全局描述子生成器全局描述子生成器主要由NetVLAD和MLP组成。NetVLAD最早在视觉领域里被提出,PointNetVLAD方法将其第一次应用于点云领域。NetVLAD将VLAD这种传统的描述子提取方法迁移到神经网络中,使其成为一个可训练的结构。PointNetVLAD的文章中,其作者用数学公式证明了NetVLAD结构具有对称性,即NetVLAD的输出与输入次序无关。例如,向NetVLAD输入多个三维向量,这些向量的输入次序并不影响NetVLAD的输出。如前文所说,经过Transformer模块特异性增强后的特征图仍然具备yaw角旋转等变性,因此原始输入点云的旋转仅会导致NetVLAD的输入在特征图的宽度方向上进行平移,也就是仅产生了输入次序的变化,于是NetVLAD的输出是不受原始输入点云旋转的影响的,即它的输出具备yaw角旋转不变性。因此OverlapTransformer最终输出的1-D地点描述子具备yaw角旋转不变性,进而大幅度提升多角度地点识别的成功率。为了进一步通过示例验证OverlapTransformer输出全局描述子的yaw角旋转不变性,我们使用了如图6所示的toyexample。可以看到,当rangeimage产生平移的时候,输出的全局描述子是不变的!图6全局描述子yaw角旋转不变性示例描述子怎么用?——Retrieval!关于描述子的使用指南,往下划哦~如图7所示,我们将当前帧点云提取的描述子与database中所有的点云的描述子进行欧氏距离的计算,距离最小的database中的点云被认为是检测到的当前地点,这个过程被称为Retrieval。暴力遍历查找最近描述子是非常低效的,OverlapTransformer则使用了facebook开源的搜索工具——Faiss进行快速搜索最近描述子。
·
图7Retrieval过程网络怎么训练更合理?Overlap!OverlapTransformer是怎样一步步学会区分与当前query帧点云相似和不相似的点云、掌握地点识别能力的?经过Overlap特训营,妈妈再也不用担心我的学习~OverlapTransformer利用基于Overlap划分的数据集进行训练。两帧激光点云A,B之间的Overlap的计算流程为,首先将点云A转换至点云B的坐标系下,得到A’,然后将A’和B同时进行球面投影,进而计算两幅rangeimage上重叠像素个数所占rangeimage总像素数的比例。训练过程采用对比学习的思路,对于一帧query点云,同时向OverlapTransformer输入本帧点云、以及它的6个正样本和6个负样本。正样本就是训练集中与query点云的Overlap大于0.3的点云,负样本就是训练集中与query点云的Overlap小于0.3的点云。对于这13帧点云,OverlapTransformer将输出13个描述子,然后计算正样本描述子与query描述子之间的距离,得到共6个距离,然后计算负样本描述子与query描述子之间的距离,也得到6个距离。然后我们取正样本的6个距离中的最大值,对于负样本的6个距离求和,得到最终的loss函数如下式所示。与正样本之间距离作为正loss,意味着是模型的训练方向为减小query与正样本之间的距离;与负样本之间的距离作为负loss,意味着模型的训练方向为增加query与负样本之间的距离。随着训练的进行,OverlapTransformer就逐渐学会区分与当前query帧点云相似和不相似的点云,也就拥有了地点识别的能力。为什么使用Overlap而不是点云之间的距离作为衡量正负样本的基准呢?因为Overlap对于描述激光点云相似度来说是一个更为自然的方式;此外,点云间的Overlap对应了后续点云配准的质量,因此基于Overlap对是否为同一地点进行判断更有益于后续算法的进行。网络性能测试——定位表现、实时性你没看错,OverlapTransformer也逃不过考试~快来看看它这五门功课考得如何!对OverlapTransformer的测试主要分为五个部分,分别为:回环检测性能测试、全局定位性能测试、yaw角不变性测试、Transformer模块消融试验、实时性测试。回环检测性能测试在KITTI和FordCampus数据集上进行。OverlapTransformer在KITTI03-10上进行训练,在KITTI00和FordCampus数据集上进行测试,测试结果(AUC、F1max、Recall1、Recall1%)如表2所示。表2回环检测性能测试全局定位性能测试在自建数据集上进行。在挑战1、挑战2、和挑战3的测试结果(Recall1~25)分别如下图所示。(a)挑战1测试
(b)挑战2测试
(c)挑战3测试
图8OverlapTransformer全局定位性能测试yaw角旋转不变性测试在KITTI00上进行测试。如图9所示,我们的算法完全不受yaw角旋转的影响,且在与所有baseline算法的比较中具有最高的地点识别召回率。图9yaw角旋转不变性测试Transformer模块消融试验在自建数据集的挑战二上进行,如表3所示。可以看到,相比于没有Transformer模块(RIE+GDG)的结构、将Transformer模块用普通卷积替换(RIE+Conv+GDG)的结构而言,具备Transformer模块的结构具备相对优越的性能。其中,1个Transformer模块和3个Transformer模块具有最好的性能,过多的Transformer模块(如6个)往往需要更大量的数据进行训练,而当训练集数量有限时,过多的Transformer模块会导致网络性能的下降。表3Transformer模块消融试验最终是针对算法效率的测试,结果如表4所示。可以看到OverlapTransformer具备最快的描述子检索速度,描述子提取速度与Histogram算法相当,然而描述子的性能远超于Histogram算法。OverlapTransformer最终可以实现HZ的地点识别频率,它的高效性决定了它在实车应用中的较大潜力。表4算法效率测试关于毫末最新的地点识别算法分享就到这里啦。关于自动驾驶的地点识别技术,大家都“拿捏”了吗?话不多说,小魔驼要把GPS关掉,试一试OverlapTransformer了!