基于学习的自动驾驶LIDAR 定位*

2022-09-28 01:40赵璐宋新萍姚振鑫
计算机与数字工程 2022年8期
关键词:关键点局部概率

赵璐 宋新萍 姚振鑫

(上海工程技术大学 上海 201600)

1 引言

定位是自动驾驶的基本任务之一,精确和可靠的定位模块(对自动驾驶汽车的位置和方向进行估算)至关重要。在理想情况下,定位精度必须特定于厘米级别,并且必须普遍达到亚度姿势精度。在过去的十年中,已经提出了几种借助3D 光检测和测距(LiDAR)扫描仪来实现此目标的方法[8,13~15]。经典的定位管线通常涉及几个步骤,具有某些变化,如图1 所示。它们是一种特征表示方法(例如,点、平面、极点、二维网格上的高斯条),匹配算法,异常值排除步骤(可选),匹配损失函数,空间搜索或优化方法(例如,穷举搜索或粗略搜索,蒙特卡洛采样或迭代梯度下降最小化)以及时间优化或滤波框架。尽管它们中的一些在不同情况下的准确性和鲁棒性方面已显示出出色的性能,但通常需要大量的工程工作来调整管道中的每个模块并设计硬编码的特征和匹配方法。而且,这些手工制作的系统通常对运行场景具有强烈的偏好。建立适应所有挑战性场景的通用定位系统需要付出巨大的工程努力,这是不可行的。

图1 传统和建议的基于学习的方法的体系结构

基于学习的方法打开了一个全新的窗口,以数据驱动的方式解决上述问题。好处是,可以轻松地为定位任务收集大量的训练数据,因为通常可以使用脱机方法自动或半自动获取地面真相轨迹。通过这种方式,可以最大程度地减少人工标记的工作量,使其更具吸引力且更具成本效益。

在本文中,我们提出了一种深度神经网络架构,以使用LiDAR 扫描准确估算车辆的位置和方向。传统的手工制作管道中的模块已被深度神经网络取代。单个kcNet[11]用于提取局部特征描述符。它们对点的局部邻域的某些最有用和最有效的统计属性进行编码,然后,通过图形最大值或平均池获得点的局部签名,该签名可以代表局部表面的聚集特征信息。并经过训练以优化匹配的鲁棒性。我们网络的关键设计是显着提高定位精度,并且在x×y×ψ尺寸上具有完全可区分的损失量,该尺寸由最近学习基于立体的3D 卷积规范化[7]。最后,计算所有维度的匹配概率并获得最佳估计。通常由诸如粒子滤波器之类的滤波方法建模的时间运动动力学由深度递归神经网络(RNN)隐式封装。

在我们的方法中,L3-Net 将在线LiDAR 扫描,预先构建的地图和预测的姿态作为输入,通过Kc-Net学习特征,在解决方案空间上构建损失量,应用CNN和RNN估计最佳姿态。

总而言之,我们的主要贡献是:

1)提出一个基于深度学习的自动驾驶LiDAR定位框架,可直接处理点云并准确估计车辆的位置和方向,并产生与现有水平的可比结果。

3)在KITTI数据集与其他算法进行了比较,并使用新收集的数据集全面验证了我们方法的有效性。

2 相关工作

基于LiDAR 的自动驾驶汽车定位已经研究了很长时间,因为与其它传感器相比,它具有较高的精确性和可靠性。

2.1 基于几何的方法

传统的LiDAR定位方法基于几何,它们严重依赖几何约束来估计车辆的运动。最直接的方法是应用点云配准算法来解决运动问题。迭代最近点(ICP),广义迭代最近点(G-ICP)和正态分布变换(NDT)是可以考虑的常见配准算法。使用这些方法进行匹配通常需要定义两次扫描匹配之间的损失函数,并评估梯度以迭代的方式获得最小化匹配损失。由于梯度下降的性质,这些方法高度依赖于初始位置,并且受局部最小值的影响。一种更普遍的策略是利用LiDAR 强度和高度信息。与仅基于点云的几何信息的系统相比,LiDAR强度提供了更多的环境纹理信息,例如道路标志,作为有价值的附加提示。最近的几篇著作[13,15~16]结合了强度和高度提示,以实现更可靠、更准确的结果。

2.2 基于学习的方法

据我们所了解,现在应用于解决这些问题的方法还不是很多。另外,与传统的精心设计的手工管线相比,它们在精度方面都还没有达到最新的性能。PoseNet[6]及其变体[9]试图解决视觉重新定位问题,在该问题中,准确的解决方案并不是目标。对PoseNet 的改进[2]结合了帧之间的相对几何约束或通过双向LSTM 集成了时间信息。姿态轨迹可以平滑化,并且可以减少定位误差,但是它们仍然不能满足自动驾驶应用的需求。在本文中,提出了一种新颖的基于学习的LiDAR定位系统,该系统可直接处理点云。它具有匹配先进的手工定位管道性能的能力。

3 问题陈述

受最近深度学习在直接处理点云方面的影响,我们考虑是否能够将点云处理的成功经验应用于基于LIDAR 的定位。为此设计了一个基于LiDAR定位的深度学习框架,该框架使用了一个在线Li-DAR 点云和一个预先构建的3D 点云地图。在线LiDAR 点云可以是来自安装在车辆上的LiDAR 设备的单个或几个连续帧,是从多个LiDAR 扫描(考虑运动补偿)中累积的。它表示为一组3D 点{pi|=i=1,…,n},其中每个点pi是(x,y,z,r)的向量,包括其在本地车辆中的坐标和反射强度。预先构建的3D 点云图是LiDAR 点的集合,这些点具有通过测量或测绘车辆收集的全局坐标。为了提高存储效率,使用体素网格过滤器对3D 点云图进行了下采样。此外,我们使用A-CNN[12]执行语义分割,以在点云图中删除动态对象,例如车辆,自行车,行人等。

除了在线点云和预先构建的地图之外,我们定位框架的输入还包括通常由惯性测量单元(IMU)生成的预测姿态。因此,任务是通过最小化在线点云和3D地图之间的匹配损失来寻找最终姿势和预测姿势之间的最佳偏移。以对惯性测量单元(IMU)进行修正。为了获得更好的效率和鲁棒性,我们遵循最先进的定位系统,并仅估计2D 水平和航向偏移量(Δx,Δy,Δψ)。

KcNet[11]致力于解决网络体系结构中消耗点云并充分利用包含细粒度结构信息的点的局部邻域的问题。它主要包括以下两项新的操作,一是局部3D几何结构,类似于图像的卷积核,将点集核定义为一组可学习的3D 点,这些点根据由核相关性测量的几何亲和力,共同响应一组相邻数据点的几何亲和力。二是通过在3D位置计算出的最近邻图上进行递归特征聚合来利用局部高维特征结构。主要见识在于,相邻点往往具有相似的几何结构,因此通过邻域图传播特征有助于学习更强大的局部模式。

图1和表1示,CEACAM1在128例正常食管黏膜组织中高表达4例(3.13%),低表达12例(9.38%),无表达112例(87.5%)。CEACAM1在128例食管腺癌组织标本中有表达,其中高表达92例(71.8%),低表达30例(23.4%),无表达6例。2组比较差异有统计学意义,Z=13.36,P<0.001。

4 DL-Net

本节详细描述了为基于学习的LiDAR 定位问题而设计的拟议网络的架构,即所谓的DL-Net,如图2 所示。几何结构在第一个训练阶段,仅涉及黑色箭头,其中包括关键点选择,mini-KcNet 特征提取和基于3D CNN 的正则化。蓝色箭头指示第二训练阶段,其中添加了基于RNN的时间平滑度。

图2 建议的基于学习的LiDAR定位网络L3-Net的体系结构

4.1 关键点特征

第一步是是从一组局部补丁中提取局部特征描述符,我们称之为关键点。关键点的选择从不同方面考虑了几个局部和全局几何特征。在选择关键点之后,使用KcNet[11]提取局部特征描述符。

1)关键点选择。鉴于在线LiDAR点云,我们考虑了一些因素(包括密度,几何特征和分布)提取了固定数量的关键点。首先,遍历所有点,并找到附近具有足够点密度的候选者。然后,使用众所周知的3D 结构张量评估每个候选关键点的线性和散射。具有强线性和散射结构的特征被认为适合定位任务。

2)描述符提取。一旦选择了所有合格的关键点,我们将为其提取有意义的特征描述符。传统上,简单的几何或统计特征用于使用深度网络学习的特征来描述点云之间的相似性。在提出的方法中,我们通过应用KcNet[11]提取特征描述符。对于每个关键点,我们收集64 个相邻点。对于每个相邻点,关键点的相对坐标及其反射强度(x,y,z,r)用于描述符提取。因此,KcNet 网络的输入为64×4张量,输出为表示关键点补丁局部特征的32 维向量。我们使用参数共享的KcNet 结构对在线点云和离线地图进行特征提取。

4.2 损失量和3D CNN

下一步是构建一个网络,以准确地推断定位偏移量(Δx,Δy,Δψ)。这是通过在解空间(x,y,ψ)中构造一个损失量并使用3D 卷积神经网络(3D CNN)对其进行正则化来完成的。首先,我们将解空间划分为x,y和ψ维度的离散空间,并将nx,ny,nψ表示为每个维度的数量。在下文中,我们将{f1,…,fN}表示为在线LiDAR 点云的关键点描述符。因此,损失量为N×nx×ny×nψ。每个像元代表具有给定偏移量的相应关键点和3D地图点之间的匹配损失。

1)可微分变换。给定预测的姿态,在线点云的所有局部关键点都将转换为其全局坐标。然后,将预测姿势的邻域划分为x,y 和偏航维度,表示为{(Δxi,Δyi,Δψi)|1 ≤i≤nx,1 ≤j≤ny,1 ≤k≤nψ} 。可 以使用由2×2 旋转矩阵和2d 平移矢量表示的变换来计算3D地图中的相应坐标:

然后,再次使用3D 地图中计算出的相应坐标的相邻点,通过KcNet 结构提取其特征描述符。损失量中的每个像元都与在线点云中的原始关键点及其特征描述符,以及地图中的相应特征描述符相关。通过使用在线点云和地图中的描述符对,我们可以通过计算它们之间的度量距离(这是正则化网络的输入),在偏移解空间中形成N×nx×ny×nψ体积。度量距离是一个32 维向量,其中每个元素都是根据距描述符对中对应元素的L2 距离计算得出的。

2)正则化。鉴于以上输入,我们希望学习正则化函数,该函数能够考虑此卷中的上下文并优化匹配损失。偏移空间中的匹配是针对每个关键点独立计算的,因此即使使用深层特征表示,也永远不可能是完美的。

受最近基于立体学习的学习方法的启发[7],将3D卷积应用于体积正则化。如图3所示,预沙漏模块由4 个3D 卷积,具有BN 和ReLU。然后是三个堆叠的3D 沙漏网络,通过编码-解码结构来学习更好的上下文特征。和其他论文的3D聚合网络相比,我们提出了一些改进的地方,提升了性能、增加了推理速度。首先,我们为预沙漏模块的特征增加了一个辅助的输出模块(图3中的输出模块0)。这个辅助的损失让网络在较浅的层学到更好的特征,对最终的预测是有利的。在每个沙漏模块中,其次我们在快捷连接中增加了1×1×1的3D卷积(图3中的虚线部分),提升性能,而不会增加计算成本。在每个nx×ny×nψ子卷上执行3D CNN,它们共享相同的参数,从而显著提高了收敛速度并有效地避免了过度拟合。

图3 我们建议的3D聚合网络结构

该网络由一个沙漏前模块(开始时有四个卷积)和一个堆叠的3D 沙漏网络组成。1×1×1 3D 卷积被添加到沙漏模块中的快捷方式连接中。

4.3 概率偏移量

在4.2 小节中,我们针对每个关键点分别计算所有偏移配置{Δxi,Δyi,Δψi}的匹配损失。在本小节中,我们介绍一个概率偏移量,以表示偏移空间中所有关键点的共识,即nx×ny×nψ量。给定偏移量,它表示在线点云和3D 地图之间的总体匹配损失。

1)边际化。假设所有关键点彼此独立,则可以通过以下公式计算偏移量ΔT=(Δxi,Δyj,Δψk的匹配概率:,其中pi(ΔT)表示第i个关键点的匹配概率在偏移量ΔT 处。由于乘积很容易引起溢出,因此上述等式转换为对数似然:

其中C(ΔT)代表在线点云与3D 地图之间在偏移量ΔT 处的总体匹配损失。在我们的实现中,我们将上述损失对数(pi(ΔT))作为输入,然后通过应用减少的平均操作将其边缘化为关键点维度上的nx×ny×nψ损失量,这与总匹配损失C(ΔT) 相对应。

2)概率。边际化损失量中每个像元的值是相应偏移量的整体匹配损失。我们沿x,y 和ψ维度应用softmax 运算,以将匹配损C(ΔT)失转换为归一化值,解释为概率P(ΔT)。最后,通过应用归约求和运算,将概率偏移量P(ΔT)边缘化为x,y 和ψ维度上的概率矢量:

4.4 时序平滑

以上各小节介绍了在线点云与地图之间的空间匹配。因此,顺序帧的概率偏移量彼此独立。但是,定位任务是一个顺序的过程,因此应该共同考虑顺序帧的姿势。在传统方法[8,13]中,直方图过滤器内的历史分布会传播以估计当前匹配分布,从而确保输出的时间平滑。遵循这种精神,介绍了递归神经网络(RNN)以实现类似的时间平滑度。更具体地说,我们在网络中使用LSTM[3],如图2 所示。来自概率偏移量的每个维度(x,y,ψ)的概率向量被视为每个参数独立RNNs 单元的输入。通过RNN的历史信息学习,定位结果的轨迹更加平滑和准确,如第5.3小节表1所示。

4.5 损失

与先前使用特征空间距离作为损失的工作[7]不同,我们将损失直接定义为估计偏移量和真实情况ΔT*=(Δx*,Δy*,Δψ*)之间的平方L2 距离。估计偏移量可以通过以下方式计算:

我们定义了两个输出模块,损失函数定义如下:

其中α是平衡因子。

5 实验内容

5.1 数据集

在实验中,使用了两个数据集。首先,KITTI数据集[10]具有里程表数据集,其中包括Velodyne HDL-64 LiDAR 传感器读数和用于评估的真相。选择里程测试基准00、02和06和进行测试。其次,我们使用移动机器人从大学校园中收集了自己的长达1.1km 的16 节数据集,每节数据集为期3 天,称为YQ16。我们选择3 天中的6 节数据集进行评估,如图4所示。

图4 建立数据集

5.2 训练

在训练阶段,我们采取两步走策略。第一步,我们只训练KcNet 结构和3D CNN。为了实现这一点,我们首先在网络体系结构中删除RNN,然后直接从根据概率偏移量推断出的概率向量中计算损失。批量大小和学习率分别设置为1 和0.01。为了使提取的特征更鲁棒,将x-y 方向上均匀分布的[0~1.0]m随机噪声和偏航方向上[0~2.0]°的随机误差添加到输入的预测姿态中。在第二步中,使用固定在min i-KcNet 结构和3D CNN 中的参数训练RNN 的参数。批次大小和学习率分别设置为1 和0.001。

5.3 性能

1)定量分析。在表1 中,我们对每种可用方法进行了定量分析。它进一步证明了我们基于学习的L3-Net 的本地化性能可与现实驾驶场景中先进的手工方法相媲美。在大多数路线中,RNN 的时间平滑性为我们提供了更好的性能,这说明了其有效性。

表1 定量分析结果

2)运行时间分析。如表2 所示,我们使用GTX 1080 Ti GPU,Core i7-9700K CPU和16GB内存评估了平台的运行时性能。关键点选择花费47.2ms,35.6ms和72.6ms,差分转换和前进步骤。每帧的总的端到端处理时间为156.4ms,从而产生了实时系统。

表2 运行时间分析结果

3)特征描述符比较。在表3 所示的描述符提取步骤中,我们用min i-KcNet 结构代替KcNet[11]和PointNet[5]。我们注意到,我们的min i-KcNet 结构明显优于KcNet 和PointNet。PoinrNet 是一个启发性的先驱,致力于解决网络体系结构中消耗点云的问题。它由堆叠在点上的独立MLP 组成,直到合成高维描述符的最后一层为止。但它并没有充分利用包含细粒度结构信息的点的局部邻域,这对于提取点云局部特征描述符至关重要。而且,在我们的设计中,min i-KcNet 的描述符大小和结构比KcNet 小得多,从而使它们可以进一步专注于局部特征学习。

表3 特征描述符比较结果

4)3D CNN。为了验证3D CNN的重要性,我们进行了以下实验:删除3D CNN 和只有输出模块0的3DCNN*,我们的结果显示在表4 中,其中使用3D CNNs×和只有输出模块0 的3DCNN*会降低定位精度。这表明与直接在描述符对之间使用L2距离(无3D CNN)相比,3D CNN可以了解真实特征距离并有效地规范化解决方案空间中的输出。另外,这个辅助的损失让网络在较浅的层学到更好的特征,对最终的预测是有利的。

表4 3D CNN比较结果

6 结语

本文提出了一种新颖的基于学习的LiDAR 定位框架,该框架旨在用于自动驾驶应用。传统定位管道中精心制作的手工模块已替换为基于学习的深度神经网络。我们的系统可达到与现有技术水平相当的定位精度。概率偏移量表示解决方案空间上的匹配置信度,使其可以部署在基于多传感器融合的定位框架中。将来,我们希望在移动车辆的动态环境中实现全球定位。

猜你喜欢
关键点局部概率
日常的神性:局部(随笔)
论建筑工程管理关键点
水利水电工程施工质量控制的关键点
概率与统计(1)
概率与统计(2)
凡·高《夜晚露天咖啡座》局部[荷兰]
利用定义法破解关键点
丁学军作品
概率与统计解答题集锦
机械能守恒定律应用的关键点