迷路炎

首页 » 常识 » 诊断 » 毫有引力自动驾驶车辆怎么知道我在哪毫
TUhjnbcbe - 2023/9/22 20:45:00
北京著名湿疹医院 http://m.39.net/disease/a_9092459.html
这里是「毫有引力」技术栏目的第11期推送,未来将持续进行自动驾驶相关技术分享。想知道自动驾驶中车辆在无GPS的条件下是如何确定自身位置的吗?如何让自动驾驶车辆完成精准、实时的进行本车定位,是自动驾驶系统开发的过程中不可回避的重要问题。为了解决激光雷达地点识别问题,毫末智行开源了一个高效的yaw角旋转不变的激光雷达地点识别算法——OverlapTransformer,它能高效、精确地完成本车定位任务,且针对多角度地点识别具备较强的鲁棒性。本期就带你一起研究研究毫末智行最新地点识别算法——OverlapTransformer哦。毫末智行的小车不会“迷路”的奥秘,快和小编一起看下去吧~没有GPS怎么办?——地点识别PlaceRecognition今年4月,毫末末端物流配送车「小魔驼2.0」重磅发布。或许有朋友会疑问:小魔驼在道路上行驶进行物流配送的途中,如何知道自己已经配送到哪里了?距离目标位置还有多远?这本质上是一个自动驾驶车辆进行本车定位的问题,两种主流定位方法,小编帮你整理好啦~一种是使用GNSS组合导航系统进行定位,另一种是基于地图和传感器的观测进行定位。前者存在着GNSS信号未覆盖或被遮挡(高楼、隧道等)、IMU数据漂移等问题,但是可以直接输出绝对位置;后者则需要初始化定位的先验信息,对环境外观更加敏感,但是可以实现更加精确的定位。这两种方法各有优劣,在小魔驼行驶的过程中都是有必要存在的,从而实现覆盖率更高的定位结果。地点识别,就是基于“地图”和传感器的观测进行定位的方法。没有GPS不要怕!我们可以使用地点识别算法,根据小魔驼当前对环境的观测,与事先采集好的地图进行匹配,确定小魔驼当前处于地图的哪一个位置。值得注意的是,地图可能是几个小时前采集的,也有可能是几天、几个月前采集的,因此相对于视觉定位而言,使用受光照、季节影响较小的激光雷达传感器实现观测定位是一个更合理的选择。基于激光雷达的地点识别,主要有两个应用场景。一是为激光雷达SLAM的回环检测提供位置先验,从而促使寻找到正确的回环;二是在事先采集的点云地图中直接进行全局定位。图1事先采集的地图作为地点识别的database图2利用当前观测在database中寻找retrievedcandidates图1和图2展示了测试集中包含的路段。第一次行驶在这个路段时,我们让小魔驼采集下来在这个路段行驶过程中的每一帧点云和相应的全局定位信息,如图1所示。那么小魔驼第二次在这个路段中行驶时,就可以将第一次行驶采集的数据作为database,将当前观测作为query,在database中寻找retrievedcandidates以实现全局定位,如图2所示,利用当前帧激光与database所有的激光数据进行匹配,找到最像当前观测的那一帧激光数据,也就对应了识别到的地点。如何描述地点的“像”与“不像”?——地点描述子是个不错的选择那么,自动驾驶车辆描述地点的“语言”是什么?小编带你往下看~“利用当前帧激光与database所有的激光数据进行匹配,找到最像当前观测的那一帧激光数据,也就对应了识别到的地点”,那么如何去衡量“像”与“不像”呢?这个问题就是如何去“描述”地点。如果地点具有相近的位置,那么就应该具备更“像”的“描述”。直接去比较原始点云显然是不可行的,因此最直观的想法是为地点提取描述子,也就是用一个向量、矩阵、或者频谱去描述地点。那么当前地点与历史地点的描述子相似,就可以认为当前地点在历史地点附近,也就识别出了历史地点。对于地点识别的算法,有两点基本要求,一是高效性,即车辆可以以最快的时间通过地点识别算法在实现采集的地图中确定自身位置,进而服务于后续算法;二是yaw角旋转不变性,即车辆从多个角度观测同一地点时(如车辆正反向行驶),得到的地点描述子是高度相似的。OverlapTransformer——一个高效的Yaw角旋转不变的激光雷达地点识别算法既然如此,激光雷达地点识别能否做到鱼和熊掌兼得?毫末告诉你,没问题!OverlapTransformer在手,高效Yaw角旋转不变我有!为了解决上述激光雷达地点识别问题,毫末开源了一个高效的yaw角旋转不变的激光雷达地点识别算法——OverlapTransformer,为地点提取1-D描述子。本算法仅利用三维点云投影的深度图(rangeimage)生成全局描述子用于地点识别,保证算法泛化性能;利用Transformer结构增强全局描述子特异性,提高识别精度;利用NetVLAD对全局描述子进行压缩,提高算法的运算速度;利用NetVLAD将yaw角旋转等变转换为yaw角旋转不变,增强算法鲁棒性。我们的算法高效、精确,且针对多角度地点识别具备较强的鲁棒性。OverlapTransformer的算法结构如图3所示。OverlapTransformer由RangeImage编码器,Transformer模块,以及全局描述子生成器这三个模块组合而成。首先将三维激光点云通过球面投影转换为二维rangeimage,将rangeimage输入到RangeImage编码器中进行空间维度的压缩和通道维度的扩张,进而将编码后的结果输入到Transformer模块中进行特征图的特异性增强,再将特异性增强后的结果与增强前的结果进行通道维度上的拼接,最终输入到基于NetVLAD结构的全局描述子生成器中生成维度为1x的地点描述子向量。图3OverlapTransformer算法结构03-1球面投影与yaw角旋转等变性一个三维激光点(x,y,z),通过如下公式就可以投影至一个二维的图像像素(u,v),这就是球面投影。具体流程为:所有三维点投影到以激光雷达为中心的虚拟球面上,然后将虚拟球面切开展平,进而得到rangeimage。rangeimage上的每个像素点都代表激光点的距离信息。rangeimage本身具备yaw角旋转等变性,这对我们的模型是很关键的,那么什么是yaw角旋转等变性呢?

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、Recall

1、Recall

1%)如表2所示。表2回环检测性能测试全局定位性能测试在自建数据集上进行。在挑战1、挑战2、和挑战3的测试结果(Recall

1~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了!
1
查看完整版本: 毫有引力自动驾驶车辆怎么知道我在哪毫