目前存在的问题:
- 常用的体素化或鸟瞰图(BEV)表示相比,范围视图表示更紧凑且没有量化误差,但其在目标检测方面的性能很大程度上落后于体素化或 BEV 。
- 范围视图尺度变化的挑战
- 2D 图像不同,虽然距离图像的卷积是在 2D 像素坐标上进行的,但输出是在 3D 空间中。 标准卷积的核权重和聚合策略都忽略了这种不一致
文章主要研究内容:
- 提出了一个简单而有效的范围条件金字塔,提出元内核从 2D 范围视图表示中捕获 3D 几何信息,使用加权非极大值抑制解决2D 距离视图自然比 3D 空间更紧凑却被忽略的问题。3D 迁移常见的数据增强技术范围视图的空间。
论文研究思路
1、范围视图表示紧促且没有量化误差,在语义分割方面有研究,但是目标检测方面性能落后。
2、之前研究忽略1)近处和远处物体之间的尺度变化; 2)特征提取中使用的2D范围图像坐标与输出中使用的3D笛卡尔坐标不一致。
论文翻译:
摘要:在本文中,我们提出了一种基于 LiDAR 的无锚单级 3D 物体检测器 – RangeDet。 与以前的工作最显着的区别是我们的方法纯粹基于范围视图表示。 与常用的体素化或鸟瞰图(BEV)表示相比,范围视图表示更紧凑且没有量化误差。 尽管有一些作品采用它进行语义分割,但其在目标检测方面的性能很大程度上落后于体素化或 BEV 同行。 我们首先分析了现有的基于范围视图的方法,发现了以前的工作忽略的两个问题:1)近处和远处物体之间的尺度变化; 2)特征提取中使用的2D范围图像坐标与输出中使用的3D笛卡尔坐标不一致。 然后我们特意设计了三个组件来解决 RangeDet 中的这些问题。 我们在大规模 Waymo 开放数据集 (WOD) 中测试了 RangeDet。 我们的最佳模型在车辆/行人/骑车人上达到 72.9/75.9/65.8 3D AP。 这些结果大大优于其他基于范围视图的方法(车辆检测中的 20 3D AP),并且总体上与最先进的基于多视图的方法相当。 代码将公开。
1. Introduction
基于LiDAR的3D物体检测是自动驾驶场景中不可或缺的技术。 尽管有一些相似之处,但 3D 稀疏点云中的对象检测与其 2D 对应对象检测有根本的不同。 关键是如何有效地表示稀疏且无序的点云以供后续处理。 几种流行的表示形式包括鸟瞰图 (BEV) [10, 38, 37]、点视图 (PV) [25]、范围视图 (RV) [12, 18]以及它们的融合[24,44,33],如图1所示。 其中,BEV是最受欢迎的一种。 然而,它在将空间划分为体素或柱时引入了量化误差,这对于可能只有很少点的远处物体不友好。 为了克服这个缺点,通常结合点视图表示。 点视图算子[22,23,34,31,35,30,17]可以从无序点云中提取有效特征,但它们很难在自动驾驶场景中有效地扩展到大规模点云数据。 范围视图在语义分割任务中被广泛采用[19,36,42,43],但很少单独用于对象检测任务。 然而,在本文中,我们认为距离视图本身是表示 LiDAR 点云的最紧凑且信息丰富的方式,因为它是从单个视点生成的。 它本质上形成了一个 2.5D [8] 场景,而不是完整的 3D 点云。 因此,在范围视图中组织点云不会丢失任何信息。 紧凑性还使得基于范围图像坐标的快速邻域查询成为可能,而点视图方法通常需要耗时的球查询算法[23]来获取邻域。 此外,有效的基于距离视图的探测器的检测范围可以与传感器的可用性一样远,而我们必须为基于 BEV 的 3D 探测器的检测范围设置阈值。 尽管有其优点,但提出了一个有趣的问题:为什么基于距离视图的激光雷达检测的结果不如其他表示形式? 事实上,从开创性工作 VeloFCN [12] 到 LaserNet [18] 再到最近提出的 RCD [1],一些工作已经尝试利用范围视图表示。 然而,纯基于距离视图的方法和基于BEV的方法之间仍然存在巨大差距。 例如,在 Waymo 开放数据集(WOD)[29] 的验证分割上,它们仍然大大低于最先进的方法(车辆类别中的 3D AP 超过 20 个点)。 为了释放距离视图表示的力量,我们检查了当前基于距离视图的探测器的设计,并发现了一些被忽视的事实。 这些看似简单明了,但我们发现问题出在细节上。 正确应对这些挑战是高性能基于距离视图的检测的关键。
首先,将 BEV 中检测稀疏点目标的挑战转化为距离图像中尺度变化的挑战。 尽管 2D 目标检测中有许多方法 [14, 13] 试图解决这个问题,但在基于范围视图的 3D 检测器中从未认真考虑过这一挑战。
其次,与 2D 图像不同,虽然距离图像的卷积是在 2D 像素坐标上进行的,但输出是在 3D 空间中。 这一点表明当前基于范围视图的检测器的设计较差:标准卷积的核权重和聚合策略都忽略了这种不一致,这甚至从网络一开始就导致严重的几何信息丢失。
第三,2D 距离视图自然比 3D 空间更紧凑,这使得基于距离图像的检测器中的特征提取更加有效。 然而,当前基于距离图像的设计忽略了如何利用这些特性来提高探测器的性能。 在本文中,
我们提出了一个纯粹的基于范围视图的框架——RangeDet,它是一个单级无锚检测器,旨在解决上述挑战。 我们分析了现有基于距离视图的 3D 探测器的缺陷,并指出了上述三个需要解决的关键挑战。 对于第一个挑战,我们提出了一个简单而有效的范围条件金字塔来缓解它。 对于第二个挑战,我们提出元内核从 2D 范围视图表示中捕获 3D 几何信息。 对于第三个,我们使用加权非极大值抑制来解决这个问题。 除了这些技术之外,我们还探索如何从 3D 迁移常见的数据增强技术范围视图的空间。 结合所有技术,我们的最佳模型在多个视图中实现了与最先进的作品相当的结果。 在车辆检测方面,我们以 20 3D AP 的优势超越了之前的纯基于距离视图的检测器。 有趣的是,与普遍看法相反,RangeDet 对于更远或更小的物体比 BEV 表示更有优势。
2. Related Work
基于 BEV 的 3D 探测器。 基于 LiDAR 的 3D 检测的多种方法可离散整个 3D 空间。 3DFCN [11] 和 PIXOR [38] 将手工特征编码为体素,而 VoxelNet [45] 是第一个使用端到端学习体素特征的。 SECOND [37] 通过稀疏卷积加速 VoxelNet。 PointPillars [10]在特征缩减方面非常激进,它应用PointNet首先折叠高度维度,然后将其视为伪图像。 基于点视图的 3D 探测器。 F-PointNet [21] 首先生成与 2D 感兴趣区域 (ROI) 相对应的平截头体,然后使用 PointNet [22] 分割前景点并回归 3D 边界框。 PointRCNN [25] 在提案生成和细化中使用 PointNet++ [23] 直接从整个点云生成 3D 提案,而不是使用点云进行 3D 检测的 2D 图像。 IPOD [39]和STD [40]都是两阶段方法,它们使用前景点云作为种子来生成提案并在第二阶段对其进行细化。
基于范围视图的 3D 探测器。 VeloFCN [12]是距离图像检测领域的一项开创性工作,它将点云投影到2D,并应用2D卷积来密集地预测每个前景点的3D框。 LaserNet [18] 使用全卷积网络来预测每个点的多模态分布以生成最终预测。 最近,RCD [1] 通过学习尺度变化的动态膨胀和针对伪 LiDAR [32] 中指出的“边界模糊”问题的软范围选通,解决了基于距离视图的检测中的挑战。
基于多视图的 3D 探测器。 MV3D [2] 是第一个融合正面视图、BEV 和相机视图特征以进行 3D 物体检测的作品。 PV-RCNN [24] 联合编码点和体素信息以生成高质量的 3D 建议。 MVF[44]从不同角度为每个点赋予丰富的上下文信息,以改善小物体的检测。
二维探测器。 尺度变化是二维物体检测中长期存在的问题。 SNIP [27] 和 SNIPER [28] 基于图像金字塔的思想,将提案重新调整为标准化大小。 FPN [14] 及其变体 [16, 20] 构建特征金字塔,它已成为现代检测器不可或缺的组件。 TridentNet [13] 构造权重共享分支,但使用不同的膨胀来构建尺度感知特征图。
3. Review of Range View Representation
在本节中,我们快速回顾一下 LiDAR 数据的范围视图表示。 对于具有 m 个光束、一个扫描周期内进行 n 次测量的激光雷达,一次扫描的返回值形成一个 m × n 矩阵,称为距离图像(图 1)。 距离图像的每一列共享一个方位角,并且距离图像的每一行共享一个倾角。 它们指示返回点相对于 LiDAR 原始点的相对垂直和水平角度。 距离图像中的像素值包含对应点的距离(深度)、返回的激光脉冲的幅度(称为强度)以及其他辅助信息。 距离图像中的一个像素至少包含三个几何值:距离r、方位角θ和倾角φ。 这三个值定义了一个球坐标系。 图2说明了距离图像和这些几何值的形成。 常见的使用笛卡尔坐标的点云数据实际上是从球坐标系解码的:
其中 x、y、z 表示点的笛卡尔坐标。 请注意,范围视图仅对从一个视点进行的扫描有效。 它不适用于一般点云,因为它们可能会重叠范围图像中的一个像素。 与其他 LiDAR 数据集不同,WOD 直接提供原生距离图像。 除了范围和强度值之外,WOD 还提供了另一种信息,称为伸长率 [29]。 伸长率测量激光脉冲宽度延长的程度,这有助于区分虚假物体。
4. Methodology
在本节中,我们首先详细阐述 RangeDet 的三个组件。 然后呈现完整的架构。
4.1. Range Conditioned Pyramid
在二维检测中,通常采用基于特征金字塔的方法,例如特征金字塔网络(FPN)[14]来解决尺度变化问题。 我们首先构建如图 4 所示的 FPN 中的特征金字塔。虽然特征金字塔的构建与 2D 目标检测中的 FPN 类似,但不同之处在于如何将每个目标分配到不同的层进行训练 。 在原始 FPN 中,真实边界框是根据其在 2D 图像中的面积来分配的。 然而,简单地采用这种分配方法忽略了2D距离图像和3D笛卡尔空间之间的差异。 附近的客车可能与远处的卡车具有相似的区域,但它们的扫描模式有很大不同。 因此,我们指定具有相似范围的对象由同一层处理,而不是纯粹使用FPN中的区域。 因此,我们将我们的结构命名为范围条件金字塔(RCP)。
4.2. Meta-Kernel Convolution
与RGB图像相比,深度信息赋予了距离图像笛卡尔坐标系,而标准卷积是为规则像素坐标上的2D图像设计的。 对于卷积核内的每个像素,权重仅取决于相对像素坐标,这不能充分利用笛卡尔坐标中的几何信息。 在本文中,我们设计了一种新的算子,它从相对笛卡尔坐标或更多元数据中学习动态权重,使卷积更适合距离图像。 为了更好地理解,我们首先将标准卷积拆解为四个部分:采样、权重获取、乘法和聚合。
1)采样。 标准卷积中的采样位置是一个规则的网格G,其具有kh×kw的相对像素坐标。 例如,常见的扩张为 1(控制卷积核中元素间隔的参数。扩张率的值决定了卷积核中相邻元素之间的间距。当dilation rate为1时,卷积核中的元素是紧密排列的,没有间隔,这是标准的卷积操作。这种设置下,3 × 3的卷积核会覆盖输入图像中相邻的3 × 3像素区域) 的 3 × 3(“3 × 3”指的是卷积核(也称为过滤器或kernel)的大小 )采样网格为:
对于输入特征图 F 上的每个位置 p0,我们通常使用 im2col (这是一种将特征图F中卷积核覆盖的区域转换为列向量的操作。如前所述,im2col操作通过将卷积核的“感受野”展开成列向量,将卷积操作转换为矩阵乘法,从而提高计算效率。)操作对其邻居 F(p0+pn)(pn代表从位置p0开始的偏移量。在卷积操作中,卷积核会在特征图上滑动,覆盖不同的像素位置。F(p0+pn)表示在位置p0加上偏移量pn后的特征图上的值。)、pn ∈ G 进行特征向量采样(以p0为起点,根据卷积核的大小,提取周围像素的值。将提取的像素值按照一定的顺序(通常是行优先或列优先)排列成一个一维向量。这个向量就是特征向量,它包含了卷积核覆盖区域内的所有像素信息。特征向量采样是卷积神经网络中实现特征提取和空间不变性的关键步骤。通过这种方式,网络可以从输入数据中学习到局部的、空间上连续的特征,这些特征对于图像识别、分类等任务至关重要。)。
2)权重获取。 每个采样位置 (p0 + pn) 的权重矩阵 W(pn) ∈ RCout×Cin 取决于 pn,并且对于给定的特征图是固定的。 这也称为卷积的“权重共享”机制。
3)乘法。 我们将标准卷积的矩阵乘法分解为两个步骤。 第一步是逐像素矩阵乘法。 对于每个采样点 (p0 + pn),其输出定义为
4)聚合。 相乘之后,第二步是对G中的所有op0(pn)求和,这称为逐通道求和。 综上所述,标准卷积可以表示为:
在我们的范围视图卷积中,我们期望卷积运算能够识别局部 3D 结构。 因此,我们通过元学习方法使权重适应局部 3D 结构。
对于权重获取,我们首先收集每个采样位置的元信息,并将该关系向量表示为 h(p0, pn)。 h(p0, pn)通常包含相对笛卡尔坐标、范围值等。然后我们根据h(p0, pn)生成卷积权重Wp0(pn)。 具体来说,我们应用具有两个全连接层的多层感知器(MLP):
对于乘法,我们不使用矩阵乘法,而是简单地使用逐元素乘积来获得 op0(pn),如下所示:
我们不使用矩阵乘法,因为我们的算法在大规模点云上运行,并且保存形状为 H×W×Cout× kh ×kw ×Cin 的权重张量会花费太多 GPU 内存。 受深度卷积的启发,逐元素乘积从权重张量中消除了 Cout 维度,这大大减少了内存消耗。 然而,元素乘积中不存在跨通道融合。 我们将其留给聚合步骤。 对于聚合,我们不是逐通道求和,而是连接所有 op0(pn), ∀pn ∈ G 并将其传递到全连接层以聚合来自不同通道和不同采样位置的信息。 总结起来,元内核可以表述为:
其中 A 是包含串联和全连接层的聚合操作。 图 3 清楚地说明了元内核。
(Meta-Kernel 是一种通过学习动态权重来适应范围图像特性的卷积核,它利用多层感知机将元信息转换为卷积权重,从而使得卷积操作能够更好地利用范围图像中的几何信息。)
与基于点的运算符的比较。 尽管元内核与基于点的类卷积算子有一些相似之处,但它与它们有三个显着的区别。
(1)定义空间。 元内核是在 2D 范围视图中定义的,而其他内核是在 3D 空间中定义的。 所以元核有规则的n×n邻域,并且点基算子有一个不规则的邻域。
(2)聚合。 3D 空间中的点是无序的,因此基于点的算子中的聚合步骤通常是排列不变的。 最大池化和求和被广泛采用。 RV 中的 n×n 个邻居是排列变体的,这是 Meta-Kernel 采用串联和全连接层作为聚合步骤的天然优势。
(3)效率。 基于点的算子涉及耗时的关键点采样和邻居查询。 例如,在单个 2080Ti GPU 中,使用最远点采样 (FPS) [23] 将 160K 点下采样到 16K 需要 6.5 秒,RandLA-Net [9] 中也对此进行了分析。 一些基于点的算子,例如 PointConv [35]、KPConv [30] 和 Continuous Conv [31] 的本机版本,为每个点生成权重矩阵或特征矩阵,因此它们在处理大规模点时面临严重的内存问题 云。 这些缺点使得基于点的算子无法应用于自动驾驶场景中的大规模点云(超过105个点)。 为了进行清晰的比较,我们在表 1 中总结了几个密切相关的工作和我们的元核卷积之间的差异。
4.3. Weighted Non-Maximum Suppression
如前所述,如何利用距离视图表示的紧凑性来提高基于距离图像的检测器的性能是一个重要的主题。在常见的对象检测器中,提案不可避免地与提案分布的平均值有随机偏差。获得偏差较小的提案的直接方法是选择置信度最高的提案。虽然消除偏差的更好和更稳健的方法是使用所有可用提案的多数票。现成的技术只符合我们的需求——加权NMS[6]。这是我们方法的优势:紧凑性的性质使得 RangeDet 能够在没有巨大计算成本的情况下在全分辨率特征图中生成提议是可行的,但是对于大多数基于 BEV 或基于点视图的方法是不可行的。有了更多的建议,偏差将被更好地消除。我们首先过滤掉分数小于预定义阈值 0.5 的提议,然后根据预测分数对标准 NMS 中的提议进行排序。对于当前的顶级提案 b0,我们发现 b0 的 IoU 高于 0.5 的建议。 b0 的输出边界框是这些提案的加权平均值,可以描述为:
其中bk和sk表示其他建议和相应的分数。t 是 IoU 阈值,即 0.5。 I(·) 是指示函数。
4.4. Data Augmentation in Range View
数据增强是提高基于激光雷达的3D物体检测器性能的关键技术。随机全局旋转、随机全局翻转和复制粘贴是三种典型的。虽然它们在 3D 空间中很简单,但将它们转移到 RV 并保持 RV 的结构并非易事。点云的旋转可以看作是距离图像沿方位角方向的平移。3D空间中的翻转对应于相对于距离图像的一个或两个垂直轴的翻转(我们在补充资料中提供了清晰的说明)。从最左边的一列到最右边的,方位角跨度为(−π,π)。因此,与二维RGB图像的增强不同,我们计算每个点的新坐标,使其与其方位角一致。对于Copy-Paste[37],将对象粘贴到具有原始垂直像素坐标的新距离图像上。由于垂直角分辨率不均匀,我们只能保持RV的结构,避免这种处理在很大程度上偏离地面的物体。此外,距离中的汽车不应粘贴到附近墙的前面。所以我们执行“范围测试”以避免这种情况。
4.5. Architecture
整体管道。RangeDet的体系结构如图4所示。8个输入范围图像通道包括距离、强度、伸长、x、y、z、方位角和倾角,如第3节所述。Meta-Kernel被放置在第二个BasicBlock[7]中。特征图被下采样到步幅 16,并逐渐上采样到全分辨率。接下来,我们根据盒子中心的范围将每个地面真实边界框分配给RCP中步幅1、2、3、4的层。所有对应点在地面真实3D边界框中的位置都被视为正样本,否则为负。最后,我们采用加权 NMS 对提案进行重复数据删除并生成高质量的结果。
RCP和Meta-Kernel。在WOD中,一个点的范围从0m到80m不等。根据ground-truth边界框中的点分布,我们将[0,80]划分为3个区间:[0,15),[15,30),[30,80]。我们使用具有 64 个过滤器的两层 MLP 从相对笛卡尔坐标生成权重。
ReLU 被用作激活。IoU预测头。在分类分支中,我们采用了最近的一项工作——变焦损失[41]来预测预测边界框和真实边界框之间的IoU。我们的分类损失定义为:
其中 M 是有效点的数量,i 是点索引。VFLi 是每个点的变焦损失:
其中 p 是预测分数,q 是预测边界框和真实边界框之间的 IoU。α 和 γ 与焦点损失 [15] 的作用相似。回归头。回归分支还包含四个 3 × 3 Conv,如分类分支所示。我们首先制定包含 point2 的真实边界框,即 (xgi , ygi , zgi , lg i , wgi , hg i , θgi ) 分别表示边界框中心的坐标、尺寸和方向。点i的笛卡尔坐标为(xi, yi, zi)。我们将点i与包含点i的边界框中心的偏移量定义为∆ri = rg i−ri, r∈{x, y, z}。对于点i,我们将其方位角方向视为其局部x轴,与LaserNet[18]相同。我们制定这样的转换如下(图 5 提供了清晰的说明):