自动驾驶中的时序LiDAR帧预测
摘要
在自动驾驶和机器人等许多领域中,预测动态场景的未来发展至关重要。本文提出了一类新颖的神经网络架构,用于根据先前的激光雷达帧预测未来的激光雷达帧。由于该应用中的真实值就是序列中的下一帧,我们可以以自监督的方式训练我们的模型。我们所提出的架构基于FlowNet3D和动态图卷积神经网络。我们采用Chamfer距离(CD)和推土机距离(EMD)作为损失函数和评估指标。我们使用新发布的nuScenes数据集对模型进行训练和评估,并通过多个基线方法对其性能和复杂性进行了表征。与直接使用FlowNet3D相比,我们所提出的架构在CD和EMD上均实现了近一个数量级的降低。此外,我们还表明,在不使用任何标签监督的情况下,我们的预测能够生成合理的场景流近似结果。
1. 引言
一些自动驾驶公司,如nuTonomy、Waymo和Lyft,最近发布了包含高分辨率激光雷达点云和大量标注的大规模数据集[5, 22]。也许更引人注目的是,这些数据集提供了高频率的时间序列激光雷达帧,即激光雷达“视频”,从而为在激光雷达点云分析中利用时序信息打开了大门。本文旨在利用新发布数据集所提供的时序数据,采用深度学习方法解决点云预测任务,即根据一系列过去的点云帧来预测未来的点云帧。尽管该任务可轻松应用于其他场景,但我们特别在自动驾驶和激光雷达的背景下实现并评估了我们的模型。自动驾驶问题的很大一部分在于帮助车辆预判事件并避免碰撞。为此,预测点云可用于增强目标跟踪流程,或为未来的检测生成初步的区域建议。
此外,此任务无需数据标注;标签即为激光雷达序列的下一帧,因此我们的网络可以以自监督的方式进行训练。
从点云中提取时间信息是一项困难的任务,该领域内的研究工作较少。传统的序列数据架构(如LSTM)由于点云的不规则结构而无法直接应用于点云。对点云进行体素化可以解决这一问题,但会降低点云的分辨率,并在预测中引入量化伪影。本文探索了多种直接在点云上操作以提取时间特征并预测未来帧的端到端模型。特别是,我们设计了一个通用的架构框架,并实现和评估了其多个变体。通过实验,我们评估了模型的性能和复杂度,并分析了不同架构设计选择之间的权衡。
2. 相关工作
2.1. 点集上的深度学习
特征提取 早期在点云上进行学习的尝试涉及将点云转换为体素,并使用卷积神经网络来提取特征。诸如[16, 28]等方法在分类和检测任务上能够取得合理的结果。然而,这些方法通常受限于较高的计算成本和量化伪影。2017年,Qi等人提出了PointNet[19],这是首个直接在点云上操作的深度学习架构,通过利用最大池化等对称函数,使网络对输入排列具有不变性。后续工作[20, 23, 10]进一步利用点云中的局部结构来学习局部特征描述符。其中,动态图卷积神经网络(DGCNN)[24]是一个特例。虽然大多数架构基于欧氏距离对点进行分组并学习特征,但DGCNN则根据点在特征空间中的距离动态地进行分组,从而具有更强的表达能力以及更有效的局部特征。我们在所提出的架构中充分利用了这些特性。
生成模型 最近,生成对抗网络和自编码器等生成模型已被应用于点云。这就引出了对点云相似性度量的需求。[8]提出了两种这样的度量方法,即Chamfer距离(CD)和Earth Mover’s Distance(EMD)。我们训练网络以最小化预测点云与真实值之间的这些距离函数。
2.2. 点集上的时序学习
Temporal Learning with Neural Networks 循环网络在序列数据上的应用已被广泛研究。在过去十年中,它们被应用于视频预测[15]任务,这在概念上与我们的任务相似。然而,最近研究表明,前馈网络在序列数据上的表现至少与循环网络相当,甚至更优[2]。前馈网络不存在梯度消失问题以及循环网络中常见的其他训练不稳定性,通常速度更快、更可并行化,并且在训练过程中通常需要更少的内存。类似于循环网络,前馈模型也已被应用于时序视频处理和预测任务[27]。
受此启发,我们选择在所提出的架构中使用前馈网络。
点集上的时序学习 2018年,Liu等人发表了FlowNet3D[11],该方法接收两个点云并预测它们之间的场景流。我们提出的架构受到FlowNet3D的启发,但更专门地针对预测任务进行了定制,并采用了更现代的特征提取器。在FlowNet3D发表后的短时间内,还有少数其他工作也解决了点云场景流问题[7, 12],而另一些工作则在目标检测中利用了时序信息[21]。最近,已有几篇论文研究了点云预测问题。[6]引入了一种直接在点云上操作的循环架构,而[25]则从点云中提取全局特征向量,使用LSTM学习时序模式,并将LSTM的输出解码为预测点云。
3. 方法
我们的工作旨在根据先前的帧预测未来点云帧。在本节中,我们介绍我们的架构框架,描述该框架的几种变体,并分享我们的训练细节。
3.1. 架构框架
我们的通用架构框架如图1所示。给定过去4帧的点云 xt−3 ,…, xt,我们的网络生成 x∗ t+1,作为对 xt+1 的预测值。虽然2帧已足以恢复场景中物体的速度,但我们基于4帧进行条件建模,因为至少需要3帧才能恢复二阶动力学(即加速度),而额外帧能够提供上下文信息。在网络的每一阶段,我们首先从每帧中提取逐点特征,然后利用在[11]中引入的流嵌入层来学习场景的动态。经过两个这样的阶段后,我们在唯一剩余的点云上提取特征,并将这些特征输入至一个细化模块。细化层为 xt 中的每个点输出一个运动向量。我们将这些预测的运动向量加到 xt 上以生成 x∗ t+1。我们选择将任务重新表述为运动预测问题,而不是直接回归输出点云,因为这能增强模型输出的可解释性,并且我们发现这种方法更容易实现。
还可以进行优化。通过自回归方式应用该模型,可以预测更远未来的点云,即:将 x∗ t+1作为伪真实值反馈给模型以预测 xt+1,再用其预测 x∗ t+2,依此类推。
我们探索了两种调节框架以创建不同架构的方法。第一种方法是选择特征提取器。在本文中,我们实验了PointNet++层[20]以及来自[24]的EdgeConv层。第二种方法是在网络初始阶段是否对特征进行下采样,并在细化阶段再上采样回原始分辨率。我们将在接下来的章节中详细讨论这些内容。
3.2. 特征提取器
PointNet++层 PointNet++层接收输入的点云 {p1,p2,…,pn},pi ∈ R3及其特征{f1, f2,…, fn}, fi ∈ R c,并输出一组新的特征 {f′ 1, f′ n′}, f′ i ∈ Rc′。对于每个点,它将给定半径内的邻居进行分组,并对局部区域应用PointNet操作,从而生成一个新的特征向量。更具体地说:
$$
f′ i= \max_{j| |pj −pi|≤r} hθ(fj,pj −pi)
$$
其中 r 是球查询的半径, hθ 是一个具有权重 θ 以及输入和输出维度分别为 Rc+3 和 Rc′ 的多层感知机(MLP),max是逐元素最大值函数。
边缘卷积层 边缘卷积层仅接收点特征 {f1, f2,…, fn}, fi ∈ Rc,并输出一组新的特征 {f′ 1, f′ 2,…, f′ n′}, f′ i ∈ Rc′。对于每个点,它在特征空间中找到其k近邻(KNN),并在该点的原始特征与其邻居特征之间的差值上应用一个多层感知机(MLP)。然后通过最大池化将所有k个特征向量进行聚合。具体来说:
$$
f′ i = \max_{j =1…k} hθ(f j i − fi, fi)
$$
其中f j i 是 fi在特征空间中的第j个最近邻的特征, hθ 是一个多层感知机,其输入和输出维度分别为R 2c和R c′,其余符号的定义与公式1中相同。
这两个特征提取器在计算上非常相似;它们都计算局部特征,并使用对称的最大池化函数实现排列不变性。主要区别在于它们定义局部性的方式不同。PointNet++层在原始欧几里得空间中对点进行分组,而EdgeConv层则在计算得到的特征空间中动态地对点进行分组。这使得EdgeConv层具有更有效的较大感受野,并能够计算出更具描述性的局部特征,从而提供在点云分类和分割性能方面具有优势。
3.3. 下采样
在原始论文中,EdgeConv层保持点云的大小不变,而PointNet++层通过迭代最远点采样(FPS)对点云进行下采样,仅对采样点子集进行特征计算。由于我们的模型为每个点预测运动向量,因此需要将下采样特征上采样回原始点云的大小。[11]使用集合上卷积层实现这一过程。给定一个低分辨率点云 {p1 ,p2 ,…, pn′},pi ∈ R 3及其特征{f′ 1 , f′ 2 ,…, f′ n′}, fi ∈ R c,以及先前计算得到的高分辨率点云 {p1 ,p2 ,…, pn} ,pi ∈ R 3及其特征 {f1 , f2 ,…, fn} , fi ∈ R c,集合上卷积层通过对低分辨率点云中的点进行分组,对高分辨率点云中的每个点应用PointNet++操作。然后,这些特征再通过一个额外的多层感知机进行进一步处理。更准确地说:
$$
f∗ i = h θ 2 ( \max_{j | | p j − p i | ≤ r, p j ∈ p′} h θ 1 (fj ,p j −pi) , fi)
$$
其中 p′表示低分辨率点云中的点集。在最终的上采样层,[11]使用来自[20]的特征传播层,该层将第一个多层感知机替换为逆距离加权平均插值。我们也在基于PointNet++的架构中采用了这种上采样策略。
尽管EdgeConv尚未与下采样结合使用,我们仍探索了这种架构配置在点云预测中的应用,并开发了新颖的下采样和上采样模块。为此,我们借鉴了EdgeConv与PointNet++层之间的相似性,并基于这些相似性设计了采样方案。在对点进行下采样时,我们不在欧几里得空间中使用FPS,而是在特征空间中进行计算。在上采样时,我们使用集合上卷积层,但同样地,在先前计算的特征空间中进行点的分组,而非在欧几里得空间中。
下采样有助于降低网络的计算复杂度,因此具有优势。但它也会降低特征的分辨率,并在上采样时产生歧义。因此,使用下采样的网络需要更大,以解决这些歧义,并在网络架构瓶颈处保留足够的特征内容。有关下采样与非下采样架构之间的比较,请参见表1。
| 模块 | 下采样 | 下采样 |
|---|---|---|
| 特提征取 1 |
SR=0.25×,
多层感知机=[128, 128] |
多层感知机
=[32, 32] |
| F嵌lo入w 1 |
SR=1×,
多层感知机=[128] |
多层感知机
=[32] |
| 特提征取 2 | SR=0.25×, mlp=[256, 256] | mlp=[64, 64] |
| Flow 嵌入 2 | SR=1×, mlp=[256] | mlp=[64] |
| 特提征取 3 |
SR=0.2×,
多层感知机=[512] |
多层感知机
=[128] |
| 细化 |
上卷积1: SR=5×,
多层感知机1=[512], 多层感知机2=[512] 上卷积2: SR=4×, 多层感知机1=[512], 多层感知机2=[512] 特征传播模块: SR=4× 多层感知机=[256] 多层感知机: [256, 128, 3] | 多层感知机: [512, 256, 128, 3] |
表1:下采样与无下采样。下采样与无下采样模型之间的架构比较。SR=表示采样率,Upconv指代[11]中引入的集合上卷积模块,FeatProp指代来自[20]的特征传播模块。有关更多架构细节,请参阅补充材料。
3.4. 提出的架构
调整我们框架的特征提取器和采样策略,得到了四种不同的架构,如表2所示:带下采样的PointNet++(PN++ w/ DS)、不带下采样的PointNet++(PN++ w/o DS)、带下采样的EdgeConv(EC w/ DS)以及不带下采样的EdgeConv(EC w/o DS)。具体架构细节在补充材料中描述。
| 下采样 | ||
|---|---|---|
| PointNet++ | FlowNet3D [11], PN++w/ DS | PN++ w/o DS |
| EdgeConv | 带DS的EC | 不带DS的EC |
| 无下采样 |
表2:架构分类。我们提出的架构与FlowNet3D之间的主要架构差异。
3.5. 损失函数
对于我们的损失,我们需要一个函数来衡量两个点云 P和 Q之间的相似性。按照[8]的方法,我们使用倒角距离和EMD:
$$
L_{CD}(P, Q)= \frac{1}{2} (\sum_{p \in P} \min_{q \in Q} |q −p|^2_2 +\sum_{q \in Q} \min_{p \in P} |p − q|^2_2)
$$
$$
L_{EMD}(P, Q)= \min_{\phi\in\Pi} \sum_{p\in P} |p − \phi(p)|^2
$$
其中 $\phi$ 表示一个双射。
与[8]中一样,我们使用了真实EMD的可并行近似[4]。[1]指出,倒角距离并不总是能保持点云之间更精细的视觉相似性,在优化时,可能会导致在真实值中点更可能出现的区域过度聚集。EMD能更准确地捕捉视觉相似性;然而,倒角距离在捕捉较粗糙的结构相似性方面仍然表现良好,并且我们发现它是一个更容易优化的函数。在我们的损失函数中,我们结合使用了这两种方法:
$$
L(P, Q)= \alpha L_{CD}(P, Q)+ \beta L_{EMD}(P, Q)
$$
其中 $\alpha$ 和 $\beta$ 是通过交叉验证选择的参数。
3.6. 训练细节
目前存在两种流行的训练生成式时序网络的方法:课程学习方法[3]和教师强制[9]。在教师强制中,模型仅使用真实值输入进行训练。然而,这会阻止模型学习如何像在测试时那样将自身的预测值作为输入。相反,我们采用基于课程学习的方法,使用模型自身的预测值作为输入来训练模型。我们首先训练模型预测 x∗ t+1,一旦收敛,便开始训练 x∗ t+2,并将预测的 x∗ t+1重新输入模型。通过这种方式,随着模型逐渐具备学习更复杂任务的能力,我们缓慢增加训练难度。我们重复此过程,直到验证损失在训练下一个时间步时不再下降。
我们在nuScenes数据集上训练我们的模型,这是一个最近发布的大规模自动驾驶数据集。该数据集包含超过32万个点云,这些点云来自以20赫兹频率采集的旋转激光雷达扫描,每个点云包含超过34,000个点。然而,其中许多点检测的是自车车顶,这并不重要。此外,最外层点非常稀疏,与潜在的下游驾驶决策关联较小。因此,我们通过选择从原点起第12,000到第34,000个点之间的环形区域对点云进行预处理。这种方法充分滤除了自车以及点云的边缘部分。我们保留激光雷达扫描仪原始坐标系中的点云,而不将其变换到静态全局坐标系,仅使用原始传感器数据进行操作。然而,一个有趣的未来工作方向可以研究这种变换如何影响预测精度。
我们的模型使用斜率0.2的leaky ReLU激活函数,后接批归一化,输出层之前的层除外。为了训练这些模型,我们使用解耦权重衰减和L2正则化的AdamW优化器[14],并采用带重启的余弦退火学习率调度器,每次我们进入下一个时间步[13]时进行重启。在损失函数中,我们分别为 α和 β选择1和0.02的值。对于 t+ 1,我们使用最大学习率为 0.001,并发现模型在2个训练轮数内收敛;对于所有其他时间步,我们使用最大学习率为0.0001,并发现它们通常在1个训练轮数后收敛。我们持续训练直到 t+3,此后损失不再下降。
处理大规模点云的挑战之一是计算成本。对于 t+ 1,我们使用了批量大小为4;然而,训练未来时间步会线性增加内存占用,导致批量大小下降,并使我们的批归一化层失效。为了解决这一问题,我们在 t+1上使用常规的批归一化进行训练,但对于未来的时间步,我们转而使用第一个时间步学习得到的均值和方差的运行估计值来对特征进行归一化。当在超过 t+1的时间步上进行训练时,网络的权重变化不如初始步骤显著。因此,来自t+1的已学习统计量在 t+1之后仍然是足够的估计值,从而使得我们能够使用较小的批量大小进行训练,同时保持精度。
4. 实验
在本节中,我们评估了我们的模型与多个竞争性基线的性能。我们对模型的精度和复杂度进行了定量分析,并提供了定性可视化。
4.1. 基线
身份 我们第一个也是最简单的基线方法是使用 $x_t$ 作为对 $x_{t+1}$ 的预测值。我们称此为恒等基线。
FlowNet3D 开箱即用(FN3DOOB) 该基线采用原始论文中在 FlyingThings3D[17] 上训练的 FlowNet3D,计算从 $x_t$ 到 $x_{t−1}$ 的场景流,并从 $x_t$ 中减去该场景流以生成对 $x_{t+1}$ 的预测值。请注意,预测场景流并不等同于预测可最小化两个点云之间距离的运动向量。第一个点云中的每个点加上其流向量后,不一定对应第二个点云中的某个点;相反,它给出的是第一个点在第二个点云时间帧中的对应位置。然而,在点云足够密集的情况下,预测场景流可以近似于最小化两个点云之间的距离。
改进的FlowNet3D (FN3DA) 我们还采用了FlowNet3D架构,并直接在我们的任务上对其进行训练。FlowNet3D仅输入两个点云,因此我们在 $x_{t−1}, x_t$ 上训练它以预测 $x_{t+1}$。该网络属于PointNet++类别,具有下采样功能,可以被视为作为PN++ w/ DS的双帧版本。我们使用与我们的模型相同的训练流程。
4.2. 定量结果
我们在nuScenes测试集上评估了我们的模型,该测试集包含约70,000帧,预处理方式与训练数据相同。为了衡量预测的精度,我们使用预测点云与真实值之间的倒角距离和EMD进行度量。我们的结果如图2和表3所示。
FN3DOOB的表现远差于其他方法,并且扭曲了图2的尺度,因此我们将其省略以使图表更易于解释。
| 模型 | 倒角距离 (m²) | EMD (m) | 模型大小(MB) | 运行时间(秒) | 最大分配内存(MB) |
|---|---|---|---|---|---|
| 身份 | .2472 | 34.88 | - | - | - |
| FN3DOOB [11] | 1.2084 | 91.68 | 14.9 | .2946 | 669.6 |
| FN3DA | .1399 | 33.94 | 14.9 | .2946 | 669.6 |
| PN++w/ DS | .1381 | 33.14 | 22.1 | .2635 | 783.5 |
| PN++ w/o DS | .1813 | 37.63 | 3.7 | .5079 | 1007.2 |
| 带DS的EC | .1837 | 35.49 | 10.2 | .2591 | 907.9 |
| 不带DS的EC | .1450 | 34.23 | 3.9 | .6198 | 721.3 |
表3:方法的精度和复杂度。该表显示了前5个未来帧的平均倒角距离和EMD,以及模型的大小、运行时间和内存占用。
在所有方法中,我们发现FN3DA、PN++w/ DS和EC w/o DS实现了最低的倒角距离和EMD,其中PN++ w/ DS表现略好。因此,对于EdgeConv而言,不进行下采样对实现良好性能至关重要;而对于PointNet++,下采样反而更有利。我们推测这是由于这两种架构在表达能力上存在固有差异。PointNet++架构从下采样中受益因为内存效率使其能够使用更宽的层,并学习更复杂、分层的特征。事实上,在大致相同的内存消耗下,我们的下采样网络比非下采样网络宽4倍。然而,EdgeConv架构本身就能够利用较小的层学习复杂的特征,因此从更大的网络中获益较少。另一方面,下采样引起的特征模糊性可能对EdgeConv更有害,因为在特征空间中解决这些模糊性并进行上采样比在欧几里得空间中更具挑战性。
尽管PN++ w/o DS和带DS的EC在倒角距离方面优于恒等基线,但它们的EMD值略高。这可能是由于EMD与视觉相似性有很强的相关性。尽管我们的深度网络可以学习点云动态,但它们常常表现出伪影,难以复制原始LiDAR扫描的清晰外观。nuScenes高帧率导致每帧之间的运动更小。这使得恒等基线能够保持极低的EMD,因为它保留了清晰的在忽略场景动态的情况下,不会受到严厉惩罚,同时仍能保持原始点云的外观。
最后,我们发现FN3DOOB实际上是一种破坏性操作,其导致的倒角距离和EMD比恒等基线更高。我们认为这是由于从合成的FlyingThings3D数据集到真实激光雷达扫描的域迁移,以及点云预测与场景流问题之间的根本差异所致。
我们还在表3中展示了模型的大小、运行时间和内存占用情况。我们的模型使用PyTorch实现,并在Nvidia Titan RTX上进行测试。运行时间和最大内存分配值是在批量大小为1的情况下,对具有22,000个点的点云预测 t+ 1时获得的。下采样模型通常比其非下采样对应模型显著更快,但体积更大。
基于此,我们认为带DS的PN++和不带DS的EC是两种最可行的模型。它们都表现出高精度,但在计算优势方面有所不同。带DS的PN++的运行时间大约快2倍,而不带DS的EC的模型大小大约小6倍。因此,如果推理速度更为重要,则应使用带DS的PN++;但如果模型大小更为重要,则应使用不带DS的EC。
虽然FN3DA表现具有竞争力,但PN++ w/ DS在速度和精度方面均超过它,因此FN3DA并未提供显著优势。然而,FN3DA仅使用两帧即达到了与PN++w/ DS相当的精度,表明额外帧可能只会略微提升性能。我们推测,引入更多帧对精度的提升作用微乎其微。
4.3. 可视化
我们在图3中可视化了 t+ 5的一些预测结果。在此场景中,自车正驶过一辆停在V形柱旁的卡车。在可视化的放大区域中,卡车位于右上方,而柱子则位于左侧。在所有方法中,PN++ w/ DS和不带DS的EC最准确地预测了卡车和柱子的动态。这一性能在误差可视化中得到了验证,除PN++ w/ DS和不带DS的EC外,其他方法在卡车和柱子周围均显示出绿色或黄色区域。而这两个方法则显示出几乎完全为紫色的点云,表明接近0误差。虽然此处仅展示了一个场景,但我们已在整个nuScenes mini数据集(10个场景)上进行了广泛的定性测试,并验证了平均而言,PN++w/ DS和不带DS的EC优于其他方法,这与我们的定量分析结果一致。我们已在补充材料部分提供了一些可视化结果。
4.4. 场景流估计
我们还展示了我们的模型能够合理地估计场景流。在图4中,我们可视化了运动向量由我们的模型和基线在图3所示的同一场景中预测,特别强调了柱子和卡车。由于自车向前移动,柱子和卡车的运动向量指向后方。PN++ w/ DS 和 不带DS的 EC 表现最佳,生成平滑且准确的场景流,而其他方法要么表现出不连贯的流(FN3DOOB 和 PN++w/o DS),要么低估了幅度(FN3DA,不带DS的EC),这与图3的结果一致。更多不同场景下的流可视化可在补充材料中找到。
FN3DOOB,(b) PN++ w/ DS,(c) 带DS的EC,(d) FN3DA,(e) PN++ w/o DS,(f) 不带DS的EC。可视化中的箭头表示我们的模型预测的运动向量,颜色对应于幅度,如 (g) 中的颜色条所示。超出颜色条范围的向量被省略。)
我们希望强调的是,我们的自监督场景流估计并非易事。如前所述,最小化两个点云之间的倒角距离和EMD并不等同于最小化场景流。直接使用点云相似性度量在时间 t和 t+1之间学习自监督场景流会导致退化解,其中预测的向量仅仅连接点。事实上,文献中已有不少近期论文试图通过添加平滑约束或循环一致性[26, 18]来正则化这一病态问题。我们的工作通过利用先前帧来解决此问题。由于网络不再获得 t+1,因此无法产生退化解。然而,它仍然从先前帧中获得了关于场景动态的充分信息以预测场景流。因此,除了FN3DOOB(它是FlowNet3D的一个平凡扩展)之外,我们所描述的其余方法在以一种新方式正则化自监督场景流问题的意义上是新颖的。在此,我们仅对估计的场景流进行定性评估作为概念验证;然而,未来工作可以在此基础上进一步发展,并进行更严格的定量分析。
5. 结论
在本文中,我们通过设计一类新颖的神经网络架构和训练框架,探索了点云预测任务。我们表明,我们的顶级模型(PN++ w/ DS 和 不带DS的EC)能够生成令人信服的未来点云预测,并且在多个强基线方法中具有竞争力。我们的可视化有助于验证我们的发现,并表明我们的模型可用于生成场景流的近似结果。
我们的工作具有多种应用和扩展,包括自监督场景流预测、目标跟踪、时序目标检测和车辆控制。我们使用的倒角距离和EMD损失函数可以通过引入其他项(如感知损失或平滑约束)来进一步改进。最后,可以利用RGB传感器融合技术进一步提高我们的预测精度。
75

被折叠的 条评论
为什么被折叠?



