
# TimePillars: 具有时间递归性的 3D LiDAR 物体检测

埃内斯托·洛萨诺·卡尔沃 $^{1*}$ 贝尔纳多·塔维拉 $^{1*}$ 弗雷德里克·卡尔 $^{1}$ 尼克拉斯·古斯塔夫松 $^{2}$

Jonathan Larsson $^{2}$ Adam Tonderski $^{2}$

 $^{1}$ 查尔姆斯技术大学 @chalmers.se $^{2}$ Zenseact @zenseact.com

## 摘要

在机器人技术，尤其是自动驾驶领域，将物体检测应用于 LiDAR 点云是一个相关任务。 现有的方法主要使用来自单个传感器扫描的信息。 近期的一些方法在相对较低的推理时间下可以获得良好的性能。 然而，鉴于 LiDAR 数据的固有稀疏性，这些方法在长距离检测（例如 200 米）方面存在困难，而我们认为长距离检测对于实现安全自动化至关重要。 聚合多个扫描不仅可以获得更密集的点云表示，还可以使系统具有时间感知能力，并提供有关环境如何变化的信息。 然而，这些解决方案通常是特定于问题的，需要仔细的数据处理，并且往往无法满足运行时要求。 在这种情况下，我们提出了 TimePillars，这是一种利用时间上递归的对象检测流水线，它利用 LiDAR 数据的柱表示，同时遵守硬件集成效率约束，并利用 Zenseact Open Dataset (ZOD) 的多样性和长距离信息。 通过实验，我们证明了先验信息的优势，并展示了基本构建模块如何足以实现强大而高效的结果。

### 1. 引言

自动驾驶的一个主要挑战是创建周围环境的准确 3D 表示，这对于可靠性和安全性至关重要。 自动驾驶车辆需要能够识别其附近的物体，例如车辆和行人，并准确确定它们的位置、大小和旋转。 通常使用在 LiDAR 数据上运行的深度神经网络来执行此任务。

![Image](images/4308f5c2f398a9b26c3f6cc19cb171f90a2e94c72b9e3a2651d8df1f1d2cf492.jpg)

<div style="text-align: center;">Figure 1. Detection range from LiDAR point cloud data. Depicted in red, relevant established datasets [^2] [^10] [^24], which present annotations up to at most 75 m. In green, long-range information provided by [^1], reaching around 200 m of distance.</div>

大多数研究都侧重于单帧方法，即一次使用一个传感器扫描。 这对于在最大 75 米的距离上的经典基准 [^2] [^10] [^24] 来说已经足够，但 LiDAR 点云本质上是稀疏的，尤其是在远距离。

一种解决这个问题的方法是使用点云聚合，它建议将一系列激光雷达扫描结果连接起来，从而得到更密集的输入。然而，以这种方式聚合点云在计算上非常昂贵，并且会错过在网络中执行聚合所带来的优势。一个明确的替代方案是使用循环方法 [^5] [^11] [^17]，这些方法可以随时间累积信息。

其他增加检测范围的技术包括使用高级操作，例如稀疏卷积、注意力模块和 3D 卷积 [^4] [^7] [^8] [^25]。然而，与目标硬件的兼容性是这些方法中经常被忽略的一个方面。用于解码

---

实现策略和训练神经网络的方法通常存在显著差异。特别是就支持的操作和延迟而言 $^{[18]}$。诸如稀疏卷积或注意力等操作通常不支持在现有目标硬件上，例如 Nvidia Orin DLA。此外，由于实时延迟要求，3D 卷积等层通常不可行。这强制使用简单的操作，如 2D 卷积。

在本文中，我们提出了 TimePillars，这是一种模型，它依赖于 2D 卷积，[^12] 的支柱输入表示和卷积循环单元，从而尊重常见目标硬件上支持的操作集。

通过使用单个卷积和辅助学习，将自运动补偿应用于循环单元的隐藏状态。一项消融研究表明，使用辅助任务来确保此操作的正确性是合适的。

我们还研究了循环模块在流水线中的最佳放置位置，并清楚地表明，将其放置在网络的骨干网和检测头之间可以获得最佳性能。

我们通过在刚刚发布的新 Zenseact Open Dataset (ZOD) [^1] 上展示了我们方法的有效性。与两个 PointPillars 基线相比，TimePillars 获得了显著的评估性能，其中一个基线是单帧模型，另一个基线使用多个聚合的点云作为输入，称为多帧 (MF) PointPillars。此外，TimePillars 在重要的骑自行车者和行人类别上实现了明显更高的平均精度 (AP)，尤其是在远距离。最后，TimePillars 的延迟明显低于多帧 PointPillars 的延迟，这使其适用于实时系统。

我们的主要贡献可以概括如下：

- 我们提出了一种新颖的时序循环模型，称为 TimePillars，它解决了 3D LiDAR 对象检测任务，同时尊重常见目标硬件上支持的操作集。

- 我们表明，与单帧和多帧 PointPillars 基线相比，TimePillars 实现了明显更好的性能，尤其是在远距离（最远 200 米）。

- 迄今为止，这是第一个在新的 Zenseact Open Dataset [^1] 上进行基准测试的 3D LiDAR 对象检测模型。

局限性。我们仅关注 LiDAR 数据，不使用其他传感器输入。此外，我们的方法基于一个最先进的基线。尽管如此，我们认为我们的框架具有通用性，因为对基线的未来改进将转化为我们方法整体性能的提高。

### 2. 相关工作

尽管 2D 对象检测方法在 [^14] [^21] [^22] [^26] 方面取得了成功，但对鲁棒感知的需求推动了对 3D 替代方案的积极探索。作为深度学习在原始点云上的第一大步，Qi 等人 [^19] 提出了一种称为 PointNet 的网络架构，该架构被证明能够直接学习于一个无序的点集。自其发布以来，有几种方法相继出现 [^20] [^23]。然而，点方法在效率方面不足，无法满足本研究中考虑的限制。投影方法 [^28] [^29] 将 LiDAR 数据直接转换为（伪）图像域，从而可以使用标准的图像检测架构。虽然投影方法是一种更便宜的替代方案，但它们不会提取原始点特征，因此会造成一定的信息损失。在本研究中，我们重点关注剩余的一组，即体素（基于体素）方法。这些方法在精度和效率之间的权衡方面具有更平衡的地位。

目前最先进的技术在[^4] [^6] [^8] [^25] 领域实现了高度准确的结果。 然而，这些方法通常受益于其规范没有约束，这使它们可以自由采用更复杂的架构。 考虑到我们旨在遵守的硬件限制，例如对允许的操作、计算复杂性和内存使用的限制，我们过滤掉不符合这些要求的基线候选模型。 这些是计算效率低下的模型，或者其关键组件包含不适合在硬件约束下集成的操作，例如自注意力层或稀疏卷积。 然后，我们分析剩余的文献，并建议通过研究传感器数据在时间上的处理方式，将相关工作划分为几个部分。 具体来说，我们介绍了单帧方法、点云聚合技术和具有时间感知的算法。

#### 2.1. 单帧方法

VoxelNet [^30] 是一种创新的早期方案，它使用基于体素的方法实现了成功的结果。 然而，它仍然太慢，无法用于实时应用。 SECOND [^27] 使用稀疏卷积，实现了更短的推理时间和更高的性能。 PointPillars [^12] 在体素化的哲学上发生了重大变化，它不是使用规则的体素，而是将点云离散为垂直的柱子，定义了柱子。

#### 2.2. 点云聚合

FaF [^16] 证明了考虑多次传感器扫描对提升检测准确率的益处。该实现使用了激光雷达的BEV表示，并分析了采用早期融合方案（聚

---

合在网络初始阶段）还是后期融合（在网络更深的连续层中进行）。后续，IntentNet [^3] 用基于二维卷积的更高效模块替代了原有的使用三维卷积的帧融合模型。最近，[^8] 提出仅聚合有效信息。为此，他们引入了残差点的概念，将连续帧之间发生变化的点，也就是携带有效信息的点，定义为残差点。将这些点与过往的前景点（历史信息）结合，即可得到信息更丰富的点云。

#### 2.3. 时间感知

与聚合不同，建模时间依赖关系可以反复地保留跨时间的相关知识，同时遵守硬件限制。在PointPillars取得成功后，[^17]尝试在PointPillars架构中，在骨干网络之后和检测头部之前添加一个convLSTM。然而，如果使用精细的柱，结果并没有改善整体的先前架构。一种替代方案，如[^11]所述，选择了3D稀疏数据表示。特征被输入到convLSTM中，该convLSTM在由3D稀疏U-Net风格骨干网络处理之后。隐藏状态的EGO运动补偿是手动进行的，使用了零填充。最近，FS-GRU [^5]将其应用扩展到运动预测任务，并使用convGRU来建模时间依赖性并启用特征共享。作者选择在网络骨干之前的内存放置，我们通过实验证明该配置是次优的。

我们的方法，TimePillars，以PointPillars的理念为起点，并在时间融合上下文中进行了扩展。与[^11]不同，我们避免使用3D数据表示，因为它具有很高的计算成本，并且避免使用稀疏运算，因为它们与硬件加速器不兼容。我们认为EGO运动补偿任务至关重要，并以一种卷积方式实现了一种有效的执行方法，这基于[^5]背后的直觉。然而，与仅依赖编码的柱特征作为隐藏状态的FS-GRU论文不同，我们证明利用来自骨干网络的进一步开发的潜在信息，可以为内存提供更有价值的内容。尽管我们的方法需要更仔细的训练周期，但它显示出更高的准确性。最后，与现有相关工作不同，我们拥有Zenseact开放数据集[^1]的优势，该数据集在规模、多样性和长距离LiDAR数据方面具有优势。

### 3. TimePillars

在本节中，我们详细介绍了我们的方法，TimePillars，包括数据处理和神经网络架构。

#### 3.1. 概述

我们从[^12]中建议的架构基础上开始，并改进了柱的创建方式，因为这对于流程（靠近原始数据）非常重要。然后，该模型被扩展到多帧架构。我们通过包含一个convGRU来设定时间感知，该convGRU位于骨干网络之后，用于长期系统内存。我们提出的方法如图2所示，以下是对每个涉及的块的详细描述。

#### 3.2. 输入预处理

我们采用柱化[^12]来提取输入点云的离散表示。与体素不同，柱可以被视为垂直的列切片，它们仅在地面维度（x和y）上延伸，并且在垂直维度上具有固定高度（z）值。这种方法可确保网络输入维度的稳定，无需在体素化中对z轴进行分箱，同时捕获重要的垂直信息，并可以使用2D卷积实现高效处理。

然而，一个直接的问题来自柱形化：生成的柱形图中，大量的柱形是空的，或者具有非常高的稀疏度（约为 97%，[^12]）。 这是一个很大的局限性，当处理激光雷达点云时，通常会遇到这种情况，论文的作者试图通过限制每个样本中非空柱形的数量（表示为 P）来解决这个问题。 这种方法可以缓解问题，但需要使用柱形采样或填充来达到所需的限制，而这些操作最终可能会导致信息丢失。

相比之下，我们采用动态体素化 [^29]，旨在消除设置每个体素（柱形）的预定义点数的需求。 不再对每个单独的柱形进行截断或填充操作。 而是通过将点视为一个整体实体，将数据样本与所需的总点数 $N_{t}=200.000$ 匹配。

Denote D as the number of channel dimensions; $N_{p}$ as the upper limit of points per pillar; and P to be the number of non-empty pillars per sample. 我们的预处理，得益于动态体素化，生成一个形状为 $(N_{t}, D)$ 的点张量，这与原始 PointPillars 论文中的 $(D, P, N_{p})$ 不同。 这种抽象级别具有几个有益的影响。 最小化信息损失（所有可用于柱体的点都可用），并且生成的嵌入变得 менее 随机。

#### 3.3. Model architecture

我们详细介绍了神经网络架构，由一个柱编码器、一个 2D CNN 主干和检测头组成。

---

![Image](images/2feb80541baa805525e03b2f3bf1eff42bf8469cfec848b875added510046f37.jpg)

<div style="text-align: center;">Figure 2. TimePillars pipeline overview. Our method takes LiDAR point clouds as input, and outputs object detection predictions based on past experience (memory) and observations in the present. Preprocessing and postprocessing stages accommodate input raw LiDAR data and detection predictions for feature encoding and bounding boxes extraction, respectively. Valuable information, early encoded as pillars and further developed by a 2D convolutional backbone, is saved by a convGRU-based memory unit. A feature EGO-motion compensation module, guided by auxiliary learning, guarantees memory correctness across time.</div>

#### 3.3.1 Pillar feature encoder

柱特征编码器将（预处理的）输入张量映射为伪 BEV 图像。 鉴于使用了动态体素化，因此对原始提出的简化 PointNet 进行了相应的调整。 该论文对输入应用 1D 卷积，然后进行批处理归一化和 ReLU，得到一个 $(C, P, N_p)$ 张量，其中 C 表示通道数。 在最终的 scatter max 层之前，对通道进行最大池化，从而得到一个形状为 $(C, P)$ 的潜在空间。 这就是我们架构的不同之处。 鉴于我们的张量最初被编码为 $(N_t, D)$，经过前面的层后得到 $(N_t, C)$，我们移除了最大池化操作，因为它不再适用。

我们的方法将所有点视为一个整体，因此不再需要对通道进行降维。 但是，最大化表示值的特征的概念仍然存在，并且它隐含在随后的 scatter max 层中。 它的应用会生成一个新的张量，其中特征的最大值被散射到特定的网格位置。

生成的 BEV 伪像的形状为 $(L, W, C)$，其中 L 和 W 分别对应于网格的长度和宽度。 这些值是根据理想的驾驶感知能力、数据集和计算约束选择的。 网格单元尺寸设置为 0.2 米（原始论文中为 0.16 米），以简化数据处理。 为了实现长距离纵向检测，我们针对距离在 [^0] [^120] 米范围内的物体，因此 L = 600；并且考虑宽度范围为 [-40, 40] 米的物体，因此 W = 400。

#### 3.3.2 Backbone

我们遵循了原始支柱论文中提出的核心架构，该架构利用 2D CNN 结构，因为它具有良好的深度效率比。 三个下采样块（Conv2D-BN-ReLU）用于缩小潜在空间，而三个具有反卷积的上采样块将数据恢复到更高分辨率，输出形状为 $\left(\frac{L}{2}, \frac{W}{2}, 6C\right)$。

#### 3.3.3 记忆单元

我们对系统的记忆进行建模，使用 RNN。 尤其，我们建议使用 convGRU，即卷积循环单元 (GRU) 的卷积版本。 从简单的 RNN 升级可以避免梯度消失问题。 卷积操作尊重空间数据并提高效率。 最后，直接选择 GRU 而不是现有替代方案（例如 LSTM），可以节省额外的计算资源，并且可以被视为一种记忆正则化技术（减少隐藏状态的复杂度）。 这是因为 GRU 比 LSTM 具有更少的门控机制，因此具有更少的可训练参数。

---

我们通过合并具有相似性质的卷积层，减少了所需的卷积层数，从而使单元更加高效。 尤其，请参见方程 (1)-(3)，重置 $r(t)$ 和更新 $z(t)$ 门控共享相同的输入变量（当前特征、 $x(t)$ 和保存的记忆、 $h(t-1)$），但具有不同的可学习参数（ $W_r$、 $b_r$、 $W_z$、 $b_z$）。 这允许应用具有重复数量的过滤器进行单个卷积，通过输入连接。 候选隐藏状态 $\tilde{h}(t)$ 得到，并从中获得新的记忆 $h(t)$。

 $$ [r(t),z(t)]=\sigma([W_{r},W_{z}])*[h(t{-}1),x(t)]+[b_{r},b_{z}]) $$

 $$ \tilde{h}(t)=\tanh(W_{h}*[r(t)\cdot h(t-1),x(t)]+b_{h}) $$

 $$ h(t)=(1-z(t))\cdot h(t-1)+z(t)\cdot\dot{h}(t). $$

通过其门控机制，convGRU 架构允许模型自适应地学习哪些信息需要遗忘、哪些需要更新以及哪些新数据需要纳入。 这使得能够捕获序列数据中的长期依赖关系。

#### 3.3.4 检测头部

我们提出了一种 SSD [^14] 的简单修改。 其核心哲学被保留，即单次通过且不进行区域建议。 但是，我们取消了使用锚框。 相反，为网格中的每个单元直接输出一个预测。 取消使用单细胞多目标检测能力，避免了对锚框参数的繁琐且通常不准确的调整，并使推理更加平滑。

线性层用于分类和定位（位置、大小和角度）回归的独立输出。 只有大小具有激活函数，后者是 ReLU 激活函数。 这是为了防止其取负值，这对于其他输出来说不是问题。 此外，与分类卷积相连的是一个 Softmax 激活层，该层输出类概率。 此外，与相关文献 [^12] [^27] 不同，我们通过独立地预测角度的正弦和余弦值，并从中提取角度来回归角度输出。 这样，我们避免了直接角度回归（由于张量量级而受损），并且无需使用分类头部来区分车辆的前后。

#### 3.4. 后处理

为了提取最终的检测边界框，首先应用类分数过滤，然后进行 NMS。 前者会删除置信度较低的预测，而后者会删除与某个对象相关联的冗余边界框。 使用 2D IoU 来确定两个旋转边界框之间的重叠程度。

#### 3.5. 特征自运动补偿

由 convGRU 输出的隐藏状态特征以先前帧的坐标系表示。如果直接存储并用于计算下一个预测，则会由于自运动而产生空间不匹配。

可以使用不同的技术来执行转换。理想情况下，已经校正的数据应输入到网络中，而不是在内部进行转换。但是，由于这需要在推理和每个步骤中重置隐藏状态、转换先前云并将其传播到整个网络，因此我们不建议这样做。这不仅效率低下，而且也违背了使用 RNN 的目的。因此，在循环上下文中，解决方案要求在特征级别进行补偿。这在一定程度上提高了效率，但也使问题更加复杂。经典插值方法用于例如 [^9]。可以应用伪图像插值来获得转换坐标系中的特征。然而，这种解决方案可能会因所使用的插值技术的多项式阶数（例如，双线性、双三次等）而产生近似误差。

#### 3.5.1 基于卷积的坐标变换

与 [^5] 类似，我们建议使用卷积运算和辅助任务来执行转换。考虑到前述工作的细节有限，我们提出了我们自己的解决方案来解决此问题。

我们采用的方法为网络提供了将特征转换所需的必要信息，这完全是通过一个额外的卷积层实现的。我们首先计算两个连续帧之间的相对变换矩阵，即成功转换特征所需的运算。接下来，我们仅从矩阵中提取 2D 信息（旋转和平移部分）：

 $$ T_{t-1}^{t}=(T_{t})^{-1}\cdot T_{t-1}=\begin{bmatrix}r_{11}&r_{12}&r_{13}&t_{x_{14}}\\ r_{21}&r_{22}&r_{23}&t_{y_{24}}\\ r_{31}&r_{32}&r_{33}&t_{z_{34}}\\ 0&0&0&1\end{bmatrix} $$

即，对于旋转部分，为 $r_{11}$、$r_{12}$、$r_{21}$ 和 $r_{22}$；对于平移部分，为 $t_{x_{14}}$ 和 $t_{y_{24}}$。

这种简化避免了主矩阵常数，并在 2D（伪图像）域中进行操作，从而将值从 16 个 $(4 \times 4)$ 简化为仅 6 个。然后，我们展平矩阵，并将其扩展以匹配隐藏特征的形状，以进行补偿 $(N_{\text{scans}} - 1, L/2, W/2, 6)$。第一维表示要转换的帧数。此表示使其适用于每个潜在支柱，以便将其连接到要补偿的隐藏特征的通道维度中。

---

使用辅助任务仅限于训练过程。网络学习了如何正确转换特征后，该任务将不再适用。关于其影响的进一步实验将在下一节中进行。

![Image](images/fa67ac60f6183b7b2f3aa32cb5df66c582937f81d7e08a7e06d1da2869e8fa82.jpg)

<div style="text-align: center;">Figure 3. Illustration of both the transformation module and its auxiliary task. A single convolutional layer maps the transformation of the hidden state, provided analytical transformation details in the channel dimension. A lightweight CNN auxiliary task ensures the validity of the transformation module by enforcing transformed features in the output.</div>

辅助任务仅用于训练过程。由于该任务不再适用，因此在推理过程中不考虑该任务。

最后，隐藏状态特征被输入到 2D 卷积层中，该层用于拟合变换过程。需要注意的是，卷积操作本身并不能保证变换的完成。通道连接只是向网络提供关于如何进行变换的额外信息。在这种情况下，我们认为使用辅助学习是合适的。除了主要的训练目标（目标检测）之外，还会添加一个额外的学习目标（坐标变换）。辅助任务的设计旨在通过监督的方式引导网络完成变换过程，以确保补偿的正确性（参见图 3）。

### 4. 实验

在本节中，我们将提供大量的实验，包括设置、训练细节、获得的主要结果以及消融研究。

#### 4.1. 设置

我们将命名我们关注的类别标签，说明处理类别不平衡的一些方法，并详细说明训练损失函数的选择。

#### 4.1.1 类别标签

我们评估的类别包括：车辆、非机动车辆（也称为自行车）和行人。

考虑到该领域中现有的前景-背景类别不平衡问题，我们执行额外的测量来帮助解决它。具有代表性的类别权重根据数据集中的每个类别的出现频率来调整每个类别的学习相关性。或者，我们考虑使用分类器的偏置初始化。其目的是加快收敛速度，避免网络在早期迭代中学习偏置。我们通过确保从一开始，分类输出就反映类别不平衡的情况来实现这一点，即 softmax 输出对应于每个类别的频率。

#### 4.1.2 损失函数

选择 Focal Loss，首次在 [^13] 中引入，作为分类损失。选择它的目的是通过为困难、分类错误的示例分配更高的权重，同时降低易于分类的示例的权重，从而减轻类别不平衡的影响。与标准做法一样，我们设置了平衡参数，$\alpha = 0.5$，以及聚焦参数，$\gamma = 2$。

Huber loss，也称为 Smooth-L1，[^27]，用于回归输出，因为它对异常值具有鲁棒性。我们将其学习阈值设置为 $\delta = 1.0$ 用于位置和大小，而 $\delta = 3.0$ 用于角度。 这样做是考虑到更高的异常值容忍度被证明有助于鼓励学习对象的旋转值。

此外，我们掩盖了与地面真实背景或不清晰标签相关的样本的学习影响。 这样做使我们能够专注于相关的类别。 此外，我们选择 AdamW [^15] 作为优化器，以将权重衰减正则化与学习率设置分离。

#### 4.2. TimePillars 训练周期

数据集的结构会影响循环训练过程。 数据集中的帧是在两年的时间跨度内和多个国家/地区采集的，因此，数据线性有限。 训练样本之间缺乏空间或时间关系意味着没有特定的顺序贯穿整个训练循环。

然而，对于每个核心标注帧，过去 10 个扫描结果是可用的，尽管没有标注。由于这些过去的扫描结果由于缺乏标注而无法直接用于训练，我们使用它们来填充隐藏状态，从而提供相关信息。 这样，我们就可以利用庞大的数据集，而无需重复数据或定义运行顺序（参见图 4）。

长期记忆的稳定性在循环方案中至关重要。我们观察到，这种学习上下文存在一个风险，即网络可能没有足够的连续标注数据来学习如何保留相关知识以及如何忘记冗余信息。 我们通过在一定范围内训练随机数量的过去扫描结果来解决此问题，

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Method</td><td style='text-align: center; word-wrap: break-word;'>Motion transf.</td><td style='text-align: center; word-wrap: break-word;'>Scans</td><td style='text-align: center; word-wrap: break-word;'>NDS</td><td style='text-align: center; word-wrap: break-word;'>mATE</td><td style='text-align: center; word-wrap: break-word;'>mASE</td><td style='text-align: center; word-wrap: break-word;'>mAOE</td><td style='text-align: center; word-wrap: break-word;'>mAP</td><td style='text-align: center; word-wrap: break-word;'>Vehicle</td><td style='text-align: center; word-wrap: break-word;'>Average Precision</td><td style='text-align: center; word-wrap: break-word;'>Pedestrian</td><td style='text-align: center; word-wrap: break-word;'>f (Hz)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>PointPillars $^{{*}}$</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>0.677</td><td style='text-align: center; word-wrap: break-word;'>0.022</td><td style='text-align: center; word-wrap: break-word;'>0.026</td><td style='text-align: center; word-wrap: break-word;'>0.068</td><td style='text-align: center; word-wrap: break-word;'>0.506</td><td style='text-align: center; word-wrap: break-word;'>0.804</td><td style='text-align: center; word-wrap: break-word;'>0.415</td><td style='text-align: center; word-wrap: break-word;'>0.299</td><td style='text-align: center; word-wrap: break-word;'>46.2</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>MF PointPillars $^{{*}}$</td><td style='text-align: center; word-wrap: break-word;'>Preprocessing $^{\dagger}$</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>0.708</td><td style='text-align: center; word-wrap: break-word;'>0.021</td><td style='text-align: center; word-wrap: break-word;'>0.025</td><td style='text-align: center; word-wrap: break-word;'>0.029</td><td style='text-align: center; word-wrap: break-word;'>0.547</td><td style='text-align: center; word-wrap: break-word;'>0.809</td><td style='text-align: center; word-wrap: break-word;'>0.454</td><td style='text-align: center; word-wrap: break-word;'>0.379</td><td style='text-align: center; word-wrap: break-word;'>9.1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TimePillars</td><td style='text-align: center; word-wrap: break-word;'>Preprocessing $^{\dagger}$</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>0.728</td><td style='text-align: center; word-wrap: break-word;'>0.018</td><td style='text-align: center; word-wrap: break-word;'>0.024</td><td style='text-align: center; word-wrap: break-word;'>0.022</td><td style='text-align: center; word-wrap: break-word;'>0.577</td><td style='text-align: center; word-wrap: break-word;'>0.802</td><td style='text-align: center; word-wrap: break-word;'>0.494</td><td style='text-align: center; word-wrap: break-word;'>0.435</td><td style='text-align: center; word-wrap: break-word;'>21.5</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TimePillars</td><td style='text-align: center; word-wrap: break-word;'>Interpolation</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>0.684</td><td style='text-align: center; word-wrap: break-word;'>0.018</td><td style='text-align: center; word-wrap: break-word;'>0.024</td><td style='text-align: center; word-wrap: break-word;'>0.064</td><td style='text-align: center; word-wrap: break-word;'>0.515</td><td style='text-align: center; word-wrap: break-word;'>0.771</td><td style='text-align: center; word-wrap: break-word;'>0.406</td><td style='text-align: center; word-wrap: break-word;'>0.369</td><td style='text-align: center; word-wrap: break-word;'>20.8</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TimePillars</td><td style='text-align: center; word-wrap: break-word;'>Con-based</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>0.727</td><td style='text-align: center; word-wrap: break-word;'>0.018</td><td style='text-align: center; word-wrap: break-word;'>0.024</td><td style='text-align: center; word-wrap: break-word;'>0.029</td><td style='text-align: center; word-wrap: break-word;'>0.577</td><td style='text-align: center; word-wrap: break-word;'>0.808</td><td style='text-align: center; word-wrap: break-word;'>0.489</td><td style='text-align: center; word-wrap: break-word;'>0.433</td><td style='text-align: center; word-wrap: break-word;'>21.3</td></tr></table>

<div style="text-align: center;">Table 1. Results of multiple models trained on ZOD frames dataset, using 120 m of range. All models were evaluated with the same number of scans as they were trained with. (*) Custom implementations. (†) “cyclists” is used as a short for vulnerable vehicles, which include motorcycles, wheelchairs, scooter and any human-powered, electric or motorised wheeled object that is used to transport people. (‡) By “preprocessing”, we mean that the network does not include any motion transformation layers but instead the data is motion compensated before being fed into the network.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Method</td><td rowspan="2">Scans</td><td rowspan="2">NDS</td><td rowspan="2">mAP</td><td colspan="3">Vehicle</td><td colspan="3">Vulnerable Vehicle</td><td colspan="3">Pedestrian</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>[0, 50)</td><td style='text-align: center; word-wrap: break-word;'>[50, 100)</td><td style='text-align: center; word-wrap: break-word;'>[100, 200+]</td><td style='text-align: center; word-wrap: break-word;'>[0, 50)</td><td style='text-align: center; word-wrap: break-word;'>[50, 100)</td><td style='text-align: center; word-wrap: break-word;'>[100, 200+]</td><td style='text-align: center; word-wrap: break-word;'>[0, 50)</td><td style='text-align: center; word-wrap: break-word;'>[50, 100)</td><td style='text-align: center; word-wrap: break-word;'>[100, 200+]</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>PointPillars</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>0.657</td><td style='text-align: center; word-wrap: break-word;'>0.475</td><td style='text-align: center; word-wrap: break-word;'>0.878</td><td style='text-align: center; word-wrap: break-word;'>0.753</td><td style='text-align: center; word-wrap: break-word;'>0.498</td><td style='text-align: center; word-wrap: break-word;'>0.469</td><td style='text-align: center; word-wrap: break-word;'>0.393</td><td style='text-align: center; word-wrap: break-word;'>0.036</td><td style='text-align: center; word-wrap: break-word;'>0.404</td><td style='text-align: center; word-wrap: break-word;'>0.211</td><td style='text-align: center; word-wrap: break-word;'>0.000</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TimePillars</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>0.723</td><td style='text-align: center; word-wrap: break-word;'>0.570</td><td style='text-align: center; word-wrap: break-word;'>0.884</td><td style='text-align: center; word-wrap: break-word;'>0.776</td><td style='text-align: center; word-wrap: break-word;'>0.591</td><td style='text-align: center; word-wrap: break-word;'>0.552</td><td style='text-align: center; word-wrap: break-word;'>0.521</td><td style='text-align: center; word-wrap: break-word;'>0.178</td><td style='text-align: center; word-wrap: break-word;'>0.557</td><td style='text-align: center; word-wrap: break-word;'>0.350</td><td style='text-align: center; word-wrap: break-word;'>0.032</td></tr></table>

<div style="text-align: center;">Table 2. Distance binning. We evaluate the performance of the proposed model for different detection ranges of interest: from 0 to 50 meters, from 50 to 100 meters, and from 100 to above 200 meters.</div>

从而避免扫描过拟合。 随机化训练周期对网络的泛化能力有益。

迁移学习使我们能够加快和简化训练过程。 我们首先从头开始训练单个帧的基本模块。 然后，最相关的权重被转移到训练 TimePillars 的核心。 为了实现此目的，冻结了支柱编码器以及主干网络的下采样层，从而使已转移的权重能够适应新的训练环境。

#### 4.3. 结果

Zenseact Open Dataset 采用了 nuScenes 中提出的指标 [^2]，以支持长距离数据分析。 表 1 包含本文的主要结果，图 5

![Image](images/c6a0ba6ed4d4843bfd4c7c68fe6d1e7988d7acaded3c181604da2e7f2883fabf.jpg)

<div style="text-align: center;">Figure 4. Illustration of a simplified training step. The hidden state is built by running the network for a fixed number of iterations with scans prior to the core frame, ignoring the output. Then, we perform a final pass through the network with the core frame (annotated) as input, and backpropagate to update the weights.</div>

用于可视化。 比较了不同自运动变换性质的 TimePillars 与我们的单帧基线（PointPillars），以及一个多帧扩展版本（在输入中使用 3 个过去的扫描结果）。 表中的所有模型都使用 120 米的纵向范围进行训练和评估。 结果表明，TimePillars 在大多数类别中都优于其他方法。 当将已补偿的数据馈入网络时，可以实现最高的总体 nuScenes 检测分数 (NDS)，因为此时网络无需学习变换本身。 如前所述，这种情况是理想的，仅用于完整性。 我们的主要方案（基于卷积的方案）几乎可以达到后者的性能，并且比基于双线性插值的直接替代方案高约 5%。 类别特定的 AP 值显示，对于主要类别（车辆），MF PointPillars 具有最高的精度，而基于卷积的 TimePillars 方法在更难的类别（如骑自行车者和行人）中优于 PointPillars 方法，并且性能提升显著。 这种质量的提高归功于使用过去的信息，这对于在数据集中不太常见且稀疏的类别至关重要。 我们还提供了 NVIDIA A100 上的推断速度，仅供参考。 这些模型使用 TensorRT 量化为 float16，但未执行任何其他优化技术。 数字显示了精度和运行时间之间的权衡。 直观地，单帧方法比使用多个传感器扫描的方法运行速度更快，但我们的循环方法比直接聚合方法的速度快两倍。

---

![Image](images/1899804393c1cb76662544a304fbfe00d8d82f4ec4e945dbcd434eb41e19d8a2.jpg)

<div style="text-align: center;">Ground truth</div>

![Image](images/ba238a3820e7cc21acc8042a8f9ec59b9a0490713b71cc941494d9c40729f49c.jpg)

<div style="text-align: center;">Prediction</div>

<div style="text-align: center;">Figure 5. BEV visualization of TimePillars conv-based applied to the driving context. Model predictions are depicted together with the corresponding ground truths. Vehicles in blue, cyclists in red and pedestrians in green. Note the heading direction indicated with an arrow.</div>

#### 4.4. 消融研究

进行了相关的消融研究，例如，我们研究了循环模块的位置，证明了拥有辅助任务的合理性，并探索了纵向检测范围。

#### 4.4.1 内存放置

循环单元在流水线中的位置是一个至关重要的决策。将其添加到主干网络之后会增加训练循环的复杂性。但是，我们认为，将仅在主干网络之后开发的较低级数据表示传递给循环模块，可能有助于更好地融合扫描结果。为了验证这一假设，我们实现了一个类似于 FS-GRU [^5] 中提出的模型，其中循环模块接收编码的柱子作为输入。我们的解决方案在所有指标上都优于其他模型（表 3）。最值得注意的是，在主干网络之前具有循环模块的网络，其性能几乎与单帧基线相同。

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Method</td><td style='text-align: center; word-wrap: break-word;'>GRU</td><td style='text-align: center; word-wrap: break-word;'>NDS</td><td style='text-align: center; word-wrap: break-word;'>mAP</td><td style='text-align: center; word-wrap: break-word;'>mATE</td><td style='text-align: center; word-wrap: break-word;'>mASE</td><td style='text-align: center; word-wrap: break-word;'>mAOE</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>PointPillars</td><td style='text-align: center; word-wrap: break-word;'>-</td><td style='text-align: center; word-wrap: break-word;'>0.677</td><td style='text-align: center; word-wrap: break-word;'>0.506</td><td style='text-align: center; word-wrap: break-word;'>0.022</td><td style='text-align: center; word-wrap: break-word;'>0.026</td><td style='text-align: center; word-wrap: break-word;'>0.068</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TimePillars</td><td style='text-align: center; word-wrap: break-word;'>bef. bb</td><td style='text-align: center; word-wrap: break-word;'>0.687</td><td style='text-align: center; word-wrap: break-word;'>0.523</td><td style='text-align: center; word-wrap: break-word;'>0.020</td><td style='text-align: center; word-wrap: break-word;'>0.026</td><td style='text-align: center; word-wrap: break-word;'>0.068</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TimePillars</td><td style='text-align: center; word-wrap: break-word;'>aft. bb</td><td style='text-align: center; word-wrap: break-word;'>0.727</td><td style='text-align: center; word-wrap: break-word;'>0.577</td><td style='text-align: center; word-wrap: break-word;'>0.018</td><td style='text-align: center; word-wrap: break-word;'>0.024</td><td style='text-align: center; word-wrap: break-word;'>0.029</td></tr></table>

<div style="text-align: center;">Table 3. Single-frame baseline compared to two possible recurrent configurations, differing exclusively in the location of the recurrent unit (before or after the backbone). Both methods benefit from auxiliary learning. Note all the TimePillars models used within this project employ a convGRU after the backbone, unless otherwise specified.</div>

#### 4.4.2 辅助任务

<div style="text-align: center;">We also validate the adequacy of using an auxiliary task. Table 4 confirms the extra performance achieved in all the metrics when including the auxiliary task in training.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Method</td><td style='text-align: center; word-wrap: break-word;'>Aux.</td><td style='text-align: center; word-wrap: break-word;'>NDS</td><td style='text-align: center; word-wrap: break-word;'>mAP</td><td style='text-align: center; word-wrap: break-word;'>mATE</td><td style='text-align: center; word-wrap: break-word;'>mASE</td><td style='text-align: center; word-wrap: break-word;'>mAOE</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TimePillars</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>0.720</td><td style='text-align: center; word-wrap: break-word;'>0.567</td><td style='text-align: center; word-wrap: break-word;'>0.020</td><td style='text-align: center; word-wrap: break-word;'>0.024</td><td style='text-align: center; word-wrap: break-word;'>0.031</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TimePillars</td><td style='text-align: center; word-wrap: break-word;'>✓</td><td style='text-align: center; word-wrap: break-word;'>0.727</td><td style='text-align: center; word-wrap: break-word;'>0.577</td><td style='text-align: center; word-wrap: break-word;'>0.018</td><td style='text-align: center; word-wrap: break-word;'>0.024</td><td style='text-align: center; word-wrap: break-word;'>0.029</td></tr></table>

<div style="text-align: center;">Table 4. Results from using or not the auxiliary task for the convolution-based transform module and using 3 sensor scans.</div>

#### 4.4.3 纵向检测范围

为了补充所呈现的结果，我们使用固定的纵向范围 120 米，评估在与车辆不断变动的距离上的性能。我们进行距离分箱，并对比我们的方法和 PointPillars 的结果。TimePillars 的性能优于基线，而基线仅适用于近距离物体。利用过去的知识带来的好处可以扩展到更大的检测范围（参见表 2）。

### 5. 结论

这项工作表明，考虑过去的传感器数据优于仅利用当前信息。访问有关驾驶环境的先前信息可以解决 LiDAR 点云的稀疏性问题，并带来更准确的预测。我们证明了循环神经网络是实现这一目标的一种有效方法。与考虑创建更密集数据表示的基于点云聚合方法相比，赋予系统记忆可以带来更稳健的解决方案。我们的建议方法，TimePillars，提供了一种解决循环问题的方案。通过在推理过程中仅通过在单帧基线的基础上添加三个额外的卷积层，我们证明了基本的网络构建块就足以实现显着的成果，并且可以保证现有的效率和硬件集成规范得到满足。就我们所知，这项工作是针对新引入的 Zenseact Open 数据集的 3D 目标检测任务的第一个基准结果。我们希望我们的工作能够为未来的更安全、更可持续的道路做出贡献。

---

## 参考文献

## 参考文献

[^1]: Mina Alibeigi, William Ljungbergh, Adam Tonderski, Georg Hess, Adam Lilja, Carl Lindström, Daria Motorniuk, Junsheng Fu, Jenny Widahl, Petersson Zenseact, and Sweden Gothenburg. Zenseact Open Dataset: A large-scale and diverse multimodal dataset for autonomous driving. 5 2023. 1, 2, 3

[^2]: Holger Caesar, Varun Bankiti, Alex H. Lang, Sourabh Vora, Venice Erin Liong, Qiang Xu, Anush Krishnan, Yu Pan, Giancarlo Baldan, and Oscar Beijbom. nuScenes: A multimodal dataset for autonomous driving. Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, pages 11618–11628, 3 2019. 1,7

[^3]: Sergio Casas, Wenjie Luo, and Raquel Urtasun. IntentNet: Learning to Predict Intention from Raw Sensor Data. 1 2018. 3

[^4]: Xuesong Chen, Shaoshuai Shi, Benjin Zhu, Ka Chun Cheung, Hang Xu, and Hongsheng Li. Mppnet: Multi-frame feature intertwining with proxy points for 3d temporal object detection, 2022. 1, 2

[^5]: Zhikai Chen, Yafei Wang, Xulei Liu, and Xinchang Wang. FS-GRU: Continuous Perception and Prediction with inter Frame Feature Sharing. pages 517–522, 11 2022. 1, 3, 5, 8

[^6]: Gopi Krishna Erabati and Helder Araujo. Li3detr: A lidar based 3d detection transformer, 2022. 2

[^7]: Lue Fan, Ziqi Pang, Tianyuan Zhang, Yu-Xiong Wang, Hang Zhao, Feng Wang, Naiyan Wang, and Zhaoxiang Zhang. Embracing single stride 3d object detector with sparse transformer, 2021. 1

[^8]: Lue Fan, Yuxue Yang, Feng Wang, Naiyan Wang, and Zhaoxiang Zhang. Super Sparse 3D Object Detection. 12023. 1, 2, 3

[^9]: Artem Filatov, Andrey Rykov, and Viacheslav Murashkin. Any motion detector: Learning class-agnostic scene dynamics from a sequence of lidar point clouds. CoRR, abs/2004.11647, 2020. 5

[^10]: Andreas Geiger, Philip Lenz, and Raquel Urtasun. Are we ready for autonomous driving? the kitti vision benchmark suite. In 2012 IEEE Conference on Computer Vision and Pattern Recognition, pages 3354–3361, 2012. 1

[^11]: Rui Huang, Wanyue Zhang, Abhijit Kundu, Caroline Pantofaru, David A Ross, Thomas Funkhouser, and Alireza Fathi. An LSTM Approach to Temporal 3D Object Detection in LiDAR Point Clouds. 7 2020. 1, 3

[^12]: Alex H. Lang, Sourabh Vora, Holger Caesar, Lubing Zhou, Jiong Yang, and Oscar Beijbom. PointPillars: Fast Encoders for Object Detection from Point Clouds. Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2019-June:12689–12697, 12 2018. 2, 3, 5

[^13]: Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, and Piotr Dollár. Focal Loss for Dense Object Detection. 8 2017. 6

[^14]: Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, and Alexander C. Berg. SSD: Single Shot MultiBox Detector. 12 2015. 2, 5

[^15]: Ilya Loshchilov and Frank Hutter. Decoupled Weight Decay Regularization. 11 2017. 6

[^16]: Wenjie Luo, Bin Yang, and Raquel Urtasun. Fast and Furious: Real Time End-to-End 3D Detection, Tracking and Motion Forecasting with a Single Convolutional Net. Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, pages 3569–3577, 122018.2

[^17]: Scott Mccrae and Avideh Zakhor. 3D OBJECT DETECTION FOR AUTONOMOUS DRIVING USING TEMPORAL LIDAR DATA. Technical report. 1,3

[^18]: NVIDIA. Nvidia deep learning tensorrt documentation - dla layer support restrictions, 2023. Accessed 29 August 2023. 2

[^19]: Charles R. Qi, Hao Su, Kaichun Mo, and Leonidas J. Guibas. PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation. Proceedings - 30th IEEE Conference on Computer Vision and Pattern Recognition, CVPR 2017, 2017-January:77–85, 12 2016. 2

[^20]: Charles R. Qi, Li Yi, Hao Su, and Leonidas J. Guibas. Point-Net++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space. Advances in Neural Information Processing Systems, 2017-December:5100–5109, 6 2017. 2

[^21]: Joseph Redmon, Santosh Kumar Divvala, Ross B. Girshick, and Ali Farhadi. You only look once: Unified, real-time object detection. CoRR, abs/1506.02640, 2015. 2

[^22]: Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster R-CNN: Towards real-time object detection with region proposal networks. In Advances in Neural Information Processing Systems, 2015. 2

[^23]: Shaoshuai Shi, Xiaogang Wang, and Hongsheng Li. PointR-CNN: 3D Object Proposal Generation and Detection from Point Cloud. 12 2018. 2


## [^24]: Pei Sun, Henrik Kretzschmar, Xerxes Dotiwalla, Aurelien Chouard, Vijaysai Patnaik, Paul Tsui, James Guo, Yin Zhou, Yuning Chai, Benjamin Caine, Vijay Vasudevan, Wei Han, Jiquan Ngiam, Hang Zhao, Aleksei Timofeev, Scott Ettinger, Maxim Krivokon, Amy Gao, Aditya Joshi, Yu Zhang, Jonathon Shlens, Zhifeng Chen, and Dragomir Anguelov. Scalability in perception for autonomous driving: Waymo open dataset. CoRR, abs/1912.04838, 2019. 1


---

[^25]: Pei Sun, Mingxing Tan, Weiyue Wang, Chenxi Liu, Fei Xia, Zhaoqi Leng, and Dragomir Anguelov. Swformer: Sparse window transformer for 3d object detection in point clouds, 2022. 1, 2

[^26]: Mingxing Tan and Quoc V. Le. Efficientdet: Scalable and efficient object detection. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2020. 2

[^27]: Yan Yan, Yuxing Mao, and Bo Li. SECOND: Sparsely Embedded Convolutional Detection. Sensors 2018, Vol. 18, Page 3337, 18(10):3337, 10 2018. 2, 5, 6

[^28]: Bin Yang, Wenjie Luo, and Raquel Urtasun. PIXOR: Real-time 3D Object Detection from Point Clouds. Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, pages 7652–7660, 2 2019. 2

[^29]: Yin Zhou, Pei Sun, Yu Zhang, Dragomir Anguelov, Jiyang Gao, Tom Ouyang, James Guo, Jiquan Ngiam, and Vijay Vasudevan. End-to-End Multi-View Fusion for 3D Object Detection in LiDAR Point Clouds. 10 2019. 2, 3

[^30]: Yin Zhou and Oncel Tuzel. VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection. Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, pages 4490–4499, 11 2017. 2
